本文轉自: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
命令參考大全,卷5,s - u
stty命令
用途
設置、復位和報告工作站操作參數。
語法
stty [ -a ] [ -g ] [ Options ]
描述
stty命令對當前爲標準輸入的設備設置某些I/O選項。該命令將輸出寫到當前爲標準輸出的設備中。
這個操作系統的版本使用標準《X/Open可移植性指南,發行版4》接口來控制終端,保持與POSIX和BSD接口的兼容性。stty命令支持POSIX和BSD的適應選項,但強烈推薦使用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分別將ERASE和KILL字符設置爲Ctrl-H和Ctrl-U按鍵順序。
evenp啓用parenb和cs7。
-evenp禁用parenb並設置cs8。
lcase, LCASE設置xcase,iuclc和olcuc。在工作站只以大寫字符使用。
-lcase, -LCASE設置-xcase、-iuclc和-olcuc。
nl設置-icrnl和-onlcr。
-nl設置icrnl、onlcr、-inlcr、-igncr、-ocrnl和-onlret。
oddp啓用parenb、cs7和parodd。
-oddp禁用parenb並設置cs8。
parity請參閱evenp選項。
-parity請參閱-evenp選項。
sane將參數重新設置爲合理的值。
raw允許原始模式輸入(不包括輸入處理,例如erase、kill或interrupt);傳回奇偶(校驗)位。
-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標誌允許按任意鍵來恢復列表的滾動。正常的工作站配置包含ixon和ixany標誌,使您可以用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頭文件