Pan*_*dya 12 command-line keyboard-shortcuts terminal tty
我说的是您在命令行/终端中使用的键盘快捷键。
示例:Ctrl+c杀死进程,Ctrl+d注销,Ctrl+z将进程发送到后台......等等。
我测试了一些,发现他们既不是终端(即gnome-terminal,xterm,konsole)具体也不壳(即bash,zsh)具体的,他们甚至在工作tty秒。
所以,我想知道:
小智 19
来自http://www.skorks.com/2009/09/bash-shortcuts-for-maximum-productivity/
Bash还有一些使用 ! (bang) 允许你用bash命令做一些时髦的事情。
Rob*_*rtL 12
内核的终端驱动程序 ( termios) 解释可以键入的特殊键,以便向进程发送信号、发送文件结尾、擦除字符等。这是基本的 Unix 内核功能,与大多数 Unix 和 Linux 实现非常相似。
该stty命令显示或设置termios特殊字符以及终端线路驱动程序的其他参数。
调用stty -a以查看特殊字符和其他“终端线路设置”的当前值。在以下示例中,您可以看到intr是Ctrl+ C、eof是Ctrl+ D、susp是Ctrl+ Z。(我删除了其他输出以仅显示特殊字符设置):
stty -a GNU/Linux 上的特殊字符:
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;
Run Code Online (Sandbox Code Playgroud)
stty -a FreeBSD 上的特殊字符:
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = ^@; eol2 = ^@;
erase = ^?; erase2 = ^H; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
stop = ^S; susp = ^Z; time = 0; werase = ^W;
Run Code Online (Sandbox Code Playgroud)
要更改特殊字符的值,例如,将中断字符从Ctrl+更改C为Ctrl+ Einvokestty像这样(^E字面意思是两个字符,抑扬符 ( ^) 后跟字母E):
stty intr '^E'
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息,请参阅手册页stty和termios。在 GNU/Linux 上,您还可以查看tty_ioctl手册页。
笔记:
该intr键(Ctrl+C默认情况下),实际上并没有杀死进程,但导致内核发出中断信号(SIGINT进程组内)的所有进程。进程可能会安排捕获或忽略信号,但大多数进程将终止,这是默认行为。
Ctrl+d将您注销的原因是因为终端线路驱动程序在 shell 的标准输入上发送 EOF(文件结尾)。当 shell 在其标准输入上接收到文件结尾时退出。