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頭文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章