色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在bash中如何進行各種文件重定向呢?

dyquk4xk2p3d ? 來源:ytcoode ? 2023-08-25 09:31 ? 次閱讀

0x01 測試程序

本文會用以下測試程序,來演示在bash中,如何進行各種文件重定向:

66ad7562-42d7-11ee-a2ef-92fbcf53809c.png

上圖是一段rust代碼,其主要邏輯是,從標準輸入讀取數據,然后將這些數據分別寫到標準輸出和標準錯誤輸出里。

0x02 將標準輸入重定向到 /dev/null

66bc5762-42d7-11ee-a2ef-92fbcf53809c.png

/dev/null 是linux下的一個特殊文件,從該文件讀取數據時,內核會直接返回EOF,即讀不到任何數據,所以在上圖中,stdout/stderr行的輸出都為空。

0x03 將標準輸入重定向到普通文件

66d0399e-42d7-11ee-a2ef-92fbcf53809c.png

上圖先用echo命令,把hello字符串寫到stdin.log,然后執行測試程序,把它的標準輸入重定向到stdin.log,此時stdout/stderr行就都輸出了hello字符串。

0x04 將標準輸出重定向到普通文件

66d99c78-42d7-11ee-a2ef-92fbcf53809c.png

上圖把標準輸出重定向到了stdout.log,所以終端只輸出了stderr行,而stdout行被寫到了stdout.log文件中。

0x05 將標準錯誤輸出重定向到普通文件

66fb9b20-42d7-11ee-a2ef-92fbcf53809c.png

這次把標準錯誤輸出也做了重定向,所以終端上沒有任何輸出,所有輸出都保存到了各自的文件里。

因為標準錯誤輸出的文件描述符是2,所以上面用了 2> 這種符號重定向標準錯誤輸出。

0x06 將標準輸出及錯誤輸出重定向到同一文件

670b4dea-42d7-11ee-a2ef-92fbcf53809c.png

上圖先把標準輸出重定向到hello.log,然后再通過 2>&1 這個符號,把標準錯誤輸出的文件描述符2,指向當前標準輸出的文件描述符1指向的文件,即hello.log,這樣標準錯誤輸出就也指向了hello.log。

這里需要注意重定向操作符的順序,比如下面這個就是錯的:

6714a32c-42d7-11ee-a2ef-92fbcf53809c.png

上圖中先通過 2>&1,把標準錯誤輸出的文件描述符2,指向當前標準輸出的文件描述符1指向的文件,因為當前文件描述符1和2都指向終端,所以這一步是沒有任何效果的。

然后,再將標準輸出重定向到hello.log

通過上述步驟,標準輸出內容就寫到了hello.log里,但標準錯誤輸出內容,還是寫到了終端里,所以這個寫法是不行的。

除了上述方式外,我們還可以用下面的方式,將標準輸出/錯誤輸出都重定向到同一文件:

6723fd68-42d7-11ee-a2ef-92fbcf53809c.png

0x07 將標準輸出及錯誤輸出追加到同一文件

以上介紹的,將輸出重定向到文件的方式,都會覆蓋掉原文件的內容,如果不想覆蓋原文件的內容,而是想把新的輸出追加到該文件,可以用下面的方式:

67452d62-42d7-11ee-a2ef-92fbcf53809c.png

和覆蓋原文件使用的命令差不多,只是多了一個大于號而已。

0x08 將指定字符串作為標準輸入內容

6754448c-42d7-11ee-a2ef-92fbcf53809c.png

上面只是將單行字符串作為標準輸入內容,如果想把多行字符串作為標準輸入內容,可以用以下方式:

676dc75e-42d7-11ee-a2ef-92fbcf53809c.png

上圖中,先將各種輸出都重定向到hello.log,然后再將兩個xxx之間的內容,作為標準輸入。

注意,xxx這個字符串是可以任意指定的。

0x09 將標準輸出及錯誤輸出重定向到指定tcp服務器

先用ncat命令開啟一個tcp服務器,監聽端口9999:

6781e540-42d7-11ee-a2ef-92fbcf53809c.png

然后用以下命令,將所有輸出都重定向到該服務器:

678a9a0a-42d7-11ee-a2ef-92fbcf53809c.png

上圖中,localhost指定的是目標服務器的地址,9999指定的是目標服務器的端口,其余部分是固定的。

在執行完該命令后,查看ncat命令那張圖,就能看到對應的輸出了。






