導航:首頁 > 編程語言 > linux編程重定向

linux編程重定向

發布時間:2023-04-06 08:49:28

『壹』 linux重定向的基本概念

(這是理解後面的知識的前提,請務必理解)
a、 I/O重定向通常與 FD 有關,shell的FD通常為10個,即 0~9;
b、 常用FD有3個,為0(stdin,標准輸入)、1(stdout,標准輸出)、2(stderr,標准錯誤輸出),默認與keyboard、monitor有關;
c、 用 < 來改變讀進的數據信道(stdin),使之從指定的檔案讀進;
d、 用 > 來改變送出的數據信道(stdout, stderr),使之輸出到指定的檔案;
e、 0 是 < 的默認值,因此 < 與 0<是一樣的;同理,> 與 1> 是一樣的;
f、 在IO重定向 中,stdout 與 stderr 的管道會先准備好,才會從 stdin 讀進資料;
g、 管道「|」(pipe line):上一個命令的 stdout 接到下一個命令的 stdin;
h、 tee 命令是在不影響原本 I/O 的情況下,將 stdout 復制一份到檔案去;
i、 bash(ksh)執行命令的過程:分析命令-變數求值-命令替代(``和$( ))-重定向-通配符展開-確定路徑-執行命令;
j、 ( ) 將 command group 置於 sub-shell 去執行,也稱 nested sub-shell,它有一點非常重要的特性是:繼承父shell的標准輸入、標准輸出、標准錯誤和任何其他打開的文件描述符。
k、 exec 命令:常用來替代當前 shell 並重新啟動一個 shell,換句話說,並沒有啟動子 shell。使用這一命令時任何現有環境都將會被清除。exec 在對文件描述符進行操作的時候,也只有在這時,exec 不會覆蓋你當前的 shell 環境。

『貳』 [Linux]實用指令:重定向、追加

[Linux]入門
[Linux]目錄結構
[Linux]vi,vim
[Linux]開機、重啟和用戶登錄注銷

[Linux]用戶管理篇:創建用戶指定密碼
[Linux]用戶管理篇:刪除用戶
[Linux]用戶管理篇:組的管理

[Linux] 實用指令:運行級別和找回root密碼
[Linux] 實用指令:幫助指令
[Linux]實用指令: pwd、ls、cd
[Linux]實用指令:mkdir、rmdir、touch
[Linux]實用指令:cp、 rm、mv
[Linux]實用指令: cat、more、less
[Linux]實用指令:重定向、追加
[Linux]實用指令:echo、head 、tail
[Linux]實用指令:ln 、history

『叄』 linux中的重定向問題

不管是>>還是2>>都屬於追加重定向。也就說,新重定向的內容不會覆蓋掉原有文件里的內容,而是另起一行。只不過>>,是只對正確的內容或者結果進行重定向;而2>>,只對錯誤的內容或結果進行重定向。
比如原有文件a.txt,裡面有一內容this is a test。現在我執行了命令:ls -l >> a.txt, 那麼這個時候,因為的ls -l這個命令是正確的,所以ls -l 這個命令的結果將會被追加到a.txt中,以行為單位,寫在了this is a test這段內容下面。
相反如果我執行了命令aaaa 2>> a.txt,那麼因為這個命令是錯的,所以會把我執行的aaaa命令之後所提示的錯誤提示(比如: command not found)追加到a.txt,同樣是在this is a test這段話的下面。

而> 和2>卻是不追加,而是覆蓋掉原有內容,其他意思一樣。

『肆』 簡述linux系統中有哪些重定向的方式

重定向能夠實現Linux命令的輸入輸出與文件之間重定向,以及實現將多個命令組合起來實現更加強大的命令。這部分涉及到的比較多的命令主要有:

cat:連接文件 sort:排序文本行 uniq:忽略或者報告重復行

wc:統計文件的行數、詞數、位元組數

grep:列印匹配製定模式的行

head:輸出文件的頭部 tail:輸出文件的尾部

