* 代表零個或者多個任意字元
? 代表乙個任意字元
# 注釋符號,注釋說明的意思,即#後面的內容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不會將一對...