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