Linux 如何查看当前使用的shell

简介

LinuxUnix 都提供各种开箱即用的 shell 。可以找到 bash (Bourne Again shell)、ksh (Korn shell)csh (C shell)/tcsh (TC shell)sh (Bourne shell)等默认安装的 shell。但是,如何检查我使用的是哪个 shell

方法

使用 $0(最佳方法)

shell 复制代码
echo $0

# $0 包含当前正在运行的 shell 或脚本的名称
# 如果在交互式 shell 中运行,它会显示 shell 名称(bash、zsh 等)
# 如果运行脚本,它会显示脚本的文件名
  • 显示当前正在运行的 shell 的名称

  • 示例输出:/bin/bash、zsh、fish

使用 $SHELL(默认登录 Shell)

shell 复制代码
echo $SHELL
  • 显示用户设置的默认 shell(不一定是当前 shell

使用 ps 命令

shell 复制代码
ps -p $$

# $$ 保存当前 shell 会话的进程 ID (PID)
# 如果在脚本中使用,它会提供脚本 shell 的 PID
  • 显示当前 shell 的进程

  • 示例输出

shell 复制代码
 PID TTY          TIME CMD

使用 ps 命令直接输出shell名称

shell 复制代码
ps -o comm= -p $$

使用带有基本名称的 echo $0

shell 复制代码
basename "$0"

# 显示不带完整路径的 shell 名称
shell 复制代码
readlink /proc/$$/exe
查看系统上安装的所有shell
shell 复制代码
cat /etc/shells

示例输出

shell 复制代码
/bin/bash
/bin/csh
/bin/dash
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

使用 grep 查看

shell 复制代码
grep "^$USER" /etc/passwd

使用 lsof 查看

shell 复制代码
lsof -p $$
相关推荐
笨鸟要努力3 小时前
Ubuntu 全盘备份
linux·运维·ubuntu
ChironW3 小时前
Ubuntu 22.04 离线环境下完整安装 Anaconda、CUDA 12.1、NVIDIA 驱动及 cuDNN 8.9.3 教程
linux·运维·人工智能·深度学习·yolo·ubuntu
轻松Ai享生活4 小时前
linux 日志详解
linux
小白的代码日记4 小时前
Linux常用指令
linux·运维·服务器
月舞之剑5 小时前
linux离线安装nodejs
linux·node.js
维尔切5 小时前
Linux中Https配置与私有CA部署指南
linux·运维·https
小熊h5 小时前
【自动化备份全网服务器数据项目】
linux·服务器·自动化·备份数据
懒散猴6 小时前
【无标题】centos 配置阿里云的yum源
linux·阿里云·centos
果子⌂7 小时前
云原生环境 Prometheus 企业级监控实战
linux·运维·服务器·kubernetes·云计算·prometheus
Swaggy T7 小时前
自动驾驶决策算法 —— 有限状态机 FSM
linux·人工智能·算法·机器学习·自动驾驶