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

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