คำสั่งพื้นฐานของ Linux อธิบายอย่างละเอียด

การปรับปรุงครั้งล่าสุด: 14 2026 เมษายน
  • เรียนรู้วิธีการใช้งานระบบไฟล์ด้วยคำสั่ง ls, cd และ pwd และจัดการโฟลเดอร์ด้วยคำสั่ง mkdir, rm และ cp
  • เรียนรู้วิธีการดูและค้นหาข้อมูลในไฟล์ข้อความโดยใช้คำสั่ง cat, less, grep, sed, awk และ find
  • ควบคุมสิทธิ์การเข้าถึง กระบวนการทำงาน และเครือข่ายด้วยคำสั่ง chmod, chown, ps, top, htop, ping, ip และ ss ในสภาพแวดล้อมเซิร์ฟเวอร์
  • ติดตั้งและอัปเดตซอฟต์แวร์ด้วย apt, ใช้ tar/zip, wget และ scp และทำงานอัตโนมัติโดยการรวมคำสั่งและการเปลี่ยนเส้นทาง
คำสั่งลินุกซ์พื้นฐาน

ไม่ว่าคุณจะทำงานเกี่ยวกับเซิร์ฟเวอร์ การพัฒนาเว็บไซต์ หรือเพียงแค่ต้องการใช้พีซีของคุณให้เกิดประโยชน์สูงสุดไม่ช้าก็เร็ว คุณจะต้องเข้าไปใช้งานเทอร์มินัลของ Linux และที่นั่น คุณอาจจะรู้จักคำสั่งพื้นฐาน หรืออาจจะจ้องมองเคอร์เซอร์ที่กระพริบอยู่ด้วยความไม่แน่ใจว่าจะทำอย่างไรต่อไป ข่าวดีก็คือ คุณไม่จำเป็นต้องจำคำสั่งเป็นร้อยๆ คำสั่ง การเรียนรู้คำสั่งพื้นฐานชุดหนึ่งจะครอบคลุมงานประจำวันของคุณได้ถึง 90%

ในคู่มือนี้คุณจะพบ ชุดคำสั่งพื้นฐานของ Linux ที่รวมไว้อย่างครบถ้วนและเป็นระบบโดยผสมผสานสิ่งที่ดีที่สุดจากคู่มืออ้างอิงหลายเล่มเข้าด้วยกัน: การจัดการไฟล์ กระบวนการ เครือข่าย แพ็กเกจ สิทธิ์การเข้าถึง ระบบอัตโนมัติ… ทั้งหมดนี้อธิบายเป็นภาษาสเปนจากประเทศสเปน พร้อมตัวอย่างจริงของการบริหารเซิร์ฟเวอร์ การโฮสติ้ง และการทำงานในเครื่อง และจัดเรียงไว้เพื่อให้คุณสามารถใช้เป็นคู่มืออ้างอิงได้เมื่อต้องการ

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

คำสั่งใน Linux คืออะไร และทำไมจึงมีความสำคัญมาก?

Un คำสั่งใน Linux คือโปรแกรมหรือยูทิลิตี้ที่ทำงานจากบรรทัดคำสั่งแทนที่จะคลิกปุ่ม คุณเพียงแค่พิมพ์ชื่อคำสั่ง และอาจเพิ่มข้อความเพิ่มเติมได้ ตัวเลือก (หรือแฟล็ก) และหนึ่งหรือมากกว่านั้น ข้อโต้แย้ง เช่น เส้นทางไฟล์ รูปแบบ หรือชื่อบริการ

แนวคิดนี้เรียบง่าย: เทอร์มินัลเป็นอินเทอร์เฟซข้อความที่มีประสิทธิภาพมากการทำสิ่งต่างๆ ด้วยการคลิกเพียงครั้งเดียวก็ดีอยู่แล้ว แต่การเรียงลำดับคำสั่ง การสำรองข้อมูลอัตโนมัติด้วย cron การตรวจสอบบันทึกขนาดใหญ่ด้วยตัวกรอง หรือการจัดการเซิร์ฟเวอร์ระยะไกลผ่าน SSH นั้นสะดวกกว่ามากหากพิมพ์เพียงไม่กี่คำสั่ง แทนที่จะต้องมาวุ่นวายกับเมนูแบบกราฟิก

ในระบบปฏิบัติการ Linux รุ่นใหม่ๆ เกือบทุกระบบ (Ubuntu, Debian, CentOS, Fedora, Arch ฯลฯ) คุณจะเปิดเทอร์มินัลด้วยคำสั่งต่อไปนี้ Ctrl + Alt + T หรือค้นหาโดยใช้คำว่า “Terminal” ในเมนูแอปพลิเคชัน บนเซิร์ฟเวอร์ ขั้นตอนปกติคือ เข้าสู่ระบบผ่าน SSH จากคอมพิวเตอร์ของคุณ

คำสั่งการนำทางไดเร็กทอรีที่จำเป็น

สิ่งแรกที่คุณต้องเรียนรู้คือวิธีการ การนำทางในระบบไฟล์: การรู้ว่าคุณอยู่ที่ไหน มีอะไรอยู่ในแต่ละที่ และรู้วิธีการสลับโฟลเดอร์อย่างรวดเร็ว

ls: แสดงรายการไฟล์และไดเร็กทอรี

