主要观点:有人在 Mastodon 询问作业控制相关内容,引发对自身使用作业控制频率的思考,进而探讨作业控制的用途、不同 shell 间的差异及具体使用方法等。
关键信息:
- 作业控制可让终端进程在前台、后台或停止状态间切换,相关命令有
fg
、bg
、Ctrl+z
、jobs
、kill
、disown
、wait
等。 kill %2
并非直接将%2
替换为进程 PID,而是通过jobs -p %2
扩展后再运行常规kill
命令。- 作业控制的使用场景包括杀死无响应进程、将 GUI 应用程序置于后台、在使用
vim
时运行命令、交错输出、暂停 CPU 密集型程序、处理误按Ctrl+Z
等情况,还可用于已设置环境变量时方便运行多个命令等。
重要细节: - 在 fish 中,
kill
是内置命令,能处理%2
等特殊符号。 - 不同 shell 基本的作业控制功能相似,有些 shell 可能没有作业控制。
- 举例说明在各种场景下如何使用作业控制命令,如
Ctrl+Z
后kill %1
可杀死无响应进程,Ctrl+Z
后bg
可将 GUI 程序置于后台等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。