bash主要的優點有底下幾個:
1、命令編修能力(history)
2、命令與檔案補全功能([tab]按鍵的好處)
3、命令別名設定功能(alias)
4、工作控制、前景背景控制
5、程序化腳本(shell scripts)
6、通配符(Wildcard)
Bash shell 的內建命令:type
可以通過type這個指令來觀察某個指令是來自於外部指令(指的是其他非bash所提供的指令)或是內建在bash當中
指令語法: type [-tpa] name
變量的取用: echo
取消變量的方法爲使用unset
什麼是子程序? 就是說,在我目前這個shell的情況下,去啓用另一個新的shell,新的那個shell就是子程序。
在一般的狀態下,父程序的自定義變量是無法在子程序內使用的。但是通過export將變量變成環境變量後,就能
夠在子程序底下應用了。
locate指令可以列出所有的相關檔案檔名。
在一串指令中,在反單引號~之內的指令將會被先執行,而其執行出來的結果將做爲外部的輸入信息。
環境變量的功能
用env觀察環境變量與常見環境變量說明,env是environment的簡寫,列出所有的環境變量。
用set觀察所有變量(含環境變量與自定義變量)
export :自定義變量轉成環境變量。 將環境變量轉成自定義變量用declare指令。
變量鍵盤讀取、數組與宣告:read, arry, declare
要讀取來自鍵盤輸入的變量,就使用read這個指令。
指令語法: read [-pt] variable
declare或typeset是一樣的功能,就是在宣告變量的類型
語法指令: declare [-aixr] variable
限制用戶的某些系統資源,包括可以開啓的檔案數量,可以使用的CPU時間,可以使用的內存總量等等,可
以使用ulimit指令。
指令語法: ulimit [-SHacdfltu] [配額]
變量的測試與替換
命令別名設定: alias, unalias
bash有提供指令歷史的服務,那麼如何查詢我們曾經下達過的指令呢?使用history指令
Bash的進站與歡迎訊息:/etc/issue, /etc/motd
如果你想要讓使用者登入後取得一些訊息,例如你想要讓大家都知道的訊息,那麼可以將訊息加入/etc/motd裏面去。
Bash的環境配置文件
source: 讀入環境配置文件的指令。
終端機的環境設定: stty, set
數據流重導向
1、標準輸入 (stdin):代碼爲0,使用<或<<;
2、標準輸出 (stdout):代碼爲1,使用>或>>;
3、標準錯誤輸出 (stderr):代碼爲2,使用2>或2>>;
$? (指令回傳值) 與&& 或 ||
這個/dev/null可以吃掉任何導向這個裝置的信息。
管線命令
管線命令僅會處理standard output,對於standard error output 會予以忽略。
管線命令必須要能夠接受來自前一個指令的數據成爲standard input繼續處理才行。
例如less,more,head,tail等都是可以接受standard input的管線命令。至於例如ls,cp,mv等就不是管線命令,因爲
ls,cp,mv並不會接受來自stdin的數據。
截取命令: cut,grep
排序命令: sort,wc,uniq
雙向重導向:tee
tee會同時將數據流分送到檔案與屏幕去。
字符轉換命令: tr, col, join, paste, expand
col經常被利用於將man page 轉存爲純文本文件以方便查閱的功能。
join主要是在處理兩個檔案中有“相同數據”的那一行,纔將他加在一起。
paste就要比join簡單多了,paste 就直接將兩行貼在一起,且中間以[tab]鍵隔開。
expand這玩意就是將[tab]鍵轉存空格鍵。
分割命令:split
split可以幫你將一個大檔案,依據檔案大小或行數來分割,就可以將大檔案分割成小檔案。
參數代換:xargs
關於減號-的用途
在管線命令當中,常常會使用到前一個指令的stdout作爲這次的stdin,某些指令需要用到文件名(例如tar)來進行
處理時,該stdin與stdout可以利用減號“-”來替代。
本章介紹的管線命令主要有:cut, grep, sort, wc, uniq, tee, tr, col, join, paste, expand, split,
xargs 等。