天天看點

shell中的快捷鍵

轉載來自:http://blog.chinaunix.net/uid-361890-id-342066.html

删除

ctrl + d      删除光标所在位置上的字元相當于VIM裡x或者dl

ctrl + h      删除光标所在位置前的字元相當于VIM裡hx或者dh

ctrl + k      删除光标後面所有字元相當于VIM裡d shift+$

ctrl + u      删除光标前面所有字元相當于VIM裡d shift+^

ctrl + w      删除光标前一個單詞相當于VIM裡db

ctrl + y      恢複ctrl+u上次執行時删除的字元

ctrl + ?      撤消前一次輸入

alt  + r      撤消前一次動作

alt  + d     删除光标所在位置的後單詞

移動

ctrl + a      将光标移動到指令行開頭相當于VIM裡shift+^

ctrl + e      将光标移動到指令行結尾處相當于VIM裡shift+$

ctrl + f      光标向後移動一個字元相當于VIM裡l

ctrl + b      光标向前移動一個字元相當于VIM裡h

ctrl + 方向鍵左鍵    光标移動到前一個單詞開頭

ctrl + 方向鍵右鍵    光标移動到後一個單詞結尾

ctrl + x       在上次光标所在字元和目前光标所在字元之間跳轉

alt  + f      跳到光标所在位置單詞尾部

替換

ctrl + t       将光标目前字元與前面一個字元替換

alt  + t     交換兩個光标目前所處位置單詞和光标前一個單詞

alt  + u     把光标目前位置單詞變為大寫

alt  + l      把光标目前位置單詞變為小寫

alt  + c      把光标目前位置單詞頭一個字母變為大寫

^oldstr^newstr    替換前一次指令中字元串   

曆史指令編輯

ctrl + p   傳回上一次輸入指令字元

ctrl + r       輸入單詞搜尋曆史指令

alt  + p     輸入字元查找與字元相接近的曆史指令

alt  + >     傳回上一次執行指令

其它

ctrl + s      鎖住終端

ctrl + q      解鎖終端

ctrl + l        清屏相當于指令clear

ctrl + c       另起一行

ctrl + i       類似TAB健補全功能

ctrl + o      重複執行指令

alt  + 數字鍵  操作的次數

實際操作:

#c+l  清屏先

minuit@suse:~>str1 str2 str3  #輸入三個單詞發現第一單詞需要大寫好按c+a跳到開頭按a+c

minuit@suse:~> Str1 str2 str3  #好現在單詞就變成了現在這個樣子,又發現第二個單詞要全大寫(這樣的指令真是玩死人:( )好吧如果你目前光标在第二個單詞,那直接a+u把這個單詞改變,如果不在的話那按住c+a接着c+f跳到第二個單詞那再a+u就OK了結果像下面所示。

minuit@suse:~> Str1 STR2 str3   #我想換過來怎麼辦我的位置已經在最後一個單詞這個好辦按住a+2+b哈哈跳到了第二個單詞再來一下a+l這下第二個單詞全小寫了

minuit@suse:~> welcome to chinaunix!   #不就是變個大小寫嗎? 按住c+a接着a+3+c看看效果

minuit@suse:~> Welcome To Chinaunix!  #GOOD很簡單

我們再來試試替換

minuit@suse:~> Welcome To Chinaunix!  #還是這三單詞c+a跳到開頭再接着跳到第二個單詞那(因為a+t隻能跟前一個單詞做替換是以不能在第一個單詞按a+t)按住a+t

minuit@suse:~> To Welcome Chinaunix!  #現在成這樣子的了如果我用再按a+2+t那又變了一個樣

minuit@suse:~> Chinaunix!  Welcome To   #好了來一點比較常用的

minuit@suse:~>ls /tmp/               #看看下面有些什麼

file1 file2 file3 ..... .. 

minuit@suse:~>^ls^cd         #現在再又想進入目錄很簡單的健入替換指令就行了在指令很長時用這個替換可以省掉很多按a+b或a+f的時間

cd /tmp/

minuit@suse:/tmp>   #進入了tmp目錄了

跳轉的指令就不試了大家自己體會試也看不見^_^   

------------------------------------------------------------------------------

Ctrl + a 可以快速切換到指令行開始處

Ctrl + e 切換到指令行末尾

Ctrl + r 在曆史指令中查找

Ctrl + u 删除光标所在位置之前的所有字元

Ctrl + k 删除光标所在位置之後的所有字元

ctrl + w 删除光标之前的一個單詞

Ctrl + d 結束目前輸入、退出shell

ctrl + s 可用來停留在目前屏 ctrl + q 恢複刷屏

ctrl + l 清屏

CTRL 鍵相關的快捷鍵:

Ctrl + a - Jump to the start of the line

Ctrl + b - Move back a char

Ctrl + c - Terminate the command  //用的最多了吧?

Ctrl + d - Delete from under the cursor

Ctrl + e - Jump to the end of the line

Ctrl + f - Move forward a char

Ctrl + k - Delete to EOL

Ctrl + l - Clear the screen  //清屏,類似 clear 指令

Ctrl + r - Search the history backwards  //查找曆史指令

Ctrl + R - Search the history backwards with multi occurrence

Ctrl + u - Delete backward from cursor // 密碼輸入錯誤的時候比較有用

