使用Ultimate Plumber即時(shí)預(yù)覽管道命令結(jié)果
管道命令的作用是將一個(gè)命令/程序/進(jìn)程的輸出發(fā)送給另一個(gè)命令/程序/進(jìn)程,以便將輸出結(jié)果進(jìn)行進(jìn)一步的處理。我們可以通過(guò)使用管道命令把多個(gè)命令組合起來(lái),使一個(gè)命令的標(biāo)準(zhǔn)輸入或輸出重定向到另一個(gè)命令。兩個(gè)或多個(gè) Linux 命令之間的豎線字符(|
)表示在命令之間使用管道命令。管道命令的一般語(yǔ)法如下所示:
Command-1 | Command-2 | Command-3 | …| Command-N
Ultimate Plumber(簡(jiǎn)稱 UP)是一個(gè)命令行工具,它可以用于即時(shí)預(yù)覽管道命令結(jié)果。如果你在使用 Linux 時(shí)經(jīng)常會(huì)用到管道命令,就可以通過(guò)它更好地運(yùn)用管道命令了。它可以預(yù)先顯示執(zhí)行管道命令后的結(jié)果,而且是即時(shí)滾動(dòng)地顯示,讓你可以輕松構(gòu)建復(fù)雜的管道。
下文將會(huì)介紹如何安裝 UP 并用它將復(fù)雜管道命令的編寫變得簡(jiǎn)單。
重要警告:
在生產(chǎn)環(huán)境中請(qǐng)謹(jǐn)慎使用 UP!在使用它的過(guò)程中,有可能會(huì)在無(wú)意中刪除重要數(shù)據(jù),尤其是搭配 rm
或 dd
命令時(shí)需要更加小心。勿謂言之不預(yù)。
使用 Ultimate Plumber 即時(shí)預(yù)覽管道命令
下面給出一個(gè)簡(jiǎn)單的例子介紹 up
的使用方法。如果需要將 lshw
命令的輸出傳遞給 up
,只需要在終端中輸入以下命令,然后回車:
$ lshw |& up
你會(huì)在屏幕頂部看到一個(gè)輸入框,如下圖所示。
在輸入命令的過(guò)程中,輸入管道符號(hào)并回車,就可以立即執(zhí)行已經(jīng)輸入了的命令。Ultimate Plumber 會(huì)在下方的可滾動(dòng)窗口中即時(shí)顯示管道命令的輸出。在這種狀態(tài)下,你可以通過(guò) PgUp
/PgDn
鍵或 ctrl + ←
/ctrl + →
組合鍵來(lái)查看結(jié)果。
當(dāng)你滿意執(zhí)行結(jié)果之后,可以使用 ctrl + x
組合鍵退出 UP
。而退出前編寫的管道命令則會(huì)保存在當(dāng)前工作目錄的文件中,并命名為 up1.sh
。如果這個(gè)文件名已經(jīng)被占用,就會(huì)命名為 up2.sh
、up3.sh
等等以此類推,直到第 1000 個(gè)文件。如果你不需要將管道命令保存輸出,只需要使用 ctrl + c
組合鍵退出即可。
通過(guò) cat
命令可以查看 upX.sh
文件的內(nèi)容。例如以下是我的 up2.sh
文件的輸出內(nèi)容:
$ cat up2.sh
#!/bin/bash
grep network -A5 | grep : | cut -d: -f2- | paste - -
如果通過(guò)管道發(fā)送到 up
的命令運(yùn)行時(shí)間太長(zhǎng),終端窗口的左上角會(huì)顯示一個(gè)波浪號(hào)(~)字符,這就表示 up
在等待前一個(gè)命令的輸出結(jié)果作為輸入。在這種情況下,你可能需要使用 ctrl + s
組合鍵暫時(shí)凍結(jié) up
的輸入緩沖區(qū)大小。在需要解凍的時(shí)候,使用 ctrl + q
組合鍵即可。Ultimate Plumber 的輸入緩沖區(qū)大小一般為 40 MB,到達(dá)這個(gè)限制之后,屏幕的左上角會(huì)顯示一個(gè)加號(hào)。
安裝 Ultimate Plumber
喜歡這個(gè)工具的話,你可以在你的 Linux 系統(tǒng)上安裝使用。安裝過(guò)程也相當(dāng)簡(jiǎn)單,只需要在終端里執(zhí)行以下兩個(gè)命令就可以安裝 up
了。
首先從 Ultimate Plumber 的發(fā)布頁(yè)面下載最新的二進(jìn)制文件,并將放在你系統(tǒng)的某個(gè)路徑下,例如 /usr/local/bin/
。
$ sudo wget -O /usr/local/bin/up wget https://github.com/akavel/up/releases/download/v0.2.1/up
然后向 up
二進(jìn)制文件賦予可執(zhí)行權(quán)限:
$ sudo chmod a+x /usr/local/bin/up
至此,你已經(jīng)完成了 up
的安裝,可以開(kāi)始編寫你的管道命令了。