一、通配符 *shell
「 * 」表示通配,見下圖,vim
當前目錄下有5個 txt 文件。也有其餘寫法,結果也是不同,見下圖,bash
以上就是 * ,和 * 有對比的字符是 ? 。見下圖,3d
?表示一個任意的字符,數字和英文字母均可以。接着作對比,見下圖,blog
還有一種用法是使用中括號,見下圖,進程
還有花括號的用法,見下圖,文檔
與中括號不一樣的是,花括號裏面的字符須要用「,」號隔開。後臺
二、輸入輸出重定向終端
> 表示輸入輸出重定向,舉個例子,見下圖,grep
查看 1.txt 和 2.txt 文件,裏面沒有內容,使用 vi 命令在裏面寫上一串數字。從上圖中能夠看出, cat 1.txt > 2.txt 這個命令表示將 1.txt 的內容重定向到 2.txt ,就是將 2.txt 的內容刪除掉,將 1.txt 的內容重寫到 2.txt 。
>> 表示追加內容,舉個例子,見下圖,
爲了將 1.txt 和 2.txt 文件區別開,編輯更改一下 2.txt 裏面的內容,而後輸入命令 cat 1.txt >> 2.txt ,能夠看到,1.txt 裏的內容追加到 2.txt 上了。
2> 會把這個命令產生的錯誤信息,指定輸入到一個文件裏,表示錯誤的輸出。舉個例子,見下圖,
運行一個有問題的命令 lsaaa ,提示未找到命令。這時候能夠把這個錯誤信息定向到文件 a.txt 裏去。而後用命令 cat a.txt 查看,裏面的文件內容就是剛纔的錯誤信息「-bash: lsaaa: 未找到命令」。上圖中的 2>> 表示追加劇定向。
總結一下:
> 表示輸出,輸出到指定的文件
>> 表示追加劇定向
2> 表示錯誤的重定向
2>> 表示錯誤的追加劇定向
那麼,咱們也能夠把 > 和 2> 結合起來,寫成 &> ,表示正確和錯誤的輸出信息所有定向到一個文件裏去。舉個例子,見下圖,
一樣也支持追加,表示爲 &>> ,見下圖,
還有一種方法,把正確和錯誤的輸出區分開,見下圖,
表示正確的輸出到 1.txt 文件,錯誤的輸出到 a.txt 文件。這個之後寫 shell 腳本的時候,用的比較多。
< 表示爲輸入重定向。舉個例子,見下圖,
wc -l 爲查看文本文檔行數的命令,< 輸入重定向的左邊必定是一條命令,右邊是文件。上圖第二條命令裏面,嘗試左邊爲文件的時候,出現報錯。
輸入重定向作個瞭解便可,通常工做中用不到。
管道符和做業控制
三、管道符
管道符以前介紹過,它表示把一個文件的輸出內容傳遞給後面的命令。舉個例子,見下圖,
關於管道符,有不少命令是能夠用的,就是把前面命令輸出的結果,交給後面的命令。後面會常常用到。
四、做業控制
以前說過一個快捷鍵,ctrl + z ,表示暫停一個任務。見下圖,
輸入命令 vim 1.txt ,回車,進入文件 1.txt 編輯。這時候想暫時退出來作其餘事情的話,就可使用 ctrl +z 命令來中止,這時候就能夠退出來回到命令窗口,作其餘的事情。那麼 vim 這個命令其實還在後臺,怎麼再調出來呢?輸入命令 fg ,回車,見下圖,
又進入 vim 1.txt 這個頁面裏。fg 就是 front ground ,到前面來的意思。
後臺的運行文件能夠有多個,注意上圖中的數字序號,命令 jobs 能夠列出後臺運行的任務信息。如今要把後臺運行的任務調出來的話,命令 fg 後面就要加上 id 號,例如 fg 1 或是 fg 2 。若直接輸入 fg 的話,默認是跳出最後執行的一個任務。
既然有 front ground ,也就有 back ground ,命令爲 bg ,調到後臺去。見下圖,
將 vim a.txt 任務調到後臺去,就變成上圖紅色框框的內容,至關於在後臺運行。通常使用 vim 命令是達不到這種效果的,
如今運行命令 vmstat 1 ,這個命令後面會講到,它會自帶的顯示系統的狀態,並且是不停的顯示。按住 ctrl + z ,就能夠中止命令,而後輸入 fg 命令,就能夠把它調回來,接着按住 ctrl + z ,就能夠中止命令,再輸入 bg ,
就可讓它在後臺運行,在運行的過程當中,也能夠運行其餘命令,命令輸入正確便可,即便被打斷了也沒有關係。見下圖,
能夠看到 vmstat 1 在運行中。接着見下圖,
輸入 fg ,能夠進入 vim 1.txt ,進去以後,vmstat 1 還在一直運行,輸入 :q! ,強制退出,而後輸入 jobs ,能夠看到,只有一個任務運行。
目前爲止, vmstat 1 還在後臺運行,把它調到前臺,輸入 fg 命令,回車,就進入前臺執行命令。這時候,輸入其餘命令就無論用了。能夠按住 ctrl + c ,直接結束命令。執行命令 jobs ,就能夠看到沒有任務了。
剛纔說到一個觀點,運行一條像 vmstat 1 這樣的命令時,使用 bg 命令把它調到後臺去,顯示成運行中,仍是會運行的。可是這邊 vim 的命令是不算的,由於中止一條 vim 命令,不論是在前臺仍是後臺,都是不會運行、中止的狀態。
接着介紹一個命令 sleep ,sleep 1000 表示暫停1000秒,整個工做暫停運行,1000秒以後纔會恢復。見下圖,
bg 就是把一條命令調到後臺去運行。還有一個命令,能夠不用先運行命令,就能直接在後臺運行,加一個 & ,見下圖,
這邊說一下 xshell ,若是另外打開一個終端,運行 jobs 命令,是看不到命令的。意思就是這個終端看不到另一個終端後臺運行的命令,可是能夠看到進程,輸入命令 ps aux |grep sleep ,回車,
關於 ps 命令,後面還會說到。
總結:
ctrl + z 暫停一個命令
fg 調出一個命令到前臺
bg 將一個命令調到後臺並運行
& 在一條命令後面加上這個符號,能夠直接將命令調到後臺運行
sleep +時間 暫停系統多少秒
vmstat 1 不停的顯示系統狀態命令