การใช้งาน Terminal และคำสั่งพื้นฐานที่สาย IT ต้องรู้
การทำงานด้าน IT ไม่ว่าจะเป็นสาย Developer, System Admin, DevOps, Network Engineer หรือแม้กระทั่งสาย Digital Marketing ที่ดูแลเว็บไซต์และเซิร์ฟเวอร์ การเข้าใจและใช้งาน Command Line ผ่าน Terminal ให้คล่อง ถือเป็นทักษะสำคัญที่ช่วยยกระดับประสิทธิภาพการทำงานได้อย่างชัดเจน บทความนี้จะเน้น สอนใช้ Terminal ตั้งแต่พื้นฐาน แนวคิด วิธีคิด ไปจนถึงตัวอย่างคำสั่งยอดนิยม เพื่อให้ผู้อ่านสามารถนำไปใช้งานได้จริง ทั้งบนเครื่องส่วนตัว เซิร์ฟเวอร์ Linux หรือ Cloud Server ที่ใช้ดูแลระบบต่างๆ
หัวใจของบทความนี้: ทำให้ผู้อ่านเข้าใจโครงสร้างการทำงานของ Command Line และใช้คำสั่งพื้นฐานใน Terminal ได้อย่างมั่นใจ พร้อมมุมมองที่ประยุกต์ใช้ได้จริงในงานด้าน IT และการดูแลเซิร์ฟเวอร์
ภาพรวม: Terminal คืออะไร และแตกต่างจาก GUI อย่างไร
ก่อนจะเริ่ม สอนใช้ Terminal อย่างจริงจัง ควรทำความเข้าใจแนวคิดพื้นฐานก่อนว่า Terminal และ Command Line คืออะไร และเหตุใดจึงสำคัญต่อสาย IT
Terminal / Command Line คืออะไร
- Terminal – โปรแกรมหรือหน้าต่างที่ใช้พิมพ์คำสั่ง (Command) เพื่อสื่อสารกับระบบปฏิบัติการ เช่น Terminal ใน macOS / Linux หรือ PowerShell / Command Prompt ใน Windows
- Command Line – วิธีการใช้งานคอมพิวเตอร์ผ่านการพิมพ์คำสั่งเป็นตัวอักษร แทนการคลิกเมาส์ในหน้าจอกราฟิก
- Shell – ตัวแปลคำสั่ง เช่น bash, zsh, sh ที่อยู่เบื้องหลัง Terminal เป็นตัวอ่านและประมวลผลคำสั่งที่เราพิมพ์
ข้อดีของการใช้ Command Line เมื่อเทียบกับ GUI
- ทำงานซ้ำๆ ได้เร็ว – ใช้สคริปต์หรือคำสั่งเดียวจัดการงานจำนวนมาก แทนการคลิกทีละขั้น
- ควบคุมระบบได้ลึกกว่า – เข้าถึงไฟล์ ระบบสิทธิ์ และการตั้งค่าที่ GUI อาจไม่มีตัวเลือก
- ทำงานระยะไกล (Remote) ได้สะดวก – ระบบเซิร์ฟเวอร์ส่วนใหญ่ โดยเฉพาะ Linux/Unix และ Cloud Server มักบริหารผ่าน Command Line เป็นหลัก
- เหมาะกับการทำงานอัตโนมัติ (Automation) – ผูกคำสั่งกับสคริปต์, Cron Job, CI/CD pipeline ฯลฯ
การเข้าใจพื้นฐาน Command Line ไม่ได้จำกัดอยู่แค่สาย Sysadmin แต่เป็นทักษะกลางที่ช่วยให้ทุกบทบาทในสาย IT ทำงานกับระบบและเซิร์ฟเวอร์ได้อย่างมืออาชีพ
เริ่มต้นใช้งาน Terminal: Interface และแนวคิดพื้นฐาน
โครงสร้างบรรทัดคำสั่ง (Command Prompt)
เมื่อเปิด Terminal ขึ้นมา สิ่งที่เห็นบ่อยคือบรรทัดลักษณะประมาณนี้:
user@hostname:~$(บน Linux / macOS ส่วนใหญ่)C:\Users\UserName>(บน Windows Command Prompt)
ความหมายพื้นฐาน:
- user – บัญชีผู้ใช้ที่กำลังใช้งาน
- hostname – ชื่อเครื่อง/เซิร์ฟเวอร์
- ~ – โฟลเดอร์ปัจจุบัน (ในตัวอย่างคือ home directory)
- $ หรือ # – สัญลักษณ์บอกสิทธิ์
- $ – ผู้ใช้ทั่วไป
- # – สิทธิ์ root (ผู้ดูแลระบบ)
โครงสร้างคำสั่งบน Command Line
โดยทั่วไปคำสั่งจะมีรูปแบบ:
command [options] [arguments]
- command – ชื่อคำสั่ง เช่น
ls,cd,cp - options – ตัวเลือกเสริม เช่น
-l,-a,--help - arguments – เป้าหมายที่คำสั่งจะทำงาน เช่น ชื่อไฟล์ โฟลเดอร์
ตัวอย่าง:
ls -la /var/wwwls= แสดงรายการไฟล์-la= แสดงแบบละเอียด พร้อมไฟล์ซ่อน/var/www= โฟลเดอร์เป้าหมาย
คำสั่งพื้นฐานเกี่ยวกับการจัดการโฟลเดอร์และไฟล์
คำสั่งสำหรับดูตำแหน่งและเปลี่ยนโฟลเดอร์
pwd– แสดง path ปัจจุบัน- ใช้ตรวจสอบว่าเรากำลังอยู่ในโฟลเดอร์ใดบนระบบไฟล์
ls– แสดงรายการไฟล์และโฟลเดอร์ls– แสดงรายการแบบพื้นฐานls -l– แสดงแบบละเอียด (สิทธิ์, เจ้าของ, ขนาด, วันที่แก้ไข)ls -a– แสดงไฟล์ทั้งหมด รวมถึงไฟล์ซ่อน (ขึ้นต้นด้วย .)ls -la– รวมตัวเลือกทั้งแบบละเอียดและแสดงไฟล์ซ่อน
cd– เปลี่ยนโฟลเดอร์ (Change Directory)cd /var/www– เข้าไปที่โฟลเดอร์ /var/wwwcd ~– กลับไปโฟลเดอร์หลักของผู้ใช้ (home directory)cd ..– ย้อนขึ้นไป 1 ระดับโฟลเดอร์cd -– กลับไปโฟลเดอร์ก่อนหน้า (toggle ระหว่างสองตำแหน่ง)
คำสั่งสร้าง ลบ และจัดการโฟลเดอร์
mkdir– สร้างโฟลเดอร์ใหม่mkdir logs– สร้างโฟลเดอร์ชื่อ logsmkdir -p /var/www/project/logs– สร้างโฟลเดอร์ย่อยตาม path ทั้งหมด หากยังไม่มี
rmdir– ลบโฟลเดอร์ที่ว่างเปล่าrm -r– ลบโฟลเดอร์พร้อมไฟล์ภายในrm -r old_backup– ลบโฟลเดอร์ old_backup ทั้งหมด- ข้อควรระวัง: คำสั่งนี้ลบแบบถาวร ไม่มีถังขยะ ควรตรวจสอบ path ทุกครั้ง โดยเฉพาะบนเซิร์ฟเวอร์จริง
คำสั่งจัดการไฟล์
touch– สร้างไฟล์เปล่าหรืออัปเดตเวลาของไฟล์touch index.html
cp– คัดลอกไฟล์/โฟลเดอร์cp file1.txt file2.txt– คัดลอกไฟล์cp -r src/ backup_src/– คัดลอกโฟลเดอร์ (recursive)
mv– ย้ายหรือเปลี่ยนชื่อไฟล์/โฟลเดอร์mv oldname.txt newname.txt– เปลี่ยนชื่อไฟล์mv index.html /var/www/html/– ย้ายไฟล์ไปยังโฟลเดอร์ปลายทาง
rm– ลบไฟล์rm file.txt– ลบไฟล์เดียวrm -f file.txt– ลบแบบไม่ถามยืนยัน (force)
การจัดการไฟล์และโฟลเดอร์ให้คล่อง เป็นพื้นฐานสำคัญของการดูแลระบบ ไม่ว่าจะเป็นการเตรียมโครงสร้างโปรเจกต์ การจัดการ log หรือการดูแลเว็บไซต์บนเซิร์ฟเวอร์
คำสั่งค้นหาข้อมูลและตรวจสอบไฟล์
อ่านเนื้อหาไฟล์อย่างรวดเร็ว
cat– แสดงเนื้อหาทั้งไฟล์cat config.php- เหมาะกับไฟล์ขนาดเล็ก-กลาง
less– เปิดอ่านไฟล์แบบเลื่อนขึ้นลงได้less /var/log/nginx/error.log- ใช้ปุ่มลูกศร หรือ
PageUp/PageDownเพื่อเลื่อน, กดqเพื่อออก
head– ดูบรรทัดแรกของไฟล์head -n 20 file.log– ดู 20 บรรทัดแรก
tail– ดูบรรทัดท้ายของไฟล์tail -n 50 file.log– ดู 50 บรรทัดสุดท้ายtail -f file.log– เฝ้าดู log แบบ real-time (เหมาะในการ debug ระบบหรือเว็บไซต์บนเซิร์ฟเวอร์)
ค้นหาข้อความภายในไฟล์
grep– ค้นหาข้อความในไฟล์grep "error" error.log– ค้นหาบรรทัดที่มีคำว่า errorgrep -i "warning" error.log– ค้นแบบไม่สนใจตัวพิมพ์เล็ก/ใหญ่grep -R "database" /var/www– ค้นหาแบบ recursive ทั้งโฟลเดอร์
ค้นหาไฟล์ในระบบ
find– ค้นหาไฟล์ตามเงื่อนไขต่างๆfind . -name "index.php"– ค้นหาไฟล์ชื่อ index.php ในโฟลเดอร์ปัจจุบันและย่อยfind /var/www -type f -name "*.log"– ค้นหาไฟล์ .log ทั้งหมดใน /var/www
การใช้คำสั่งค้นหาอย่าง grep และ find ทำให้การแก้ปัญหา ถอดรหัส bug และตรวจสอบ log บนเซิร์ฟเวอร์ทำได้รวดเร็วกว่าการเปิดไฟล์ทีละไฟล์หรือเลื่อนหาแบบ manual
คำสั่งตรวจสอบระบบสำหรับสายเซิร์ฟเวอร์และ DevOps
ตรวจสอบทรัพยากรระบบ
top/htop– ดูการใช้ CPU, RAM และ process แบบ real-timetop– มีในระบบส่วนใหญ่โดย defaulthtop– ใช้ง่ายกว่า แต่ต้องติดตั้งเพิ่มในบางระบบ
free -h– ตรวจสอบการใช้ RAMdf -h– ดูพื้นที่ดิสก์ที่ใช้งานและเหลืออยู่ในแต่ละ partition
ดูและจัดการ Process
ps aux– แสดง process ที่กำลังรันอยู่ทั้งหมดps aux | grep nginx– ดูเฉพาะ process ที่เกี่ยวกับ nginxkill– หยุด process ตาม PIDkill 1234kill -9 1234– บังคับหยุดแบบ force (ใช้เมื่อคำสั่งปกติไม่หยุด)
ตรวจสอบการเชื่อมต่อเครือข่ายเบื้องต้น
ping– ทดสอบการเชื่อมต่อกับปลายทางping google.com
curl/wget– ขอข้อมูลจาก URL ผ่าน Command Linecurl -I https://example.com– ดู header การตอบกลับจากเว็บไซต์wget https://example.com/file.zip– ดาวน์โหลดไฟล์จาก URL
การใช้ Command Line ตรวจสอบระบบช่วยให้แก้ไขปัญหา Performance และ Network ได้แม่นยำขึ้น โดยเฉพาะเมื่อทำงานกับ Cloud Server หรือ VM ที่อาจไม่มี GUI ให้ใช้งาน
การจัดการสิทธิ์ไฟล์และผู้ใช้บนระบบ Linux เบื้องต้น
สิทธิ์ไฟล์ (Permissions) แบบเข้าใจง่าย
เมื่อใช้ ls -l เราจะเห็นสิทธิ์ในรูปแบบตัวอักษร เช่น:
-rwxr-xr-- 1 user group 4096 Feb 10 index.php
- ส่วนหน้า
-rwxr-xr--แบ่งเป็น 3 ชุด:- owner (เจ้าของไฟล์)
- group (กลุ่มผู้ใช้)
- others (ผู้ใช้อื่นทั้งหมด)
- ตัวอักษร:
- r = read (อ่านได้)
- w = write (เขียน/เปลี่ยนแปลงได้)
- x = execute (รันเป็นโปรแกรมได้)
- – = ไม่มีสิทธิ์
คำสั่งเปลี่ยนสิทธิ์และเจ้าของไฟล์
chmod– เปลี่ยนสิทธิ์ไฟล์chmod 644 index.php– owner อ่าน/เขียน, คนอื่นอ่านได้chmod 755 public_html– ให้สิทธิ์เข้าโฟลเดอร์และรันไฟล์ได้ทั่วไป (ใช้บ่อยกับเว็บโฟลเดอร์)
chown– เปลี่ยนเจ้าของไฟล์chown user:group index.php- ใช้บ่อยในการจัดสิทธิ์ไฟล์เว็บให้ตรงกับ user ของ web server
การเข้าใจสิทธิ์ไฟล์เป็นพื้นฐานสำคัญในการรักษาความปลอดภัยและแก้ปัญหา permission denied ที่มักพบเมื่อทำงานบนเซิร์ฟเวอร์เว็บไซต์หรือแอปพลิเคชัน
เทคนิคใช้งาน Command Line ให้มีประสิทธิภาพมากขึ้น
คำสั่งช่วยเหลือและคู่มือในตัว
--help– แสดงวิธีการใช้งานคำสั่งls --help
man– เปิดคู่มือ (manual) ของคำสั่งman grep- ใช้ปุ่มลูกศรเลื่อน และกด
qเพื่อออก
ประวัติคำสั่งและการเรียกใช้งานซ้ำ
history– แสดงรายการคำสั่งก่อนหน้า- ปุ่มลูกศร ↑ / ↓ – เลื่อนดูคำสั่งเก่าและเรียกใช้งานซ้ำ
- Ctrl + R – ค้นหาคำสั่งเก่าแบบย้อนกลับ (reverse search)
การต่อคำสั่งและส่งต่อผลลัพธ์
- Pipe (
|) – ส่ง output ของคำสั่งหนึ่งไปเป็น input ของอีกคำสั่งps aux | grep nginxls -l | grep ".log"
- Redirect (
>,>>) – ส่งผลลัพธ์ไปเก็บในไฟล์ls -l > list.txt– เขียนทับไฟล์ list.txtls -l >> list.txt– เพิ่มต่อท้ายไฟล์ list.txt
การทำงานที่กินเวลานาน
- สัญลักษณ์
&– รันคำสั่งแบบ backgroundlong_running_script.sh &
nohup– รันคำสั่งให้ทำงานต่อแม้ปิด sessionnohup php script.php &
เมื่อเริ่มคุ้นเคยกับ Command Line การใช้ pipe, history และการ redirect จะทำให้การจัดการงานซ้ำๆ และงานวิเคราะห์ log ทำได้รวดเร็วและยืดหยุ่นมากขึ้น
ตัวอย่างการใช้งาน Terminal ในงานจริงของสาย IT
ตัวอย่าง: Deploy เว็บไซต์บนเซิร์ฟเวอร์ Linux
- เชื่อมต่อเซิร์ฟเวอร์ผ่าน SSH
ssh user@your-server-ip
- ตรวจสอบโฟลเดอร์เว็บ
cd /var/www/htmlls -la
- ดึงโค้ดจาก Git repository (ถ้ามี)
git clone https://your-repo.git projectcd project
- จัดสิทธิ์โฟลเดอร์ storage / cache ให้เว็บรันได้
chmod -R 755 storage
- ตรวจสอบ log หากเว็บไซต์มีปัญหา
tail -f /var/log/nginx/error.log
ตัวอย่าง: ตรวจสอบ Performance เบื้องต้นของ Cloud Server
- ดูการใช้ CPU/Memory:
topหรือhtop
- ตรวจสอบพื้นที่ดิสก์:
df -h- หากเต็มอาจใช้
du -sh *ในโฟลเดอร์ที่สงสัยเพื่อดูขนาดที่ใช้จริง
- ลบ log เก่าอย่างระมัดระวัง:
cd /var/logls -lhrm old.logหรือบีบอัดเก็บด้วยtarแทนการลบทันที
แนวทางฝึกฝนและต่อยอดความรู้การใช้ Command Line
หลักคิดในการเรียนรู้
- เริ่มจากคำสั่งพื้นฐานให้คล่อง: ls, cd, cp, mv, rm, mkdir, cat, grep
- ค่อยๆ เพิ่มคำสั่งที่ใช้บ่อยในงานของตนเอง เช่น ชุดคำสั่งเกี่ยวกับ git, docker, หรือคำสั่งตรวจสอบระบบ
- ใช้ –help และ man เป็นแหล่งข้อมูลหลักก่อนค้นจากภายนอก
- บันทึก snippet คำสั่งที่ใช้บ่อยเก็บไว้เป็น “คลังคำสั่งส่วนตัว” เพื่อเรียกใช้ซ้ำได้ง่าย
ข้อควรระวังเมื่อใช้ Terminal บนเซิร์ฟเวอร์จริง
- ตรวจสอบ path ทุกครั้งก่อนใช้ rm -r หรือคำสั่งที่มีผลลบข้อมูล
- หลีกเลี่ยงการรันคำสั่งสิทธิ์สูง (
sudoหรือ root) หากไม่จำเป็น</



