macOS Console 中 Control-C/Control-D/Control-Z 的区别

macOS Console 中 Control-C/Control-D/Control-Z 的区别_第1张图片

〇、废话

在 macOS 的 Console 里,输入

$ uname

可以看到

Darwin

说明 macOS 底层是 Darwin,所以在 Console 中的操作与 Unix 类似。

在这样的类 Unix 系统中,在前台运行一个长时间的任务的时候,如:Tomcat、vi 等,我们会失去对 Shell 的控制权,这时可以通过 Control-C、Control-D、Control-Z 这几个命令重新拿回 Shell 控制权。但这几个操作之间有些区别。

一、Control-C

中止当前任务,进程被 Kill 掉。

二、Control-D

对于需要从 stdin 输入的应用,如:catmd5,当完成输入的内容之后,使用 Control-D 输入 EOF 标记。

三、Control-Z

将当前任务挂起,放到后台。

1、jobs 命令查看当前 Shell 中所有“挂起”的和“后台运行”的任务

Control-Z 之后,执行

$ jobs

执行结果:

Job Group   State   Command
4   60511   running hs -p33333 -c-1 -o
3   60416   stopped vi z3.txt
2   40111   stopped vi z2.txt
1   40039   stopped vi z.txt
2、fgbg 命令

fgbg 命令,后面跟 %n,n 是 jobs 命令返回内容的 Job 列的数字。
例如:

$ bg %4
$ fg %1

默认 bgfg 不带 %n 时表示对最后一次进程操作。

3、kill 命令杀掉进程
$ kill %2

补充内容:其他后台任务相关

screen 命令

四、后台任务相关资料

  • linux后台执行命令:&和nohup
  • linux 技巧:使用 screen 管理你的远程会话

(完)

你可能感兴趣的:(macOS Console 中 Control-C/Control-D/Control-Z 的区别)