昨天晚上寫的這篇,今天看新聞說,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快捷鍵,請告訴我,我會在博客中更新。