- 首先了解linux命令執行順序
- 通常情況下,終端只能執行一條命令,然后按下回車,那么執行多條命令呢
順序執行多條命令,可以用分號; cmd1;cmd2;cmd3 條件執行多條命令,使用&&(前一個命令執行成功,即$?=0時,執行下一條命令,否則不執行)和||(前一個命令執行失敗,既$?≠0時,執行下一條命令) cmd1&&cmd2||cmd3 $?:上一次命令的返回結果,0為執行成功,不為0則為執行失敗
- 通常情況下,終端只能執行一條命令,然后按下回車,那么執行多條命令呢
- 然后了解下管道命令(pipe)
- 管道是一種通信機制,用於進程間的通信(也可通過socket進行網絡通信),表現出來的形式將前面的每一個進程的輸出,直接作為下一個進程的輸入
- 管道命令僅能處理stdout,而error則會忽略
- 常見管道命令
- cut、grep、sort、wc、uniq
- tee:重定向,既能在屏幕輸出,又能保存到文件中
- tr、col、join、paste、expand、split
- 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
