linux bash shell常用技巧(1)




    由於自己平時使用Ubuntu作爲開發環境,所以使用bash的機會就比較多一點兒,在此將使用bash過程中的一些比較有用的技巧記錄在此,方便自己以後查詢,希望也能幫到一些網友,更有效率的使用的bash.

1.快捷鍵

使用快捷鍵在很多時候可以顯著提高自己操作的效率,而我個人平時比較多的使用快捷鍵(也只是使用了一小部分),所以先說一下快捷鍵。我個人使用的是gnome-terminal,默認設置是emacs模式,所以好多的快捷鍵應該是跟emacs相同的。同時,爲了能夠使用Alt開頭的快捷鍵,我對gnome-terminal進行了如下設置:點擊 編輯 -> 鍵盤快捷鍵, 把"啓用菜單快捷鍵"前面的勾去掉.

先說一下我使用最多的快捷鍵(一些大家熟知的ctrl+c/ctrl+z等等,此處就不說了),最後羅列一下快捷鍵列表。
Ctrl+Alt+T:打開終端,不多說。
Ctrl+Shift+T:在當前路徑下,打開另外一個terminal標籤(相當於clone了一個當前terminal標籤)。非常適合需要打開另外一個終端,並跳轉到當前處理的路徑的情況。
Ctrl+R:逆向搜索歷史命令。按下ctrl+R後,直接想要運行的之前的命令中包含的單詞,如果不是你要的那一條,可以持續按下Ctrl+R直到找到需要的命令,同時也可以按下Ctrl+G來取消搜索。示例:(reverse-i-search)`ls':ls a b c
Alt+.:輸入之前命令的最後一個參數。按下Alt+. 以後,會在當前光標位置補上上一條命令的最後一個參數,如果持續按Alt+.則會補全上條命令的最後一個參數、上上上條......。例如:
    $mkdir name-too-long-directory
    $cd  |
當光標在如上的|位置時,我們按下Alt+. 則會補全爲cd name-too-long-directory
Ctrl+L:清屏命令。比clear命令更好用。即使當前光標處已經輸入了命令,按下ctrl+L也可以完成清屏(輸入的命令繼續保留)
Ctrl+A/Ctrl+E:移動到行首、行尾。使用該命令可以將光標置於當前輸入的命令的行首或者行尾。
Ctrl+F/Ctrl+B:光標向前、向後移動一個字符。(F/B分別爲Forward/Backward)
Alt+F/Alt+B:光標向前、向後移動一個單詞。
Ctrl+U/Ctrl+K:刪除當前光標到行首/當前光標到行尾的字符。
Ctrl+W:刪除一個單詞,單詞之間以空格分隔
Ctrl+Alt+H:刪除一個單詞,單詞之間以符號分割,此處的符號是指除了字母和數字的其他符號。
Ctrl+Y:粘貼最後一次使用快捷鍵刪除(例如ctrl+u或者ctrl+k等)的內容。

其他常用的快捷鍵列表如下:(其中開頭的C代表Ctrl鍵,開頭的M代表Alt鍵)

意義

快捷鍵

向前(Forward)移動一個字符

C-f

向後(Backward)移動一個字符

C-b

向前移動一個單詞

M-f

向後移動一個單詞

M-b

移動光標到行首

C-a

移動光標到行尾

C-e

 

 

向前刪一個字符

C-d

向後刪一個字符

C-h

向前刪一個單詞

M-d

向後刪一個單詞, 單詞之間以符號分割

C-M-h

向後刪一個單詞, 單詞之間以空格分割

C-w

清屏, 相當於命令clear, 有了這個快捷鍵, 就不用每次努力的敲clear了

C-l

刪除當前光標到行尾的字符

C-k

刪除當前光標到行首的字符

C-u

粘貼刪除環裏面的第一項

C-y

粘貼刪除環裏面的後面的項

M-y

undo

C-/

取出上一條命令的最後一個參數

M-.

 

 

從當前光標處向前搜索字符

C-]

從當前光標處向後搜索字符

C-M-]

交換當前光標下的字符和光標前面的一個字符, 交換後, 光標向後移東一個字符

C-t

交換當前光標所在單詞和光標前面一個單詞, 交換後, 光標向後移動一個單詞

M-t

把單詞首字符變成大寫, 其他變成小寫

M-c

把單詞變成小寫

M-l

把單詞變成大寫

M-u

刪除當前光標前面所有的空白字符

M-\

向後非增量搜索歷史命令

M-p

相當於TAB健

C-i

相當於回車鍵

C-m/C-j

在當前光標處和上一次光標處不停的移動

C-x C-x



2.alias別名

有時候我們需要輸入的一些命令比較長 或者有一些命令我們需要使用的次數太頻繁,我們可以考慮將其設置一個別名,以此達到少輸入字符的目的,提高我們輸入命令的速度。舉例說一下我的一些常用aliases吧(另外一些是我個人的一些特殊別名,此處不列出):
alias cd..='cd ../'
alias ..='cd ../'
alias ...='cd ../../'
alias ....='cd ../../../'
alias .....='cd ../../../../
alias ......='cd ../../../../../'
alias .1='cd ../'
alias .2='cd ../../'
alias .3='cd ../../../'
alias .4='cd ../../../../'
alias .5='cd ../../../../../'

3.環境變量

一些環境變量的設置,也能夠爲我們高效使用bash提供很好的幫助。目前我使用的環境變量還不多,等看完man bash以後可能還會添加。主要使用的有:
CDPATH:該變量設置cd時,搜索的目錄。此處我們可以將我們常用的目錄加入進去,這樣cd的時候,就會比較快速。例如:
export CDPATH=".:$HOME/source",注意使用":"分隔不同的目錄。假設我的source目錄下有如下目錄:gb ics jb
那麼我在任意的路徑下,只要執行cd gb(假設沒有其他重名目錄的話)就會跳到$HOME/source/gb目錄

與History相關的環境變量,摘自 懶惰的程序員:http://www.wanglianghome.org/blog/2007/05/bash-history.html .大家可以移步查看完整版介紹。
# 忽略重複的命令
export HISTCONTROL=ignoredups
# 忽略由冒號分割的這些命令
export HISTIGNORE="[   ]*:&:bg:fg:exit"
# 設置保存歷史命令的文件大小
export HISTFILESIZE=1000000000
# 保存歷史命令條數
export HISTSIZE=1000000
shopt -s histappend #append instead of overwrite
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"



OK 今天先到這兒,第一次寫,基本上是想到哪兒寫到哪兒。後面抽空整理下,再繼續後面的部分。

發佈了22 篇原創文章 · 獲贊 8 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章