นอกจาก การเชื่อมคำสั่ง (Logic) และ Shortcut (Speed) แล้ว ยังมีอีก 4 เรื่องสำคัญที่เป็น “พื้นฐาน” ที่จะทำให้คุณใช้งาน Command Line ได้อย่างมั่นใจและปลอดภัยครับ
การจัดการ Output ลงไฟล์ (Redirection)
เมื่อกี้เรารู้จัก | (Pipe) ที่ส่งข้อมูลข้ามโปรแกรม แต่ถ้าเราอยาก “เซฟลงไฟล์” เราต้องใช้ตัวนี้ครับ
> (ทับของเดิม): เขียนข้อมูลลงไฟล์ ถ้าไฟล์มีอยู่แล้ว ข้อมูลเก่าจะ หายหมด
- ตัวอย่าง:
echo "Hello" > log.txt (ในไฟล์จะมีแค่ Hello)
>> (ต่อท้าย): เขียนข้อมูลต่อท้ายไฟล์เดิม ข้อมูลเก่า ไม่หาย (เหมาะสำหรับทำ Log)
- ตัวอย่าง:
echo "Error happened" >> error_log.txt
อักขระพิเศษ (Wildcards)
แทนที่จะพิมพ์ชื่อไฟล์ทีละอัน เราสามารถใช้สัญลักษณ์แทนกลุ่มไฟล์ได้
* (ดอกจัน = อะไรก็ได้): ใช้บ่อยที่สุด
rm *.txt = ลบทุกไฟล์ที่ลงท้ายด้วย .txt
cp 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 อัตโนมัติได้แล้วครับ
อ่านเพิ่มเติม