แทนที่จะบินตาบอดใช้ Linux pv
และ progress
คำสั่งเพื่อติดตามความคืบหน้าของคำสั่ง ยูทิลิตี้เหล่านี้จะให้แถบความคืบหน้าสำหรับคำสั่งที่ปกติไม่มี คุณจะเห็นเวลาโดยประมาณจนกว่าจะเสร็จสมบูรณ์เช่นกัน
หากคุณกำลังเดินทางด้วยเครื่องบินเป็นระยะเวลานานหากไม่มีหน้าจอวิดีโอในที่นั่งด้านหลังคุณจะไม่สามารถรู้ได้ว่าคุณเดินทางไปไกลแค่ไหน คุณรู้เมื่อคุณออก คุณรู้ว่าต้องใช้เวลาเดินทางนานแค่ไหน แต่คุณจะรู้ได้อย่างไรว่าคุณอยู่ในเส้นทางที่ตรงเวลาหรือช้ากว่ากำหนด? หากคุณไม่ต้องการดูภาพยนตร์บนเครื่องบินคุณสามารถสลับหน้าจอวิดีโอของคุณเพื่อแสดงแผนที่ด้วยตำแหน่งเครื่องบินของคุณได้ คุณยังได้รับสถิติบางอย่างเช่นเวลาที่คาดว่าจะมาถึง (ETA) ซึ่งยอดเยี่ยมมาก
การเริ่มต้นคำสั่งจากหน้าต่างเทอร์มินัลสามารถบางครั้งรู้สึกเหมือนเที่ยวบินระยะไกลโดยไม่มีหน้าจอวิดีโอ คุณไม่มีอะไรที่จะบ่งบอกอะไรเลยถ้าทุกอย่างเป็นไปด้วยดีหรือถ้ากระบวนการหยุดทำงานหรือไม่ใกล้จะเสร็จสมบูรณ์ เคอร์เซอร์ที่กะพริบไม่ให้ข้อมูลมากนัก
คน pv
และ progress
คำสั่งให้สถิติบางอย่างกับคุณเล็กน้อยข้อเสนอแนะภาพ คุณสามารถดูว่ากระบวนการเสร็จสิ้นแล้วอย่างไร นั่นหมายความว่าคุณจะได้รับ ETA สำหรับกระบวนการทำงานของคุณ เมื่อเทียบกับการจ้องมองที่เคอร์เซอร์
กำลังติดตั้ง pv
คุณต้องติดตั้ง pv
.
ติดตั้ง pv
บน Ubuntu ใช้คำสั่งนี้:
sudo apt-get install pv
ติดตั้ง pv
บน Fedora ให้ใช้คำสั่งนี้:
sudo dnf install pv
ติดตั้ง pv
ใน Manjaro ใช้คำสั่งนี้:
sudo pacman -Syu pv
ใช้ pv
pv
ย่อมาจาก Pipe Viewer ไปป์ต้องมีส่วนร่วมในคำสั่งบางแห่ง นี่คือตัวอย่างที่เรากำลังวางอิมเมจ ISO ผ่าน zip
เพื่อสร้างไฟล์ zip ที่ถูกบีบอัดของ ISO
ในการชะลอคำสั่งให้เพียงพอที่จะจับภาพหน้าจอไฟล์บางไฟล์ในตัวอย่างที่ใช้สำหรับบทความนี้จะถูกเก็บไว้ใน USB ภายนอกแบบเก่าที่ช้าและเรียกว่า SILVERXHD
pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | zip > gparted.zip
ข้อมูล pv
ให้เราสามารถเห็นได้ในบรรทัดล่างสุดของจอแสดงผล
จากซ้ายไปขวาข้อมูลที่แสดงคือ:
- ข้อมูลที่โอนมา
- เวลาผ่านไปนานแล้ว
- อัตราการถ่ายโอนข้อมูล (ปริมาณงาน)
- แถบความคืบหน้าและตัวเลขที่เสร็จสมบูรณ์เป็นเปอร์เซ็นต์
- เวลาที่เหลือโดยประมาณก่อนที่จะเสร็จสิ้น (ETA)
คัดลอกไฟล์ด้วย pv
เพื่อคัดลอกไฟล์ที่มีเอาต์พุตจาก pv
ใช้คำสั่งนี้:
pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso > gparted.iso
เราได้รับรายงานความคืบหน้าเมื่อไฟล์ถูกคัดลอก
คัดลอกหลายไฟล์ด้วย pv
หากต้องการคัดลอกหลายไฟล์และโฟลเดอร์ด้วย pv
เราจำเป็นต้องใช้เคล็ดลับเล็กน้อย เราใช้ tar
เพื่อย้ายไฟล์ให้เรา
tar -c help-files/ | pv | tar -x -C Documents/
คน tar -c help-files/
ส่วนของคำสั่งสั่ง tar
เพื่อสร้าง (-c
) ไฟล์เก็บถาวรของไฟล์ในโฟลเดอร์ช่วยเหลือไฟล์ สิ่งนี้ถูกส่งผ่าน pv
เพื่อให้เราได้รับความคืบหน้า มันจะถูกส่งกลับเข้าไป tar
สำหรับส่วนสุดท้ายของคำสั่ง การแยกเก็บถาวร (-x
) และไดเรกทอรีมีการเปลี่ยนแปลง (-C
) ไปที่เอกสารก่อนการแตกไฟล์
ดังนั้นไฟล์และโฟลเดอร์ที่อยู่ในไฟล์ช่วยเหลือจะถูกคัดลอกไปยังโฟลเดอร์เอกสารพร้อมกับแสดงความคืบหน้า
เวลานี้แตกต่างกันเล็กน้อย
เราไม่ได้รับ ETA แถบความคืบหน้าในขณะนี้แสดงตัวบ่งชี้การเคลื่อนย้าย มันแสดงให้เห็นว่ากระบวนการนั้นมีการใช้งานอยู่ แต่จะไม่เติบโตจากซ้ายไปขวาเหมือนแถบความคืบหน้าดั้งเดิม pv
จำกัด เฉพาะการแสดงข้อมูลที่สามารถแยกได้จากกระบวนการที่กำลังถูกไพพ์
ใช้ pv และ tar เพื่อสร้างที่เก็บถาวร
คัดลอกไฟล์ด้วย pv
และ tar
ไม่ปล่อยให้เรามีไฟล์เก็บถาวร ประเภทของการจัดเก็บข้อมูล“ เสมือน” ถูกสร้างขึ้นโดย tar
ซึ่งป้อนกลับเข้าไป tar
เพื่อแยกไฟล์ หากวัตถุประสงค์ของเราคือการคัดลอกไฟล์ แต่ถ้าเราต้องการสร้างไฟล์เก็บถาวรล่ะ
เรายังสามารถใช้ tar
เพื่อสร้างไฟล์เก็บถาวรและรับรายงานความคืบหน้าจาก pv
. ตัวเลือกที่ใช้กับ tar
เป็น -c
(สร้างที่เก็บถาวร), -z
(บีบอัดด้วย gzip) และ -f
(ชื่อไฟล์ของที่เก็บถาวร)
โปรดทราบว่าเรากำลังใช้งาน -
เป็นชื่อไฟล์ซึ่งเป็นสาเหตุ tar
เพื่อใช้ stdout และเขียนเอาต์พุตไปยังหน้าต่างเทอร์มินัล เราไม่เห็นผลลัพธ์นั้นเพราะถูกส่งผ่าน pv
.
ชื่อจริงของไฟล์เก็บถาวรจะเป็นชื่อไฟล์ที่เราไพพ์เอาท์พุท pv
เข้าไป ในกรณีนี้มันคือ“ help-files.tgz”
tar -czf - ./help-files/ | pv > help-files.tgz
เราได้รับตัวบ่งชี้ความคืบหน้าเหมือนเดิมและไฟล์เก็บถาวรถูกสร้างขึ้นสำหรับเรา
ที่เกี่ยวข้อง: วิธีบีบอัดและแตกไฟล์โดยใช้คำสั่ง tar บน Linux
ตัวเลือกการแสดง pv
มีตัวเลือกมากมายที่คุณสามารถใช้ได้ pv
เพื่อเปลี่ยนรายละเอียดของรายงาน
หากคุณใช้ตัวเลือกเหล่านี้ตัวเลือกอื่น ๆ ทั้งหมดจะถูกปิด ดังนั้นหากคุณต้องการใช้งานตัวเลือกการแสดงผลสามตัวคุณต้องระบุสามตัวเลือกเหล่านั้น
การใช้ pv
ไม่มีตัวเลือกใด ๆ จะเหมือนกับการใช้ -pterb
ตัวเลือก.
- -p: แสดง ร้อยละ สมบูรณ์ นี่คือแถบความคืบหน้าและตัวเลขที่เสร็จสมบูรณ์เป็นร้อยละ
- t-: แสดงที่ผ่านไป เวลา.
- -e: แสดง การทางพิเศษแห่งประเทศไทย.
- -r: แสดง ประเมินค่า ของการถ่ายโอนข้อมูล
- -b: แสดง ไบต์ นับ (ข้อมูลถูกโอนไปแล้ว)
- -n: แสดงเปอร์เซ็นต์เป็น จำนวนเต็ม. นี่จะพิมพ์เปอร์เซ็นต์ที่เสร็จสมบูรณ์เป็นตัวเลขจำนวนเต็มพร้อมกับการอัปเดตใหม่แต่ละรายการในบรรทัดใหม่
ลองทำซ้ำคำสั่งสุดท้ายและส่ง -p
ตัวเลือก (เสร็จสมบูรณ์ร้อยละ) ถึง pv
.
tar -czf - ./help-files/ | pv - p > help-files.tgz
นี่เป็นการปิดตัวเลือกการแสดงอื่น ๆ ทั้งหมด pv
ให้องค์ประกอบเปอร์เซ็นต์เสร็จสมบูรณ์เท่านั้น
เพราะ pv
ไม่ได้รับเปอร์เซ็นต์ตามสัดส่วนที่สมบูรณ์ tar
แถบความคืบหน้าจะถูกแทนที่ด้วยตัวบ่งชี้การเคลื่อนย้าย ไม่มีตัวเลขเป็นเปอร์เซ็นต์
ใช้ pv ด้วย wc
เราสามารถใช้ pv
เพื่อไพพ์ไฟล์ข้อความ (หรือไฟล์) ลงใน wc
. wc
จะนับการขึ้นบรรทัดใหม่ของตัวละครและคำและ pv
จะให้รายงานความคืบหน้าแก่เรา
ที่นี่เรากำลังไพพ์ไฟล์ ". page" ทั้งหมดในไดเร็กทอรี help-files เข้าไป wc
.
เมื่อ wc
เสร็จสิ้นเราสามารถดูจำนวนการคืนค่าขนส่ง (บรรทัด) อักขระและคำพูดจากไฟล์“. page” ทั้งหมดในโฟลเดอร์ help-files
การติดตั้งคำสั่งความคืบหน้า
คน progress
คำสั่งให้ข้อมูลที่เป็นประโยชน์เช่นเดียวกับ pv
แต่ทำงานกับคำสั่ง Linux ชุดใดชุดหนึ่งโดยเฉพาะ
ติดตั้ง progress
ใน Ubuntu ให้ใช้คำสั่งนี้:
sudo apt-get install progress
ติดตั้ง progress
ใน Fedora ให้ใช้คำสั่งนี้:
sudo dnf install progress
ติดตั้ง progress
ใน Manjaro ใช้คำสั่งนี้:
sudo pacman -Syu progress
ความคืบหน้าของคำสั่งใช้งานได้กับ
การพิมพ์ progress
ในหน้าต่างเทอร์มินัลแล้วกด Enter จะให้รายการคำสั่งที่คุณต้องการ progress
ทำงานร่วมกับ
progress
ใช้ความก้าวหน้ากับท่อ
มีสองเทคนิคที่เราสามารถใช้เพื่อตรวจสอบคำสั่งด้วย progress
. อย่างแรกคือการใช้ท่อ
คน tar
คำสั่งอยู่ในรายการคำสั่งที่รองรับที่ progress
สามารถตรวจสอบเพื่อใช้งานได้ tar
.
ตัวเลือกที่เราจะใช้เป็นมาตรฐาน -c
(สร้างที่เก็บถาวร), -z
(บีบอัดด้วย gzip) และ -f
ตัวเลือก (ชื่อไฟล์) เราจะสร้างไฟล์เก็บถาวรที่บีบอัดของทุกสิ่งในโฟลเดอร์ช่วยเหลือไฟล์และไฟล์เก็บถาวรจะมีชื่อว่า“ help.tgz”
เรากำลังส่งไปที่ progress
และการใช้ -m
ตัวเลือกจอภาพ () progress
รายงานต่อไปเรื่อย ๆ จนกว่าจะเสร็จสิ้น
tar -czf help.tgz ./help-files/ | progress -m
หน้าต่างเทอร์มินัลจะแสดงความคืบหน้าของ tar
คำสั่งในขณะที่มันสร้างการเก็บถาวร
เมื่อประมวลผลไฟล์แต่ละไฟล์แล้วจะแสดงรายการพร้อมข้อมูลต่อไปนี้:
- ID กระบวนการ
- ชื่อกระบวนการ
- เปอร์เซ็นต์เสร็จสมบูรณ์
- ประมวลผลข้อมูลและขนาดทั้งหมดของไฟล์
- อัตราการส่งข้อมูล (ปริมาณงาน)
- เวลาที่เหลือโดยประมาณ (ETA)
คุณอาจประหลาดใจที่เห็นชุดข้อมูลที่สองปรากฏขึ้น ชุดข้อมูลแรกนี้มีไว้สำหรับ tar
. อย่างที่สองคือสำหรับ gzip
. tar
โทร gzip
เพื่อทำการบีบอัด เพราะ gzip
อยู่ในรายการคำสั่งที่รองรับ progress
รายงานเกี่ยวกับมัน
การใช้ความก้าวหน้าในโหมดการตรวจสอบอย่างต่อเนื่อง
คุณสามารถใช้ได้ progress
ในโหมดมอนิเตอร์ต่อเนื่องแบบเรียลไทม์โดยใช้ตัวเลือก -M (มอนิเตอร์)
พิมพ์คำสั่งต่อไปนี้ในหน้าต่างเทอร์มินัล:
progress -M
progress
จะรายงานว่าไม่มีคำสั่งให้เรียกใช้เพื่อตรวจสอบ แต่คุณจะไม่กลับไปที่บรรทัดคำสั่ง progress
รอจนกระทั่งคำสั่งที่สามารถมอนิเตอร์เริ่มทำงานได้ จากนั้นจะเริ่มการรายงานโดยอัตโนมัติ
ในหน้าต่างเทอร์มินัลอื่นพิมพ์คำสั่งที่อยู่ในรายการคำสั่งที่ความคืบหน้าสามารถตรวจสอบได้
พวกเราจะใช้ cat
. คำสั่งที่เร็วเกินไปจะไม่ลงทะเบียน progress
ดังนั้นเราจะแสดงรายการเนื้อหาของไฟล์ข้อความที่ยาวมาก
cat words.page
ในหน้าต่างเทอร์มินัลด้วย progress
ในนั้นคุณจะเห็นสถิติของ cat
คำสั่งในขณะที่มันดำเนินการและทำงานไปสู่ความสำเร็จ
เมื่อ cat
เสร็จสิ้นการแสดงรายการไฟล์ progress
กลับสู่สถานะรอ
แต่ละครั้งที่หนึ่งในคำสั่งที่สามารถรายงานดำเนินการขนาดใหญ่ progress
จะตรวจสอบโดยอัตโนมัติและรายงาน
มันค่อนข้างเรียบร้อย
เสร็จสมบูรณ์ 100%
ถอดการคาดเดาออกจากการสงสัยว่าคำสั่งที่ใช้เวลานานกำลังทำอะไรอยู่และหยุดพักจากการไตร่ตรองเคอร์เซอร์ของคุณด้วย pv
และ progress
.