十個有用的Linux bash shell小技巧

2021-06-01 05:32:59 字數 2459 閱讀 4141

如果你曾經在linux shell命令列提示符下輸入過命令,你可能已經使用了bash。畢竟,它是多數現代的gnu/linux版本的預設命令列shell。bash shell是進入linux作業系統的首個介面。它接受,解釋並執行你的命令,並且向你提供shell指令碼和自動任務執行的編譯模組。

1.輕鬆呼叫先前的命令

bash在乙個歷史緩衝區中保留你執行的命令,並且允許你通過上和下的游標鍵在先前的命令間迴圈以再次呼叫它們。甚至為了更快速的重新呼叫,可以通過輸入少量命令字元然後跟組合鍵 ctrl-r來「快速查詢」先前執行的命令;然後bash將掃瞄命令歷史以匹配命令並在控制台顯示它們。重複按ctrl-r可以在整個匹配的命令列表中進行迴圈。

2.使用命令別名

如果你頻繁地使用引數相同的某個命令,你可以讓bash為它建立乙個別名。這個別名將組合需要的引數,所以你無需記住它們或每次手工輸入它們。例如,如果你經常使用ls -l以獲得詳細的目錄列表,你可以使用這個命令:

bash> alias ls='ls -l'

這樣就建立了自動包含-l選項的別名。一旦該別名被建立,在bash提示符下輸入ls將呼叫該別名就輸出ls -l。

你可以通過呼叫沒有任何引數的別名獲得可用別名的列表,你也可以用unalias命令刪除別名。

3.使用檔名自動補全

bash在命令提示符下支援檔名自動補全。要使用該特性,輸入檔名的前幾個字元,然後按tab鍵。bash將掃瞄當前的目錄以及搜尋路徑中的所有其他目錄以匹配該檔名。如果只找到乙個匹配,bash將為你自動補全該檔名。如果找到多個匹配,將提示你選擇乙個。

4.使用快捷鍵以高效地編輯命令列

bash為命令列的瀏覽和編輯支援許多快捷鍵。快捷鍵ctrl-a將游標移動到命令列的開始處,而快捷鍵ctrl-e將游標移動到命令列的末尾。快捷鍵ctrl-w直接刪除游標前的字,而快捷鍵ctrl-k直接刪除游標前的所有字元。你可以用ctrl-y撤銷乙個刪除。

5.獲得新郵件的自動通知

通過設定$mailpath變數指向你的本地郵件池,你可以配置bash自動向你通知新郵件。例如,命令為:

bash> mailpath='/var/spool/mail/john'

bash> export mailpath

這時,bash每次有新訊息進入john的郵件池時向john的控制台輸出乙個通知。

在後台執行任務

6.在後台執行任務

bash允許你在後面執行乙個或多個任務,並且可選擇地掛起或重新開始任何當前任務。要在後台執行乙個任務,在其命令列後面新增乙個&記號。例子如下:

bash> tail -f /var/log/messages &

[1] 614  

這種方式的每個後台任務都被分配乙個任務id,並在控制台輸出。任務可以用命令fg jobnumber從後台調到前台,jobnumber是你想調到前台的任務id。舉例如下:

bash> fg 1

任何時候在bash提示符下輸入jobs都可以獲得正在執行的任務的列表。

7.快速跳轉到經常使用的目錄

你可能已經知道$path變數列出bash的「搜尋路徑」,當它在當前目錄下無法找到請求的檔案時將搜尋的目錄。然而,bash也支援$cdpath變數,它列出當試圖改變目錄時cd命令可訪問的目錄列表。要使用這個特性,分配乙個目錄列表給$cdpath變數,如下例所示:

bash> cdpath='.:~:/usr/local/apache/htdocs:/disk1/backups'

bash> export cdpath

現在,只要你使用cd命令,bash將檢查$cdpath列表中的所有目錄以匹配該目錄名。

8.執行計算

bash可以在命令列提示符下執行簡單的算術操作。要使用這個特性,只需簡單地在命令行內的雙括號中鍵入你想計算的算術表示式,如下所示。bash將嘗試執行該計算並返回結果。

bash> echo $((16/2))

8 9.定製shell提示符

你可以定製bash shell提示符以顯示當前使用者名稱和主機名、當前時間、平均負載和/或當前工作目錄。要實現這一點,像下面這樣改變$ps1變數:

bash> ps1='\u@\h:\w \@> '

bash> export ps1

root@medusa:/tmp 03:01 pm>

這將在shell提示符下顯示當前登入使用者的名稱,主機名,當前工作目錄和當前時間。

10.獲得指定上下文幫助

bash可以給出所有內建命令的幫助。要檢視所有內建命令的列表,請輸入help。要獲得某個特定命令的幫助,輸入help command,此處的command是你想檢視其幫助的命令。這裡是乙個例子:

bash> help alias

...一些幫助文字...

顯然地,你可以任何時候通過在命令列提示符下輸入man bash以獲得bash shell的詳細幫助資訊。

git 日誌 十個有用的Git日誌技巧

git 日誌 如果您使用git一段時間,則應該遇到git log。眾所周知,git log是乙個簡單的命令,可以幫助我們 檢視更改或專案歷史記錄。即使如此簡單,它仍然是乙個非常強大的工具,它帶有許多選項,可以幫助我們檢視專案更改及其結構。我們將在本文中看到一些最常用的選項。gitlog onelin...

人生的十個不要

一不要等到想要得到愛時才學會付出 人生就像一場戲,在等待中錯過了美麗。正如歌中所唱 該出手時就出手。因為幸福就在你身邊。當你付出時,愛以從你身邊輕輕劃過,留下的是悔恨 遺憾。二不要等到孤單時才想念起你的朋友 什麼是朋友?真正的朋友永遠不會離棄你。人生得一知己足矣,孤獨時 彷徨時,朋友是你最忠實的聽眾...

人生的十個「樂」

一 知足常樂 知足者長樂 行也安然坐也安然 富也安然窮也安然 名也不貪利也不貪 恬淡寡欲,洗淨無為 知足賽過長生藥,快樂終生。二 天倫之樂 兒時享受父母的愛之樂,時享受工作之樂,回家享妻子兒女的溫心之樂,老年時期享兒孫孝敬之樂。天倫之樂是大自然賦予人類的一大享受。三 運動之樂 生命在於運動 莫偷閒,...