使用linuxpv和progress命令來跟蹤命令的進度,而不是盲目飛行。這些實用程式將為您提供通常沒有任何進度條的命令的進度條。你會看到一個估計的時間,直到完成,太。
如果你乘坐的是一架沒有影片螢幕的飛機長途飛行,要知道你的旅程有多遠並不容易。你知道你什麼時候起飛的。你知道這次飛行預計要花多長時間。但是你怎麼知道你是在按計劃,按時,還是遠遠落後於計劃呢?如果你不想看飛行中的電影,你通常可以切換你的影片螢幕來顯示一張地圖,上面有你的飛機的位置。您還可以獲得一些統計資訊,例如預期到達時間(ETA),這非常好。
從終端視窗啟動命令有時會讓人感覺像沒有影片螢幕的長途飛行。你沒有任何跡象表明一切是否順利,程序是否懸而未決,也沒有任何跡象表明它有多接近完成。閃爍的游標資訊量不大。
pv和progress命令提供一些統計資訊和一些視覺反饋。你可以看到這個過程是多麼接近完成。這意味著您將獲得執行程序的預計到達時間。與盯著一個游標相比,這是輕而易舉的事。
必須安裝pv。
要在Ubuntu上安裝pv,請使用以下命令:
sudo apt-get install pv要在Fedora上安裝pv,請使用以下命令:
sudo dnf install pv要在Manjaro上安裝pv,請使用以下命令:
sudo pacman -Syu pvpv代表管道觀察器。管道必須在某個地方參與指揮。下面是一個例子,我們將一個ISO映像透過zip管道傳輸,以生成ISO的壓縮zip檔案。
為了將命令的速度降低到可以截圖的程度,本文使用的示例中的一些檔案儲存在一個名為SILVERXHD的舊的、緩慢的外部USB上。
pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | zip > gparted.zippv提供給我們的資訊可以在顯示屏的底部看到。
從左到右,顯示的資訊是:
要複製具有pv輸出的檔案,請使用以下命令:
pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso > gparted.iso當檔案被複制時,我們會得到一個進度報告。
要用pv複製多個檔案和資料夾,我們需要使用一些技巧。我們用tar來移動檔案。
tar -c help-files/ | pv | tar -x -C Documents/命令的tar-c help files/部分指示tar在help files資料夾中建立(-c)一個檔案存檔。這是透過pv管道傳輸的,這樣我們就可以得到進度的顯示。然後透過管道將其傳回tar,用於命令的最後一部分。在提取之前,將提取存檔檔案(-x),並將目錄更改為文件(-C)。
因此,幫助檔案中的檔案和資料夾將複製到Documents資料夾,並顯示進度。
這次的輸出略有不同。
我們沒有預計到達時間。進度條現在顯示一個移動指示器。它表明這個過程是活動的,但它不像傳統的進度條那樣從左到右增長。pv僅限於顯示它可以從正在被管道傳輸的程序中提取的資訊。
用pv和tar複製檔案不會給我們留下存檔檔案。tar建立了一種“虛擬”歸檔,直接反饋到tar中提取檔案。如果我們的目標是複製檔案,那就完成了。但是如果我們想建立一個存檔檔案呢?
我們仍然可以使用tar來建立一個歸檔檔案,並從pv獲得一個進度報告。tar使用的選項有-c(建立存檔)、-z(用gzip壓縮)和-f(存檔檔名)。
注意,我們使用-作為檔名,這會導致tar使用stdout,並將其輸出寫入終端視窗。我們看不到這個輸出,因為它是透過pv管道傳輸的。
歸檔檔案的實際名稱將是我們將pv的輸出匯入的檔名。在這種情況下,它是“幫助”-檔案.tgz”.
tar -czf - ./help-files/ | pv > help-files.tgz我們得到了與以前相同的進度指標,並且為我們建立了存檔檔案。
相關:如何在Linux上使用tar命令壓縮和提取檔案
有許多選項可用於pv來更改其報告的詳細資訊。
如果使用這些選項中的任何一個,則所有其他選項都將關閉。因此,如果要使用其中三個顯示選項,則需要指定這三個選項。
使用不帶任何選項的pv與使用-pterb選項相同。
讓我們重複上一個命令並將-p(完成百分比)選項傳遞給pv。
tar -czf - ./help-files/ | pv - p > help-files.tgz這將關閉所有其他顯示選項。pv只提供完成元素的百分比。
因為pv不能從tar得到完成百分比,所以進度條被一個移動的指示器所代替。沒有百分比數字。
我們可以使用pv將一個文字檔案(或多個檔案)匯入wc。wc將計算回車、字元和單詞,pv將給我們一個進度報告。
在這裡,我們將幫助檔案目錄中的所有“.page”檔案匯入wc。
wc完成後,我們可以看到help files資料夾中所有“.page”檔案的回車(行)、字元和單詞計數。
progress命令提供了與pv相同的有用資訊,但是它可以使用一組特定的Linux命令。
要在Ubuntu中安裝progress,請使用以下命令:
sudo apt-get install progress要在Fedora中安裝progress,請使用以下命令:
sudo dnf install progress要在Manjaro中安裝progress,請使用以下命令:
sudo pacman -Syu progress在終端視窗中鍵入progress,然後按Enter鍵,您將看到progress使用的命令列表。
progress我們可以使用兩種技術來監視命令的進度。首先是使用管道。
tar命令在progress可以監視的受支援命令列表中,所以讓我們使用tar。
我們將使用的選項是標準的-c(建立存檔)、-z(用gzip壓縮)和-f(檔名)選項。我們將為“幫助檔案”資料夾中的所有內容建立一個壓縮檔案,檔案將命名為“幫助.tgz”.
我們正在將其匯入程序,並使用-m(monitor)選項,以便在程序完成之前不斷報告程序。
tar -czf help.tgz ./help-files/ | progress -m終端視窗將顯示tar命令建立存檔時的進度。
在處理每個檔案時,都會列出該檔案,其中包含以下資訊:
您可能會驚訝地看到第二個資料集出現。第一個資料集用於tar。第二個是gzip。tar呼叫gzip來執行壓縮。因為gzip在支援的命令列表中,所以會報告它的進度。
透過使用-M(monitor)選項,可以在實時連續監視模式下使用進度。
在終端視窗中鍵入以下命令:
progress -Mprogress將報告沒有執行任何命令供其監視。但不會返回到命令列。程序將等待它可以監視的命令啟動。然後它會自動開始報告。
在另一個終端視窗中,鍵入進度可以監視的命令列表中的命令。
我們要用貓。過快結束的命令不會隨著進度註冊,因此我們將列出一個很長的文字檔案的內容。
cat words.page在包含進度的終端視窗中,您將看到cat命令執行和接近完成時的統計資訊。
當cat完成列出檔案時,檔案進度返回到等待狀態。
每次它可以報告的命令之一執行一個相當大的任務時,progress都會自動監視它並報告它。
真是太好了。
不要去猜測一個長時間執行的命令是如何執行的,也不要用pv和progress來思考游標。
Linux處於永久性的進化狀態。通常,這些更改是隱藏的,例如核心的幕後開發和其他底層程式碼。但是,偶爾,使用者必須調整到一種新的工作方式。 ...
... rsync -avz --progress ~/Documents/ backup_server:~/Documents ...
...機。它是獨立的,設定簡單,使用方便。我們將向您展示如何開始。 管理多個linux伺服器 如果您要監視多臺Linux計算機或伺服器,您將面臨一個挑戰。這是特別真實的,如果其中一些是執行無頭系統沒有顯示器連線。例如,您...
...視窗推到後臺(稱為“分離”)。當你想看到你的程序是如何進行的,你可以把視窗拉到前臺(“重新連線”)並再次使用它。這對於您不希望透過關閉終端視窗意外終止的長程序來說非常有用。 一旦運行了螢幕會話,就可以...
...盒中。 如果它們不是以通常的方式安裝的,那麼它們是如何處理的呢?嗯,單個包檔案被下載、解壓縮,並作為一個SquashFSvirtual檔案系統裝載。然後將它作為一個虛擬環境呈現給您。所有這些都發生在幕後。你所知道的只是你...
...個檔案。每一個都有它在遠端伺服器上的名字。 相關:如何在Linux上使用xargs命令 從ftp伺服器下載檔案 將curl與檔案傳輸協議(FTP)伺服器結合使用很容易,即使您必須使用使用者名稱和密碼進行身份驗證。要使用curl傳遞使用...
...法是安裝足夠的作業系統,以完成所需的任務。透過檢視如何使用chroot環境來回答“what is required”問題。 一些常見用途是: 軟體開發和產品驗證。開發人員編寫軟體,產品驗證團隊(PV)對其進行測試。有時PV發現的問題無法...
...有一個按鈕。 “進度”對話方塊視窗 您可以使用zenity progress對話方塊視窗來顯示一個進度條,該進度條指示指令碼的完成時間。 進度條將根據從指令碼傳入的值進行高階處理。要演示該原理,請使用以下命令: (for i in $(seq 0 1...