การใช้งาน Terminal และคำสั่งพื้นฐานที่สาย IT ต้องรู้

Share the Post:
Facebook
X
LinkedIn
Email
coverblog 140

การใช้งาน 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/www
    • ls = แสดงรายการไฟล์
    • -la = แสดงแบบละเอียด พร้อมไฟล์ซ่อน
    • /var/www = โฟลเดอร์เป้าหมาย

คำสั่งพื้นฐานเกี่ยวกับการจัดการโฟลเดอร์และไฟล์

คำสั่งสำหรับดูตำแหน่งและเปลี่ยนโฟลเดอร์

  • pwd – แสดง path ปัจจุบัน
    • ใช้ตรวจสอบว่าเรากำลังอยู่ในโฟลเดอร์ใดบนระบบไฟล์
  • ls – แสดงรายการไฟล์และโฟลเดอร์
    • ls – แสดงรายการแบบพื้นฐาน
    • ls -l – แสดงแบบละเอียด (สิทธิ์, เจ้าของ, ขนาด, วันที่แก้ไข)
    • ls -a – แสดงไฟล์ทั้งหมด รวมถึงไฟล์ซ่อน (ขึ้นต้นด้วย .)
    • ls -la – รวมตัวเลือกทั้งแบบละเอียดและแสดงไฟล์ซ่อน
  • cd – เปลี่ยนโฟลเดอร์ (Change Directory)
    • cd /var/www – เข้าไปที่โฟลเดอร์ /var/www
    • cd ~ – กลับไปโฟลเดอร์หลักของผู้ใช้ (home directory)
    • cd .. – ย้อนขึ้นไป 1 ระดับโฟลเดอร์
    • cd - – กลับไปโฟลเดอร์ก่อนหน้า (toggle ระหว่างสองตำแหน่ง)

คำสั่งสร้าง ลบ และจัดการโฟลเดอร์

  • mkdir – สร้างโฟลเดอร์ใหม่
    • mkdir logs – สร้างโฟลเดอร์ชื่อ logs
    • mkdir -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 – ค้นหาบรรทัดที่มีคำว่า error
    • grep -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-time
    • top – มีในระบบส่วนใหญ่โดย default
    • htop – ใช้ง่ายกว่า แต่ต้องติดตั้งเพิ่มในบางระบบ
  • free -h – ตรวจสอบการใช้ RAM
  • df -h – ดูพื้นที่ดิสก์ที่ใช้งานและเหลืออยู่ในแต่ละ partition

ดูและจัดการ Process

  • ps aux – แสดง process ที่กำลังรันอยู่ทั้งหมด
  • ps aux | grep nginx – ดูเฉพาะ process ที่เกี่ยวกับ nginx
  • kill – หยุด process ตาม PID
    • kill 1234
    • kill -9 1234 – บังคับหยุดแบบ force (ใช้เมื่อคำสั่งปกติไม่หยุด)

ตรวจสอบการเชื่อมต่อเครือข่ายเบื้องต้น

  • ping – ทดสอบการเชื่อมต่อกับปลายทาง
    • ping google.com
  • curl / wget – ขอข้อมูลจาก URL ผ่าน Command Line
    • curl -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 nginx
    • ls -l | grep ".log"
  • Redirect (>, >>) – ส่งผลลัพธ์ไปเก็บในไฟล์
    • ls -l > list.txt – เขียนทับไฟล์ list.txt
    • ls -l >> list.txt – เพิ่มต่อท้ายไฟล์ list.txt

การทำงานที่กินเวลานาน

  • สัญลักษณ์ & – รันคำสั่งแบบ background
    • long_running_script.sh &
  • nohup – รันคำสั่งให้ทำงานต่อแม้ปิด session
    • nohup php script.php &

เมื่อเริ่มคุ้นเคยกับ Command Line การใช้ pipe, history และการ redirect จะทำให้การจัดการงานซ้ำๆ และงานวิเคราะห์ log ทำได้รวดเร็วและยืดหยุ่นมากขึ้น


ตัวอย่างการใช้งาน Terminal ในงานจริงของสาย IT

ตัวอย่าง: Deploy เว็บไซต์บนเซิร์ฟเวอร์ Linux

  • เชื่อมต่อเซิร์ฟเวอร์ผ่าน SSH
    • ssh user@your-server-ip
  • ตรวจสอบโฟลเดอร์เว็บ
    • cd /var/www/html
    • ls -la
  • ดึงโค้ดจาก Git repository (ถ้ามี)
    • git clone https://your-repo.git project
    • cd 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/log
    • ls -lh
    • rm old.log หรือบีบอัดเก็บด้วย tar แทนการลบทันที

แนวทางฝึกฝนและต่อยอดความรู้การใช้ Command Line

หลักคิดในการเรียนรู้

  • เริ่มจากคำสั่งพื้นฐานให้คล่อง: ls, cd, cp, mv, rm, mkdir, cat, grep
  • ค่อยๆ เพิ่มคำสั่งที่ใช้บ่อยในงานของตนเอง เช่น ชุดคำสั่งเกี่ยวกับ git, docker, หรือคำสั่งตรวจสอบระบบ
  • ใช้ –help และ man เป็นแหล่งข้อมูลหลักก่อนค้นจากภายนอก
  • บันทึก snippet คำสั่งที่ใช้บ่อยเก็บไว้เป็น “คลังคำสั่งส่วนตัว” เพื่อเรียกใช้ซ้ำได้ง่าย

ข้อควรระวังเมื่อใช้ Terminal บนเซิร์ฟเวอร์จริง

  • ตรวจสอบ path ทุกครั้งก่อนใช้ rm -r หรือคำสั่งที่มีผลลบข้อมูล
  • หลีกเลี่ยงการรันคำสั่งสิทธิ์สูง (sudo หรือ root) หากไม่จำเป็น</
Share the Post:
Facebook
X
LinkedIn
Email