Shell指令碼學習(一):shell變數和一些常用命令
shell允許使用者建立變數儲存資料,但是不支援基礎資料型別 (Elementary Data Type)變數(如int,float.....),shell將任何賦給變數的值都解釋為一串字元,命名的規則跟C++一樣。
一、Shell有如下四種變數:1.使用者自訂的變數這個好理解,就是使用者自己定義的變數,如:X,Y,COUNT(shell中變數通常全大寫)2.位置變數(也就是命令列參數)
(1) $0:也就是指令檔名
(2) $1,$2...$9:1-9個命令列參數
(3) $#:命令列參數的個數,比C中的少一個
(4) $@:也就是"$1,$2...$9"
(5) $?:前一個命令的退出狀態,正常退出值為0,異常退出為1或2
(6) $*:我測試出來跟$@貌似是一樣的,還望大神解釋...
(7) $$:當前進程的ID號
3.預定義變數(預設變數)4.環境變數二、Shell常用命令
(1) echo "some text": 將文字內容列印在螢幕上
(2) unset:刪除變數的賦值
(3) ls: 檔案清單
(4) wc –l filewc -w filewc -c file: 計算檔案行數計算檔案中的單詞數計算檔案中的字元數
(5) cp sourcefile destfile: 檔案拷貝
(6) mv oldname newname : 重新命名檔案或移動檔案
(7) rm file: 刪除檔案
(8) grep 'pattern' file: 在檔案內搜尋字串比如:grep 'searchstring' file.txt
(9) cut -b colnum file: 指定欲顯示的檔案內容約制,並將它們輸出到標準輸出裝置比如:輸出每行第5個到第9個字元cut -b5-9 file.txt千萬不要和cat命令混淆,這是兩個完全不同的命令
(10) cat file.txt: 輸出檔案內容到標準輸出裝置(螢幕)上
(11) file somefile: 得到檔案類型
(12) read var:從標準輸入讀入一行,並將輸入賦值給變數var
(13) sort file.txt: 對file.txt檔案中的行進行排序
(14) uniq: 刪除文字檔中出現的行列比如: sort file.txt | uniq
(15) expr: 進行數學運算Example: add 2 and 3expr 2 "+" 3
(16) find: 搜尋檔案比如:根據檔案名稱搜尋find . -name filename -print
(17) tee: 將資料輸出到標準輸出裝置(螢幕) 和檔案比如:somecommand | tee outfile
(18) basename file: 返回不包含路徑的檔案名稱比如: basename /bin/tux將返回 tux
(19) dirname file: 返迴文件所在路徑比如:dirname /bin/tux將返回 /bin
(20) head file: 列印文字檔開頭幾行
(21) tail file : 列印文字檔末尾幾行
(22) test:測試3種對象(字串、整數、檔案屬性),為真返回0,假返回1
(23) sed: sed是一個基本的尋找替換程式。可以從標準輸入(比如命令管道)讀入文本,並將
結果輸出到標準輸出(螢幕)。該命令採用Regex(見參考)進行搜尋。不要和shell中的萬用字元相混淆。比如:將linuxfocus 替換為LinuxFocus :cat text.file | sed 's/linuxfocus/LinuxFocus/' > newtext.fileawk: awk 用來從文字檔中提取欄位。預設地,欄位分割符是空格,可以使用-F指定其他分割符。