นอกจาก การเชื่อมคำสั่ง (Logic) และ Shortcut (Speed) แล้ว ยังมีอีก 4 เรื่องสำคัญที่เป็น “พื้นฐาน” ที่จะทำให้คุณใช้งาน Command Line ได้อย่างมั่นใจและปลอดภัยครับ
การจัดการ Output ลงไฟล์ (Redirection)
เมื่อกี้เรารู้จัก | (Pipe) ที่ส่งข้อมูลข้ามโปรแกรม แต่ถ้าเราอยาก “เซฟลงไฟล์” เราต้องใช้ตัวนี้ครับ
>(ทับของเดิม): เขียนข้อมูลลงไฟล์ ถ้าไฟล์มีอยู่แล้ว ข้อมูลเก่าจะ หายหมด- ตัวอย่าง:
echo "Hello" > log.txt(ในไฟล์จะมีแค่ Hello)
- ตัวอย่าง:
>>(ต่อท้าย): เขียนข้อมูลต่อท้ายไฟล์เดิม ข้อมูลเก่า ไม่หาย (เหมาะสำหรับทำ Log)- ตัวอย่าง:
echo "Error happened" >> error_log.txt
- ตัวอย่าง:
อักขระพิเศษ (Wildcards)
แทนที่จะพิมพ์ชื่อไฟล์ทีละอัน เราสามารถใช้สัญลักษณ์แทนกลุ่มไฟล์ได้
*(ดอกจัน = อะไรก็ได้): ใช้บ่อยที่สุดrm *.txt= ลบทุกไฟล์ที่ลงท้ายด้วย .txtcp config* /backup/= copy ทุกไฟล์ที่ขึ้นต้นด้วยคำว่า config ไปไว้โฟลเดอร์ backup
?(เครื่องหมายคำถาม = ตัวอักษรเดียว):ls file?.txt= จะเจอ file1.txt, fileA.txt แต่ไม่เจอ file10.txt
เรื่องสิทธิ์ (Permissions) และ sudo
ถ้าคุณรันคำสั่งแล้วเจอ Permission denied แปลว่า user ของคุณไม่มีสิทธิ์ทำสิ่งนั้น
sudo(SuperUser DO): คือการขอสิทธิ์เป็น Admin ชั่วคราว (เหมือน Run as Administrator ใน Windows)- ข้อควรระวัง: อย่าใช้
sudoพร่ำเพรื่อ ใช้เฉพาะตอนแก้ไขไฟล์ระบบหรือลงโปรแกรมเท่านั้น
- ข้อควรระวัง: อย่าใช้
chmod: คำสั่งเปลี่ยนสิทธิ์ไฟล์ (เช่นchmod +x script.shเพื่อทำให้ไฟล์นั้นรันได้)
การอ้างอิงตำแหน่ง (Relative Paths)
เรื่องนี้สำคัญมากเวลาเขียน Script หรือย้ายไฟล์
.(จุดเดียว): หมายถึง “ที่นี่” (โฟลเดอร์ปัจจุบัน)cp /etc/nginx/nginx.conf .(copy ไฟล์ config มาวางไว้ ที่นี่)
..(สองจุด): หมายถึง “ถอยกลับไป 1 ชั้น”cd ..(ถอยออกจากโฟลเดอร์ปัจจุบัน)
~(ตัวหนอน): หมายถึง “บ้าน” (Home Directory ของ user เรา)cd ~(กลับบ้านทันที ไม่ว่าจะอยู่ที่ไหน)
สรุป Checklist ความปลอดภัย
ก่อนจะกด Enter กับคำสั่งที่ดูอันตราย (เช่น การลบ หรือการย้ายไฟล์จำนวนมาก) ลองเช็คตามนี้ครับ
- Backup หรือยัง? (โดยเฉพาะไฟล์ Config สำคัญๆ)
- พิมพ์ Path ถูกไหม? (ใช้
lsเช็คก่อนrmเสมอ เช่นls *.txtดูให้แน่ใจก่อนสั่งrm *.txt) - อยู่ในโฟลเดอร์ที่ถูกต้องไหม? (พิมพ์
pwdเพื่อดูว่าตอนนี้เราอยู่ที่ไหน)
ถ้าเข้าใจหมดนี้ คุณก็พร้อมลุยงาน Server หรือเขียน Script อัตโนมัติได้แล้วครับ
อ่านเพิ่มเติม
