qui3-1 父子shell

1
2
3
bash	# 建立子Shell
ps -f # 显示UID,PPIP,C与STIME栏位。
ps --forest # 以依赖关系查询进程 ↓

在这里插入图片描述

3-2 ; 分号

1
2
3
ls ; pwd ; cd /	# 依次执行
(ls ; pwd ; cd /) # 创建子Shell依次执行↓
echo $BASH_SUBSHELL # 是否用子Shell执行

在这里插入图片描述
在这里插入图片描述

3-3 sleep、jobs 命令

1
2
3
4
5
6
sleep 300	# 将目前动作延迟一段时间(s、m、h 或 d,其中 s 为秒,m 为 分钟,h 为小时,d 为日数)
sleep 300& # 挂在后台执行(用kill命令干掉)

…… & # 后台执行
job # 显示作业的状态
job -l # 在作业信息中额外的列出PID
  • 挂在后台,如果要干掉,则用Kill命令
  • jobs 显示作业的状态。-l 在作业信息中额外的列出PID
    在这里插入图片描述

3-4 coproc协程

1
2
3
coproc sleep 10	# 协程处理命令,同时做两件事
coproc bayy { sleep 10; sleep 30; } & # 在后台生成一个子shell,并在子shell中执行命令
# 一定要分号结尾,大括号内空格

3-5 外部命令和内建命令

  • Shell执行的命令可以分为内建命令(built-in)和外部命令(external)

    • 内建命令是构建在shell内部

      • 内建命令由当前shell本身来执行,例如echo, cd等等
    • 后者是一个独立的文件(可以是二进制文件,也可以是一个脚本)

      • 外部命令的执行shell进程会fork一个子进程,父进程随后挂起,然后在子进程中exec加载外部文件,子进程返回后,父进程才继续执行

在这里插入图片描述

1
2
3
4
5
6
7
8
9
history		# 查看之前创建的命令

!行号 # 执行之前执行的位于第n行的命令

alias # 定义或显示别名
alias li='ls -li' # 定义别名
# 关闭当前Shell再无法使用

type #显示指定命令的类型