กลับไปหน้าบทความ
#Linux#Terminal#Command Line#Bash#Pipe

Linux Tips & Tricks บน Terminal และ Pipe ที่ช่วยให้ทำงานไวขึ้น

รวมคีย์ลัดบน Terminal และเทคนิค pipe ที่ช่วยให้ใช้งาน Linux ได้รวดเร็วขึ้น ลดงานซ้ำ และป้องกันข้อผิดพลาดที่ผู้เริ่มต้นมักเจอ โดยเฉพาะเรื่อง history, stderr และการจัดการ pipeline อย่างปลอดภัย

20 มีนาคม 2569อ่านประมาณ 2 นาที

แชร์บทความ

Linux Tips & Tricks บน Terminal และ Pipe ที่ช่วยให้ทำงานไวขึ้น

Linux Tips & Tricks บน Terminal และ Pipe ที่ช่วยให้ทำงานไวขึ้น

การทำงานบน Linux ผ่าน Terminal ไม่ได้มีดีแค่ความยืดหยุ่น แต่ยังสามารถเพิ่มความเร็วในการทำงานได้อย่างชัดเจน หากรู้จักคีย์ลัดและเทคนิคเล็กๆ ที่เหมาะสม บทความนี้รวบรวมทั้งคีย์ลัดสำคัญบนบรรทัดคำสั่ง และการใช้ pipe (|) อย่างถูกต้อง เพื่อให้ทำงานได้เร็วขึ้น แม่นยำขึ้น และพลาดน้อยลง

1) คีย์ลัดบน Terminal ที่ควรรู้

Ctrl + A: ย้ายไปต้นบรรทัดทันที

เหมาะมากเมื่อพิมพ์คำสั่งยาวไปแล้ว แต่อยากเติมบางอย่างไว้ข้างหน้า เช่น sudo

ตัวอย่าง:

apt install nginx

หากต้องการเติม sudo ด้านหน้า ให้กด Ctrl + A แล้วพิมพ์:

sudo

ผลลัพธ์จะกลายเป็น:

sudo apt install nginx

Ctrl + E: ย้ายไปท้ายบรรทัดทันที

ใช้เมื่อต้องการเพิ่มพารามิเตอร์ท้ายคำสั่ง เช่น --dry-run, -v หรือ -n โดยไม่ต้องกดลูกศรขวาซ้ำๆ

Alt + B / Alt + F: กระโดดทีละคำ

  • Alt + B ย้อนกลับทีละคำ
  • Alt + F ไปข้างหน้าทีละคำ

วิธีนี้เร็วกว่าเลื่อนทีละตัวอักษรมาก โดยเฉพาะเวลาต้องแก้คำสั่งยาวๆ

หมายเหตุ: บางเครื่องอาจต้องใช้ Esc แล้วตามด้วย b หรือ f

Ctrl + U และ Ctrl + K: ลบรวดเร็ว

  • Ctrl + U ลบจากตำแหน่งเคอร์เซอร์ไปจนถึงต้นบรรทัด
  • Ctrl + K ลบจากตำแหน่งเคอร์เซอร์ไปจนถึงท้ายบรรทัด

เหมาะมากเมื่อพิมพ์ผิดยาวๆ และไม่อยากกด Backspace รัวๆ

2) ค้นคำสั่งเก่าและเรียกใช้ซ้ำให้ไวขึ้น

Ctrl + R: ค้นหาคำสั่งย้อนหลัง

นี่คือหนึ่งในคีย์ลัดที่คุ้มค่าที่สุดสำหรับคนใช้ Terminal เป็นประจำ เพียงกด Ctrl + R แล้วพิมพ์คำใบ้ เช่น ssh, docker หรือ kubectl ระบบจะค้นจาก history ให้ทันที

  • กด Ctrl + R ซ้ำ เพื่อดูผลลัพธ์ก่อนหน้า
  • กด Enter เพื่อรันคำสั่งทันที
  • กดลูกศรขวา หากต้องการดึงคำสั่งมาแก้ไขก่อนรัน

!!: รันคำสั่งก่อนหน้าซ้ำ

ใช้เมื่ออยากเรียกคำสั่งล่าสุดกลับมารันทันที เช่น กรณีลืมใส่ sudo

ตัวอย่าง:

sudo !!

!$: เรียกอาร์กิวเมนต์ตัวสุดท้ายของคำสั่งก่อนหน้า

ช่วยลดการพิมพ์ซ้ำ โดยเฉพาะเวลาทำงานกับชื่อไฟล์หรือโฟลเดอร์

ตัวอย่าง:

mkdir project
cd !$

ผลลัพธ์คือเข้าสู่โฟลเดอร์ project ได้ทันที

3) เข้าใจ pipe ให้ถูก: stdout กับ stderr ไม่เหมือนกัน