Ctrl + xx - Move between EOL and current cursor position

Ctrl + x @ - Show possible hostname completions 

Ctrl + z - Suspend/ Stop the command

補充:

Ctrl + h - 删除目前字元

Ctrl + w - 删除最後輸入的單詞 

ALT 鍵相關的快捷鍵:

平時很少用。有些和遠端登陸工具沖突。

Alt + < - Move to the first line in the history

Alt + > - Move to the last line in the history

Alt + ? - Show current completion list

Alt + * - Insert all possible completions

Alt + / - Attempt to complete filename

Alt + . - Yank last argument to previous command

Alt + b - Move backward

Alt + c - Capitalize the word

Alt + d - Delete word

Alt + f - Move forward

Alt + l - Make word lowercase

Alt + n - Search the history forwards non-incremental

Alt + p - Search the history backwards non-incremental

Alt + r - Recall command

Alt + t - Move words around

Alt + u - Make word uppercase

Alt + back-space - Delete backward from cursor 

// SecureCRT 如果沒有配置好,這個就很管用了。

其他特定的鍵綁定:

輸入 bind -P 可以檢視所有的鍵盤綁定。這一系列我覺得更為實用。

Here "2T" means Press TAB twice

$ 2T - All available commands(common) //指令行補全,我認為是 Bash 最好用的一點 

$ (string)2T - All available commands starting with (string)

$ /2T - Entire directory structure including Hidden one

$ ./2T - Only Sub Dirs inside including Hidden one

$ *2T - Only Sub Dirs inside without Hidden one

$ ~2T - All Present Users on system from "/etc/passwd" //第一次見到,很好用

$ $2T - All Sys variables //寫Shell腳本的時候很實用

$ @2T - Entries from "/etc/hosts"  //第一次見到

$ =2T - Output like ls or dir //好像還不如 ls 快捷

Esc + T - 交換光标前面的兩個單詞

表2-1                                                         浏覽指令行的擊鍵

擊鍵 全名 含義
Ctrl+F 字元向前 向前移動一個字元
Ctrl+B 字元向後 向後移動一個字元
Alt+F 單詞向前 向前移動一個單詞
Alt+B 單詞向後 向後移動一個單詞
Ctrl+A 行頭 到目前行的開始
Ctrl+E 行尾 到行的末尾
Ctrl+L 清屏 清除螢幕,并在螢幕頂端留下一行

表2-2中的擊鍵可以用來編輯指令行。

表2-2                                                         編輯指令行的擊鍵

Ctrl+D 删除目前内容 删除目前字元
Backspace或Rubout 删除以前内容 删除前一個字元
Ctrl+T 調換字元 交換目前字元和前一個字元的位置
Alt+T 調換單詞 交換目前單詞和前一個單詞的位置
Alt+U 大寫單詞 将目前單詞變為大寫
Alt+L 小寫單詞 将目前單詞變為小寫
Alt+C 首字母大寫 将目前單詞的首字母變為大寫
Ctrl+V 插入特殊字元 添加特殊字元。例如,按Ctrl+V+Tab可添加一個Tab字元

使用表2-3中的擊鍵可在指令行上剪切和粘貼文本。

表2-3                                           在指令行上剪切和粘貼文本的擊鍵

Ctrl+K 剪切行尾 剪切文本到該行末尾
Ctrl+U 剪切行頭 剪切文到該行開頭
Ctrl+W 剪切前個單詞 剪切光标前的一個單詞
Alt+D 剪切下個單詞 剪切光标後的一個單詞
Ctrl+Y 粘貼最近的文本 粘貼最近剪切的文本
Alt+Y 粘貼早期的文本 輪回到先前剪切的文本并粘貼它
Ctrl+C 删除整行 删除一整行

表2-4                                                     用于文本補全的組合鍵

組合鍵 用于
Alt+~ 用使用者名補全文本
Alt+$ 用變量補全文本
Alt+@ 用主機名補全文本
Alt+! 用指令名(以别名、保留字、shell函數、shell内置指令和檔案名的順序依次檢查)補全文本。換句話說,用以前運作過的指令補全這個按鍵序列
Ctrl+X+/ 列出可能的補全使用者名文本
Ctrl+X+$ 列出可能的補全環境變量
Ctrl+X+@ 列出可能的補全主機名
Ctrl+X+! 列出可能的補全指令名

表2-5                                                       使用指令曆史的擊鍵

功  能  名 描    述

方向鍵

(↑或↓)

步進 按上和下箭頭可步進浏覽曆史清單中的每個指令行,直到所需的位置(Ctrl+P和Ctrl+N分别有同樣的功能)
Ctrl+R 反向漸進搜尋 按下這些鍵後,輸入一個搜尋字元串進行反向搜尋。輸入此字元串後,比對的指令行即會出現,可以運作或編輯它
Ctrl+S 前向漸進搜尋 與前一個功能相似,隻不過是前向搜尋
Alt+P 反向搜尋 按下這些鍵後,輸入一個字元串進行反向搜尋。輸入一個字元串并且按Enter鍵可看到包含該字元串的最近已用指令
Alt+N 前向搜尋 與前一個功能類似,隻不過是前向搜尋
Alt+< 曆史清單的開頭 到曆史清單的第一項
Alt+>