W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
顯示當(dāng)前在命令行執(zhí)行的命令的進(jìn)度信息,管道查看器
pv命令 Pipe Viewer 的簡(jiǎn)稱(chēng),由Andrew Wood 開(kāi)發(fā)。意思是通過(guò)管道顯示數(shù)據(jù)處理進(jìn)度的信息。這些信息包括已經(jīng)耗費(fèi)的時(shí)間,完成的百分比(通過(guò)進(jìn)度條顯示),當(dāng)前的速度,全部傳輸?shù)臄?shù)據(jù),以及估計(jì)剩余的時(shí)間。
# Debian 系的操作系統(tǒng),如 Ubuntu
sudo apt-get install pv
# RedHat系的則這樣:
yum install pv
pv(選項(xiàng))(參數(shù))
pv [OPTION] [FILE]...
-p, --progress 顯示進(jìn)度條
-t, --timer 顯示已用時(shí)間
-e, --eta 顯示預(yù)計(jì)到達(dá)時(shí)間 (完成)
-I, --fineta 顯示絕對(duì)估計(jì)到達(dá)時(shí)間
(完成)
-r, --rate 顯示數(shù)據(jù)傳輸速率計(jì)數(shù)器
-a, --average-rate 顯示數(shù)據(jù)傳輸平均速率計(jì)數(shù)器
-b, --bytes 顯示傳輸?shù)淖止?jié)數(shù)
-T, --buffer-percent 顯示正在使用的傳輸緩沖區(qū)百分比
-A, --last-written NUM 顯示上次寫(xiě)入的字節(jié)數(shù)
-F, --format FORMAT 將輸出格式設(shè)置為FORMAT
-n, --numeric 輸出百分比
-q, --quiet 不輸出任何信息
-W, --wait 在傳輸?shù)谝粋€(gè)字節(jié)之前不顯示任何內(nèi)容
-D, --delay-start SEC 在SEC秒過(guò)去之前不顯示任何內(nèi)容
-s, --size SIZE 將估算的數(shù)據(jù)大小設(shè)置為SIZE字節(jié)
-l, --line-mode 計(jì)算行數(shù)而不是字節(jié)數(shù)
-0, --null 行以零結(jié)尾
-i, --interval SEC 每SEC秒更新一次
-w, --width WIDTH 假設(shè)終端的寬度為WIDTH個(gè)字符
-H, --height HEIGHT 假設(shè)終端高度為HEIGHT行
-N, --name NAME 在可視信息前面加上名稱(chēng)
-f, --force 將標(biāo)準(zhǔn)錯(cuò)誤輸出到終端
-c, --cursor 使用光標(biāo)定位轉(zhuǎn)義序列
-L, --rate-limit RATE 將傳輸限制為每秒RATE字節(jié)
-B, --buffer-size BYTES 使用BYTES的緩沖區(qū)大小
-C, --no-splice 從不使用splice(),始終使用讀/寫(xiě)
-E, --skip-errors 跳過(guò)輸入中的讀取錯(cuò)誤
-S, --stop-at-size 傳輸--size字節(jié)后停止
-R, --remote PID 更新過(guò)程PID的設(shè)置
-P, --pidfile FILE 將進(jìn)程ID保存在FILE中
-d, --watchfd PID[:FD] 監(jiān)視進(jìn)程PID,打開(kāi)的文件FD
-h, --help 顯示幫助
-V, --version 顯示版本信息
我們(在 linux 上使用命令行的用戶(hù))的大多數(shù)使用場(chǎng)景都會(huì)用到的命令是從一個(gè) USB 驅(qū)動(dòng)器拷貝電影文件到你的電腦。如果你使用 cp 來(lái)完成上面的任務(wù),你會(huì)什么情況都不清楚,直到整個(gè)復(fù)制過(guò)程結(jié)束或者出錯(cuò)。
# 復(fù)制文件會(huì)有進(jìn)度
linux [master●] % pv ~/Downloads/CentOS-7-x86_64-Minimal-1511.iso > ~/Desktop/CentOS-7-x86_64-Minimal-1511.iso
# 下面輸入信息
552MiB 0:00:02 [ 212MiB/s] [==================> ] 91% ETA 0:00:00
# -L 可以讓你修改 pv 命令的傳輸速率。
# 使用 -L 選項(xiàng)來(lái)限制傳輸速率為2MB/s。
pv -L 2m /media/himanshu/1AC2-A8E3/fNf.mkv > ./Desktop/fnf.mkv
# 字符一個(gè)個(gè)勻速在命令行中顯示出來(lái)
echo "Tecmint[dot]com is a community of Linux Nerds and Geeks" | pv -qL 10
# 壓縮文件展示進(jìn)度信息
pv /media/himanshu/1AC2-A8E3/fnf.mkv | gzip > ./Desktop/fnf.log.gz
# 用 dd 命令將 iso 寫(xiě)入磁盤(pán),pv來(lái)實(shí)現(xiàn)進(jìn)度條的顯示
sudo pv -cN source < /Users/kacperwang/Downloads/CentOS-7-x86_64-Everything-1511.iso | sudo dd of=/dev/disk2 bs=4m
## 顯示下面進(jìn)度
source: 5.2GiB 5:11:41 [ 503KiB/s] [=====================> ] 71% ETA 2:01:56
在linux上, 如果執(zhí)行的一些命令或者一些腳本需要花費(fèi)很長(zhǎng)時(shí)間, 但又不能拿出更多的精力反復(fù)盯著有沒(méi)有執(zhí)行結(jié)束, 這時(shí)候可以用pv監(jiān)聽(tīng)PID, 任務(wù)完成后通過(guò)網(wǎng)絡(luò)通知到微信或者釘釘, 這樣就可以騰出來(lái)精力做其他的事, 是不是很棒
$ pv -d $(ps -ef | grep -v grep | grep "<腳本或命令的關(guān)鍵字>" | awk '{print $2}') && <這里執(zhí)行發(fā)通知腳本或者命令,腳本或命令需要提前調(diào)試好>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: