cli 控制字符是终端操作中非常实用, 也极其频繁使用的快捷键; 使用得好可以加快敲命令的速度, 提升敲命令的准确性, 为工作带来极大便利; 同时, 这也是我们对 linux 爱不释手, 难以回到 windows 的原因之一;
另外, 很多 cli 控制字符本质上是向 linux 或进程发送特定的信号, 关于 linux 信号的介绍, 本站有另外一篇文章: linux signals 总体认识;
本文总结一些常用的 cli 控制字符的使用及技巧;
简单的 cli 控制字符
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| ctrl + c
ctrl + l
ctrl + r
ctrl + d
ctrl + s / ctrl + q
ctrl + /
ctrl + w
alt + d
ctrl + k
ctrl + ?
ctrl + 方向键
tab
|
**与其他命令组合的 cli 控制字符 **
1 2 3 4
| ctrl + z
[1]+ Stopped sudo vim /etc/profile
|
此时该前台进程被挂起, 操作系统将不会调度任何 cpu time 给此进程;
接下来可以有以下配套操作:
1 2 3 4 5 6 7 8 9 10 11 12
| > jobs [1]+ Stopped sudo vim /etc/profile
jobs -p
fg 1 fg %1
bg 1 bg %1
|
要杀死被挂起的后台任务有一些麻烦, 因为该任务处于 suspend 状态, 无法主动响应 SIGTERM, SIGINT 等相对柔和的信号, 但可以被 SIGKILL 这种强力的信号直接杀死:
1 2
| kill -9 %1 kill -9 `jobs -p`
|
还有一种比较讨巧的方法是结合 fg/bg 等唤醒后台任务的命令:
1 2 3 4 5
| kill %1 && fg kill %1 && bg kill `jobs -p` && bg kill `jobs -p` && fg
|
控制字符的管理与设置
1 2 3 4 5 6 7 8
| > stty -a speed 38400 baud; rows 60; columns 211; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -cdtrdsr -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
|
参考链接