編輯命令
Ctrl + a :移到命令行首
Ctrl + e :移到命令行尾
Ctrl + f :按字符前移(右向)
Ctrl + b :按字符後移(左向)
Alt + f :按單詞前移(右向)
Alt + b :按單詞後移(左向)
Ctrl + xx:在命令行首和光標之間移動
Ctrl + u :從光標處刪除至命令行首
Ctrl + k :從光標處刪除至命令行尾
Ctrl + w :從光標處刪除至字首
Alt + d :從光標處刪除至字尾
Ctrl + d :刪除光標處的字符
Ctrl + h :刪除光標前的字符
Ctrl + y :粘貼至光標後
Alt + c :從光標處更改爲首字母大寫的單詞
Alt + u :從光標處更改爲全部大寫的單詞
Alt + l :從光標處更改爲全部小寫的單詞
Ctrl + t :交換光標處和之前的字符
Alt + t :交換光標處和之前的單詞
Alt + Backspace:與 Ctrl + w 相同類似,分隔符有些差別 [感謝 rezilla 指正]
重新執行命令
Ctrl + r:逆向搜索命令歷史
Ctrl + g:從歷史搜索模式退出
Ctrl + p:歷史中的上一條命令
Ctrl + n:歷史中的下一條命令
Alt + .:使用上一條命令的最後一個參數
控制命令
Ctrl + l:清屏
Ctrl + o:執行當前命令,並選擇上一條命令
Ctrl + s:阻止屏幕輸出
Ctrl + q:允許屏幕輸出
Ctrl + c:終止命令
Ctrl + z:掛起命令
Bang (!) 命令
!!:執行上一條命令
!blah:執行最近的以 blah 開頭的命令,如 !ls
!blah:p:僅打印輸出,而不執行
!$:上一條命令的最後一個參數,與 Alt + . 相同
!$:p:打印輸出 !$ 的內容
!*:上一條命令的所有參數
!*:p:打印輸出 !* 的內容
^blah:刪除上一條命令中的 blah
^blah^foo:將上一條命令中的 blah 替換爲 foo
^blah^foo^:將上一條命令中所有的 blah 都替換爲 foo
FYI:
1. 以上介紹的大多數 Bash 快捷鍵僅當在 emacs 編輯模式時有效,若你將 Bash 配置爲 vi 編輯模式,那將遵循 vi 的按鍵綁定。Bash 默認爲 emacs 編輯模式。如果你的 Bash 不在 emacs 編輯模式,可通過 set -o emacs 設置。
2. ^S、^Q、^C、^Z 是由終端設備處理的,可用 stty 命令設置。
改善 Bash 的命令歷史管理功能: Bash 的默認配置會存在一個問題,如果同時打開兩個(或兩個以上的)控制檯,那麼在這兩個控制檯中執行的命令並不會互相分享到 history 中。有的命令歷史甚至最終會被覆蓋掉。要解決這個問題,可把下列內容添加到 ~/.bashrc 或 ~/.bash_profile 文件中:
shopt -s histappend
PROMPT_COMMAND='history -a'
第一句的作用是將命令追加到 history 中。
第二句是在顯示命令提示符時,保存 history。
設置智能的自動完成功能: 在 Bash 中我們已經可以通過按 Tab 鍵來享用自動完成的特性。通過下面的設置,則可以使用 Up 和 Down 鍵來選擇命令後所跟的參數。在 .inputrc(如果該文件不存在,則創建一個)中加入下列內容:
"\e[A": history-search-backward
"\e[B": history-search-forward
set show-all-if-ambiguous on
前兩句使用 Up 和 Down 在 history 中進行搜索。
後一句是按 Tab 顯示自動完成。
如果結合 Ctrl - R,則更加好用。
從歷史中執行命令 有時候,我們需要在 Bash 中重複執行先前的命令。你當然可以使用上方向鍵來查看之前曾經運行過的命令。但這裏有一種更好的方式:你可以按 Ctrl + r 組合鍵進入歷史搜索模式,一旦找到需要重複執行的命令,按回車鍵即可。
重複命令參數 先來看一個例子:
$ mkdir /path/to/exampledir ; cd !$
本例中,第一行命令將創建一個目錄,而第二行的命令則轉到剛創建的目錄。這裏,“!$”的作用就是重複前一個命令的參數。事實上,不僅是命令的參數可以重複,命令的選項同樣可以。另外,Esc + . 快捷鍵可以切換這些命令參數或選項。
用於編輯的快捷鍵
Ctrl + a:將光標定位到命令的開頭
Ctrl + e:與上一個快捷鍵相反,將光標定位到命令的結尾
Ctrl + u:剪切光標之前的內容
Ctrl + k:與上一個快捷鍵相反,剪切光標之後的內容
Ctrl + y:粘貼以上兩個快捷鍵所剪切的內容
Ctrl + t:交換光標之前兩個字符的順序
Ctrl + w:刪除光標左邊的參數(選項)或內容
Ctrl + l:清屏
處理作業 首先,使用 Ctrl + z 快捷鍵可以讓正在執行的命令掛起。如果要讓該進程在後臺執行,那麼可以執行 bg 命令。而 fg 命令則可以讓該進程重新回到前臺來。使用 jobs 命令能夠查看到哪些進程在後臺執行。 你也可以在 fg 或 bg 命令中使用作業 id,如: fg %3 又如: bg %7
使用置換
命令置換 先看例子: du -h -a -c $(find . -name *.conf 2>&-) 注意 $() 中的部分,這將告訴 Bash 運行 find 命令,然後把返回的結果作爲 du 的參數。
進程置換 仍然先看例子: diff <(ps axo comm) <(ssh user@host ps axo comm) 該命令將比較本地系統和遠程系統中正在運行的進程。請注意 <() 中的部分。
xargs 看例: find . -name *.conf -print0 | xargs -0 grep -l -Z mem_limit | xargs -0 -i cp {} {}.bak 該命令將備份當前目錄中的所有 .conf 文件。
使用管道 下面是一個簡單的使用管道的例子: ps aux | grep init 這裏,“|”操作符將 ps aux 的輸出重定向給 grep init。 下面還有兩個稍微複雜點的例子: ps aux | tee filename | grep init 及: ps aux | tee -a filename | grep init
將標準輸出保存爲文件 你可以將命令的標準輸出內容保存到一個文件中,舉例如下: ps aux > filename 注意其中的“>”符號。 你也可以將這些輸出內容追加到一個已存在的文件中: ps aux >> filename 你還可以分割一個較長的行: command1 | command2 | ... | commandN > tempfile1 cat tempfile1 | command1 | command2 | ... | commandN > tempfile2
標準流:重定向與組合 重定向流的例子: ps aux 2>&1 | grep init 這裏的數字代表:
0:stdin
1:stdout
2:sterr
上面的命令中,“grep init”不僅搜索“ps aux”的標準輸出,而且搜索 sterr 輸出。
Refer Link:
http://linuxtoy.org/archives/bash-shortcuts.html
http://linuxtoy.org/archives/bash_tricks.html
http://linuxtoy.org/archives/the-best-tips-and-tricks-for-bash.html
http://linuxtoy.org/archives/bash-command-line-editing.html
Bash Shell
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Shell字符串截取——獲取oracle group名字
handan725
2019-02-23 00:31:15
Linux Shell常用技巧(十二) Shell編程
linuxcp
2019-02-23 00:13:53
Linux Shell常用技巧(十一) 交互式使用shell
linuxcp
2019-02-23 00:13:53
Shell腳本之測試及條件表達式簡述
貴在堅持
2019-02-23 00:06:36
VB Shell調用後 等待程序運行結束
mmaxcai
2019-02-23 00:03:11
SylixOS下Shell命令行執行模塊內函數
zhywxyy
2019-02-22 23:58:16
常用AWS CLI Shell腳本
Jason_川川
2019-02-22 23:47:07
Shell腳本中的邏輯判斷、文件目錄屬性判斷、if特殊用法、 case判斷
帥陽陽
2019-02-22 23:30:09
Shell腳本中的邏輯判斷
故事未完
2019-02-22 22:51:45
Wscript.Shell 對象詳細介紹
dmgxlwy
2019-02-22 22:34:08
Shell 正則表達式
Leo_1024
2019-02-22 22:31:46
10個工具讓你的 shell 腳本更強大
LEONCORE
2019-02-22 21:53:43
shell 腳本中雙引號 單引號 反引號 的區別
Geek_123
2019-02-22 21:48:39