ค้นหาเว็บไซต์

คำสั่งเทอร์มินัล Linux 5 คำสั่งที่แก้ปัญหาระบบส่วนใหญ่ของฉันได้


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

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

ซ่อมแพ็กเกจที่เสียก่อนที่พวกมันจะกระจาย

แก้ไขข้อผิดพลาดของการพึ่งพาและการติดตั้งที่ไม่สมบูรณ์อย่างถูกวิธี

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

เพื่อแก้ไขปัญหานี้ ฉันรันคำสั่งด้านล่างตามลำดับ:

sudo dpkg --configure -a 
sudo apt --fix-broken install 
sudo apt clean 
sudo apt autoremove

คำสั่งข้างต้นเฉพาะสำหรับ Debian/Ubuntu (APT/dpkg) บน Fedora ใช้ sudo dnf distro-sync; บน Arch ใช้ sudo pacman -Syu.

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

  • การติดตั้งซอฟต์แวร์ล้มเหลวเนื่องจากข้อผิดพลาดของการพึ่งพา
  • การอัปเดตหยุดกลางทาง
  • ตัวจัดการแพ็กเกจรายงานแพ็กเกจเสีย
  • แอปพลิเคชันล้มเหลวหลังจากการอัปเดตระบบ

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

ค้นหาสิ่งที่กำลังเติมดิสก์ของคุณอย่างเงียบๆ

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

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

ถ้า Docker เป็นสาเหตุที่ทำให้พื้นที่ดิสก์ของคุณเต็ม คุณสามารถลบคอนเทนเนอร์ที่หยุดทำงานได้อย่างปลอดภัยโดยรันคำสั่ง docker system prune คำสั่งนี้ยังจะลบอิมเมจที่ไม่มีแท็กซึ่งไม่ได้ถูกใช้งานโดยคอนเทนเนอร์ใด ๆ และแคชการสร้างที่ไม่ได้ใช้งาน เพื่อเรียกคืนพื้นที่เพิ่มเติมโดยการลบอิมเมจที่ไม่ได้ใช้งานทั้งหมด ให้เพิ่มแฟลก -a: docker system prune -a

อาการใด ๆ เหล่านี้อาจเป็นสัญญาณเตือนให้ตรวจสอบการใช้งานดิสก์ของคุณ:

  • ไดรฟ์เต็มเร็วกว่าที่คาดไว้
  • การอัปเดตระบบปฏิเสธที่จะติดตั้ง
  • การดำเนินการไฟล์ช้า
  • คำเตือนพื้นที่ดิสก์เหลือน้อย

ฉันรัน df -h เพื่อแสดงการใช้งานดิสก์ทั้งหมด ในการหาตำแหน่งไดเรกทอรีขนาดใหญ่ ฉันรัน:

