[学习记录]终端控制组合键

 


简介

Linux 终端与它的原始前身,电传打字机和哑终端 vt100 类型控制台,有许多相似之处。这些早期的设备有发送特殊信号或信号序列的机制,信号序列代表正常键入的字符流以外的一些事件,如:后退一格、换行、音效或信息传递结束。Linux 终端和它的前身一样,使用 CTRL 键发送这些特殊信号。

下面的表格总结了所有 Linux 终端共享的许多常用控制组合键及其常见用法。在这个表格之后我们还会根据其适用性一步讨论这些控制组合键。

Table 1. Linux 终端控制组合键

组合键

符号名称

约定使用

CTRL-C

SIGINT

非常规中断 - 终止前台进程

CTRL-D

EOT

输入完成的正常信号

CTRL-G

BEL

终端声效

CTRL-H

BS

后退一格 - 删除前一个字符

CTRL-J

LF

换行 - 与 RETURN 键功能相同

CTRL-L

FF

换页 - 使 bash 清屏,使其它基于屏幕的程序刷新当前屏幕

CTRL-Q

 

解冻终端显示(见 CTRL-S

CTRL-S

 

冻结终端显示(使用 CTRL-Q 解冻)

CTRL-U

NAK

删除当前的行

CTRL-Z

SIGSTOP

挂起前台进程

 

CTRL-C

 

CTRL-C 可能是最有用的组合键,帮助用户停止现在进行的工作。使用 bash shell 时,点击 CTRL-C 可以终止当前运行的进程,返回到 bash 提示。

设备节点 /dev/zero 是假设备,读取时会返回无数个(二进制)零。/dev/null 设备节点也是一个假设备,会删除任何写入其中的信息。因此以下命令会永远运行下去,读取零,然后删除。处于这种情况的用户可以使用 CTRL-C 取消这个命令。

[elvis@station elvis]$ cat /dev/zero > /dev/null (... user types CTRL-C ...) [elvis@station elvis]$ CTRL-D 

在以后的教程中我们会谈到,许多 Unix 命令直接从键盘读取输入。但对于新的 Unix 用户来说,如何通知命令何时停止读取输入常常是不明显的。解决这个问题的办法是用组合键 CTRL-D。这组控制键向读取的进程传送信息传递完毕的信号(一般理解为文件结束)。

wc 命令在没有给出文件名作为参数的情况下,会对用户从键盘输入的行、词和字符进行计数。用户使用组合键 CTRL-D 表示输入结束。

[elvis@station elvis]$ wc polly wants a cracker polly wants a cracker polly wants a cracker (... user types CTRL-D ...) 3 12 66 [elvis@station elvis]$ 

命令 wc 会负责地报告,用户输入了 3 行,共有 12 个词,使用了66个字符。(这个功能现在可能没有用,但在以后的教程中我们还会学到更多的 wc 的用法。)如果用户使用 CTRL-C 又会怎么样呢?

 

CTRL-Z

组合键 CTRL-Z 用来挂起程序,挂起的程序可用 fg“foreground”(前台))命令恢复。在进行 ftp 会话时,elvis 想要确认 shell 的当前工作目录。他使用 CTRL-Z 挂起正在进行的 ftp shell 运行 pwd 命令,然后用 fg. 恢复 ftp 会话。

[elvis@station elvis]$ ftp ftp.redhat.com Trying 66.187.232.51... Connected to ftp.redhat.com (66.187.232.51). 220 Red Hat FTP server ready. All transfers are logged. (FTP) Name (ftp.redhat.com:elvis): anonymous 331 Please specify the password. Password: 230 Login successful. Have fun. Remote system type is UNIX. Using binary mode to transfer files. ftp> (... user types CTRL-Z ...) [1]+ Stopped ftp ftp.redhat.com [elvis@station elvis]$ pwd /home/elvis [elvis@station elvis]$ fg ftp> ftp.redhat.com ftp> ls 227 Entering Passive Mode (66,187,232,51,67,212) 150 Here comes the directory listing. drwxr-xr-x 6 ftp ftp 4096 May 24 01:33 pub 226 Directory send OK. ... 

以这种方式管理进程是相当复杂的,在以后的教程中我们会再讨论。现在我们只要知道 CTRL-Z 用来挂起、fg 用来恢复就可以了。

 

CTRL-U

CTRL-U 一般用来擦除当前的行。如果你所在的 bash 命令行错误繁多,你懒得修改,不如使用 CTRL-U 重新来过。如果你输入密码时弄错了,也可以使用 CTRL-U。因为输入的密码不会在屏幕上显示,有时很难知道到底输入了什么,很难改动,不如使用 CTRL-U 组合键重新来过。

 

CTRL-H

CTRL-H  BACKSPACE 的功能完全一样。但在有些终端上,BACKSPACE 键被错误的映像,不能正确工作。而 CTRL-H 几乎总是可以在这些情况下正常发挥作用。

 

CTRL-L

CTRL-L 传统上用来停止打印当前的页,开始下一页。如果使用在线终端,可以用它来刷新屏幕。对于许多基于屏幕的程序而言,包括 vi  nano 编辑器,如果意外的信息弄乱了显示屏,使用 CTRL-L 可以让程序刷新屏幕,正确地重绘屏幕。

 bash shell 中,CTRL-L 指示 bash 清屏,但保留当前的命令行。

 

CTRL-Q

 CTRL-S冻结屏幕后,CTRL-Q解冻屏幕(让它重新启动)。虽然在使用过 CTRL-Q 后,才能用这个组合键,我们先介绍它(作为更有用的命令)是因为,几乎没有人会故意使用 CTRL-S,但新的 Unix 用户有的时候会不小心点击 CTRL-S 组合键,不明白为什么他们的屏幕会冻结起来。如何你的机器出现死屏的现象,试着使用CTRL-Q 看能否解冻。

 

CTRL-S

见上一项 CTRL-Q

 

CTRL-J

几乎从来不用。(一般使用 RETURN 键。)

 

CTRL-G

唯一真正的用途是让终端发出响声。

 

 

你可能感兴趣的:(linux,unix,user,bash,终端,Types)