Shell常用特殊符號

2021-07-28 13:40:24 字數 1593 閱讀 4891

* 代表零個或者多個任意字元

? 代表乙個任意字元

# 注釋符號,注釋說明的意思,即#後面的內容linux忽略掉

#ls -lhtr 【並沒有返回結果】

#abc=123#aaa

#echo $abc

123或者是在shell指令碼中作解釋符號、解釋說明用,用在需要說明注釋的文字行首

\ 脫意字元,將後面的特殊符號(例如*)還原為普通字元

#ls -d test\*

無法訪問test*:沒有那個檔案或目錄

| 管道符,將前面的命令的結果丟給符號後面的命令。

後面的命令,並非所有命令都可以,一般針對文件操作的命令比較常用,例如 cat,less,head,tail,grep,cut,sort,wc,uniq,tee,tr,split,sed,awk等等。

其中grep,sed,awk 為正規表示式必須掌握的工具。

#cat testb.txt |wc -l

0wc -l 用來計算乙個文件有多少行。

$ 特殊符號

用於變數前面的識別符號號,$path $home

和!一起使用,#!$ 上條命令中最後乙個引數,就是上條命令中最後出現的東西如路徑、檔名等等。

; 特殊符號

可以在一行執行多條命令

#ls -d test*; touch test111; ls-d test*

test1 test2

test1 test2 test111

~ 特殊符號

使用者的家目錄,如果是root則是/root,普通使用者/home/username

& 特殊符號

把命令放到後台執行,需要加上這個符號。通常用於命令執行時間比較長的情況。

#sleep 30 &

[1] 3260

#jobs

[1]+ running sleep 30 &

> >> 2> 2>> < 重定向符號

> 重定向

>> 追加重定向

2> 錯誤重定向

2>> 錯誤追加重定向

< 反向重定向

反向重定向,會將右邊的文件的內容,重定向給左邊的這個命令,比如 # wc -l < 1.txt

當執行一條命令報錯時,報錯資訊會輸入到當前螢幕,如果想重定向到乙個文字裡,則要用2>和2>>。

#ls aaa

沒有那個檔案或目錄

#ls aaa 2>/tmp/error

#cat /tmp/error

沒有那個檔案或目錄

[ ] 中括號

中間為字元組合,代表中間字元中的任意乙個。括號內只能是完全匹配,不可以使用*

#ls -d test*

test1 test2 test3 testa testb testc

#ls -d test[1-3]

test1 test2 test3

#ls -d test[1a3]

test1 test3 testa

#ls -d test[0-9]

test1 test2 test3

#ls -d test[0-9a-z]

test1 test2 test3 testa testb testc

shell 特殊符號

變數 含義 0 當前指令碼的檔名 n傳遞給指令碼或函式的引數。n 是乙個數字,表示第幾個引數。例如,第乙個引數是 1,第二個引數是 2。傳遞給指令碼或函式的引數個數。傳遞給指令碼或函式的所有引數。傳遞給指令碼或函式的所有引數。被雙引號 包含時,與 稍有不同,下面將會講到。上個命令的退出狀態,或函式的...

shell特殊符號

變數字首,組合,正則裡面表示行尾 多條命令寫到一行,用分號分割 使用者家目錄,後面正規表示式表示匹配符 放到命令後面,會把命令丟到後台 2 2 指定字元中的乙個,0 9 a za z abc 和 用於命令之間 將多個命令寫到一行 root localhost test ls sh a.txt du ...

shell特殊符號

1 shell中的特殊符號 1.1 美元符號。用來表示變數的值。如變數name的值為mike,則使用 name就可以得到 mike 這個值。1.2 井號。除了做為超級使用者的提示符之外,還可以在指令碼中做為注釋的開頭字母,每一行語句中,從 號開始的部分就不執行了。1.3 雙引號。shell不會將一對...