chsh不是一种sh,而是一个命令行使用程序,用于更改默认shell
CentOS是个开源软件,没有sh,sh是商业版的,
按ls /bin/*sh显示的sh实际上是个链接文件,连接的bash
在命令行输入新的sh名,会启动一个新的进程,
输入exit会关闭当前进程,恢复原来进程
Shell 概述
这条命令能将bin文件夹中所有以sh结尾的文件展示出来
绿色是可执行的二进制文件
蓝绿色是软连接,相当于windows的快捷方式,实际上指向另一个可执行程序
当我们输入指令:
sh
实际上执行的是:
bash
进程状态:
睡眠态(sleeping)
运行态(running)
创建新shell以后,系统的控制权由原来的bash切换到csh
同时父进程(bash)进入睡眠态
在csh中输入指令:exit 后,退出子进程,系统控制权交回父进程
父进程进入运行态,如果回到了最一开始的shell还键入exit,那么就会退出系统
chsh命令是永久更改用户shell的
Shell变量
set
查看当前使用的shell变量
PATH变量
PATH变量要追加赋值,
PATH=/usr/bin 这种赋值会覆盖掉PATH已有的值
PATH=$PATH:usr/bin 追加赋值
CDPATH
空变量
SHELL变量
设置登录shell的完整路径
TERM变量
设置用户终端类型