ผู้เริ่มต้นจำนวนมากมักเข้าใจว่า pipe จะส่งทุกอย่างไปยังคำสั่งถัดไป แต่จริงๆ แล้ว pipe ส่งเฉพาะ stdout หรือผลลัพธ์ปกติเท่านั้น ส่วน stderr หรือข้อความผิดพลาดจะไม่ถูกส่งต่อโดยอัตโนมัติ

นี่คือจุดที่ทำให้หลายคนสงสัยว่าเหตุใด grep จึงหา error ไม่เจอ

ตัวอย่างที่พลาดบ่อย

find / -name "*.log" | grep Permission

หลายคนคาดว่าจะเห็นข้อความ Permission denied แต่กลับไม่พบอะไร เพราะข้อความเหล่านี้มักถูกส่งออกทาง stderr

วิธีแก้ที่ควรรู้

รวม stderr เข้ากับ stdout ก่อน

find / -name "*.log" 2>&1 | grep -i permission

คำสั่ง 2>&1 คือการรวม error output เข้ากับ output ปกติ เพื่อให้ pipe ส่งต่อทั้งหมดไปยัง grep

ส่ง error เข้า grep โดยตรง

หากต้องการแยก output ปกติออกจาก error สามารถใช้เทคนิคนี้ได้:

... 2> >(grep -i permission)

วิธีนี้เหมาะกับ bash ที่รองรับ process substitution

4) เทคนิค pipe ที่ช่วยให้ทำงานสะดวกขึ้น

ใช้ tee เพื่อดูผลลัพธ์พร้อมบันทึกไฟล์

หากต้องการดูผลลัพธ์บนหน้าจอไปพร้อมกับเก็บ log ลงไฟล์ tee คือคำตอบ

ตัวอย่าง:

./deploy.sh 2>&1 | tee deploy.log

ข้อดีคือสามารถติดตามผลแบบสดๆ และยังมี log เก็บไว้ตรวจสอบย้อนหลังได้ด้วย

5) จุดเล็กๆ ที่ทำให้ pipeline พังหรือได้ผลลัพธ์เพี้ยน

สีและ format จากคำสั่งต้นทาง

บางคำสั่งส่งผลลัพธ์แบบมีสีหรือมี formatting พิเศษ ซึ่งอาจทำให้ grep หรือ pager ทำงานผิดคาด

แนวทางแก้คือ:

  • ใช้ --color=never
  • หรือใช้ตัวเลือก no-color ของเครื่องมือนั้นๆ

ใช้ set -o pipefail ใน bash script

เมื่อมีหลายคำสั่งเชื่อมกันด้วย pipe บางครั้งคำสั่งกลางล้มเหลว แต่คำสั่งสุดท้ายยังจบแบบ exit 0 ทำให้สคริปต์ดูเหมือนสำเร็จ

การเปิดใช้:

set -o pipefail

จะช่วยให้สคริปต์ล้มทันทีเมื่อมีคำสั่งใดใน pipeline ล้มเหลว

ระวัง xargs กับชื่อไฟล์ที่มี space

ถ้าชื่อไฟล์มีช่องว่าง การใช้ xargs แบบทั่วไปอาจทำให้คำสั่งแตกและทำงานผิดไฟล์ได้

แนวทางที่ปลอดภัยกว่าคือใช้ -print0 คู่กับ -0

find . -type f -print0 | xargs -0 rm

วิธีนี้ช่วยลดความเสี่ยงจากการลบผิดไฟล์ได้อย่างมาก

6) สรุปคีย์จำง่ายสำหรับใช้งานจริง

หัวใจสำคัญของเทคนิคทั้งหมดมีดังนี้

  • Ctrl + A และ Ctrl + E สำหรับไปต้นและท้ายบรรทัดอย่างรวดเร็ว
  • Alt + B และ Alt + F สำหรับกระโดดทีละคำ
  • Ctrl + U สำหรับลบข้อความเร็ว
  • Ctrl + R สำหรับค้น history
  • !! และ !$ สำหรับเรียกใช้คำสั่งหรืออาร์กิวเมนต์เดิมซ้ำ
  • pipe ส่งเฉพาะ stdout ส่วน stderr ต้องรวมด้วย 2>&1
  • tee ช่วยให้ดูผลลัพธ์พร้อมเก็บ log
  • pipefail และ -print0/-0 ช่วยป้องกันข้อผิดพลาดแบบมืออาชีพ

สรุปท้าย

หากต้องเลือกจำเพียง 3 อย่างจากบทความนี้ สิ่งที่ควรเริ่มใช้ทันทีคือ Ctrl + R สำหรับค้นคำสั่งย้อนหลัง, sudo !! สำหรับแก้สถานการณ์ลืมใส่สิทธิ์, และ 2>&1 สำหรับจัดการ output ใน pipeline ให้ถูกต้อง เมื่อใช้จนคล่องแล้ว การทำงานบน Linux ผ่าน Terminal จะเร็วขึ้นอย่างรู้สึกได้ และลดความผิดพลาดจากเรื่องเล็กๆ ที่มักถูกมองข้าม