คำสั่ง ls คำสั่งนี้จะแสดงเนื้อหาของไดเร็กทอรีปัจจุบัน (หรือเส้นทางที่คุณระบุ) เป็นหนึ่งในคำสั่งที่คุณจะใช้บ่อยที่สุด:

  • ls – แสดงรายการไฟล์และโฟลเดอร์ที่มองเห็นได้ในไดเร็กทอรีปัจจุบัน
  • ls -l – แสดงรายละเอียด: สิทธิ์การเข้าถึง เจ้าของ ขนาด วันที่
  • ls -a – รวมถึงไฟล์ที่ซ่อนอยู่ (ไฟล์ที่ขึ้นต้นด้วยจุด)
  • ls -lh – เหมือนกันเลย -lแต่มีขนาดที่อ่านง่าย (K, M, G)
  • ls -lah – ผสมผสานขนาดที่ยาว ซ่อนเร้น และอ่านง่ายเข้าด้วยกัน
  • ls -R – การแสดงรายการไดเร็กทอรีย่อยแบบวนซ้ำ
  • ls -t – เรียงลำดับตามวันที่แก้ไข
  • ls -S – เรียงตามขนาด

บนเว็บเซิร์ฟเวอร์ มักจะทำอะไรแบบนี้ ls -lah /var/www/html เพื่อดูไฟล์โครงการทั้งหมด รวมถึง ไฟล์การกำหนดค่าที่ซ่อนอยู่ ในขณะที่ .htaccess หรือโฟลเดอร์ .git.

pwd: รู้ว่าคุณอยู่ในโฟลเดอร์ใด

เมื่อคุณเปลี่ยนเส้นทางไปมาสักพัก การหลงทางเป็นเรื่องง่ายมาก pwd (พิมพ์ไดเร็กทอรีการทำงาน) คุณจะได้รับ เส้นทางแบบเต็มของไดเร็กทอรีปัจจุบันตัวอย่างเช่น:

/home/usuario/proyectos/mi-sitio

มีประโยชน์อย่างยิ่งใน สคริปต์เมื่อคุณต้องการทราบตำแหน่งของคุณเพื่อใช้เส้นทางสัมพัทธ์อย่างปลอดภัย

cd: เปลี่ยนไดเร็กทอรี

ในการเรียกดูระบบไฟล์ คุณใช้ cd (เปลี่ยนไดเร็กทอรี) การเปลี่ยนแปลงที่สำคัญบางประการ:

  • cd /ruta/completa – มันกำลังมุ่งไปตามเส้นทางที่แน่นอน
  • cd carpeta – ป้อนชื่อโฟลเดอร์ที่สัมพันธ์กับไดเร็กทอรีปัจจุบัน
  • cd ~ – ข้ามไปยัง สมุดรายชื่อส่วนตัว ผู้ใช้
  • cd - – กลับไปยังไดเร็กทอรีเดิม (มีประโยชน์มาก อาจดูไร้สาระจนกว่าคุณจะได้ลองใช้)
  • cd .. – เลื่อนระดับขึ้นไปหนึ่งขั้นในลำดับชั้น
  • cd ../.. – ขึ้นไปสองระดับ แล้วก็ทำเช่นนี้ต่อไปเรื่อยๆ

หากคุณทำงานด้านการโฮสต์บนระบบ Linux คุณจะเบื่อกับการใช้งานฟังก์ชันเหล่านี้ cd /var/www/html หรือเส้นทางที่คล้ายกันเพื่อเข้าถึงไดเร็กทอรีรากของเว็บไซต์ของคุณ

คำสั่งพื้นฐานสำหรับไฟล์และไดเร็กทอรี

เมื่อคุณเชี่ยวชาญการเคลื่อนไหวแล้ว ก็ถึงเวลาเรียนรู้วิธีการ สร้าง คัดลอก ลบ และดูไฟล์และโฟลเดอร์นี่เป็นเรื่องปกติที่เกิดขึ้นทั้งบนพีซีและ VPS

mkdir และ rmdir: การสร้างและการลบไดเร็กทอรีว่างเปล่า

กับ mkdir คุณสามารถสร้างโฟลเดอร์ใหม่ได้ รองรับการกำหนดเส้นทางหลายเส้นทางพร้อมกัน และมีตัวเลือกที่ใช้งานได้จริงมากมาย:

  • mkdir nuevo_directorio – สร้างโฟลเดอร์แบบง่ายๆ ขึ้นมา
  • mkdir dir1 dir2 – สร้างหลายๆ อันพร้อมกัน
  • mkdir -p padre/hijo/nieto – สร้างโครงสร้างแบบซ้อนกันได้อย่างสมบูรณ์ โดยไม่แสดงข้อผิดพลาดหากส่วนใดส่วนหนึ่งมีอยู่แล้ว
  • mkdir -m 755 carpeta_web – สร้างโฟลเดอร์โดยกำหนดสิทธิ์การเข้าถึงเฉพาะเจาะจง

รูปแบบทั่วไปในการตั้งค่าโปรเจ็กต์มักจะเป็นดังนี้: mkdir -p /var/www/mi-sitio/{public_html,logs,backups} เพื่อให้ทุกอย่างเป็นระเบียบเรียบร้อยตั้งแต่เริ่มต้น

หากต้องการลบโฟลเดอร์ว่างเปล่า มีวิธีการดังนี้ rmdir:

  • rmdir carpeta_vacia – ลบโฟลเดอร์ได้ตราบใดที่ภายในโฟลเดอร์นั้นไม่มีอะไรอยู่
  • rmdir -p dir1/dir2/dir3 – ลบโซ่ทั้งหมดออกหากทุกระดับว่างเปล่า

หากไดเร็กทอรีมีเนื้อหา คุณจะต้องใช้ rm -rซึ่งเราจะได้เห็นกันในไม่ช้า

แตะ: สร้างไฟล์เปล่าหรืออัปเดตวันที่

คำสั่ง touch โดยส่วนใหญ่ใช้สำหรับ สร้างไฟล์เปล่า หรืออัปเดตวันที่แก้ไขโดยไม่ต้องแก้ไขเนื้อหา:

  • touch archivo.txt – สร้างไฟล์หากยังไม่มีอยู่
  • touch archivo1 archivo2 – สร้างหลายๆ อันพร้อมกัน
  • touch -t 202501010000 archivo.txt – บังคับให้ใช้การประทับเวลาที่เฉพาะเจาะจง

