您好,登錄后才能下訂單哦!
1. 輸入輸出重定向
其中計(jì)算機(jī)的結(jié)構(gòu)中一個(gè)重要的環(huán)節(jié)就是I/O設(shè)備,而I/O設(shè)備就是輸入輸出設(shè)備,通俗的說鍵盤,顯示器,終端等。而I/O設(shè)備中有三種不同的運(yùn)行狀態(tài),就是標(biāo)準(zhǔn)輸入,標(biāo)準(zhǔn)輸出以及錯(cuò)誤輸出。 "<"為輸入重定向,是把后面的內(nèi)容輸出給前面的命令執(zhí)行,比如:ls < /etc 把/etc下的內(nèi)容輸出給ls命令執(zhí)行;">" 為輸出重定向,把前面的內(nèi)容輸出作為后面選項(xiàng)的輸入:cat file > mail -s "e-mail" username 。其中標(biāo)準(zhǔn)輸入的為STDIN -0為默認(rèn)接受鍵盤的輸入, 標(biāo)準(zhǔn)輸出的為STDOUT -1 為默認(rèn)輸出到終端,標(biāo)準(zhǔn)錯(cuò)誤為STDERR -2 ,默認(rèn)把錯(cuò)誤信息輸出到終端。其中 -0 -1 -2 可以在輸入和輸出符號(hào)前面進(jìn)行, “比如 XXX(錯(cuò)誤信息) > filename 這樣會(huì)直接把錯(cuò)誤信息直接在終端上輸出出來,但是 2> 這樣,在輸出重定向符號(hào)的前面加上標(biāo)準(zhǔn)錯(cuò)誤的符號(hào)就可以把錯(cuò)誤的信息提示重定向到指定的文件夾里?!边€有一種就是把正確的信息和錯(cuò)誤的信息一起輸出到指定的文件夾里:“比如使用ls /boot /ddd(不存在的目錄) > /testdir/a.可以使用 &>成功的把兩個(gè)信息重定向到一個(gè)文件或目錄里,也可以使用1>2&這樣的格式,但是這個(gè)需要注意的是這個(gè)格式是相對來說比較老的,其必須在命令的最后,并且1 2 和前面的文件正確還是錯(cuò)誤文件的位置必須一一對應(yīng)”。 (2),在使用輸入和輸出重定向的時(shí)候如果輸入的信息時(shí),如果重定向的文件是存在的并且里面是有內(nèi)容的,這樣的話將會(huì)導(dǎo)致文件內(nèi)容會(huì)被后來的重定向輸出覆蓋,為了防止輸入的內(nèi)容被覆蓋,可以使用 set -C ,這樣的話可以防止文件的內(nèi)容被覆蓋,set +C是允許文件被覆蓋,這個(gè)命令最大的作用就是以后在編寫腳本的時(shí)候防止被覆蓋,這個(gè)命令是一次性的,并且是只對當(dāng)前用戶有效。
">>" 這個(gè)符號(hào)位追加重定向,使用輸出重定向時(shí)會(huì)覆蓋file的內(nèi)容,但是使用追加重定向僅僅是向文件里注入信息,并不會(huì)覆蓋或清空文件里面原本的信息內(nèi)容。對于多條命令重定向是把多條命令使用括號(hào)括起來,中間用分號(hào)隔開:(pwd;ls)>/testdir/test.log 類似于這樣可以在/testdir/test.log文本中查看當(dāng)前目錄的路徑還有目錄信息。
下面是一些額外的小知識(shí):
2.硬鏈接的本質(zhì)就是對同一個(gè)文件進(jìn)行賦予多個(gè)文件名字,其鏈接數(shù)就等于文件名字的數(shù)量,每個(gè)目錄引用相同的inode號(hào),硬鏈接不能跨越分區(qū)或者驅(qū)動(dòng);軟鏈接 ln -s 原始文件的絕對路徑或相對路徑(是相當(dāng)于軟鏈接文件的文件相對路徑),也就相當(dāng)與快捷方式,可以跨分區(qū)。硬鏈接是一個(gè)文件,軟鏈接是兩個(gè)文件。
rm刪的是名字,不是文件的內(nèi)容
Linux系統(tǒng)內(nèi)部不使用文件名,而使用inode號(hào)碼來識(shí)別文件。對于系統(tǒng)來說,文件名只是inode號(hào)碼便于識(shí)別的別稱或者綽號(hào)。表面上,用戶通過文件名,打開文件。實(shí)際上,系統(tǒng)內(nèi)部這個(gè)過程分成三步:首先,系統(tǒng)找到這個(gè)文件名對應(yīng)的inode號(hào)碼;其次,通過inode號(hào)碼,獲取inode信息;最后,根據(jù)inode信息,找到文件數(shù)據(jù)所在的block,讀出數(shù)據(jù)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。