tee:從標准輸入讀,並往標准輸出或者文件寫

  1. 重定向標准輸出

    使用>可以將本來出現在屏幕的標准輸出信息重定向到一個文件中。

    使用>>可以在實現重定向時不覆蓋原有內容,而是在文件末尾追加內容。

  2. 重定向標准錯誤信息到文件

    使用文件描述符,在shell中,默認用數字0,1,2分別代表標准輸入、標准輸出、標准錯誤。

  3. 屏蔽不想看到的信息

    Linux中有一個特殊的文件/dev/null,這個文件叫做bit bucket,可以接受輸入信息但是什麼都不做。例如:ls/usr/> /dev/null

  4. 重定向標准輸入

    cat命令可以接受一組文件為參數,將這些文件復制到標准輸出。我們前面的例子中已經多次使用到cat命令來將文本文件的內容讀取到屏幕上。cat還有一個很重要的功能:接受一組文件,然後通過重定向將他們重新組合到一個文件中。

    cat ls1 ls2 > ls這個命令將ls1和ls2文件中的內容合並到ls文件中了。cat命令的這種功能不僅僅適用於文本文件,同樣對二進制文件有效。這個場景主要在將多個壓縮包文件合並到一個壓縮包中用到。

    cat也可以不傳遞參數,這種情況下,cat會重定向標准輸入到標准輸出。

  5. 管道

    Linux提供|操作符,該操作符可以將一個命令的輸出作為另一個命令的輸入,這樣通過多個命令的協作來完成一些比較復雜的內容。比如,我們可以通過uniq命令來排除重復的行。但是uniq命令往往需要和sort命令配合使用。因為uniq接收一組排好序的文本,而剛好sort可以將文本行排序。


『伍』 linux中怎麼實現重定向2

在您實現輸出的那行命令後面加上>、>>、<、<<、2>、2>>來實現重定向。
>是每一次重定向時將原先的內容先刪除然後寫入新的數據。
>>是每一次重定向時將新的內容加入到就內容的後面。
<是將指定文件內容重定向到相關命令或者文件中,同時每次執行時先刪除舊的再加入新的。
<<作用同上,只是將新的信息加到舊的信息後面。
2>是將命令執行報錯時,將錯誤信息重定向至指定文件,並且每次執行都會先刪除舊的再加入新的。
2>>和上面一條命里作用一樣,只是將新的錯誤信息加到原來信息的後面

舉例:
1.ls /etc/passwd > user
2.ls /etc/passwd >> user
3.ls idjsoigjs > test
4.ls idjsoigjs >> test
5. mail 用戶名 -s "郵件題目" < file (file是你建的一個文件,裡面內容隨意自己定)
然後輸入 mail 可以看到自己有封郵件題目為(您自定義的名字),輸入相應的數字,您可以按到信件內容為file內容,這就是利用重定向直接將已寫好的信件內容發送出去。
至於1-4的結果,樓主可在輸入完後自行查看user和test的變化來進行對比。

對照劉遄老師的《Linux就該這么學》

閱讀全文

與linux編程重定向相關的資料

熱點內容
波形分析演算法 瀏覽:526
php論壇實訓報告 瀏覽:403
java日期字元串轉換成日期 瀏覽:135
linuxsftp連接 瀏覽:934
光伏日發電量演算法 瀏覽:125
小肚皮app怎麼才有vip 瀏覽:616
php全形轉換半形 瀏覽:927
java字元序列 瀏覽:539
杭州編譯分布式存儲區塊鏈 瀏覽:575
材料壓縮曲線 瀏覽:247
linux命令排序 瀏覽:151
手機熱點加密為啥連接不上電腦 瀏覽:979
編譯器合並計算 瀏覽:959
android音頻曲線 瀏覽:343
linuxftp自動登錄 瀏覽:802
運行編譯後網頁 瀏覽:70
閱讀app怎麼使用 瀏覽:319
centos防火牆命令 瀏覽:432
命令行變更 瀏覽:332
linux設備和驅動 瀏覽:207