shell启用什么样的shell程序取决于我的的用户IP配置。 能够经过/etc/passwd查看本机所采用的shell程序。shell
用于登录某个虚拟控制器终端或在GUI中运行终端仿真器时候所启动的默认的交互shell就是父shell
在CLI提示符后输入/bin/bash命令后或其余等效的bash命令时,会建立一个新的shell,就是子shellbash
如上,第一次使用ps -f 时出现两个进程,第一个进程的进程ID是34285,运行的是bash shell程序;第二个进程的进程ID是34295,对应的命令ps -f
输入bash以后,一个子shell出现了,此时ps -f是在子shell中执行的。
第一个进程的进程ID是34285,是父shell程序;第二个进程的进程ID是34295,是子shell程序;第三个进程的进程ID是39020,对应的命令ps -f
(其中注意子shell的父进程ID/PPID是34298,是父shell进程的PID)(在生成子shell进程的时候,只有部分的父进程环境被复制到子shell环境中)命令行
子shell能够从父shell中建立,也能够从子shell中建立3d
经过加入;能够执行一系列命令
在整个命令行加上()使命令列表变成了进程列表,生成了一个子shell来执行对应的命令协程
如何验证是否生成了子shell,就须要使用环境变量的命令htm
echo $BASH_SUBSHELL 若是该命令返回时0表示没有子shell,俄国该命令返回1或者更大数字,表示存在子shellblog
后台模式: 在后台模式下运行命令能够在处理命令的同时让出CLI,以供他用。
通常演示使用sleep命令
sleep 10 表示但愿进程等待10秒, 使用后回话将暂停10s后返回shell CLI提示符进程
若是要想将命令在后台模式下执行,只需在命令末尾加上&符号。资源
jobs命令能够显示出当前运行在后台模式全部用户的进程
将进程列表置入后台 ,, 既能够再子shell中进行繁重的处理工做,同事也不会让子shell的I/O收到影响
执行(sleep 2;echo $BASH_SUBSHELL;sleep 2) 会产生1个做业号和进程ID, 而后回到提示符,且多了一个数字" 1 "
回车,获得另外一个提示符
在后台生成一个子shell,并在这个子shell中执行命令。