Shell腳本學習(一):shell變量和一些常用指令
shell允許使用者建立變量存儲資料,但是不支援基本資料類型變量(如int,float.....),shell将任何賦給變量的值都解釋為一串字元,命名的規則跟C++一樣。
一、Shell有如下四種變量:
1.使用者自定義的變量
這個好了解,就是使用者自己定義的變量,如:X,Y,COUNT(shell中變量通常全大寫)
2.位置變量(也就是指令行參數)
(1) $0:也就是腳本檔案名
(2) $1,$2...$9:1-9個指令行參數
(3) $#:指令行參數的個數,比C中的少一個
(4) [email protected]:也就是"$1,$2...$9"
(5) $?:前一個指令的退出狀态,正常退出值為0,異常退出為1或2
(6) $*:我測試出來跟[email protected]貌似是一樣的,還望大神解釋...
(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是一個基本的查找替換程式。可以從标準輸入(比如指令管道)讀入文本,并将
結果輸出到标準輸出(螢幕)。該指令采用正規表達式(見參考)進行搜尋。不要和shell中的通配符相混淆。比如:将linuxfocus 替換為LinuxFocus :cat text.file | sed 's/linuxfocus/LinuxFocus/' > newtext.fileawk: awk 用來從文本檔案中提取字段。預設地,字段分割符是空格,可以使用-F指定其他分割符。