㈠ linux ">" ">>" "<" "<<"什麼意思
輸出/輸入重導向
> >> < << :> &> 2&> 2<>>& >&2
文件描述符(File Descriptor),用一個數字(通常為0-9)來表示一個文件。
常用的文件描述符如下:
文件描述符 名稱 常用縮寫 默認值
0 標准輸入 stdin 鍵盤
1 標准輸出 stdout 屏幕
2 標准錯誤輸出 stderr 屏幕
我們在簡單地用<或>時,相當於使用 0< 或 1>(下面會詳細介紹)。
* cmd > file
把cmd命令的輸出重定向到文件file中。如果file已經存在,則清空原有文件,使用bash的noclobber選項可以防止復蓋原有文件。
* cmd >> file
把cmd命令的輸出重定向到文件file中,如果file已經存在,則把信息加在原有文件後面。
* cmd < file
使cmd命令從file讀入
* cmd << text
從命令行讀取輸入,直到一個與text相同的行結束。除非使用引號把輸入括起來,此模式將對輸入內容進行shell變數替換。如果使用<<- ,則會忽略接下來輸入行首的tab,結束行也可以是一堆tab再加上一個與text相同的內容,可以參考後面的例子。
* cmd <<< word
把word(而不是文件word)和後面的換行作為輸入提供給cmd。
* cmd <> file
以讀寫模式把文件file重定向到輸入,文件file不會被破壞。僅當應用程序利用了這一特性時,它才是有意義的。
* cmd >| file
功能同>,但即便在設置了noclobber時也會復蓋file文件,注意用的是|而非一些書中說的!,目前僅在csh中仍沿用>!實現這一功能。
: > filename 把文件"filename"截斷為0長度.# 如果文件不存在, 那麼就創建一個0長度的文件(與'touch'的效果相同).
cmd >&n把輸出送到文件描述符n
cmd m>&n 把輸出 到文件符m的信息重定向到文件描述符n
cmd >&-關閉標准輸出
cmd <&n 輸入來自文件描述符n
cmd m<&n m來自文件描述各個n
cmd <&-關閉標准輸入
cmd <&n-移動輸入文件描述符n而非復制它。(需要解釋)
cmd >&n-移動輸出文件描述符 n而非復制它。(需要解釋)
注意: >&實際上復制了文件描述符,這使得cmd > file 2>&1與cmd 2>&1 >file的效果不一樣。更多Linux知識可參考《Linux就該這么學》。
㈡ Linux文件描述符表和文件的關系
Linux中的文件類型
Linux系統中把一切都看做文件,包括普通文件-、目錄文件d、字元設備文件c、塊設備文件b、符號鏈接文件l。文件描述符是內核為了高效管理已被打開的文件所創建的索引(一個非負整數),用於指代已被打開的文件,Linux下所有的的I/O操作的系統調用都是通過文件描述符執行。例如0表示標准輸入、1表示標准輸出、3表示標准錯誤
,文件描述符會在這個基礎上遞增。
文件描述符、文件、進程之間的關系
每個文件描述符都指向一個打開的文件相對應
不同的文件描述符可能指向同一個打開的文件
相同的文件可能被不同的進程打開,也可以在被同一個進程打開多次
文件描述符表:
進程級的列表,也就是用戶區的一部分,進程每打開一個文件就會新建一個文件描述符,同時只能通過文件描述符的函數訪問,否則進程無法直接對其進行訪問。
系統文件表:
系統級的列表,對當前系統的所有進程都共享,每條條目包含文件偏移量、訪問模式以及指向它的文件描述符的條目計數
文件系統索引節點表:
inode索引節點表(UID、GID、ctime、mtime、atime、讀寫執行許可權、鏈接數、block位置)
㈢ 寫關於標准輸入、標准輸出和標准錯誤文件。 Linux中有哪些不同的過濾器命令
標准輸入
標准輸入是文件描述符0。它是命令的輸入,預設是鍵盤,也可以是文件或其他命令的輸出。
標准輸出
標准輸出是文件描述符1。它是命令的輸出,預設是屏幕,也可以是文件。
標准錯誤
標准錯誤是文件描述符2。這是命令錯誤的輸出,預設是屏幕,同樣也可以是文件。
管道
可以通過管道把一個命令的輸出傳遞給另一個命令作為輸入。管道用豎杠 |表示。它的一般形式為:命令1 |命令2一起學習linux
其中|是管道符號。sed、awk和grep都很適合用管道,特別是在簡單的一行命令中。
㈣ linux ls中【^1】的含義
這個符號在規則表達式中,代錶行的 "開頭" 位置,在[]中也與"!"(嘆號)一樣表示「非」
輸出/輸入重導向。
文件描述符(File Descriptor),用一個數字(通常為0-9)來表示一個文件。
常用的文件描述符如下:
文件描述符 名稱 常用縮寫 默認值
0 標准輸入 stdin 鍵盤
1 標准輸出 stdout 屏幕
2 標准錯誤輸出 stderr 屏幕
我們在簡單地用<或>時,相當於使用 0< 或 1>(下面會詳細介紹)。