理解Linux重定向

2021-06-28 13:10:35 字數 954 閱讀 6185

1. linux中執行open操作,開啟乙個檔案時,會在程序檔案描述表中新新增一項(檔案描述符id + 指向核心檔案描述表項的指標)。

檔案描述符表

------------

fd0 0   | p0 -------------> 檔案表0 ---------> vnode0

------------

fd1 1   | p1 -------------> 檔案表1 ---------> vnode1

------------

fd2 2   | p2

------------

2. 重定向時,直接修改指向核心檔案描述表項的指標。(dup, dup2系統呼叫)

> 將標準輸出重定向到某個檔案中。 (注:>&1 重定向到標準輸出)

檔案描述符表

------------

fd0 0   | p0

------------

n_fd 1   | p1 -----------

------------               \

fd2 2   | p2                    \

------------                 _\|

fd3 3   | p3 -------------> 檔案表3 ---------> vnode3

------------

3. >& 將標準輸出和錯誤輸出都重定向到指定檔案。

如 make >& log 將make輸出的所有資訊都寫入log檔案中。(也可以這麼寫:make > log 2 >& 1)

4. 利用nc命令將主機a中的重定向到主機b:

1). b的終端中執行如下命令:

nc -lvn 1234

2). a中執行:

mknod /tmp/testpipe

/bin/sh 0/tmp/testpipe

Linux中重定向 追加重定向與輸入重定向

簡單介紹一下重定向 追加重定向與輸入重定向,輸入追加重定向的用法 重定向 我們可以將想要輸出的內容通過重定向新增到某個檔案中 ps 將hello寫入到當前資料夾下的a.txt檔案中,然後檢視a.txt檔案內容 追加重定向 追加重定向和重定向大致相同,不同點是追加重定向在檔案的基礎上繼續新增內容 ps...

Linux重定向(輸入輸出重定向)

我們知道,linux 中標準的輸入裝置預設指的是鍵盤,標準的輸出裝置預設指的是顯示器。而本節所要介紹的輸入 輸出重定向,完全可以從字面意思去理解,也就是 通常是用檔案或命令的執行結果來代替鍵盤作為新的輸入裝置,而新的輸出裝置通常指的就是檔案。對於輸入重定向來說,其需要用到的符號以及作用如表 1 所示...

重定向 Linux重定向用法詳解

相信大家平時都會有需要複製貼上資料的時候,如果是開啟檔案進行複製貼上,就不可避免的需要較多的滑鼠與鍵盤的操作,就會比較繁瑣。那麼有沒有可以省掉這些繁瑣操作的複製貼上的方法呢?答案是肯定的,那就是重定向。重定向是一種高效的方法,無需大量的滑鼠與鍵盤操作就可以完成資料的轉移。重定向可以分為輸入重定向以及...