冰冰的小屋

路漫漫其修远兮,吾将上下而求索

Linux 中 Ctrl+c, Ctrl+z, Ctrl+d 的区别


在 Linux 中:

Ctrl+c: (kill foreground process) 发送 SIGINT 信号给前台进程组中的所有进程,强制终止程序的执行;

Ctrl+z: (suspend foreground process) 发送 SIGTSTP 信号给前台进程组中的所有进程,常用于挂起一个进程,而并非结束进程,用户可以使用使用 fg/bg 操作恢复执行前台或后台的进程。fg命令在前台恢复执行被挂起的进程,此时可以使用 Ctrl+z 再次挂起该进程,bg 命令在后台恢复执行被挂起的进程,而此时将无法使用 Ctrl+z 再次挂起该进程;

一个比较常用的功能:

正在使用 vi 编辑一个文件时,需要执行 shell 命令查询一些需要的信息,可以使用 ctrl-z 挂起 vi,等执行完 shell 命令后再使用 fg 恢复vi 继续编辑你的文件(当然,也可以在 vi 中使用 command 方式执行 shell 命令,但是没有该方法方便)。

Ctrl+d: (Terminate input, or exit shell) 一个特殊的二进制值,表示 EOF,作用相当于在终端中输入 exit 后回车;

还有以下几个:

Ctrl+/    发送 SIGQUIT 信号给前台进程组中的所有进程,终止前台进程并生成 core 文件

Ctrl+s   中断控制台输出

Ctrl+q   恢复控制台输出

Ctrl+l    清屏

其实,控制字符都是可以通过 stty 命令更改的,可在终端中输入命令 “stty -a”查看终端配置

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注