🐧 Linux Command Line (สอนแบบครบระดับ)

คำสั่ง Linux เป็นพื้นฐานของงานระบบและ DevOps ช่วยจัดการไฟล์ ระบบ และการ deploy ได้อย่างมีประสิทธิภาพ

📁 การเดินทางใน Directory

คำสั่งพื้นฐาน

# แสดง directory ปัจจุบัน
pwd
# /home/user

# แสดงรายการไฟล์
ls          # แบบง่าย
ls -l       # แบบละเอียด
ls -la      # รวมไฟล์ซ่อน
ls -lh      # แสดงขนาดอ่านง่าย

# เปลี่ยน directory
cd /var/log       # ไปที่ path เจาะจง
cd ..             # ขึ้นไป 1 ระดับ
cd ~              # กลับ home
cd -              # กลับ directory ก่อนหน้า

ค้นหาไฟล์

# ค้นหาไฟล์ด้วย find
find /home -name "*.txt"           # หาไฟล์ .txt
find . -type f -size +10M          # ไฟล์ใหญ่กว่า 10MB
find . -mtime -7                   # แก้ไขใน 7 วัน

# ค้นหาด้วย locate (เร็วกว่า)
locate filename.txt

# ดูขนาด directory
du -sh /var/log      # ขนาดรวม
du -h --max-depth=1  # ขนาดแต่ละโฟลเดอร์

🧾 จัดการไฟล์

สร้าง/ลบ/คัดลอก

# สร้าง directory
mkdir logs
mkdir -p path/to/deep/folder    # สร้างทั้ง path

# สร้างไฟล์เปล่า
touch app.log

# คัดลอก
cp file.txt backup.txt
cp -r folder/ backup/           # คัดลอก folder

# ย้าย/เปลี่ยนชื่อ
mv old.txt new.txt
mv file.txt /path/to/folder/

# ลบ
rm file.txt
rm -r folder/                   # ลบ folder
rm -rf folder/                  # ลบแบบบังคับ (ระวัง!)

Symbolic Links

# สร้าง symbolic link
ln -s /path/to/original link_name

# ตัวอย่าง
ln -s /var/www/app/current /var/www/app/public

# ดู link
ls -la    # จะเห็น -> ชี้ไปที่ไหน

🔍 ดูเนื้อหาไฟล์

คำสั่งอ่านไฟล์

# แสดงทั้งไฟล์
cat file.txt
cat -n file.txt          # พร้อมเลขบรรทัด

# ดูแบบ scroll ได้
less file.txt            # q เพื่อออก, / เพื่อค้นหา

# ดูส่วนต้น/ท้าย
head file.txt            # 10 บรรทัดแรก
head -n 20 file.txt      # 20 บรรทัดแรก
tail file.txt            # 10 บรรทัดท้าย
tail -n 50 file.txt      # 50 บรรทัดท้าย
tail -f app.log          # ติดตาม log แบบ realtime

นับและสรุป

# นับบรรทัด/คำ/ตัวอักษร
wc file.txt              # lines words chars
wc -l file.txt           # นับบรรทัด

# แสดงค่า unique
sort file.txt | uniq     # ค่าไม่ซ้ำ
sort file.txt | uniq -c  # พร้อมนับจำนวน

🔐 Permission

chmod - เปลี่ยนสิทธิ์

# Permission: r(4) w(2) x(1)
# Owner Group Others

chmod 644 file.txt       # rw-r--r-- (อ่านได้ทุกคน, เจ้าของแก้ได้)
chmod 755 script.sh      # rwxr-xr-x (รันได้ทุกคน)
chmod 700 private/       # rwx------ (เจ้าของเท่านั้น)

# แบบ symbolic
chmod +x script.sh       # เพิ่มสิทธิ์ execute
chmod -w file.txt        # ลบสิทธิ์ write
chmod u+x,g+r file       # user +x, group +r

chown - เปลี่ยนเจ้าของ

# เปลี่ยนเจ้าของ
chown user file.txt
chown user:group file.txt
chown -R user:group folder/    # recursive

# ดู permission
ls -la
# -rw-r--r-- 1 user group 1234 Jan 1 10:00 file.txt

🏁 สรุป

  • ✅ cd/pwd/ls คือพื้นฐานการนำทาง
  • ✅ cp/mv/rm จัดการไฟล์
  • ✅ cat/less/tail อ่านเนื้อหาไฟล์
  • ✅ chmod/chown จัดการ permission
  • ✅ tail -f ดู log แบบ realtime

📝 แบบฝึกหัด

Navigation

  1. หาไฟล์ .log ทั้งหมดใน /var/log
  2. ดูขนาด directory ใน home

File Operations

  1. สร้างโฟลเดอร์ projects/web พร้อม readme.txt
  2. ใช้ tail -f ดู log แบบ realtime
  3. เปลี่ยน permission ให้ script รันได้