繼續指令囉!
好想結束指令的部分...
雖然說是指令,但是今天主體其實不是指令,而是很多的重導I/O
昨天在cat的部分有提到>和>>
說好今天要講所以我來了~
他們兩個都可以寫入檔案,差別在於一個>會覆蓋原本的檔案,而兩個的>>會把想要加進去的東西加在檔案後面
再強調一次,>會覆蓋原本的檔案,因為本人就是苦主QQ
這邊舉個例子順便再提一個新的指令:echo
(註1)
用法:echo "[test]" [> filename]
這樣就會把test這個文字寫入你想要放的檔案裡(昨天的cat
是把檔案寫入,今天的echo
是把文字寫入)
這時候你可能會有一個問題,那如果我是想要把指令的結果寫入檔案,那該怎麼做呢?
嗯...這時候不是用cat也不是用echo,這時候什麼東西都不用,只要打你要的指令再直接加上>
或>>
跟檔案名稱就可以了
像是:ls > test.txt
這樣就可以把ls這個指令跑出來的東西弄到test.txt裡面了
more跟less的功能是在檔案非常長的時候,可以分頁瀏覽,像這樣
他們是幾乎一樣的,但是less比較快,因為他不會把整個檔案讀出來再給你看,而是讀一部分先給你看。
用法:more [file name]
less [file name]
然後他就會很開心的幫你分頁瀏覽,你就會看得很舒服。
看完要離開的時候,按一下q就好了!
顧名思義,他看的就是檔案的開頭和結尾
有時候會用到,畢竟你可能知道你要看的東西在頭或尾然後又不想用上面提的more跟less
用法:head [file name]
tail [file name]
但是,我真的很少用XD(所以篇幅超少)
再來是wc
(不是廁所喔)
它的功用是看檔案的行數、字數、byte數
用法:wc [filename]
然後他會出現這樣
由左到右就是行數、字數、byte數、檔名,真是一目了然。
再來要說的是grep
他是一個很好用的東西,功能是字串搜尋。
用法:cat [file] | grep [test]
這樣子他就會把在file裡面符合test這個字串的句子列出來
然後你想必也看到剛剛grep那有個|
吧,他是pipe(管道),也是今天的壓軸
顧名思義,它的用途是把前面的那個程式產生的東西傳給後面的程式。
他的用法是這樣的:[command1] | [command2]
(是不是超難懂XD)
他會把command1的結果"傳送給"command2做處理
舉幾個例子:
cat httpd.conf | grep php(把httpd.conf這個檔案打開然後傳給grep讓他找裡面有php的句子)
cat rc.conf | less(打開rc.conf然後傳送給less讓我們分頁瀏覽)
ls /etc | grep hosts(看/etc這個目錄下有甚麼傳給grep讓他找檔名有hosts的檔案)
這樣應該比較瞭解了吧~
又一天了呢!
今天的東西比較複雜了一點,尤其是pipe的部分。
但是grep建議一定要學起來,因為會很常用。其他的,就看自身能力吧~
註一
echo還有一個功能是叫,對就是叫。
用法:echo [something]
然後他就會輸出something,對就這樣,通常用不到除非是在寫shell script