Linux 中 Ctrl+c、Ctrl+d、Ctrl+z 的含义和区别

ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样: 

  ctrl+c是强制中断程序的执行,进程已经终止。
 
  ctrl+z的是将任务中止(暂停的意思),但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行。
例如:当你vi一个文件是,如果需要用shell执行别的操作,但是你又不打算关闭vi,因为你得存盘推出,你可以简单的按下ctrl+z,shell会将vi进程挂起~,当你结束了那个shell操作之后,你可以用fg命令继续vi你的文件。

  ctrl+d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF (end of file)

  Linux 的哲学是一切皆文件,自然包括当前你与服务器的对话,也是一个你在不断写,服务器在不断读的文件,EOF 表示文件结束,读到该指令,服务器自然结束与你的对话。
注:在shell中,ctrl-d表示推出当前shell.
  


学习此类需要有发散的角度,比如连接服务器后,

    你可以说建立了一个窗口,MAC 中关闭窗口可以结束对话。

    你可以说新建一个进程,操作系统中终止进程可以结束对话。

    你可以说 OS 在读一个实时创作的文件,Ctrl+d = EOF 可以结束对话。

Linux 中 Ctrl+c、Ctrl+d、Ctrl+z 的含义和区别

上一篇:Warning: Could not merge cells C9-D9 as they * with an existing set of merged cells.


下一篇:Ubuntu配置