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