審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux系統
    +關注

    關注

    4

    文章

    593

    瀏覽量

    27392
  • TCP通信
    +關注

    關注

    0

    文章

    146

    瀏覽量

    4221
  • bash終端
    +關注

    關注

    0

    文章

    7

    瀏覽量

    1992
  • rust語言
    +關注

    關注

    0

    文章

    57

    瀏覽量

    3009

原文標題:bash中奇奇怪怪的文件重定向

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    請問S3C2440為什么重定向時要注釋掉u-boot自帶的重定向代碼

    Flash的數據,那為什么重定向時要注釋掉u-boot自帶的重定向代碼?自帶u-boot代碼:copy_loop:ldmiar0!, {r3-r10} /* copy from
    發表于 09-16 10:29

    如何對Linux Bash輸入輸出重定向

    Linux - Bash - 輸入輸出重定向
    發表于 04-27 09:01

    標準的c庫函數printf進行重定向

    了很大的變化。??有的同學在學習STM32的時候,可能會遇到一個問題那就是串口通信printf重定向。st官方并沒有提供printf函數給我們用,這時候如果想要使用printf向串口打印日志的話那就需要對printf進行重定向
    發表于 08-20 06:54

    實現printf函數的重定向

    目錄重定向函數屬性設置重定向函數配置好串口之后需要在相關文件添加以下函數以實現printf函數的重定
    發表于 08-24 07:09

    如何對printf函數的輸出進行重定向

    怎樣去使用printf函數打印基本的顯示信息?如何對printf函數的輸出進行重定向
    發表于 11-30 07:29

    怎樣去重定向fputc函數

    為什么要將fputc函數重定向?怎樣去重定向fputc函數
    發表于 11-30 07:02

    如何對printf()函數或scanf()函數進行重定向

    怎樣用串口來測試代碼的正確與否?如何對printf()函數或scanf()函數進行重定向
    發表于 11-30 07:41

    如何對printf函數進行重定向

    為什么要對printf函數進行重定向?如何對printf函數進行重定向
    發表于 12-01 07:26

    如何使用KEIL5對stm32的printf函數進行重定向

    能不能用串口實現類似windows的Console的printf?如何使用KEIL5對stm32的printf函數進行重定向
    發表于 12-01 08:09

    如何在Keil下去使用STlink對printf進行重定向

    如何在Keil下去使用STlink對printf進行重定向?對printf重定向有哪些步驟?
    發表于 12-01 06:48

    如何對重定向到printf()后的串口進行調試

    什么是預定義宏?預定義宏有哪些?如何對重定向到printf()后的串口進行調試
    發表于 12-01 08:11

    如何對printf重定向進行STM32CubeIDE配置

    如何對printf重定向進行STM32CubeIDE配置
    發表于 12-02 06:42

    怎樣Ubuntu+vscode環境下對printf進行重定向

    怎樣Ubuntu+vscode環境下添加stdio.h?怎樣Ubuntu+vscode環境下對printf進行重定向
    發表于 12-02 07:00

    如何對printf進行重定向進行打印

    如何對STM32F103串口時鐘進行配置?如何對printf進行重定向進行打印
    發表于 12-02 07:25

    如何對printf函數進行重定向

    如何對printf函數進行重定向?怎樣使用printf函數通過串口打印調試信息
    發表于 01-27 06:58
    主站蜘蛛池模板: 免费果冻传媒2021在线观看| 少女free大陆| 午夜国产羞羞视频免费网站| 欧美性色生活片天天看99顶级| 精品久久久久久久高清| 好看的电影网站亚洲一区| 精品无码一区二区三区不卡| 精品水蜜桃久久久久久久| 精品人妻伦一二三区久久AAA片 | 3DNagoonimation动漫| 亚洲精品久久久无码一区二区 | 久久偷拍人| 日韩精品免费一区二区| 亚洲成年人在线观看| 中文字幕午夜福利片| 大胸美女被C得嗷嗷叫动态图| 高h原耽肉汁动漫视频| 久久棋牌评测| 欧洲video60| 俄罗斯粗大猛烈18P| 精品视频网站| 羞羞答答的免费视频在线观看| 成人小视频在线免费观看| 欧美日韩亚洲中字二区| 99久久999久久久综合精品涩| 欧洲美女高清一级毛片| 亚洲第一伊人| 欧美三级不卡在线观线看| 熟妇的味道HD中文字幕| 亚洲欧美中文字幕先锋| 成年人视频在线免费观看| 欧美亚洲色帝国| 久久99r66热这里只有精品| 97蜜桃网123| 乌克兰16~18sex| 女人高潮了拔出来了她什么感觉 | 国产精品18久久久久久欧美网址| music radio在线收听| 99精品网站| chinese耄耋70老太性| 99久久免热在线观看|