天天看點

Shell腳本學習(一):shell變量和一些常用指令Shell腳本學習(一):shell變量和一些常用指令

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指定其他分割符。

繼續閱讀