查看系统当前默认使用的shell有如下几个方法
一、查看所有的shell
cat /etc/shells
输出
List of acceptable shells for chpass(1).
Ftpd will not allow users to connect who are not using
one of these shells.
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
表示目前系统下有这么多版本的shell可用
二、查看当前窗口使用的shell版本(不要被一个叫
S
H
E
L
L
的
单
独
的
环
境
变
量
所
迷
惑
,
它
被
设
置
为
你
的
默
认
s
h
e
l
l
的
完
整
路
径
。
因
此
,
这
个
变
量
并
不
一
定
指
向
你
当
前
使
用
的
s
h
e
l
l
。
例
如
,
即
使
你
在
终
端
中
调
用
不
同
的
s
h
e
l
l
,
SHELL 的单独的环境变量所迷惑,它被设置为你的默认 shell 的完整路径。因此,这个变量并不一定指向你当前使用的 shell。例如,即使你在终端中调用不同的 shell,
SHELL的单独的环境变量所迷惑,它被设置为你的默认shell的完整路径。因此,这个变量并不一定指向你当前使用的shell。例如,即使你在终端中调用不同的shell,SHELL 也保持不变)
echo $SHELL
/bin/bash
三、查看系统用户默认shell
cat /etc/passwd | grep sh
root::0:0:System Administrator:/var/root:/bin/sh
_sshd::75:75:sshd Privilege separation:/var/empty:/usr/bin/false
_update_sharing::95:-2:Update Sharing:/var/empty:/usr/bin/false
_mbsetupuser::248:248:Setup User:/var/setup:/bin/bash
可以看出root用户用的是sh,其他用户用的是bash
四、输出当前使用的shell(与三 、类似,但是比三更靠谱)
echo $0
/bin/sh
然后,我们修改系统默认shell为bash,命令
chsh -s /bin/bash