這篇文章記錄bash shell的相關命令
管道命令:以“|”爲界定符號,用來處理前一個命令傳來的正確信息關於變量:
變量設置規則:
1. 變量與變量內容用一個等號連接,“變量名=變量內容”
2. 等號兩邊不能直接接空格
3. 變量名稱只能是英文字母與數字,但開頭不能是數字
4. 變量內容若有空格符可用雙引號或單引號將變量內容結合起來(單引號內的特殊字符僅作爲一般字符(純文本);雙引號內的特殊字符,如$等,可以保持原有特性)
5. 可用轉義字符(\)將特殊符號變成一般字符。
6. 一串命令中,需要其他命令提供信息時,可以使用反單引號(`(主鍵盤區數字鍵1左邊的那個鍵))`命令`或者$(命令)。注意與下述變量名部分的${}區分。
7. 可用“$變量名稱”或“${變量名稱}”來進行變量內容累加。如PATH="$PATH":/home/bin (注意雙引號)
8. 若變量需要其它子進程執行時,需要export來使變量變成換進變量
9. 通常以大寫字母作爲變量名。
“echo 變量名”:輸出變量內容,當輸出結果爲空時,可能是沒有這個變量,也可能是這個變量爲空字符串
“${變量名-變量內容}”:若變量不存在,則將減號後面的變量內容賦值給變量,如果變量存在則不做操作。注意:變量內容爲空字符串和沒有該變量的區別。
“${變量名:變量內容}”:當變量爲空字符串或不存在時,將冒號後面的內容賦值給變量。
“${變量名=變量內容}”:當變量不存在時,將等號後面的內容賦值給變量。
“${變量名?內容}”:當變量不存在時,顯示問號後面的內容。
“unset 變量名”:取消這個變量
“env” :查看環境變量與常見變量
“set”:查看所有變量
“export 變量名”:把自定義變量轉成環境變量
“read 變量名”:讀取來自鍵盤的變量
-p 參數:後面可以接提示符
-t 參數:後面接等待時間(秒)
“declare 變量名”:聲明變量的類型
-a 參數:將變量定義成數組類型(數組類型變量:變量名[索引]=變量內容)
-i 參數:將變量定義成整數數字類型
-x 參數:將變量變成環境變量(與export類似)
-r 參數:將變量設爲readonly(只讀)類型,不能更改,也不能重設
“#”:刪除變量部分內容(從最先面開始向右刪除,且刪除最短的那個),如${PATH#/*test/bin:}表示刪除從最開始到第一個“/*test/bin:”處中間的內容,注意“:”。
“##”:刪除變量部分內容(從最先面開始向右刪除,且刪除最長的那個),如${PATH##/*test/bin:}從最開始到最後一個“/*/test/bin:”處中間的內容。
“%”:從後向前刪除(最短的那個),如${paht%:*bin},該命令刪除了最後一個路徑
“%%”:從後向前刪除(最長的那個)
“${變量名/舊字符串/新字符串}”:第一個舊字符串被新字符串替換掉。
“${變量名//舊字符串/新字符串}”:所有舊字符串被新字符串替換。
“alias”:查看或設置別名命令
後面不接內容:顯示所有別名命令
alias 命令別名=‘命令’:將命令賦值給命令別名,之後使用命令別名即可代替命令的,適用於較長命令的簡化
“unalias”:取消命令別名
“history”:顯示之前輸入過的命令。
history 3:顯示最近輸入過的三條命令,不加數字則默認全部顯示(用echo $HISTSIZE可查看最大緩存的歷史命令數量)
history -w:將目前的history記憶內容寫入histfiles中
”!number“:執行編號爲number的一條命令
”!command“:由最近的命令向前搜尋以command開頭的命令
”!!“:執行上一個命令
“locale”:顯示支持語系
“type”:查看命令類型
不加參數時,會顯示type後面接的命令爲外部命令還是bash內置命令
-t 參數:顯示命令的意義(file:表外部命令;alias表該命令爲別名命令;builtin:表內置命令)
-p 參數:後接命令爲外部命令時纔會顯示完整文件名
-a 參數:會將PATH變量定義中所有含“後接命令名”的命令都列出來
“cut”:選取命令,將一段信息“切”出來顯示,以行爲單位。
cut -d '分割字符' -f 顯示範圍(編號從以開始):將前一個命令傳遞的信息按“分割符號”進行分割,並顯示。顯示範圍從1開始,可以寫成:“1,2,3”,“1-5”
cut -c 字符範圍:將前一個命令傳遞的信息按規定範圍顯示。字符範圍可以是:“20-”,表示從第20個字符開始顯示;“20-30”,表示顯示第20個到第30個字符之間的內容。
“grep -[a/c/i/n/v] -An -Bn --color=auto '查找字符串' filename”:選取命令,以行爲單位。顯示出含有該字符串的那一行。
--color=auto:將查找的結果用其他顏色顯示。默認(命令別名)
-c:只顯示查找到字符串的個數
-a:將binary文件以text文件的方式查找數據
-v:顯示沒有找到的那一行
-i:忽略大小寫
-n:順便輸出行號
當grep單獨使用時,需要filename參數,相當於cat filename | grep ......
-An:n爲數字,表示將該行之後的n行也顯示出來。
-Bn:n爲數字,表示將該行之前的n行也顯示出來。
關於這部分的知識有點多,暫時先記錄這些,以後再用到其它內容時再做補充。