5.2.2.2 jobs 命令查看后台进程
- 使用
jobs
命令可以显示当前运行在后台模式中的所有用户的进程信息 - 使用
jobs -l
则可以更详细的显示进程信息,如下图-
jobs
命令会显示后台进程的任务 ID 、PID 、进程状态、进程命令
image.png
-
同时当后台进程执行完毕后,也就无法通过
jobs
查看对应进程信息
-
5.3 理解 shell 的内建命令
5.3.1 外部命令
- Linux 中存在 内建命令 和 外部命令 ,可以先理解一下 外部命令
- 外部命令 也被称为 文件系统命令 ,不是 shell 程序的一部分
- 外部命令 通常被放置在 /bin 、/usr/bin 、/sbin 、/usr/sbin 中
- 外部命令 在执行时,会创建一个子进程,在子进程中执行该命令,这个行为被称为 衍生( Forking )
5.3.1.1 which 命令和 type 命令查看命令归属
- 使用 which 命令和 type 命令可以查看指定命令是属于 外部命令 ,还是 内建命令 ,如下图
- ps 命令位于 /bin 中,说明 ps 命令就是 外部命令
![](https://img.haomeiwen.com/i22798912/a7881644ef932349.png)
5.3.2.2 history 命令查看使用过的历史命令
首先 history 命令是一个 内建命令
可以通过 history 命令查看之前使用过的命令
5.3.2.4 在 .bash_history 文件中查看命令历史记录
使用 history 命令查看的命令历史记录,被存放在根目录的 .bash_history 文件中
需要注意的是,命令的历史记录并不是直接存放到该文件,而是先存放到内存中,当 shell 退出时,才被写入到该文件
想要强制将命令历史记录写入文件中,可以使用 history -a 命令
5.3.2.1 type -a 命令查看命令的多种实现
- 有些命令存在多种实现,使用 type -a 可以将该命令的全部实现列举出来,如下图
-
可以看到,pwd echo 命令既是 内建命令 ,也在 /bin 目录中有一份实现
image.png
5.3.2.5 alias 命令实现为命令指定别名
alias 命令也是一个 内建命令
- 需要注意的是,直接使用命令创建的别名,只能在当前会话生效,无法做到全局生效
想要全局生效,则需要将别名写入配置文件中,后续章节会有介绍 - 使用 alias 命令可以为某个复杂的命令指定一个简单的别名,从而将调用命令的输入减少到最低,如下图
可以看到,通过 alias 命令将ls -l --color=auto
命令指向 ll 命令
之后再输出 ll 命令,就可以得到和 ls -l --color=auto命令一样的结果
image.png
5.4 小结
- shell 之间存在父子级关系
- 使用
bash
命令可以创建 子 shell - 使用
exit
命令可以退出 子 shell - 使用
&
命令可以将命令置入后台 - 使用
coproc
命令可以在子进程中执行命令 - 命令列表 是指在多个命令之间添加分号,可以依次执行命令
- 进程列表 是指在 命令列表 外部添加一对括号,可以将这些命令在子进程中执行
- 使用
history
命令可以查看命令历史记录 - 使用
!!
命令可以快速呼出最近依次的命令历史记录 - 使用
alias
命令可以给长命令指定短别名
部分内容转载来自:作者:asing1elife链接:https://www.jianshu.com/p/2ae62a56172d
网友评论