這裡存放一些用來可以檢視檔案內容的命令
echo
$echo hello --在螢幕上顯示 hello
echo 這個指令是將
之後的字串顯示在螢幕上,所以並沒有辦法直接看見檔案的內容,不過在編輯檔案時,在檔案裡加上 echo hello 的話,執行檔案時畫面上就會直接顯示出 hello 這個字
nl
$nl abc --顯示內容並加上行號
$nl -b a -n rz abc --以6位數顯示行號如 : 000001、000002
參數:
-b :指定行號指定的方式,主要有兩種:
-b a :表示不論是否為空行,也同樣列出行號
-b t :如果有空行,空的那一行不要列出行號
-n :列出行號表示的方法,主要有三種:
-n ln :行號在螢幕的最左方顯示
-n rn :行號在自己欄位的最右方顯示,且不加 0
-n rz :行號在自己欄位的最右方顯示,且加 0
cat
$cat abc --顯示 abc 這個檔案的內容
$cat -n abc --顯示出來的內容會加上行號
head
$head -n 10 /var/log/syslog --只顯示檔案的頭 10 行
$head -n -100 /var/log/syslog --檔案的後 100 行都不顯示
netstat -an | head -n 10 --進階用法,顯示 port | 並只顯示前10行
tail
$tail /var/log/messages --從檔案的末端開始顯示內容 ( 預設顯示 10 行 )
$tail -n 30 /var/log/messages --從檔案的末端開始顯示 30 行的內容
grep
$grep 'test' abc --將 abc 這個文件裡有 test 這個字的整行顯示出來
$grep 'test' aa bb cc --從 aa、bb、cc 這三個檔案裡將有 test 這個字的整行顯示出來
基本參數
-i :忽略大小寫的不同,所以大小寫視為相同
-n :順便輸出行號
-v :反向選擇,亦即顯示出沒有 '搜尋字串' 內容的那一行
--color=auto : 將找到的關鍵字部分加上顏色的顯示
進階用法
-A :後面可加數字,為 after 的意思,除了列出該行外,後續的 n 行也列出來
-B :後面可加數字,為 befer 的意思,除了列出該行外,前面的 n 行也列出來
--color=auto 可將正確的那個擷取資料列出顏色
$ifconfig -a | grep -A1 eth0 --抓取 eth0 那行並將後面一行也顯示出來
cut
$cat abc | cut -d -f ':' 2,3 --顯示 abc 的內容並以 : 號為分界只抓取第二段及第三段
-d :後面接分隔字元。與 -f 一起使用
-f :依據 -d 的分隔字元將一段訊息分割成為數段,用 -f 取出第幾段的意思
-c :以字元 (characters) 的單位取出固定字元區間
變數處裡
${ } --專門用在處理變數上
$user = a01 : a02 : a03
$echo ${user#*:} --從
左至右尋找第一個 : 字號並
刪除 : 字前面的字元
( * 為萬用字元 )
a02 : a03 --顯示結果
$user = a01 : a02 : a03
$echo ${user##*:} --從
左至右尋找最後一個 : 字號並
刪除 : 字前面的字元
a03 --顯示結果
$user = a01 : a02 : a03
$echo ${user%:*} --從
右至左尋找第一個 : 字號並
刪除 : 字後面的字元
( * 為萬用字元 )
a01 : a02 --顯示結果
$user = a01 : a02 : a03
$echo ${user%%:*} --從
右至左尋找最後一個 : 字號並
刪除 : 字後面的字元
a01 --顯示結果
範例 :
$name = $(cat /etc/passwd | grep student) --顯示帳號檔案並只抓取有 student 的行列放進
name 這個變數中
$() : 是變數中用來處理命令的方式
$n1 = ${name%%:*} --從 name 變數中從右至左尋找最後一個 : 字號並刪除 : 字後面的字
$echo $n1 --顯示 n1 裡的內容
student --顯示結果,這行只剩下 student ,其他的都被刪除了