?? 管道操作.txt
字號(hào):
管道命令是Linux系統(tǒng)的一個(gè)很重要的內(nèi)容,這里我們只介紹一些簡(jiǎn)單的。
在 Linux 中,管道連接著一個(gè)命令的標(biāo)準(zhǔn)輸出和另一個(gè)命令的標(biāo)準(zhǔn)輸入。
我們應(yīng)該知道我們有的時(shí)候會(huì)用到類似于“>”,“<”之類的重定位的SHELL語言完成特定的工作
而管道是進(jìn)程中類似于重定位用法的一種進(jìn)程之間的通信過程
首先我們已經(jīng)學(xué)過一個(gè)命令cat,用來顯示一個(gè)文件的內(nèi)容,但是你有沒有遇到一個(gè)文件很長,一頁顯示不完的情況?如果你需要把一個(gè)很長的文件分頁顯示,每當(dāng)你按一個(gè)鍵才顯示下一頁的話,你可以用more命令:
more LoveLetter
這樣,LoveLetter的內(nèi)容顯示在屏幕上,每到一頁就自動(dòng)停下來,等待你的按鍵,然后才繼續(xù)顯示下面一頁。
可是如果我們用ls命令顯示一個(gè)目錄的所有文件的時(shí)候遇到一頁不能顯示完的情況該怎么辦?這就需要一個(gè)管道符號(hào)“|”,就是“\”按鈕上面的字符:
ls /dev | more
下面,我們遇到一個(gè)新的問題,我們不僅僅想要看看/dev目錄下面有哪些文件,我們還希望用一個(gè)文件來紀(jì)錄剛才ls的命令顯示的所有結(jié)果,難道需要用手工輸入?不需要,我們介紹兩個(gè)管道符號(hào):">",">>",也就是大于符號(hào)啦。
ls /dev > filenames.txt
還有一個(gè)管道符號(hào)是由兩個(gè)大于號(hào)組成的“>>”,它和剛才“>”的區(qū)別在于一個(gè)大于符號(hào)的管道是用來創(chuàng)建一個(gè)新的文件 filenames.txt,如果已經(jīng)有了同名的文件就復(fù)蓋掉以前的內(nèi)容;而兩個(gè)大于符號(hào)的管道是用來在已經(jīng)存在的文件后面追加新的內(nèi)容,如果沒有這個(gè)文 件就創(chuàng)建它。
現(xiàn)在我們vi filenames.txt看看一共有多少行,是不是1000多行啊?我們運(yùn)行
ls /dev >> filenames.txt
再來vi filenames.txt看看,是不是一共2000多行啦?
其實(shí)這兩個(gè)管道符號(hào)很容易記憶,箭頭向右邊的意思就是把前面命令的內(nèi)容輸入到后面的文件中去,剛才那個(gè)“|”管道符號(hào)是用來把前面命令的輸出結(jié)果當(dāng)作后面一個(gè)命令的輸入數(shù)據(jù)。
下面我們看一個(gè)和剛才“>>”剛剛相反的管道符號(hào)“<<”:
cat >> friends << "EOF"
> a
> b
> c
> EOF
運(yùn)行第一行以后,意思就是把我們接下來的輸入內(nèi)容保存到friends文件里面,當(dāng)我們輸入“EOF”的時(shí)候結(jié)束。“<<”的意思就是向前面的命令傳送一個(gè)數(shù)據(jù)。
中間我象征性的輸入了a b c三行,每一行前面的“>;”是系統(tǒng)自動(dòng)產(chǎn)生的提示符號(hào)。第四行輸入“EOF”系統(tǒng)就保存剛才輸入的a b c三行到一個(gè)叫做friends的文件里面去。
現(xiàn)在我們cat friends看看是不是剛才的輸入成功的保存了。怎么樣,同樣的命令,使用不同的管道符號(hào),即可以顯示文件內(nèi)容,也可以用來創(chuàng)建文件,這就是管道符號(hào)的強(qiáng)大
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -