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 $$
相关推荐
HLC++13 小时前
Linux的进程间通信
android·linux·服务器
华清远见IT开放实验室14 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
groundhappy17 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
通信小小昕18 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
张小姐的猫19 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
栩栩云生19 小时前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程
imc.1120 小时前
linux基础IO
linux·运维·服务器
BelongPanda1 天前
Linux Nginx 纯手动 Let‘s Encrypt 泛域名证书配置教程
linux·nginx
酷可达拉斯1 天前
Linux操作系统-shell编程(0)
linux·运维·服务器·python·云计算
2301_777998341 天前
Linux中断机制:操作系统如何高效运行
linux·运维·服务器