Ctrl+C :强制中断程序,程序不管运行哪里都中止。php
Ctrl+D :发送一个 exit 的信号,退出当前的用户或者是客户端。mysql
Ctrl+Z :暂停程序,在进程中维持挂起状态。sql
引用别人的说法:post
一、Ctrl+C比较暴力,就是发送Terminal到当前的程序,好比你正在运行一个查找功能,文件正在查找中,Ctrl+C就会强制结束当前的这个进程。
二、Ctrl+Z 是把当前的程序挂起,暂停执行这个程序,好比你正在mysql终端中,须要出来搞点其余的文件操做,又不想退出mysql终端(由于下次还得输入用户名密码进入,挺麻烦),因而能够ctrl+z将mysql挂起,而后进行其余操做,而后输入 fg 回车后就能够回来,固然能够挂起好多进程到后台,而后 fg 加编号就能把挂起的进程返回到前台。固然,配合bg(后台)和fg命令进行先后台切换会很是方便。
三、Ctrl+D 是发送一个exit信号,没有那么强烈,相似ctrl+C的操做,好比你从管理员root退回到你的普通用户就能够这么用。测试
先写这样一个php程序(demo.php):spa
<?php $number = 0; while(true){ file_put_contents('demo.log',$number.PHP_EOL,FILE_APPEND); $number++; sleep(1); }
在cli模式下,咱们运行demo.php,并使用ctrl+z“掐断”程序,以下:.net
咱们猜想,若是进程仅是挂起,那么使用fg(前台运行)或bg(后台运行)命令(使用fg或bg命令前,能够先执行jobs命令,查看后台运行的进程),是能够继续将进程唤起执行的,咱们使用fg测试效果以下:code
从上面的效果图表象来看,demo.php又能够继续执行,使用ctrl+z操做,仅是将进程挂起,进程未终止,仍能够唤起执行。读者也能够经过观察demo.log(tail -f demo.log)这个文件在整个过程当中数字的变化,更加真切地感觉验证结果。blog
一样,咱们使用ctrl+c操做,获得下面的结果图:进程
从上图能够看出,ctrl+c操做后的进程,是完全地被杀死了,读者也能够看demo.log里的内容变化(ctrl+c操做后,demo.log里的内容再也不增长)
https://blog.csdn.net/llwan/article/details/50325185
http://www.thanks.live/index.php/posts/ctrl-z-c