shell 命令解释器,用于和操作系统内核交互的一种方式。
常用的shell有bash和sh
查看当前系统的默认shell
echo $SHELL
查看所有的shell
cat /etc/shells
执行shell脚本的几种方式,假设路径/root/test.sh
没有赋予执行权限前
bash test.sh
bash /root/test.sh
source test.sh
. /test.sh
source /root/test.sh
. /root/test.sh
赋予执行权限后
/root/test.sh
./test.sh
使用bash执行的时候相当于在父shell的环境下新建了一个子shell,使用source执行的时候,相当于在当前shell中执行无需打开子shell。可以使用下面方法验证。
root@a453bc49a6:~# ps -f
UID PID PPID C STIME TTY TIME CMD
root 22665 119960 0 05:14 pts/3 00:00:00 ps -f
root 119960 119954 0 04:16 pts/3 00:00:00 -bash
root@a453bc49a6:~# bash
root@a453bc49a6:~# ps -f
UID PID PPID C STIME TTY TIME CMD
root 22782 119960 0 05:14 pts/3 00:00:00 bash
root 22933 22782 0 05:15 pts/3 00:00:00 ps -f
root 119960 119954 0 04:16 pts/3 00:00:00 -bash
root@a453bc49a6:~# exit
exit
root@a453bc49a6:~# ps -f
UID PID PPID C STIME TTY TIME CMD
root 25430 119960 0 05:19 pts/3 00:00:00 ps -f
root 119960 119954 0 04:16 pts/3 00:00:00 -bash
ps -f 显示当前 shell 中运行的进程的详细信息