使用你的 shell 的作业控制的原因

主要观点:有人在 Mastodon 询问作业控制相关内容,引发对自身使用作业控制频率的思考,进而探讨作业控制的用途、不同 shell 间的差异及具体使用方法等。
关键信息:

  • 作业控制可让终端进程在前台、后台或停止状态间切换,相关命令有fgbgCtrl+zjobskilldisownwait等。
  • kill %2并非直接将%2替换为进程 PID,而是通过jobs -p %2扩展后再运行常规kill命令。
  • 作业控制的使用场景包括杀死无响应进程、将 GUI 应用程序置于后台、在使用vim时运行命令、交错输出、暂停 CPU 密集型程序、处理误按Ctrl+Z等情况,还可用于已设置环境变量时方便运行多个命令等。
    重要细节:
  • 在 fish 中,kill是内置命令,能处理%2等特殊符号。
  • 不同 shell 基本的作业控制功能相似,有些 shell 可能没有作业控制。
  • 举例说明在各种场景下如何使用作业控制命令,如Ctrl+Zkill %1可杀死无响应进程,Ctrl+Zbg可将 GUI 程序置于后台等。
阅读 10
0 条评论