linux mkfifo命令基本用法


  1. 首先了解linux命令執行順序
    • 通常情況下,終端只能執行一條命令,然后按下回車,那么執行多條命令呢
      順序執行多條命令,可以用分號;
      cmd1;cmd2;cmd3
      條件執行多條命令,使用&&(前一個命令執行成功,即$?=0時,執行下一條命令,否則不執行)和||(前一個命令執行失敗,既$?≠0時,執行下一條命令)
      cmd1&&cmd2||cmd3
      $?:上一次命令的返回結果,0為執行成功,不為0則為執行失敗
  2. 然后了解下管道命令(pipe)
    • 管道是一種通信機制,用於進程間的通信(也可通過socket進行網絡通信),表現出來的形式將前面的每一個進程的輸出,直接作為下一個進程的輸入
    • 管道命令僅能處理stdout,而error則會忽略
  3. 常見管道命令
    • cut、grep、sort、wc、uniq
    • tee:重定向,既能在屏幕輸出,又能保存到文件中
    • tr、col、join、paste、expand、split
  4. mkfifo則可以創建命名管道
    • 什么是命名管道
      |(豎線)為管道,是兩個進程之間的通信通道
      例如:ls|grep txt
      ls和grep由|分開,管道創建了程序之間的通信通道,將ls的輸出作為輸入傳給grep
      
      由mkfifo創建出來的就是一個命名管道
      例如:mkfifo pipe2
      pipe2就是一個命名管道。
    • 命名管道的作用
      可以將輸出信道化到不同終端、
      例如:
      在第一個終端執行
      ls > pipe2
      在第二個終端執行
      cat < pipe2(或cat pipe2,是取一次。cat < pipe2是持續輸入,只要有內容傳到pipe2中,就會有內容輸出)
      pipe2更像是一個臨時存儲的地方,使用cat pipe2取過內容之后,再執行cat pipe2 ,則不會有顯示
    • 識別命名管道

      命名管道可以像正常文件一樣訪問,在文檔類型可以看到為p
      [root@ricky01 ~]# ll pipe2 
      prw-r--r-- 1 root root 0 Oct 16 14:53 pipe2
    • 也可以使用chmod設置權限
    • 刪除就像正常文件一樣使用rm刪除即可

參考:

https://www.jianshu.com/p/9c0c2b57cb73

https://www.howtoing.com/linux-mkfifo-command


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM