linux/unix命令行终端的光标及字符控制快捷键

本文转自:http://space.itpub.net/23524877/viewspace-630614

在使用linux/unix的命令行终端时,有时候会碰到键盘的退格键、删除键、Home键、方向键等不听使唤的现象:

Backspace键,可能冒出来个^?

Delete键,却出来个^[[3~

Home键,却出来个^[[1~

按向左箭头键,却出来个^[[D

……

以下是在大多数shell终端都可以使用的快捷键,可以解决上述光标及字符删除等控制功能。

──曾尝试使用stty解决Home键等问题,未果(可参考:http://www.ifpubs.com/books/aix52/stty0.htm)

注:如果使用图形环境的伪终端(如gnome-terminal),以下有可能和窗口程序的一部分快捷键产生冲突。

****************************************************************************************************

常用的快捷键:

Ctrl + d       删除一个字符,相当于通常的Delete键(命令行若无任何字符,则相当于exit;处理多行标准输入时也表示eof

Ctrl + h       退格删除一个字符,相当于通常的Backspace

Ctrl + u       删除光标之前到行首的字符

Ctrl + k       删除光标之前到行尾的字符

Ctrl + c       取消当前行输入的命令,相当于Ctrl + Break

Ctrl + a       光标移动到行首(Ahead of line),相当于通常的Home

Ctrl + e       光标移动到行尾(End of line

Ctrl + f       光标向前(Forward)移动一个字符位置

Ctrl + b       光标往回(Backward)移动一个字符位置

Ctrl + l       清屏,相当于执行clear命令

Ctrl + p       调出命令历史中的前一条(Previous)命令,相当于通常的上箭头

Ctrl + n       调出命令历史中的下一条(Next)命令,相当于通常的上箭头

Ctrl + r       显示:号提示,根据用户输入查找相关历史命令(reverse-i-search

****************************************************************************************************

次常用快捷键:

Alt + f      光标向前(Forward)移动到下一个单词

Alt + b      光标往回(Backward)移动到前一个单词

Ctrl + w       删除从光标位置前到当前所处单词(Word)的开头

Alt + d      删除从光标位置到当前所处单词的末尾

Ctrl + y       粘贴最后一次被删除的单词

****************************************************************************************************

附录:  stty命令参考       来源:http://www.ifpubs.com/books/aix52/stty0.htm

命令参考大全,卷5s - u

stty命令

用途

设置、复位和报告工作站操作参数。

语法

stty [ -a ] [ -g ] [ Options ]

描述

stty命令对当前为标准输入的设备设置某些I/O选项。该命令将输出写到当前为标准输出的设备中。

这个操作系统的版本使用标准X/Open可移植性指南,发行版4接口来控制终端,保持与POSIXBSD接口的兼容性。stty命令支持POSIXBSD的适应选项,但强烈推荐使用POSIX选项。同样提供废弃的BSD选项列表(带有对应的POSIX选项)。

输入以下命令时,可以将tty设备的标准输入重定向:

stty -a  l, L  w, W  

b, B  m, M  x, X  

c, C  n, N  y, Y  

d, D  o, O  z, Z  

e, E  p, P  [  

f, F  q, Q  /  

g, G  r, R  ]  

h, H  s, S  ^  

i, I  t, T  _  

j, J  u, U  ?  

k, K  v, V  @  

组合模式

cooked请参阅-raw选项。

ek分别将ERASEKILL字符设置为Ctrl-HCtrl-U按键顺序。

evenp启用parenbcs7

-evenp禁用parenb并设置cs8

lcase, LCASE设置xcaseiuclcolcuc。在工作站只以大写字符使用。

-lcase, -LCASE设置-xcase-iuclc-olcuc

nl设置-icrnl-onlcr

-nl设置icrnlonlcr-inlcr-igncr-ocrnl-onlret

oddp启用parenbcs7parodd

-oddp禁用parenb并设置cs8

parity请参阅evenp选项。

-parity请参阅-evenp选项。

sane将参数重新设置为合理的值。

raw允许原始模式输入(不包括输入处理,例如erasekillinterrupt);传回奇偶(校验)位。

-raw允许规范输入方式。

tabs保留制表符。

-tabs, tab3打印时将制表符替换为空格。

窗口大小

cols n, columns n将终端(窗口)大小记录为有n列。

rows n将终端(窗口)大小记录为有n行。

size将终端(窗口)大小打印到标准输出(先是行,再是列)中。

废弃选项

stty命令支持以下BSD选项。对于每个选项,都给出了建议的POSIX选项。

all使用stty -a命令显示所有当前设置。

crt使用sane选项将参数重新设置为合理的值。

crtbs使用-echoe选项。

crterase使用echoe选项。

-crterase使用-echoe选项。

crtkill使用echoke选项。

-crtkill使用echok-echoke选项。

ctlecho使用echoctl选项。

-ctlecho使用-echoctl选项。

decctlq使用-ixany选项。

-decctlq使用ixany选项。

even使用evenp选项。

-even使用-evenp选项。

everything使用stty -a命令显示所有当前设置。

litout使用-opost选项。

-litout使用opost选项。

odd使用oddp选项。

-odd使用-oddp选项。

pass8使用-istrip选项。

-pass8使用istrip选项。

prterase使用echoprt选项。

speed使用stty命令显示当前设置。

tandem使用ixoff选项。

-tandem使用-ixoff选项。

示例

要显示您的工作站配置的简短列表,请输入:

stty这将列出与缺省值不同的设置。

要显示您的工作站配置的完整列表,请输入:

stty  -a

要启用按键顺序来停止列表滚动出屏幕,请输入:

stty ixon ixany这将设置ixon模式,从而可以通过按下Ctrl-S按键顺序来停止列表的滚动。ixany标志允许按任意键来恢复列表的滚动。正常的工作站配置包含ixonixany标志,使您可以用Ctrl-S按键顺序停止列表的滚动,而只有Ctrl-Q按键顺序才能使列表重新滚动。

要重新设置搞乱的配置,请输入:

Ctrl-J stty  sane Ctrl-J

在命令前后按Ctrl-J按键顺序,而不是按Enter键。当控制Enter键处理的参数搞乱时,系统通常能识别Ctrl-J按键顺序。

有时屏幕上显示的信息可能看上去很奇怪,或当您按Enter键时系统不反应。当您使用stty命令,而它带有不兼容的参数或参数的操作难以理解时,可能会发生这种情况。当面向屏幕的应用程序异常结束并且无法复位工作站配置时,也可能发生这种情况。

输入stty sane命令设置合理的配置,但它可能与您的正常配置略有不同。

要保存和恢复终端的配置:

OLDCONFIG=`stty -g`      # save configuration

stty -echo               # do not display password

echo "Enter password: /c"

read PASSWD               # get the password

stty $OLDCONFIG             # restore configuration该命令保存工作站的配置、关闭回送信号、读取密码并恢复原始配置。

输入stty - echo命令关闭回送信号,这意味着当您在键盘上输入密码时,密码并不出现在屏幕上。此操作与echo命令(该命令在屏幕上显示消息)毫无关系。

文件

/usr/bin/stty包含stty命令。

相关信息

terminfo文件、tty特殊文件termios.h头文件

你可能感兴趣的:(编程,终端,工作,delete,kill,tabs,shell)