มันสะดวกมากสำหรับการสร้าง ไฟล์การกำหนดค่าหรือตัวยึดตำแหน่ง ชนิด touch .env o touch index.html.

rm: ลบไฟล์ (และโฟลเดอร์) อย่างระมัดระวัง

กับ rm คุณสามารถลบไฟล์ และหากใช้ตัวเลือกที่เหมาะสม คุณยังสามารถลบโครงสร้างไดเร็กทอรีได้อีกด้วย ไม่มีถังขยะหากคุณทำผิดพลาด การกู้คืนข้อมูลอาจเป็นเรื่องยากหรือเป็นไปไม่ได้เลย

  • rm archivo.txt – ลบไฟล์
  • rm archivo1 archivo2 – ลบออกหลายรายการ
  • rm -i archivo.txt – ควรขอการยืนยัน ซึ่งเหมาะอย่างยิ่งสำหรับช่วงที่คุณกำลังเรียนรู้
  • rm -r carpeta – ลบโฟลเดอร์และเนื้อหาทั้งหมดในโฟลเดอร์นั้นแบบวนซ้ำ
  • rm -rf carpeta – บังคับลบข้อมูลแบบเรียกซ้ำโดยไม่ต้องขออนุญาต ใช้เฉพาะเมื่อคุณแน่ใจอย่างยิ่งว่ากำลังทำอะไรอยู่.
  • rm *.tmp – ลบไฟล์ทั้งหมดที่มีนามสกุลนั้นในไดเร็กทอรีปัจจุบัน
  NixOS Linux ขั้นสูง: ดิสทริบิวชันแบบประกาศสำหรับผู้ใช้งานระดับสูง

การรวมกันเช่น rm -rf / หรือวิธีการที่คล้ายกันนั้นเป็นการแก้ไขปัญหาอย่างรวดเร็วที่ทำให้ระบบใช้งานไม่ได้ ดังนั้น โปรดระมัดระวังเมื่อผสมผสาน RM และ RF กับเส้นทางทั่วไปหรือเส้นทางแบบไวด์การ์ด.

cp และ mv: คัดลอก ย้าย และเปลี่ยนชื่อ

ในการคัดลอกไฟล์ คุณใช้ cp และในการย้ายหรือเปลี่ยนชื่อ คุณใช้ mvพวกคุณสองคนสามารถจัดการการจัดระเบียบไฟล์ได้ทุกอย่าง

ตัวอย่างการใช้งานทั่วไปของ cp:

  • cp origen.txt destino.txt – คัดลอกไฟล์
  • cp archivo.txt /otra/ruta/ – คัดลอกไปยังไดเร็กทอรีอื่น
  • cp -i archivo.txt copia.txt – ถามก่อนลงมือทำ
  • cp -p archivo.txt backup.txt – เก็บเอกสารอนุญาต ชื่อเจ้าของ และวันที่ไว้ด้วย
  • cp -r carpeta_origen carpeta_destino - การคัดลอกไดเร็กทอรีแบบเรียกซ้ำ

สำหรับการคัดลอกเว็บไซต์แบบสมบูรณ์นั้น วิธีการแบบนี้พบเห็นได้ทั่วไป cp -rp /var/www/html /backup/html-$(date +%Y%m%d)ซึ่งจะทิ้งไฟล์สำรองข้อมูลเก่าที่ยังคงรักษาสิทธิ์การเข้าถึงและความเป็นเจ้าของไว้

กับ mv คุณสามารถย้ายและเปลี่ยนชื่อได้:

  • mv archivo.txt nuevo_nombre.txt – เปลี่ยนชื่อ
  • mv archivo.txt /otra/ruta/ – ขยับมันสิ
  • mv directorio nuevo_nombre – เปลี่ยนชื่อโฟลเดอร์
  • mv *.log /var/log/backups/ – ย้ายไฟล์บันทึกทั้งหมด

