ctrl+c和ctrl+z都是中斷命令,但是他們的作用卻不一樣.
ctrl+c是強制中斷程序的執(zhí)行,進程已經(jīng)終止。
ctrl+z的是將任務(wù)中止(暫停的意思),但是此任務(wù)并沒有結(jié)束,他仍然在進程中他只是維持掛起的狀態(tài)
用戶可以使用fg/bg操作繼續(xù)前臺或后臺的任務(wù),
fg命令重新啟動前臺被中斷的任務(wù)
bg命令把被中斷的任務(wù)放在后臺執(zhí)行.
例如:當(dāng)你vi一個文件時,如果需要用shell執(zhí)行別的操作,但是你又不打算關(guān)閉vi,因為你得存盤推出,
你可以簡單的按下ctrl+z,shell會將vi進程掛起~,當(dāng)你結(jié)束了那個shell操作之后,你可以用fg命令繼續(xù)vi你的文件。
ctrl-d 不是發(fā)送信號,而是表示一個特殊的二進制值,表示 EOF。
注:在shell中,ctrl-d表示推出當(dāng)前shell.
當(dāng)我們退出 Shell,比如按下 Ctrl+D 時,Shell 進程會把歷史記錄緩沖區(qū)的內(nèi)容,寫回到 .bash_history 文件中去。
這也是我們能用linux 的history 可以看到歷史執(zhí)行命令的原因,如果您使用了ctrl+c,可能用該命令看不到上次執(zhí)行的命令。
只有在 Shell 正常退出時,才會將緩沖區(qū)內(nèi)容保存到文件