使用 Ultimate Plumber 即時預覽管道命令結果

2018-11-08 21:27:00

管道命令的作用是將一個命令/程式/進程的輸出傳送給另一個命令/程式/進程,以便將輸出結果進行進一步的處理。我們可以通過使用管道命令把多個命令組合起來,使一個命令的標準輸入或輸出重定向到另一個命令。兩個或多個 Linux 命令之間的豎線字元(|)表示在命令之間使用管道命令。管道命令的一般語法如下所示:

Command-1 | Command-2 | Command-3 | …| Command-N

Ultimate Plumber(簡稱 UP)是一個命令列工具,它可以用於即時預覽管道命令結果。如果你在使用 Linux 時經常會用到管道命令,就可以通過它更好地運用管道命令了。它可以預先顯示執行管道命令後的結果,而且是即時捲動地顯示,讓你可以輕鬆構建複雜的管道。

下文將會介紹如何安裝 UP 並用它將複雜管道命令的編寫變得簡單。

重要警告:

在生產環境中請謹慎使用 UP!在使用它的過程中,有可能會在無意中刪除重要資料,尤其是搭配 rmdd 命令時需要更加小心。勿謂言之不預。

使用 Ultimate Plumber 即時預覽管道命令

下面給出一個簡單的例子介紹 up 的使用方法。如果需要將 lshw 命令的輸出傳遞給 up,只需要在終端中輸入以下命令,然後回車:

$ lshw |& up

你會在螢幕頂部看到一個輸入框,如下圖所示。

在輸入命令的過程中,輸入管道符號並回車,就可以立即執行已經輸入了的命令。Ultimate Plumber 會在下方的可捲動視窗中即時顯示管道命令的輸出。在這種狀態下,你可以通過 PgUp/PgDn 鍵或 ctrl + ←/ctrl + → 組合鍵來檢視結果。

當你滿意執行結果之後,可以使用 ctrl + x 組合鍵退出 UP。而退出前編寫的管道命令則會儲存在當前工作目錄的檔案中,並命名為 up1.sh。如果這個檔名已經被佔用,就會命名為 up2.shup3.sh 等等以此類推,直到第 1000 個檔案。如果你不需要將管道命令儲存輸出,只需要使用 ctrl + c 組合鍵退出即可。

通過 cat 命令可以檢視 upX.sh 檔案的內容。例如以下是我的 up2.sh 檔案的輸出內容:

$ cat up2.sh#!/bin/bashgrep network -A5 | grep : | cut -d: -f2- | paste - -

如果通過管道傳送到 up 的命令執行時間太長,終端視窗的左上角會顯示一個波浪號(~)字元,這就表示 up 在等待前一個命令的輸出結果作為輸入。在這種情況下,你可能需要使用 ctrl + s 組合鍵暫時凍結 up 的輸入緩衝區大小。在需要解凍的時候,使用 ctrl + q 組合鍵即可。Ultimate Plumber 的輸入緩衝區大小一般為 40 MB,到達這個限制之後,螢幕的左上角會顯示一個加號。

以下是 up 命令的一個簡單演示:

安裝 Ultimate Plumber

喜歡這個工具的話,你可以在你的 Linux 系統上安裝使用。安裝過程也相當簡單,只需要在終端裡執行以下兩個命令就可以安裝 up 了。

首先從 Ultimate Plumber 的發布頁面下載最新的二進位制檔案,並將放在你系統的某個路徑下,例如 /usr/local/bin/

$ sudo wget -O /usr/local/bin/up wget https://github.com/akavel/up/releases/download/v0.2.1/up

然後向 up 二進位制檔案賦予可執行許可權:

$ sudo chmod a+x /usr/local/bin/up

至此,你已經完成了 up 的安裝,可以開始編寫你的管道命令了。