在 Linux 和其他 Unix-like 操作系统中,Ctrl+C
和 Ctrl+Z
是两种常见的键盘快捷键,它们用于控制终端中的进程,但它们的作用不同:
Ctrl+C
(SIGINT)
- 功能:中断(Interrupt)进程。
- 信号:发送
SIGINT
信号(Signal Interrupt)。 - 作用:通常用于终止正在前台运行的进程。
- 典型使用场景:当你在终端中运行一个命令或程序,并希望立即停止它时,你可以按
Ctrl+C
。例如,如果你正在运行一个脚本或命令行程序,并且它进入了一个无限循环或需要很长时间才能完成,按Ctrl+C
可以强制终止它。
Ctrl+Z
(SIGTSTP)
- 功能:暂停(Suspend)进程。
- 信号:发送
SIGTSTP
信号(Signal Terminal Stop)。 - 作用:将正在前台运行的进程暂停,并将其放入后台。
- 典型使用场景:当你希望暂时停止一个进程,但不想终止它时,你可以按
Ctrl+Z
。例如,如果你正在编辑一个文件或运行一个程序,并且需要暂时返回到终端执行其他命令,你可以按Ctrl+Z
暂停当前程序,然后稍后可以恢复它。
恢复被暂停的进程
-
将暂停的进程恢复到前台:使用
fg
命令。fg
这将把最近暂停的进程恢复到前台继续运行。
-
将暂停的进程恢复到后台:使用
bg
命令。bg
这将把最近暂停的进程恢复到后台继续运行。
示例
假设你在终端中运行一个命令 ping google.com
。
-
使用
Ctrl+C
终止进程:ping google.com
按
Ctrl+C
,输出将停止,进程被终止。 -
使用
Ctrl+Z
暂停进程:ping google.com
按
Ctrl+Z
,输出将停止,并显示类似如下的信息:[1]+ Stopped ping google.com
进程被暂停并放入后台。
-
恢复暂停的进程到前台:
fg
进程恢复到前台继续运行。
-
将暂停的进程恢复到后台:
bg
进程恢复到后台继续运行。
总结
Ctrl+C
:用于终止前台进程,发送SIGINT
信号。Ctrl+Z
:用于暂停前台进程并将其放入后台,发送SIGTSTP
信号。
理解这两个快捷键的作用和使用场景,可以帮助你更有效地管理终端中的进程。