在Unix和类Unix系统(如Linux和macOS)的终端中,Ctrl+Z
和Ctrl+C
是两个用于处理正在运行的进程的快捷键,它们的作用和用途有所不同:
Ctrl+C
- 作用 :发送
SIGINT
(中断信号)到当前前台进程组。SIGINT
信号通常会终止进程的执行。 - 用途 :当你需要中断一个正在运行的命令或程序时使用。例如,如果你运行了一个需要很长时间完成的命令,或者执行了一个无限循环的脚本,可以使用
Ctrl+C
来立即停止它。
Ctrl+Z
- 作用 :发送
SIGTSTP
(暂停信号)到当前前台进程组,这会将进程挂起(暂停执行),并将控制返回给终端。SIGTSTP
是可以被处理(忽略或捕获)的信号。 - 用途 :当你需要暂停一个正在运行的命令或程序,以便稍后继续执行时使用。使用
Ctrl+Z
挂起进程后,可以通过bg
命令将其放入后台继续运行(但不再接收输入),或者使用fg
命令将其恢复到前台继续交互。
实际应用示例
假设你在终端运行了一个长时间运行的脚本或命令,然后意识到你需要立刻停止它,此时你会按Ctrl+C
来终止进程。
另一方面,如果你运行了一个进程,但突然需要执行另一个任务,你可以使用Ctrl+Z
将当前进程挂起,然后利用bg
让它在后台运行 ,或者用**fg
在需要时恢复到前台**。
总的来说,Ctrl+C
用于终止进程,而Ctrl+Z
用于暂停进程,这两个快捷键在日常的终端操作中非常有用。
个人经历:有时候使用Ctrl+C无法杀死进程,我就会使用Ctrl+Z挂起,但是实际上进程并未终止,那么我想要终止该进程的话,还得进行如下操作:
(1)查找进程ID:替换'process_name'
为进程名。将列出所有匹配的进程,从输出中找到进程ID
ps aux | grep 'process_name'
(2)使用kill
命令终止进程
kill -9 pid