รายการคำสั่งพื้นฐานของ Bash และวิธีใช้งานเบื้องต้น (cd, ls, echo และอื่นๆ)
ในบทความที่ผ่านมา เราได้เตรียมสภาพแวดล้อมที่ Bash สามารถทำงานได้แล้ว (ไม่ว่าจะเป็น Terminal บน macOS หรือ WSL บน Windows) ในที่สุดก็ถึงเวลาที่เราจะก้าวเข้าสู่โลกของ Bash อย่างเต็มตัว! คุณเคยใฝ่ฝันถึงภาพของ "แฮกเกอร์" ที่สามารถควบคุมคอมพิวเตอร์ได้ดั่งใจด้วยการพิมพ์คำสั่งจากคีย์บอร์ดไหมครับ? คำสั่งพื้นฐานที่เราจะเรียนในวันนี้คือบันไดก้าวแรกสู่ความฝันนั้น
ในบทความนี้ เราจะเน้นเฉพาะคำสั่งพื้นฐานที่สำคัญจริงๆ และใช้กันเป็นประจำในวงการสร้างเว็บ โดยจะอธิบายความหมายและวิธีใช้งานทีละขั้นตอนอย่างละเอียด เหมือนกับเชฟที่เรียนรู้วิธีใช้มีด การเชี่ยวชาญเครื่องมือพื้นฐานเหล่านี้ก่อน คือการเปิดประตูสู่เทคนิคประยุกต์ทุกรูปแบบ แต่ละคำสั่งมาพร้อมกับตัวอย่างที่สามารถคัดลอกและนำไปใช้ได้ทันที ขอให้คุณลองลงมือทำจริงๆ ในเทอร์มินัลของคุณ เพื่อจับความรู้สึกของการใช้คำสั่งไปพร้อมๆ กัน!
1. คำสั่งสำหรับการเดินทาง - มาเป็นนักสำรวจระบบไฟล์กันเถอะ
พื้นฐานของการใช้งานเทอร์มินัลคือการรู้ว่า "ตอนนี้เราอยู่ที่ไหน" และ "การเดินทางไปยังจุดหมาย" คำสั่งเหล่านี้เปรียบเสมือน "เท้า" ของคุณในโลก CUI
pwd - ตรวจสอบตำแหน่งปัจจุบัน
pwd (Print Working Directory) ใช้แสดงผลพาธเต็ม (ตำแหน่งที่สมบูรณ์จากราก) ของไดเรกทอรีที่คุณอยู่ ณ ปัจจุบัน เหมือนกับการดูเข็มทิศเมื่อหลงป่า หากหลงทางในเทอร์มินัล ให้พิมพ์ pwd ก่อนเลย
$ pwd
/Users/yourname/Documents/Projects
cd - ย้ายไดเรกทอรี
cd (Change Directory) ตามชื่อเลย คือคำสั่งสำหรับย้ายไปยังไดเรกทอรี (โฟลเดอร์) อื่น
การเข้าไปในโฟลเดอร์ที่ระบุ:
$ cd website-v1
การย้อนกลับไปหนึ่งระดับ:
$ cd ..
การกลับไปยังโฮมไดเรกทอรีของคุณในพริบตา:
$ cd
มีความหมายเดียวกับการพิมพ์ cd ~ ไม่ว่าคุณจะอยู่ในไดเรกทอรีที่ลึกแค่ไหน คำสั่งนี้จะพาคุณกลับบ้านได้ในพริบตา
2. คำสั่งแสดงรายการ - การมองไปรอบๆ
เมื่อถึงที่หมายแล้ว สิ่งต่อไปที่คุณอยากรู้ก็คือมีอะไรอยู่ในที่แห่งนั้นบ้างใช่ไหมครับ คำสั่ง ls จะทำหน้าที่เป็น "ตา" ของคุณ คอยบอกสถานการณ์รอบตัวให้คุณทราบ
ls - แสดงรายการไฟล์และโฟลเดอร์
การรัน ls (List) เฉยๆ จะแสดงรายชื่อไฟล์และโฟลเดอร์ในไดเรกทอรีปัจจุบัน
$ ls
css images index.html js
ปรับแต่งการแสดงผลด้วยออปชัน
ls สามารถเปลี่ยนวิธีการแสดงผลได้หลากหลายโดยการเพิ่ม "ออปชัน"
แสดงข้อมูลอย่างละเอียด (-l):
$ ls -l
total 8
drwxr-xr-x 2 user staff 64 7 6 10:00 css
drwxr-xr-x 3 user staff 96 7 6 10:00 images
-rw-r--r-- 1 user staff 512 7 6 10:01 index.html
drwxr-xr-x 2 user staff 64 7 6 10:00 js
คุณจะเห็นข้อมูลอย่างละเอียด เช่น สิทธิ์การเข้าถึง, เจ้าของ, ขนาดไฟล์, และวันที่แก้ไขล่าสุด
แสดงไฟล์ทั้งหมดรวมถึงไฟล์ที่ซ่อนอยู่ (-a):
จะแสดง "ไฟล์ที่ซ่อนอยู่" ซึ่งชื่อขึ้นต้นด้วยจุด เช่น .htaccess ด้วย
$ ls -a
. .. .htaccess css images index.html js
. คือสัญลักษณ์พิเศษที่หมายถึงไดเรกทอรีปัจจุบัน และ .. หมายถึงไดเรกทอรีชั้นบนหนึ่งขั้น
สามารถรวมออปชันได้:
$ ls -al
3. คำสั่งสร้างและจัดการ - เปลี่ยนแปลงโลกของคุณ
เมื่อคุณสามารถเดินทางและตรวจสอบสภาพแวดล้อมได้แล้ว ต่อไปเรามาลองสร้าง, คัดลอก, เปลี่ยนชื่อ, และลบไฟล์และโฟลเดอร์กันจริงๆ คำสั่งเหล่านี้คือ "มือ" ของคุณในโลก CUI
mkdir - สร้างโฟลเดอร์
mkdir (Make Directory) ใช้สร้างโฟลเดอร์ใหม่
$ mkdir assets
touch - สร้างไฟล์ว่าง
คำสั่ง touch สามารถอัปเดตเวลาของไฟล์ หรือหากไม่มีไฟล์อยู่ ก็จะสร้างไฟล์ว่างขึ้นมาใหม่
$ touch contact.html
cp - คัดลอกไฟล์หรือโฟลเดอร์
cp (Copy) ใช้ทำสำเนาไฟล์หรือโฟลเดอร์
การคัดลอกไฟล์:
$ cp index.html index_backup.html
การคัดลอกโฟลเดอร์ (ต้องใช้ออปชัน -r):
$ cp -r css/ css_backup/
mv - ย้ายหรือเปลี่ยนชื่อไฟล์และโฟลเดอร์
mv (Move) ใช้ย้ายไฟล์หรือโฟลเดอร์ และยังใช้สำหรับเปลี่ยนชื่อได้อีกด้วย
การย้ายไฟล์:
$ mv contact.html pages/
การเปลี่ยนชื่อไฟล์ (คิดซะว่าเป็นการย้ายไปยังตำแหน่งเดิมแต่ใช้ชื่อใหม่):
$ mv index_backup.html index_old.html
rm - ลบไฟล์หรือโฟลเดอร์
rm (Remove) คือคำสั่งลบ 【ข้อควรระวังที่สำคัญอย่างยิ่งยวด!】 ต่างจากถังขยะใน GUI สิ่งที่ถูกลบด้วย rm จะหายไปอย่างถาวรและไม่สามารถกู้คืนได้ ก่อนจะรันคำสั่ง ควรหายใจเข้าลึกๆ และใช้ความระมัดระวังเทียบเท่ากับการชี้นิ้วยืนยันว่าใช่สิ่งที่ต้องการลบจริงๆ
การลบไฟล์:
$ rm index_old.html
การลบโฟลเดอร์ (ต้องใช้ออปชัน -r):
$ rm -r css_backup/
4. คำสั่งสำหรับดูเนื้อหาไฟล์
สุดท้าย เรามาแนะนำคำสั่งสำหรับตรวจสอบเนื้อหาภายในไฟล์กันบ้าง ซึ่งเป็นทักษะที่จำเป็นในการจัดการเซิร์ฟเวอร์ เช่น การตรวจสอบล็อก
cat - แสดงเนื้อหาทั้งไฟล์ในครั้งเดียว
cat เหมาะสำหรับเวลาที่ต้องการตรวจสอบเนื้อหาของไฟล์สั้นๆ อย่างรวดเร็ว
$ cat index.html
less - ดูไฟล์ยาวๆ พร้อมกับเลื่อนดูได้
less มีประโยชน์อย่างมากเมื่อต้องการดูไฟล์ยาวๆ เช่น ไฟล์ล็อก คุณสามารถใช้ปุ่มลูกศรขึ้นลงเพื่อเลื่อนดู และกดปุ่ม q เพื่อออกจากการดู
$ less /var/log/apache2/access_log
head / tail - ดูเฉพาะส่วนหัวหรือท้ายของไฟล์
head แสดงส่วนหัวของไฟล์ ส่วน tail แสดงส่วนท้าย มักใช้บ่อยเมื่อต้องการตรวจสอบล็อกล่าสุด เป็นต้น
$ tail -n 20 access_log
-n 20 หมายถึง "แสดง 20 บรรทัดสุดท้าย"
สรุป
เยี่ยมมากครับ! ครั้งนี้เราได้เรียนรู้กลุ่มคำสั่งพื้นฐานที่จำเป็นต่อการใช้ Bash อย่างรวดเร็ว แม้แต่ละคำสั่งจะดูเรียบง่าย แต่การนำมารวมกันจะช่วยให้ทำงานได้อย่างรวดเร็วและมีประสิทธิภาพในระดับที่การใช้ GUI เทียบไม่ติด
ทางลัดที่ดีที่สุดในการทำให้สิ่งที่คุณเรียนรู้วันนี้ซึมซับเข้าสู่ร่างกายคือ การลองทำงานง่ายๆ ที่ปกติคุณทำผ่าน GUI มาทำผ่านเทอร์มินัลแทน แม้จะเป็นงานง่ายๆ อย่าง "สร้างโฟลเดอร์ใหม่แล้วคัดลอกไฟล์ไปใส่" การสร้างนิสัยให้ทำผ่านคำสั่งจะช่วยให้นิ้วของคุณจำได้โดยอัตโนมัติ
ตอนนี้ คุณได้เรียนรู้ "คำศัพท์" พื้นฐานของภาษา Bash แล้ว ขั้นตอนต่อไปคือการนำคำศัพท์เหล่านี้มารวมกันเพื่อสร้าง "ประโยค" หรือก็คือโลกของ Bash script นั่นเอง ในบทความหน้า เราจะมาเรียนรู้วิธีการเขียนสคริปต์อัตโนมัติง่ายๆ เพื่อทำให้งานของคุณสบายยิ่งขึ้นไปอีก!
บทนำสู่ Bash Script: ตัวอย่างสคริปต์อัตโนมัติง่ายๆ ที่ควรเขียนเป็นอันดับแรก