คำสั่งเทอร์มินัล 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 ได้ แต่เทอร์มินัลจะช่วยให้สามารถแก้ไขปัญหาที่ซับซ้อนมากขึ้น









