十個Linux bash shell小技巧
如果你曾經在Linux shell命令行提示符下輸入過命令,你可能已經使用了bash。畢竟,它是多數現代的GNU/Linux版本的缺省命令行shell。bash shell是進入Linux操作系統的首個界面。它接受,解釋並執行你的命令,並且向你提供shell腳本和自動任務執行的編譯模塊。下面就跟隨小編一起來看看吧!
bash包含了一些功能強大的工具和方便之處。如果你是經常要用到命令行的用戶,這些可以減少你相當多的輸入。本文給出了十個最有用的工具:
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的詳細幫助信息。
相關文章
-
Linux Shell腳本教程(一):Shell入門
一、Shell簡介諸多類Unix操作系統的設計令人驚歎。即便是在數十年後的今天,Unix式的操作系統架構仍是有史以來最佳的設計之一。這種架構最重要的一個特性就是命令行界面或者shell。shell環境使得用戶能與操作系統 -
八年級年級Lesson11Lily learns about China英語家庭作業
根據漢語提示完成句子1這把尺子跟那把尺子一樣長Thisruleris__________________thatone.2這幢大廈比附近的'建築物都高Thebuildingis____________anyotherbuildingnearhere.3長江要比泰晤士河更寬TheChangjiangRiver -
Should Euthanasia Be Legalized英語作文
Euthanasia, a quiet and easy death, or “mercy killing” as we call it recently has made the headlines frequently. Many people applaud it and argue that euthanasia should be legalized.As is pointed out, -
Linux+Apache+Mysql+PHP優化技巧
LNAMP架構受到很多IT企業的青睞,以下就是小編精心推薦Linux+Apache+Mysql+PHP優化技巧,希望對大家有幫助!LAMP這個詞的由來最早始於德國雜誌“c't Magazine”,Michael Kunze在1990年最先把這些項目組合在一起創造了 -
高二英語作文300字範文:The Disabled Should Have Equal Righ
People who live with disabilities are always considered shameful, for it was difficult for them to manage to do the daily affairs that we take for granted. In fact, they have no differences from us ex -
Scientists Build Robots to Live With Humans英語美文
Industrial robots are already working in many factories around the world and in our homes, for instance as smart vacuum cleaners. Scientists say in a few years we will start seeing so-called "social r -
php函數method-exists()與is-callable()有何區別
php函數method_exists() 與is_callable()的區別在哪?在php面相對象設計過程中,往往我們需要在調用某一個方法是否屬於某一個類的時候做出判斷,常用的方法有 method_exists()和is_callable(),相比之下,is_callable()函數要 -
java的String=a; a==null和a.equals(null)這兩個判斷有什麼區別
總結是對某一特定時間段內的學習和工作生活等表現情況加以回顧和分析的一種書面材料,它在我們的學習、工作中起到呈上啓下的作用,不如靜下心來好好寫寫總結吧。我們該怎麼去寫總結呢?以下是小編精心整理的家長學校學期工 -
Unit2 My schoolbag A Let’s learn教學反思
Unit2 My schoolbag A Let’s lea教學反思1接下來在Let’s do環節,我先複習了學生在三年級時學過的Show me your…. 這個Let’s do的內容,然後在這樣的基礎上進入這節課的Let’s do,學生接受的相對就容易一些,我先說Let’ -
linux shell編程的簡介
從程序員的角度來看, Shell本身是一種用C語言編寫的程序,從用戶的角度來看,Shell是用戶與Linux操作系統溝通的橋樑。用戶既可以輸入命令執行,又可以利用 Shell腳本編程,完成更加複雜的操作。在Linux GUI日益完善的今天,在系