Unix命令行中的Ctrl + Z和Ctrl + C的區別


Control+ Z用於通過向其發送信號來暫停進程,該信號SIGSTOP不能被程序攔截。而Control+ C用來殺死帶有信號的進程SIGINT,並且可以被程序截獲,因此它可以在退出之前清理自身,或者根本不退出。

如果您暫停一個進程,它將顯示在外殼程序中以告訴您它已被暫停:

[1]+ Stopped yes
但是,如果您殺死了一個,則除了被退回到Shell提示符外,您將看不到任何確認。當您暫停一個進程時,您也可以使用它來做一些花哨的事情。例如,運行此命令:

fg
程序暫停后,它將重新回到前台。

並運行命令

bg
程序暫停后將允許它在后台運行(盡管程序的輸出仍將進入TTY)。

如果您想殺死已暫停的程序,則不必fg先將其恢復,只需執行以下命令:

kill %1
如果您有多個掛起的命令,請運行

jobs
將列出它們,如下所示:

[1]-  Stopped                 pianobar
[2]+  Stopped                 yes

使用%#,其中#是作業數目(一個在方括號中從jobs輸出)與bgfgkill,可用於做這項工作的動作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM