bash 还有另一个特点,暂停和恢复任务的能力。这允许你暂时暂停一个正在运行的任务,执行另一些任务,然后重新恢复这一任务或者在后台运行。通过输入 CTRL-Z
,bash 会暂停正在运行的任务。之后你可以恢复那个任务。你可以通过这个方法暂停多个任务。内建的 job
命令会显示一个被暂停的任务的列表。
darkstar:~$ jobs
[1]- Stopped vi TODO
[2]+ Stopped vi chapter_05.xml
为了恢复被暂停的任务,运行 fg
来将最新暂停的任务恢复到前台运行。如果你有多个任务被暂停可以输入要恢复的任务的序号。
darkstar:~$ fg # "vi TODO"
darkstar:~$ fg 1 # "vi chapter_05.xml"
你也可以运行 bg
将任务放入后台运行。这可以让进程继续运行而不会占用 shell 的控制。要恢复到前台运行,使用 fg
。
译者注:在 SSH 环境中,
bg
放入后台的任务同样会随着 SSH 连接的断开而结束。如果你想在 SSH 断开后继续让程序在远端主机中运行,你需要使用nohup
或者screen
/tmux
这样的工具。