รูปแบบที่นิยมใช้กันทั่วไปในการปรับใช้โปรเจกต์คือ mv sitio-nuevo/* /var/www/html/ เพื่อแทนที่เว็บไซต์เวอร์ชันเก่าด้วยเวอร์ชันใหม่

แมว, เล็ก, หัวและหาง: ดูเนื้อหาไฟล์

ในการตรวจสอบเนื้อหาของไฟล์ข้อความ คุณมีเครื่องมือหลายอย่าง แต่ละอย่างมีข้อดีแตกต่างกันไป

  • cat archivo.txt แสดงไฟล์ทั้งหมดในเทอร์มินัล เหมาะสำหรับ ไฟล์ขนาดเล็ก หรือนำหลายๆ ตัวเชื่อมต่อกัน: cat archivo1 archivo2.
  • less archivo.log ทำหน้าที่ในการ ไฟล์ขนาดใหญ่เนื่องจากช่วยให้คุณสามารถเลื่อนดูทีละหน้าและค้นหา (/texto) เดินไปเดินมาแล้วออกไปพร้อมกับ q.
  • head archivo โดยค่าเริ่มต้นจะแสดง 10 บรรทัดแรก; head -n 50 คุณเลือกจำนวนได้เอง
  • tail archivo มันแสดงบรรทัดสุดท้าย; ด้วย tail -f archivo.log คุณสามารถดูการอัปเดตบันทึกแบบเรียลไทม์ ซึ่งมีประโยชน์มากขณะที่คุณกำลังจำลองข้อผิดพลาดบนเว็บไซต์

ในการดีบักเว็บเซิร์ฟเวอร์ คุณจะเห็นการผสมผสานรูปแบบต่างๆ เช่นนี้อยู่บ่อยๆ tail -f /var/log/nginx/error.log o less /var/log/apache2/access.log เพื่อทำความเข้าใจสิ่งที่กำลังเกิดขึ้น

คำสั่งสำหรับการค้นหาไฟล์และข้อความ

เมื่อระบบเติบโตขึ้นและเต็มไปด้วยโครงการ บันทึก และการตั้งค่าต่างๆ การรู้สิ่งต่างๆ เหล่านี้จึงมีความสำคัญอย่างยิ่ง ค้นหาไฟล์และข้อความได้อย่างรวดเร็ว.

ค้นหาและระบุตำแหน่ง: ค้นหาไฟล์ตามชื่อ ขนาด หรือวันที่

คำสั่ง find โปรแกรมจะสแกนระบบไฟล์และช่วยให้คุณค้นหาตามชื่อ ประเภท ขนาด วันที่แก้ไข ฯลฯ และแม้กระทั่ง ดำเนินการตามผลลัพธ์:

  • find /ruta -name "nombre_archivo" – ค้นหาตามชื่อที่ตรงเป๊ะ
  • find /var/www -name "*.php" – ค้นหาไฟล์ PHP ทั้งหมดในบริเวณนั้น
  • find /home -type f -size +100M – ไฟล์ที่มีขนาดใหญ่กว่า 100 MB
  • find /var/log -mtime -7 – ไฟล์ที่ได้รับการแก้ไขในช่วง 7 วันที่ผ่านมา
  • find . -name "*.tmp" -delete – ค้นหาและลบไฟล์ชั่วคราว
  • find /var/www -type f -exec chmod 644 {} \; – ปรับสิทธิ์การเข้าถึงไฟล์ทั้งหมด

สำหรับส่วนของตน locate ดึงหนึ่ง ฐานข้อมูลดัชนีดังนั้น การค้นหาด้วยชื่อธรรมดาจึงเร็วกว่ามาก:

  • locate nombre_archivo
  • locate -i "*.php" – ไม่สนใจตัวพิมพ์ใหญ่/ตัวพิมพ์เล็ก
  • sudo updatedb – อัปเดตดัชนี (สำคัญมากสำหรับเซิร์ฟเวอร์)

ข้อเสียของ ค้นหา ระบบจะไม่เห็นไฟล์ที่สร้างขึ้นใหม่จนกว่าฐานข้อมูลจะได้รับการอัปเดต ในขณะที่ พบ จงพิจารณาระบบที่แท้จริงเสมอ

grep, sed และ awk: คำสั่งสำหรับค้นหา กรอง และแปลงข้อความ

สำหรับการทำงานกับบันทึกข้อมูล การตั้งค่า หรือข้อความธรรมดาใดๆ ตัวเลือกที่ดีที่สุดคือ grep, sed y awk.

  • grep มองหาเส้นที่ตรงกับรูปแบบ:
    grep "ERROR" /var/log/apache2/error.log
    grep -i "texto" archivo.txt – ไม่ต้องสนใจตัวอักษรพิมพ์ใหญ่
    grep -r "cadena" /directorio – การค้นหาแบบเรียกซ้ำ
    grep -n "texto" archivo.txt – แสดงหมายเลขบรรทัด
  • ความกระหายน้ำ อนุญาต แทนที่หรือลบข้อความ โดยไม่ต้องเปิดไฟล์ในโปรแกรมแก้ไขข้อความ:
    sed 's/viejo/nuevo/g' archivo.txt – แทนที่ทุกกรณีที่พบ
    sed -i 's/old_database/new_database/g' wp-config.php – แก้ไขในตำแหน่งเดิม (ต้องระมัดระวังเป็นอย่างมาก)
  • awk เหมาะสำหรับ คอลัมน์ประมวลผล (ตัวอย่างเช่น บันทึก):
    awk '{print $1}' access.log – ดึงข้อมูลคอลัมน์แรก (โดยทั่วไปคือ IP)
    awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10 – IP ที่คุณใช้งานบ่อยที่สุด 10 อันดับแรก

แม้ว่าในตอนแรกอาจดูน่ากลัว แต่เมื่อคุณคุ้นเคยกับเครื่องมือเหล่านี้แล้ว คุณก็จะใช้งานได้คล่องขึ้น คุณสามารถทำการวิเคราะห์ได้ในเวลาเพียงไม่กี่วินาที ซึ่งหากทำในโปรแกรมแก้ไขข้อความจะเป็นเรื่องยากลำบากมาก.

การจัดการสิทธิ์การเข้าถึง เจ้าของ และความปลอดภัยขั้นพื้นฐาน

ลินุกซ์ใช้ระบบการอนุญาตที่ชัดเจนมาก ซึ่งช่วยให้คุณสามารถ ควบคุมว่าใครสามารถอ่าน เขียน หรือดำเนินการอะไรได้บ้างสิ่งนี้มีความสำคัญอย่างยิ่งในสภาพแวดล้อมที่มีผู้ใช้งานหลายคน และโดยเฉพาะอย่างยิ่งบนเว็บเซิร์ฟเวอร์

ls -l: ดูสิทธิ์การเข้าถึงและเจ้าของไฟล์

เราได้กล่าวถึงเรื่องนี้ไปแล้ว แต่ก็ควรเน้นย้ำอีกครั้ง: ls -l นอกจากชื่อไฟล์แล้ว มันยังสอนคุณเกี่ยวกับ... สิทธิ์การเข้าถึง เจ้าของ กลุ่ม และขนาดตัวอย่างทั่วไป:

-rw-r--r-- 1 usuario grupo 12345 Jan 1 12:34 archivo.txt
drwxr-xr-x 2 usuario grupo 4096 Jan 1 12:34 carpeta/

คอลัมน์แรกมีข้อความดังนี้: ชนิด (- เก็บถาวร d ไดเร็กทอรี) และจากนั้นสิทธิ์สามชุด ได้แก่ ผู้ใช้ กลุ่ม และบุคคลอื่น ๆ (r การอ่าน, w การเขียน, x (การดำเนินการ)

chmod: เปลี่ยนสิทธิ์การเข้าถึง

กับ chmod คุณสามารถปรับสิทธิ์การเข้าถึงไฟล์หรือโฟลเดอร์ได้ คุณสามารถทำได้โดยใช้ สัญกรณ์ตัวเลข o สัญลักษณ์:

  • chmod 755 script.sh – rwxr-xr-x (เป็นเจ้าของทุกอย่าง ส่วนที่เหลืออ่าน/เรียกใช้งานได้เท่านั้น)
  • chmod 644 index.html – rw-r–r–, รูปแบบที่ใช้กันทั่วไปสำหรับไฟล์บนเว็บ
  • chmod u+x backup.sh – เพิ่มฟังก์ชันการเรียกใช้งานให้กับผู้ใช้
  • chmod g-w archivo.txt – ลบข้อความออกจากกลุ่ม
  • chmod -R 755 directorio – เปลี่ยนสิทธิ์การเข้าถึงแบบวนซ้ำ

ค่าตัวเลขจะถูกบวกเข้าด้วยกัน: อ่าน 4 ครั้ง, เขียน 2 ครั้ง, ประมวลผล 1 ครั้งนั่นเป็นเหตุผลว่าทำไม 7 = 4+2+1 (rwx), 6 = 4+2 (rw-), 5 = 4+1 (rx) เป็นต้น

chown และ chgrp: เจ้าของและกลุ่ม

นอกเหนือจากสิทธิ์การเข้าถึงแล้ว ไฟล์แต่ละไฟล์ยังมี... เจ้าของและกลุ่มที่เกี่ยวข้องตัวอย่างเช่น วิธีนี้ช่วยให้คุณสามารถกำหนดให้เว็บเซิร์ฟเวอร์เป็นเจ้าของไฟล์ที่ต้องให้บริการได้

  • chown usuario archivo.txt – การเปลี่ยนเจ้าของ
  • chown usuario:grupo archivo.txt – เปลี่ยนเจ้าของและกลุ่ม
  • chown -R www-data:www-data /var/www/html – พบได้ทั่วไปบนเซิร์ฟเวอร์ Apache/Nginx บนระบบปฏิบัติการ Debian/Ubuntu
  • chgrp grupo archivo.txt – เปลี่ยนเฉพาะกลุ่มเท่านั้น
  ระบบปฏิบัติการ Android: ประวัติศาสตร์ สถาปัตยกรรม และวิวัฒนาการ

เมื่อคุณอัปโหลดไฟล์ผ่าน FTP ด้วยผู้ใช้รายหนึ่ง แล้วเว็บเซิร์ฟเวอร์ (ผู้ใช้รายอื่น) ไม่สามารถอ่านหรือเขียนไฟล์เหล่านั้นได้ โดยส่วนใหญ่แล้ว คุณสามารถแก้ไขปัญหาได้ด้วยคำสั่ง chown หรือ chmod ที่เหมาะสม.

sudo: เรียกใช้คำสั่งในฐานะผู้ดูแลระบบโดยไม่จำเป็นต้องเป็น root

คำสั่ง sudo (superuser do) เป็นวิธีที่แนะนำสำหรับการเรียกใช้งานงานด้านการดูแลระบบโดยไม่ต้องล็อกอินโดยตรงในฐานะ root ซึ่งเป็นอันตราย

ง่ายดาย คุณต้องใส่ `sudo` ไว้ข้างหน้าคำสั่งใดๆ ที่คุณต้องการเรียกใช้ด้วยสิทธิ์ระดับสูง:

  • sudo apt update – อัปเดตรายการแพ็กเกจ (Debian/Ubuntu)
  • sudo systemctl restart nginx – รีสตาร์ท Nginx
  • sudo useradd nuevo_usuario – สร้างผู้ใช้

ระบบจะขอรหัสผ่านของคุณ และหากผู้ใช้ของคุณอยู่ในกลุ่มที่ถูกต้อง คุณจะสามารถเรียกใช้คำสั่งด้วยสิทธิ์ระดับรูทได้ ซึ่งจะป้องกันไม่ให้คุณถูกเข้าถึงโดยไม่ได้รับอนุญาต การเป็นผู้ใช้ระดับ root ตลอดเวลา มีความเสี่ยงที่จะลบหรือแก้ไขไฟล์สำคัญโดยไม่ตั้งใจ.

การจัดการกระบวนการและประสิทธิภาพของระบบ

เมื่อมีอะไรบางอย่างทำงานช้าลงหรือผิดปกติ นั่นเป็นเวลาที่เราควรตรวจสอบดู มีกระบวนการใดบ้างที่กำลังทำงานอยู่ และกระบวนการเหล่านั้นใช้ทรัพยากรอย่างไรบ้างคำสั่งเหล่านี้คือเพื่อนที่ดีที่สุดของคุณสำหรับเรื่องนั้น

ps, top และ htop: ดูว่ามีอะไรกำลังทำงานอยู่บ้าง

คำสั่ง ps ถ่ายภาพกระบวนการที่กำลังเกิดขึ้นในขณะนั้น ps aux คุณจะเห็นกระบวนการทำงานของระบบทั้งหมด รวมถึงกิจกรรมของผู้ใช้ การใช้งาน CPU และ RAM เป็นต้น คุณสามารถกรองข้อมูลได้ด้วย grep:

  • ps aux | grep nginx – ดูเฉพาะกระบวนการของ Nginx เท่านั้น
  • ps -u usuario – กระบวนการทำงานของผู้ใช้เฉพาะราย

ถ้าคุณต้องการบางสิ่งบางอย่าง ไดนามิก แบบเรียลไทม์, คุณใช้ top หรือแบบที่เสริมวิตามินเข้าไป htop:

  • top – แสดงรายการกระบวนการทำงานโดยเรียงลำดับตามการใช้งาน CPU และจะมีการอัปเดตข้อมูลอยู่เสมอ
  • ภายในโปรแกรมหลัก คุณสามารถจัดเรียงตามหน่วยความจำได้ (M), ยุติกระบวนการ (k) ฯลฯ
  • htop – เหมือนกัน แต่มีสีสัน แถบแสดงการใช้งาน CPU การรองรับเมาส์ แผนผังกระบวนการทำงาน… ในหลายระบบจำเป็นต้องติดตั้งก่อน (sudo apt install htop หรือคล้ายกัน)

บนเซิร์ฟเวอร์รวบรวมข้อมูล ให้เปิด htop โดยปกติแล้วจะเป็นขั้นตอนแรกในการตรวจสอบ อะไรที่ใช้ CPU หรือ RAM มากที่สุด?.

kill และ killall: ยุติกระบวนการที่ไม่พึงประสงค์

หากกระบวนการใดค้างหรือเริ่มทำงานแล้วไม่ตอบสนอง คุณสามารถหยุดกระบวนการนั้นได้ด้วย kill o killall.

  • kill 1234 – ส่งสัญญาณ TERM (15) ไปยังกระบวนการที่มี PID 1234 เพื่อขอให้ยุติการทำงาน “อย่างเงียบๆ”
  • kill -9 1234 – สัญญาณ KILL (9) ฆ่ากระบวนการทันที ใช้เป็นทางเลือกสุดท้าย
  • killall nombre_proceso – ยุติกระบวนการทั้งหมดที่มีชื่อนั้นเป็นต้น killall php-fpm.

โดยปกติแล้ว วิธีค้นหา PID คือการใช้ ps o ด้านบน แล้วก็ส่งต่อ kill เบาๆ ถ้ามันไม่เชื่อฟัง ก็ดึงเลย -9.

df และ du: การควบคุมพื้นที่ดิสก์

เมื่อเซิร์ฟเวอร์มีพื้นที่ไม่เพียงพอ ทุกอย่างเริ่มผิดพลาดไปหมดฐานข้อมูลที่ไม่สามารถเขียนข้อมูลลงไปได้ ไฟล์บันทึกข้อมูลที่ไม่เติบโต บริการที่ล่มอยู่เรื่อยๆ ในการตรวจสอบสิ่งเหล่านี้ คุณใช้ df y du.

  • df -h – แสดงพื้นที่ที่ใช้ไปและพื้นที่ว่างในแต่ละระบบไฟล์ที่เชื่อมต่อ ในรูปแบบที่อ่านง่าย
  • df -h /var – ข้อมูลเฉพาะจากพาร์ติชันนั้นเท่านั้น
  • du -sh /var/www/* – ขนาดของแต่ละโปรเจ็กต์เว็บภายในเส้นทางนั้น
  • du -h --max-depth=1 / - โฟลเดอร์หลักใดที่ใช้พื้นที่มากที่สุด

คำสั่งที่ใช้งานได้จริงมากสำหรับการระบุตำแหน่ง โฟลเดอร์ที่หนักที่สุด มันเป็นอะไรประมาณนั้น du -h --max-depth=1 /var | sort -hr | head -5ซึ่งแสดงรายการห้ารายการที่ใหญ่ที่สุดเรียงลำดับจากใหญ่ที่สุดไปเล็กที่สุด

คำสั่งเครือข่ายที่จำเป็น

เมื่อคุณเริ่มทำงานกับเซิร์ฟเวอร์ โดเมน และปริมาณการรับส่งข้อมูลบนเว็บ คุณจำเป็นต้องรู้สิ่งเหล่านี้ หากมีการเชื่อมต่อ โปรดระบุที่อยู่ IP ของคุณ พอร์ตที่เปิดอยู่ และเว็บไซต์ของคุณตอบสนองอย่างไร.

ip, ifconfig, ping และ route

ระบบสมัยใหม่ คำสั่งดาวคือ ipโดยเฉพาะอย่างยิ่ง ip a (o ip addrซึ่งจะแสดงอินเทอร์เฟซเครือข่ายทั้งหมด ที่อยู่ IP สถานะ ฯลฯ โดยก่อนหน้านี้จะใช้ในลักษณะใด ifconfigในปัจจุบันนี้ขอแนะนำ ipแม้ ifconfig มันยังคงมีอยู่ในหลายระบบผ่านทางแพ็กเกจ net-tools.

  • ip a – อินเทอร์เฟซและที่อยู่ IP ทั้งหมด
  • ip addr show dev eth0 – รายละเอียดของอินเทอร์เฟซเฉพาะเจาะจง
  • ping google.com – ตรวจสอบว่าคุณสามารถแก้ไขปัญหาและส่งผลลัพธ์ไปยัง Google ได้หรือไม่ โดยดูเวลาที่ใช้
  • ping -c 4 8.8.8.8 – ส่งแพ็กเก็ตเพียง 4 แพ็กเก็ตไปยัง IP นั้น
  • route -n o ip route show – ตารางเส้นทาง เพื่อดูว่าปริมาณการจราจรมาจากที่ใดบ้าง

หากเซิร์ฟเวอร์ "ไม่ปรากฏให้เห็น" ขั้นตอนแรกมักจะเป็นดังนี้เสมอ ตรวจสอบการเชื่อมต่อกับโดเมน ตรวจสอบที่อยู่ IP และดูที่อยู่ IP ของเซิร์ฟเวอร์และเกตเวย์ของมัน กับ ip route.

netstat/ss และ curl: การเปิดพอร์ตและการตอบสนอง HTTP

เพื่อดูว่าอะไร พอร์ตใดบ้างที่เปิดอยู่ และมีกระบวนการใดบ้างที่กำลังรอรับการเชื่อมต่ออยู่? ในนั้น คุณมี netstat (คลาสสิก) และ ss (ทันสมัย ​​รวดเร็ว):

  • ss -tuln - พอร์ต TCP/UDP ที่กำลังทำงานอยู่โดยไม่ระบุชื่อ
  • ss -tlnp | grep :80 – มีอุปกรณ์ใดกำลังรับฟังอยู่ที่พอร์ต 80 หรือไม่?
  • netstat -tuln – เทียบเท่าในระบบที่มีฟังก์ชันนี้

สำหรับการทดสอบอย่างรวดเร็ว วิธีที่เว็บไซต์ตอบสนองจากฝั่งเซิร์ฟเวอร์เองไม่มีอะไรเหมือน curl:

  • curl -I https://tu-dominio.com – เฉพาะส่วนหัวของ HTTP เท่านั้น (รหัสสถานะ เซิร์ฟเวอร์ ฯลฯ)
  • curl https://tu-dominio.com – ดาวน์โหลดไฟล์ HTML ต้นฉบับ

การรวม ping, ip, ss และ curl คุณสามารถวินิจฉัยปัญหาการเชื่อมต่อหรือการหยุดชะงักของบริการพื้นฐานเกือบทุกอย่างได้ด้วยตนเอง

การจัดการแพ็กเกจ: การติดตั้ง การอัปเดต และการล้างซอฟต์แวร์

แต่ละตระกูลของระบบปฏิบัติการลินุกซ์มีลักษณะเฉพาะของตนเอง ผู้จัดการแพ็คเกจการเชี่ยวชาญด้านนี้จะช่วยให้คุณ ติดตั้งและอัปเดตซอฟต์แวร์ได้โดยไม่ต้องยุ่งยากกับการติดตั้งไฟล์ไบนารีด้วยตนเอง.

apt และ apt-get ใน Debian/Ubuntu

ใน Debian, Ubuntu และระบบปฏิบัติการที่พัฒนาต่อยอดจาก Debian นั้น มาตรฐานคือ apt (หรือเวอร์ชันคลาสสิก) apt-get):

  • sudo apt update – อัปเดตรายการแพ็กเกจที่มีให้เลือก
  • sudo apt upgrade – อัปเดตแพ็กเกจที่ติดตั้งทั้งหมดให้เป็นเวอร์ชันล่าสุด
  • sudo apt install nombre_paquete – ติดตั้งโปรแกรมอย่างน้อยหนึ่งโปรแกรม
  • sudo apt remove nombre_paquete – ถอนการติดตั้งโปรแกรม แต่ปล่อยการตั้งค่าเอาไว้
  • sudo apt purge nombre_paquete – มันจะลบทุกอย่าง รวมถึงการตั้งค่าด้วย
  • sudo apt autoremove – ลบส่วนประกอบที่ไม่ได้ใช้งานแล้วออก
  การดัมพ์หน่วยความจำและการวิเคราะห์เคอร์เนลบนระบบ Windows และ Unix

คุณยังมี apt-cache หรือโดยตรง apt show สำหรับ ดูข้อมูลบรรจุภัณฑ์รวมถึงส่วนประกอบและเวอร์ชันต่างๆ:

  • apt show nginx
  • apt search php

yum/dnf และ pacman: ตระกูลอื่นๆ

บนระบบที่ใช้ Red Hat เป็นพื้นฐาน เช่น CentOS หรือ RHEL คุณจะมี yum หรือผู้สืบทอด dnf:

  • sudo yum install httpd – ติดตั้ง Apache
  • sudo dnf update – อัปเดตทุกอย่างให้เป็นเวอร์ชันใหม่กว่า

ใน Arch Linux และระบบปฏิบัติการที่พัฒนาต่อยอดจาก Arch Linux นั้น ตัวจัดการคือ pacman:

  • sudo pacman -S gimp – ติดตั้งโปรแกรม GIMP
  • sudo pacman -Syu – ซิงโครไนซ์และอัปเดตระบบ

แม้ว่าไวยากรณ์จะเปลี่ยนไปก็ตาม หลักการก็เหมือนกัน: อัปเดตดัชนี ติดตั้งแพ็กเกจ ลบแพ็กเกจ และล้างข้อมูลส่วนเกินที่เหลืออยู่

บีบอัด คลายการบีบอัด และถ่ายโอนไฟล์

การจัดการไฟล์ขนาดใหญ่หรือชุดไฟล์ทำได้ง่ายขึ้นอย่างมากด้วย ไฟล์บีบอัด และมีโปรแกรมดาวน์โหลดและคัดลอกข้อมูลจากระยะไกล

ทาร์, ซิป/อันซิป: บรรจุภัณฑ์และการบีอัด

คำสั่ง tar เป็นมาตรฐานในลินุกซ์สำหรับการสร้างและแตกไฟล์ tarballs (ไฟล์ .tar, .tar.gz, .tar.bz2 ฯลฯ):

  • tar -czvf backup.tar.gz carpeta/ – สร้างไฟล์ .tar.gz ที่บีบอัดด้วย gzip
  • tar -xzvf backup.tar.gz – ดึงเนื้อหาออกมา
  • tar -tzvf backup.tar.gz – แสดงรายการสิ่งของที่อยู่ด้านในโดยไม่ต้องนำออกมา

ธงที่พบเห็นได้บ่อยที่สุดคือ c (สร้าง), x (แตกไฟล์), t (แสดงรายการ), v (แสดงรายละเอียด), f (ไฟล์), z (gzip), j (bzip2), J (xz).

ในการทำงานกับ ไฟล์ ZIP (พบได้บ่อยมากในสภาพแวดล้อมของ Windows) คุณมี zip y unzip:

  • zip archivo.zip fichero1 fichero2
  • unzip archivo.zip

wget, curl และ scp: ใช้สำหรับดาวน์โหลดและคัดลอกข้อมูลระหว่างเครื่องคอมพิวเตอร์

นอกจากการเรียกดูด้วย curl แล้ว คุณยังสามารถใช้... wget วิธีดาวน์โหลดไฟล์จาก HTTP หรือ FTP:

  • wget https://wordpress.org/latest.zip – ดาวน์โหลด WordPress เวอร์ชันล่าสุด
  • wget -c URL – ดำเนินการดาวน์โหลดต่อจากที่หยุดชะงักไป

ไปยัง คัดลอกไฟล์ระหว่างคอมพิวเตอร์ของคุณและเซิร์ฟเวอร์ได้อย่างปลอดภัย คุณมีผ่าน SSH scp:

  • scp archivo.txt usuario@servidor:/ruta/destino/ – อัปโหลดไฟล์
  • scp -r carpeta usuario@servidor:/ruta/ – คัดลอกโฟลเดอร์แบบเรียกซ้ำ
  • scp usuario@servidor:/ruta/archivo.txt ./ – ดาวน์โหลดจากเซิร์ฟเวอร์

เบื้องหลังทั้งหมดนี้คือ SSH ซึ่งเป็นสิ่งที่คุณใช้เพื่อ... เชื่อมต่อกับเทอร์มินัลระยะไกล (คำสั่ง ssh usuario@servidor).

ระบบอัตโนมัติ ประวัติการใช้งาน และเคล็ดลับเล็กๆ น้อยๆ ในการเพิ่มประสิทธิภาพการทำงาน

เมื่อคุณเชี่ยวชาญพื้นฐานแล้ว ขั้นตอนต่อไปคือการเริ่มต้น... รวมคำสั่งและทำให้งานที่ทำซ้ำๆ เป็นไปโดยอัตโนมัตินี่คือจุดที่ Linux เริ่มแสดงศักยภาพอย่างแท้จริง

ประวัติ ชื่อเรียกแทน และสิ่งที่ใช้: ทางลัดและข้อมูลอ้างอิงโดยย่อ

กับ history คุณสามารถดูคำสั่งล่าสุดที่คุณได้ดำเนินการไปแล้ว และนำคำสั่งเหล่านั้นกลับมาใช้ใหม่ได้โดยไม่ต้องเขียนใหม่:

  • history – รายการพร้อมหมายเลขบรรทัด
  • !255 – เรียกใช้คำสั่งหมายเลข 255 อีกครั้ง

ไปยัง สร้างทางลัดชั่วคราว คือ alias:

  • alias ll="ls -lah" – จากตรงนี้ ll เท่ากับ ls -lah.
  • unalias ll – ลบชื่อเรียกแทนออก

และถ้าคุณอยากรู้ โดยที่ติดตั้งโปรแกรมไว้ และคุณกำลังใช้ไฟล์ปฏิบัติการอะไรอยู่? which:

  • which php – แสดงเส้นทางไปยังไฟล์ PHP เป็นต้น /usr/bin/php.
  • which -a python – การจับคู่ทั้งหมดใน PATH

การเปลี่ยนเส้นทางและการใช้ไปป์: การผสานคำสั่งอย่างมืออาชีพ

พลังที่แท้จริงของบรรทัดคำสั่งมาจากอำนาจ เครื่องมือขนาดเล็กแบบโซ่สิ่งนี้ทำเสร็จแล้วด้วย ท่อ (|) และ เปลี่ยนเส้นทาง (>, >>, 2>ฯลฯ )

  • comando1 | comando2 – ทางออกของ comando1 เข้าสู่รายการใน comando2.
    ตัวอย่าง: ls -la | grep ".php" – แสดงเฉพาะไฟล์ที่มีนามสกุล “.php” เท่านั้น
  • ls > listado.txt – บันทึกผลลัพธ์ลงในไฟล์ (เขียนทับ)
  • echo "línea" >> archivo.txt – เพิ่มต่อท้ายไฟล์
  • comando > todo.log 2>&1 – กำหนดให้ผลลัพธ์ปกติและข้อผิดพลาดถูกบันทึกไปยังไฟล์เดียวกัน
  • comando &> /dev/null – ส่งทุกอย่างไปที่ “หลุมดำ”

ด้วยสิ่งนี้ คุณสามารถทำสิ่งต่างๆ ที่น่าทึ่งได้ เช่น นับข้อผิดพลาด 404 ครั้ง ในบันทึกที่มีคำสั่งเช่นนี้ grep " 404 " access.log | wc -lหรือ ลบไฟล์เก่า กับ find y -delete.

ถ้าคุณอ่านมาถึงตรงนี้แล้ว แสดงว่าคุณมีความรู้ความเข้าใจเกี่ยวกับคำสั่งพื้นฐาน (และคำสั่งที่ไม่พื้นฐานนัก) ของ Linux ค่อนข้างครบถ้วนแล้ว ซึ่งเป็นเครื่องมือที่ใช้กันทุกวันในการบริหารระบบ การพัฒนา และการโฮสติ้ง ตั้งแต่การเรียกดูไดเร็กทอรี การจัดการไฟล์ สิทธิ์ และกระบวนการ ไปจนถึงการตรวจสอบเครือข่าย การติดตั้งแพ็กเกจ และการทำงานอัตโนมัติโดยการรวมคำสั่งเข้ากับไปป์และรีไดเร็กต์ จากนี้ไป ทุกครั้งที่คุณเปิดเทอร์มินัล มันจะไม่ใช่หน้าจอสีดำที่น่ากลัวอีกต่อไป และจะกลายเป็นเครื่องมือที่ช่วยให้ทำงานได้เร็วขึ้นและควบคุมได้มากกว่าอินเทอร์เฟซแบบกราฟิกใดๆ

สารบัญ