使用Bash快捷鍵提高效率

昨天晚上寫的這篇,今天看新聞說,windows要原生支持Bash shell。(_)

這是一篇翻譯的文章,原文:Bash Shortcuts For Maximum Productivity。稍有修改和整理。

你可能知道,Bash有非常豐富的快捷鍵,能夠讓使用命令行輕松很多。Bash這種用快捷鍵編輯命令行的功能,是通過GNU Readline library實現的。這個庫也被除了Bash之外的許多其它Unix或者Linux應用使用,因此,學習這些快捷鍵不僅能夠使你更加方便地使用Bash,也能提高使用其它Unix或者Linux應用的效率(如果該應用也使用了GNU Readline library的話)。這里,我不想深入講解Readline,只提一點。默認地,Readline使用emacs按鍵綁定,盡管可以配置成vi模式,但是,我更加喜歡學習大部分應用的缺省設置(我發現不用個性化設置,能省掉好多工作,可以使生活更加輕松)。如果你對emacs十分熟悉,那么你可能對這些命令并不陌生,因此,下面這些是寫給那些不熟悉的人。

1、命令編輯的快捷鍵

1.1 移動光標

  • Ctrl + f 光標向前移動一個字符
  • Ctrl + b 光標向后移動一個字符
  • Alt + b 將光標向后移動一個單詞
  • Alt + f 將光標向前移動一個單詞
  • Ctrl + a 光標移動到命令的開頭
  • Ctrl + e 光標移動到命令行的結尾
  • Ctrl + xx將光標在行首和當前位置交替

1.2 編輯

  • Ctrl + d 刪除光標處的字符
  • Ctrl + h 刪除光標前的字符
  • Ctrl + w 刪除從光標到單詞開頭的所有字符(向后刪除一個單詞)
  • Alt + d 刪除從光標處到單詞結尾的所有字符(向前刪除一個單詞)
  • Ctrl + k 刪除從光標到行尾的所有字符
  • Ctrl + u 刪除從光標到行首的所有字符
  • Ctrl + y 將剛剛刪除的內容粘貼到光標的后面
  • Alt + c 將光標到單詞結尾的字符串的首字母大寫
  • Alt + u 將光標到單詞結尾的所有字符變成大寫
  • Alt + l 將光標到單詞結尾的所有字符變成小寫
  • Ctrl + t 將光標處的字符和前一個字符調換位置
  • Alt + t 將當前單詞和前一個調換位置

2、命令召回快捷鍵

  • Ctrl + r 向后搜索歷史命令
  • Ctrl + g 退出命令搜索模式
  • Ctrl + p 命令歷史中的前一條記錄
  • Ctrl + n 命令歷史中的后一條記錄
  • Alt + . 召回前一條命令的最后一個單詞

3、命令控制快捷鍵

  • Ctrl + l 清空屏幕
  • Ctrl + s 停止向屏幕輸出(對于那些長時間運行且輸出繁復的命令)
  • Ctrl + q 允許向屏幕輸出(如果前面用命令停止了向屏幕輸出的話)
  • Ctrl + c 終止命令
  • Ctrl + z 掛起/停止命令

4、Bash ! 命令

Bash允許你使用!來方便地處理Bash命令。

  • !! 運行上一條命令
  • !blah 運行上一條blah開頭的命令
  • !blah:p 打印出!blah將會運行的命令,并將該命令作為最新的命令加到命令歷史中
  • !$ 上一條命令的最后一個單詞(相當于Alt + .)
  • !$:p 打印出!$代表的單詞
  • !* 上一條命令除去最后一個單詞的部分(比如,如果運行find some_file.txt /,然后,!*將給出find some_file.txt)
  • !*:p 打印出!*代表的內容

還有一件非常方便的使用技巧:^^命令的使用。如果你輸入一條命令并運行,你可以用^^替換掉該命令中的一部分重新運行。下面是一個例子:

$ ls -al
total 12
drwxrwxrwx+ 3 Administrator None    0 Jul 21 23:38 .
drwxrwxrwx+ 3 Administrator None    0 Jul 21 23:34 ..
-rwxr-xr-x  1 Administrator None 1150 Jul 21 23:34 .bash_profile
-rwxr-xr-x  1 Administrator None 3116 Jul 21 23:34 .bashrc
drwxr-xr-x+ 4 Administrator None    0 Jul 21 23:39 .gem
-rwxr-xr-x  1 Administrator None 1461 Jul 21 23:34 .inputrc
$ ^-al^-lash
ls -lash
total 12K
   0 drwxrwxrwx+ 3 Administrator None    0 Jul 21 23:38 .
   0 drwxrwxrwx+ 3 Administrator None    0 Jul 21 23:34 ..
4.0K -rwxr-xr-x  1 Administrator None 1.2K Jul 21 23:34 .bash_profile
4.0K -rwxr-xr-x  1 Administrator None 3.1K Jul 21 23:34 .bashrc
   0 drwxr-xr-x+ 4 Administrator None    0 Jul 21 23:39 .gem
4.0K -rwxr-xr-x  1 Administrator None 1.5K Jul 21 23:34 .inputrc

這里,^-al^-lash將原來ls命令中的-al替換為-lash并重新運行。

說到Bash的快捷鍵,還有很多。但是,上面提到的囊括了90%能夠極大提高Bash工作效率的快捷鍵。如果你覺得我漏掉了一個必需的Bash快捷鍵,請告訴我,我會在博客中更新。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容