在 Linux 環境中,當我們執行一些耗時較長的指令時,常常只能面對閃爍的光標,難以掌握指令執行的進度。這就如同乘坐長途飛機,卻沒有螢幕顯示飛行資訊一樣,令人感到焦慮和迷茫。幸好,我們可以借助 pv
和 progress
這兩個實用工具,為我們的指令添加進度條,提供即時的回饋,讓我們不再盲目等待。
pv
和 progress
命令就像為我們的 Linux 旅程裝上了儀表板,不僅能顯示進度條,還能提供預計完成時間(ETA)等有用的統計信息。有了它們,我們可以更清楚地了解指令的執行情況,更好地管理時間和資源。
安裝 pv 命令
要開始使用 pv
命令,首先需要安裝它。以下是在不同 Linux 發行版上的安裝方法:
Ubuntu:
sudo apt-get install pv
Fedora:
sudo dnf install pv
Manjaro:
sudo pacman -Syu pv
pv
的基本用法
pv
代表 “pipe viewer”,它的核心功能是監控通過管道傳輸的數據。以下是一些常見的 pv
用法示例:
使用 pv
壓縮檔案:
假設我們想將一個 ISO 映像檔壓縮成 ZIP 檔,並透過 pv
觀察壓縮進度:
pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | zip > gparted.zip
使用 pv
複製多個檔案和資料夾:
要複製多個檔案或資料夾,我們可以搭配 tar
命令:
tar -c help-files/ | pv | tar -x -C Documents/
在這個例子中,tar
命令先將 help-files/
目錄中的內容打包,然後透過 pv
傳輸,最後解壓縮到 Documents/
目錄。 pv
會顯示傳輸的進度,但由於 tar
的特性,進度條可能會顯示為一個移動的指示器,而不是傳統的進度條。
使用 pv
和 tar
建立壓縮檔:
如果我們想要建立一個壓縮檔案,同時透過 pv
監控進度,可以使用以下命令:
tar -czf - ./help-files/ | pv > help-files.tgz
這個命令會計算 help-files
目錄中所有 .page
檔案的行數、字元數和單字數。 pv
會顯示處理進度,而 wc
會在處理完成後顯示統計結果。
安裝 progress 命令
progress
命令與 pv
類似,可以監控特定 Linux 命令的進度。以下是在不同 Linux 發行版上的安裝方法:
Ubuntu:
sudo apt-get install progress
Fedora:
sudo dnf install progress
Manjaro:
sudo pacman -Syu progress
progress
支援的命令
輸入 progress
並按下 Enter,即可查看 progress
支援監控的命令列表:
progress
progress
的使用方法
progress
可以通過管道或持續監控模式來監控命令的執行。
透過管道監控進度:
以下是一個使用 tar
命令壓縮檔案並透過 progress
監控進度的例子:
tar -czf help.tgz ./help-files/ | progress -m
在這個例子中,progress -m
會持續監控 tar
命令的執行,直到完成。progress
會顯示每個檔案的處理進度,包含:
- 程序 ID
- 程序名稱
- 完成百分比
- 已處理的資料和總檔案大小
- 資料傳輸速率
- 預計剩餘時間 (ETA)
持續監控模式:
使用 progress -M
命令可以進入持續監控模式:
progress -M
在這個模式下,progress
會持續等待可以監控的命令開始執行,一旦有符合條件的命令執行,progress
就會自動顯示其進度。
例如,在另一個終端視窗執行 cat words.page
命令,progress
就會自動監控並顯示其執行進度。
cat words.page
當 cat 完成列出檔案內容時, progress 也會恢復到等待狀態。
總結
透過 pv
和 progress
命令,我們可以擺脫盲目等待,更清楚地掌握 Linux 指令的執行進度。這兩個實用工具可以幫助我們更有效率地管理時間和資源,使 Linux 的使用體驗更加舒適和便捷。