การต่อคำสั่งด้วยไพป์ (|)
ทำความเข้าใจพลังของไพป์ในการเชื่อมต่อคำสั่ง โดยส่งผลลัพธ์ของคำสั่งหนึ่งไปเป็นข้อมูลนำเข้าของอีกคำสั่งสำหรับการทำงานที่ซับซ้อน
การต่อคำสั่งด้วยไพป์ (|) เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
เชื่อมคำสั่งด้วยไพป์
ยินดีต้อนรับ ใน Linux คุณมักต้องรวมความสามารถของคำสั่งหลายคำสั่งเพื่อให้ได้ผลลัพธ์ที่ต้องการ ไพป์มีประโยชน์ในกรณีนี้
ไพป์ช่วยให้คุณส่ง เอาต์พุต ของคำสั่งหนึ่งไปเป็น อินพุต ของอีกคำสั่งหนึ่งโดยตรง ลองนึกภาพว่าเป็นสายพานลำเลียงข้อมูล
สัญลักษณ์ไพป์ '|'
สัญลักษณ์ไพป์คือขีดแนวตั้ง: | ให้วางไว้ระหว่างคำสั่งสองคำสั่ง
- คำสั่งทางซ้ายจะส่งเอาต์พุตมาตรฐานของตน (สิ่งที่ปกติพิมพ์บนหน้าจอ)
- คำสั่งทางขวาจะรับเอาต์พุตนี้เป็นอินพุตมาตรฐาน
นี่เป็นแนวคิดพื้นฐานสำหรับการทำงานกับบรรทัดคำสั่งอย่างมีประสิทธิภาพ
ไพป์แรกของคุณ: `ls | less`
มาดูการทำงานของไพป์กัน คำสั่ง ls -l /usr/bin แสดงรายการไฟล์จำนวนมาก ซึ่งมักมีมากเกินกว่าจะเห็นได้ในหน้าจอเดียว
เมื่อส่งเอาต์พุตต่อไปยัง less คุณจะดูข้อมูลได้ทีละหน้า ลองเรียกใช้ตัวอย่างนี้:
ls -l /usr/bin | lessการกรองเอาต์พุตด้วย `grep`
ไพป์เหมาะอย่างยิ่งสำหรับการกรอง คำสั่ง grep ค้นหารูปแบบในข้อความ เมื่อใช้ร่วมกับไพป์ คำสั่งนี้จะกรองเอาต์พุตของคำสั่งอื่นได้
คำสั่งนี้จะแสดงรายการไฟล์ทั้งหมดในไดเรกทอรีปัจจุบัน แล้วกรองให้แสดงเฉพาะไฟล์ที่ลงท้ายด้วย .txt:
ls | grep .txtการนับรายการด้วย `wc`
คำสั่ง wc (นับคำ) สามารถนับบรรทัด คำ หรืออักขระได้ เมื่อใช้ร่วมกับไพป์ คำสั่งนี้จะนับจากอินพุตที่ส่งผ่านไพป์
หากต้องการนับจำนวนไฟล์ .txt ในไดเรกทอรีปัจจุบัน คุณสามารถต่อคำสั่ง ls, grep และ wc -l (นับบรรทัด) เข้าด้วยกัน:
ls | grep .txt | wc -lการต่อคำสั่งหลายคำสั่ง
คุณไม่ได้จำกัดอยู่แค่สองคำสั่ง คุณสามารถต่อคำสั่งจำนวนมากเข้าด้วยกันด้วยไพป์หลายตัว เพื่อสร้างลำดับการทำงานที่ทรงพลัง
ไพป์แต่ละตัวจะส่งเอาต์พุตของคำสั่งก่อนหน้าไปยังคำสั่งถัดไปในลำดับ:
ps aux | grep chrome | wc -lการเรียงลำดับเอาต์พุตจากไพป์ (`sort`)
คำสั่ง sort จัดเรียงบรรทัดข้อความตามลำดับตัวอักษรหรือตัวเลข มักใช้หลังไพป์เพื่อจัดระเบียบข้อมูล
ตัวอย่างนี้แสดงรายการไฟล์ใน /etc และเรียงตามลำดับตัวอักษรย้อนกลับ โดยแสดงเฉพาะผลลัพธ์ 5 รายการแรก:
ls /etc | sort -r | head -n 5การค้นหาบรรทัดที่ไม่ซ้ำกัน (`uniq`)
คำสั่ง uniq ลบบรรทัดที่อยู่ติดกันและซ้ำกัน คำสั่งนี้จะมีประสิทธิภาพสูงสุดเมื่อใช้หลัง sort ซึ่งจะนำบรรทัดที่เหมือนกันมาไว้ติดกัน
มาลองเรียงรายการผลไม้ แล้วค้นหารายการที่ไม่ซ้ำกันกัน
echo -e "apple\nbanana\napple\norange" | sort | uniqไพป์เทียบกับการเปลี่ยนเส้นทาง I/O
จำการเปลี่ยนเส้นทาง I/O (>, >>, <) จากบทเรียนก่อนหน้านี้ได้ไหม
- ไพป์ (
|): เชื่อม เอาต์พุตของคำสั่งหนึ่งเข้ากับอินพุตของอีกคำสั่งหนึ่ง ทำให้ข้อมูลไหลระหว่างโปรแกรม - การเปลี่ยนเส้นทาง (
>,<): เชื่อมอินพุตหรือเอาต์พุตของคำสั่งเข้ากับไฟล์ เพื่อบันทึกข้อมูลลงดิสก์หรืออ่านข้อมูลจากดิสก์
ทั้งสองวิธีมีประสิทธิภาพ แต่ใช้สำหรับจุดประสงค์ที่แตกต่างกัน
ตรวจสอบความรู้เรื่องไพป์
คุณได้เรียนรู้วิธีเชื่อมคำสั่งด้วยไพป์แล้ว มาทดสอบความเข้าใจกัน
ทบทวน: พลังของไพป์
ทำได้ดีมาก คุณเข้าใจพื้นฐานของการส่งคำสั่งผ่านไพป์ใน Linux แล้ว
- ไพป์ (
|) เชื่อมเอาต์พุตของคำสั่งหนึ่งเข้ากับอินพุตของอีกคำสั่งหนึ่ง - ไพป์ช่วยให้คุณต่อคำสั่งเพื่อกรอง เรียงลำดับ และประมวลผลข้อมูลได้อย่างมีประสิทธิภาพ
- ไพป์แตกต่างจากการเปลี่ยนเส้นทาง I/O ซึ่งเชื่อมคำสั่งเข้ากับไฟล์
ฝึกใช้คำสั่งต่าง ๆ ต่อไป แล้วดูว่าคุณจะทำอะไรได้บ้างเมื่อรวมคำสั่งเหล่านั้นเข้าด้วยกัน
คำถามที่พบบ่อย
บทเรียน “การต่อคำสั่งด้วยไพป์ (|)” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การต่อคำสั่งด้วยไพป์ (|)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การต่อคำสั่งด้วยไพป์ (|)”
ทำความเข้าใจพลังของไพป์ในการเชื่อมต่อคำสั่ง โดยส่งผลลัพธ์ของคำสั่งหนึ่งไปเป็นข้อมูลนำเข้าของอีกคำสั่งสำหรับการทำงานที่ซับซ้อน คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “การต่อคำสั่งด้วยไพป์ (|)” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การจัดการกระบวนการ (ps, top, kill)
- การเปลี่ยนเส้นทางข้อมูลนำเข้าและผลลัพธ์ (>, >>, <)
- การต่อคำสั่งด้วยไพป์ (|)
- งานเบื้องหลังและการควบคุมงาน