Linux命令(2)

1. (( 雙重尖括號命令

(( ))雙尖括號和[[ ]]雙方括號都是bash shell的兩項新的擴展,提供了可以在if-then語句中使用的高級特性:

用于數(shù)學表達式的雙尖括號
用于高級字符串處理功能的雙方括號

雙尖括號允許將高級數(shù)學表達式放入比較中,格式:(( expression ))

比如可以這樣使用:

val1=10
if (( $val1 ** 2 > 90 ))
then
        (( val2 = $val1 ** 2 ))
        echo "the square of $val1 is $val2"
fi```

另外也不需要將雙尖括號內(nèi)的表達式大于號轉(zhuǎn)義,乘號也不許要轉(zhuǎn)義

####2. [[ 雙方括號

該命令提供了針對字符串比較的高級特性,格式:`[[ expression ]] `
可以使用標準字符串進行比較,還可以使用模式匹配,即使用正則表達式來匹配字符串的值。

if [[ $USER == r* ]]
then
echo "Hello $USER"
else
echo "Sorry. I do not know you"
fi```

另外一個例子:

[[ $step != 1 && $step != 2 ]] && {
        echo "Usage: ./example.sh 1 or 2"
        exit 1
}```

####3. tee雙重重定向

tee 會將數(shù)據(jù)流送與文件與屏幕,輸出到屏幕的是stdout,可以讓下一個命令繼續(xù)處理。
`tee -a file `以累加的方式寫入file
一個例子:

echo "clean log files" | tee -a $out_file```

4. cut 選取命令

cut 可以將一段信息的某一段切出來,處理的信息是以行為單位的。
cut -c表示以字符為分隔進行cut
cut -d "分隔字符" -f fields ,-f后面接需要第幾段,可以是一個范圍,例子如下:

grep -m 1 dbg $f | cut -d '"' -f 2 | cut -d ',' -f 4- ```
grep -m 1表示的是只匹配一次

####5. tr 命令
用于刪除一段信息中的文字,或者進行文字信息的替換。
`tr -[ds] SET1...`
-d 表示刪除信息中的這個SET1字符串
-s 表示替換掉重復(fù)的字符

例子:

首先是文字的替換

last | tr '[a-z]' '[A-Z]'

刪除

cat /etc/passwd | tr -d ':'
cat $f | tr -d '\n'```

6. sed 工具

分析關(guān)鍵字的使用,統(tǒng)計。其本身也是一個管道命令,可以分析standard input,sed 可以進行數(shù)據(jù)替換,刪除,新增,選取特定行的功能。

參數(shù):

-e 直接在命令行模式上進行sed動作編輯
-f 直接將sed動作寫在文件中,-f filename可以執(zhí)行filename內(nèi)的動作
-i 直接修改讀取的文件內(nèi)容,不是由屏幕輸出
-n 只有sed處理的那一行才會在屏幕輸出

動作:

n1,n2 function 其中n1 n2代表行
function:
a 新增
c 替換
d 刪除
i 插入
s 替換 sed -e s/"^-p"http://g
p 打印 p通常會與sed -n一起運行

例子:

#刪除第2~5行
nl /ect/passwd | sed '2,5d' 
#替換為空字符串
cat /etc/passwd | sed -e s/"^-p"http://g
#僅列出文件的第5-7行
nl /ect/passwd | sed -n '5.7p'```

####7. awk 工具

這個可以參考之前的gawk文章:http://www.itdecent.cn/p/bddcfee1e607

這里只強調(diào)一下,處理規(guī)則默認是按行處理,由內(nèi)建變量ORS決定,默認是換行符,然后每一行由內(nèi)建變量FS(表示字段間的間隔符),默認為空格,分成若干個欄位,其中$0表示整行,$1表示第一個欄位,然后以此類推。NF表示欄位(字段個數(shù))

####8. sleep 延遲指定時間

sleep命令常用于在Linux shell腳本中延遲時間。

sleep 5s
sleep 5m
sleep 5d
sleep 5h```

9. basename 命令

basename返回一個字符串參數(shù)的基本文件名稱。
basename string Suffix
basename 命令讀取 String 參數(shù),刪除以 /(斜杠) 結(jié)尾的前綴以及任何指定的 Suffix 參數(shù),并將剩余的基本文件名稱寫至標準輸出。
例子:

reqid=$(basename $f .$ubx)
#就是將一個文件的前綴還有后綴去掉,只留下基本的文件名```

####10. echo 命令
有幾個特殊的用法得提一下,因為記不起來。。
>-n 表示不換行輸出,下一個輸出在同一行上
>-e 處理特殊字符

例子:

輸出換行符

echo -e "old:$f\nnew: $nf\n"
echo -n "pls enter your password: "```

11. ls命令

有一個參數(shù)是ls -1
表示將內(nèi)容以一列進行顯示。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,245評論 2 33
  • 每天進步一點點,隨手記錄~ 詳細參考這里,這里只記錄我以前不知道的,好吧,我知道的的確很少很少~~~ 1.命令格式...
    別卡機閱讀 782評論 0 49
  • 今天一時沖動,把/etc/sudoers文件改了,而且只是把一個#刪除了,就無法使用sudo su命令了,老是提示...
    夏夜星語閱讀 21,239評論 1 3
  • 文| Lydia谷木青 看著窗外的春光慵懶地撒向大地;一樹一樹的剛剛吐納出的嫩芽;一簇簇的鮮花嬌艷欲滴;穿著情侶裝...
    Lydia谷木青閱讀 804評論 5 3
  • 云淡風輕月影單,樹蔥山遠鳥深酣。 山幽靜悄聽花怒,燈暗光柔探晚寒。 車掣心焦急搶道,病重情險令加班。 窗前光淡零星...
    徐一村閱讀 378評論 11 22

友情鏈接更多精彩內(nèi)容