sudo du -sh /* 2>/dev/null | sort -rh | head -20

เมื่อทำสิ่งนั้นเสร็จแล้ว ฉันสามารถจำกัดการค้นหาไปยังไดเรกทอรีเฉพาะเพื่อหาสิ่งที่ใช้พื้นที่มากเกินไป และฉันอาจใช้คำสั่ง ncdu / เพียงเพื่อให้มองเห็นแบบโต้ตอบได้ง่ายขึ้น เมื่อฉันเริ่มจากไดเรกทอรีรากนี้ จะง่ายขึ้นที่จะมองเห็นปัญหาระดับระบบที่โดยปกติจะไม่ปรากฏในเครื่องมือกราฟิก

ก่อนที่คุณจะรันคำสั่ง ncdu จำเป็นต้องติดตั้งบนคอมพิวเตอร์ของคุณก่อน คุณสามารถใช้คำสั่งนี้ได้: sudo apt install ncdu

รีเซ็ตการเชื่อมต่อเครือข่ายโดยไม่ต้องรีบูตระบบของคุณ

ล้าง DNS รีสตาร์ทอินเตอร์เฟซ และตรวจสอบการเชื่อมต่อ

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

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

ขั้นตอนแรกคือการระบุอินเทอร์เฟซเครือข่าย คำสั่งนี้ช่วยได้: ip link show ต่อไป ฉันเรียกใช้คำสั่งนี้เพื่อล้างแคช DNS ของฉัน: sudo resolvectl flush-caches.

บนระบบเก่า ๆ คุณอาจต้องรันคำสั่งที่เทียบเท่ากันแทน: sudo systemd-resolve --flush-caches

ต่อไป ให้รันคำสั่งสองคำสั่งด้านล่างเพื่อรีเซ็ตอินเทอร์เฟซเครือข่าย:

sudo ip link set  down
sudo ip link set  up

สุดท้าย คุณอาจใช้คำสั่ง ping เพื่อทดสอบการเชื่อมต่อ:

ping -c 4 google.com

บนระบบที่ใช้ NetworkManager การใช้คำสั่ง ip link โดยตรงอาจทำให้ NetworkManager เขียนทับการเปลี่ยนแปลงของคุณได้ คำสั่ง nmcli ด้านล่างจะใช้การรีเซ็ตแบบถาวรผ่าน NetworkManager

nmcli networking off
nmcli networking on

หยุดเดาเหตุผลว่าทำไมระบบของคุณถึงรู้สึกช้า

จัดอันดับการใช้ CPU หน่วยความจำ และดิสก์ทันที






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

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

ก่อนอื่น ฉันใช้คำสั่ง top เพื่อดูการใช้งานทรัพยากรระบบแบบเรียลไทม์ จากนั้นฉันรันคำสั่งนี้: top -b -n 1 | head -20 เพื่อจับภาพสแน็ปช็อตของโปรเซสที่กำลังทำงาน ถัดไป ฉันรันคำสั่งนี้เพื่อระบุว่าโปรเซสใดกำลังใช้หน่วยความจำ: ps aux --sort=-%mem | head -10 หากคุณต้องการตรวจสอบกิจกรรม I/O ของดิสก์ ให้รันคำสั่งนี้: iostat -x 1 3.

ถ้า iostat ไม่ได้ถูกติดตั้ง ให้ติดตั้งแพ็กเกจ sysstat (ตัวอย่างเช่น ใช้คำสั่ง sudo apt install sysstat บน Debian/Ubuntu)

คุณยังสามารถใช้คำสั่ง htop หากคุณต้องการตัวดูโปรแกรมประมวลผลที่สามารถโต้ตอบได้มากขึ้น เมื่อคุณพบโปรแกรมประมวลผลที่ทำงานผิดพลาด จดเลข PID และลองปิดโปรแกรมประมวลผลนั้นอย่างถูกต้องก่อนโดยใช้ kill PID ซึ่งจะส่งสัญญาณ SIGTERM และให้โอกาสโปรแกรมประมวลผลบันทึกข้อมูลและออกอย่างเรียบร้อย หากโปรแกรมประมวลผลไม่ตอบสนอง ให้ปิดโปรแกรมด้วยคำสั่ง: kill -9 PID เป็นวิธีสุดท้าย

ซ่อมแซมข้อผิดพลาดของระบบไฟล์ก่อนที่จะทำให้ข้อมูลสูญหาย

เรียกใช้ fsck อย่างปลอดภัยและตรวจสอบความสมบูรณ์ของดิสก์

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

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

ก่อนที่จะทำการแก้ไขใหญ่ใดๆ ให้รันคำสั่งด้านล่างเพื่อตรวจสอบพาร์ติชัน: lsblk

เรียกใช้ fsck เฉพาะบนพาร์ติชันที่ยังไม่ได้เมานต์; การเรียกใช้งานบนระบบไฟล์ที่เมานต์แล้วอาจทำให้ข้อมูลเสียหายอย่างรุนแรง

โดยทั่วไปฉันจะรันการสแกนแบบอ่านอย่างเดียวก่อนที่จะใช้การซ่อมแซมอัตโนมัติโดยใช้คำสั่งด้านล่าง:

sudo fsck -n /dev/sdX

ถ้าฉันตรวจพบข้อผิดพลาดใด ๆ ที่ฉันต้องการให้เรียกใช้อัตโนมัติ ฉันจะรันคำสั่งด้านล่างนี้ (แฟลก -y จะดำเนินการแก้ไขโดยไม่ต้องมีคำถามเพิ่มเติม):

sudo fsck -y /dev/sdX

การรัน fsck จากสภาพแวดล้อม USB สดนั้นปลอดภัยเมื่อคุณต้องการตรวจสอบไฟล์ระบบราก นอกจากนี้ ฉันยังใช้เครื่องมือเช่น smartctl เพื่อตรวจสอบฮาร์ดไดรฟ์ที่กำลังล้มเหลว

คำสั่งไม่กี่คำสามารถแก้ปัญหา Linux ส่วนใหญ่ได้

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

บทความที่เกี่ยวข้อง