5.2 shell的父子关系
用户登录某个虚拟控制器终端或者GUI中运行终端仿真器时所启动的默认交互shell是一个父shell。
在父shell提示符输入bash或其他等效的bash命令时,会创建一个新的shell程序,这个shell程序被称为子shell。
bash 参数
-c string 从string中读取命令并进行处理
-i 启动一个能接收用户输入的交互shell
-l 以登录shell的形式启动
-r 启动一个受限shell
-s 从标准输入中读取命令
--这几个参数不知道怎么用
5.2.1 进程列表
主要区分一系列命令与进程列表的区别:
一系列命令: pwd; ls ; date ; uptime 等同于{pwd; ls; date;uptime}
进程列表: ( pwd; ls ; date ; uptime)
进程列表的作用是生成子shell执行相应的命令。
pwd ; ls ; echo ${BASH_SUBSHELL} --0
(pwd; ls; echo ${BASH_SUBSHELL} --1
进程列表、协程和管道都利用了子shell。
协程:coproc
--不知道有什么用
5.3 理解内建命令和外部命令
外部命令:被称为文件系统命令,存在于bash shell之外的程序。
内建命令:和shell编译成了一体,作为shell工具的组成部分。
type ps
ps is hashed (/bin/ps)
type cd
cd is a shell builtin
主要区别:外部命令会创建出一个包含全新环境的子进程,而内建命令则不会。至于成本,不像书上写的感觉这么明显。