Vyhledávání na webu

5 příkazů terminálu Linux, které opraví většinu mých problémů se systémem


I když jsou systémy Linux poměrně stabilní, každodenní používání může vyvolat určité chyby. Několik distribucí Linuxu zahrnuje nástroje s grafickým rozhraním, ale nejspolehlivější opravy probíhají v terminálu, protože vám poskytuje přesnější kontrolu nad opravami.

Po pár letech, kdy jsem opravoval spoustu těchto problémů s Linuxem, jsem si vytvořil sadu terminálových příkazů, které mi pomáhají téměř se všemi problémy, na které narazím. Nejde jen o příkazy, které spustíte na novém systému a zapomenete; jsou to každodenní nástroje.

Opravte poškozené balíčky dříve, než se rozšíří

Opravte chyby závislostí a neúplné instalace správným způsobem

Na Linuxu se celé balíčky mohou stát nestabilními, pokud je aktualizace nebo instalace softwaru přerušena, nebo pokud se určité závislosti nepodaří vyřešit. To často způsobuje, že stávající aplikace nelze spustit, a někdy selžou i nové instalace.

Abych to opravil, spustím níže uvedené příkazy postupně:

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

Výše uvedené příkazy jsou specifické pro Debian/Ubuntu (APT/dpkg). Na Fedoře použijte sudo dnf distro-sync; na Archu použijte sudo pacman -Syu.

Spouštím je v tomto pořadí, abych mohl obnovit poškozený balíčkový systém, aniž bych přeinstaloval operační systém. Jakýkoliv z následujících signálů může být pro mě spouštěcím signálem k provedení výše uvedených příkazů:

  • Instalace softwaru selhává kvůli chybám závislostí
  • Aktualizace se zastavují uprostřed
  • Správce balíčků hlásí poškozené balíčky
  • Aplikace selhávají po aktualizaci systému

První příkaz používám k dokončení instalace jakéhokoli nedokončeného balíčku. Příkaz --fix-broken řeší nesplněné závislosti stažením a instalací toho, co chybí. Příkaz clean odstraňuje uložené soubory balíčků, zatímco příkaz autoremove odstraňuje nepotřebné balíčky, které byly automaticky nainstalovány, aby vyhověly závislostem pro jiný balíček.

Zjistěte, co tiše zaplňuje váš disk

Odhaluje skladovací žrouty, které terminál okamžitě zobrazí

Z mé zkušenosti jsou problémy s místem na disku na Linuxu poměrně běžné. Tyto problémy mohou být spouštěny postupně hromadícími se logy a dočasnými soubory. Mohou být také způsobeny velkou cache. U mě jsou běžnými viníky obvykle mé Docker obrazy a kontejnery, staré jádra a cache aplikací.

Pokud je Docker zodpovědný za zaplnění vašeho disku, můžete bezpečně odstranit zastavené kontejnery spuštěním příkazu docker system prune. Tento příkaz také odstraní neoznačené obrazy, které nejsou použity žádným kontejnerem, a nepoužívanou mezipaměť sestavení. Chcete-li získat více místa odstraněním všech nepoužitých obrazů, přidejte přepínač -a: docker system prune -a

Každý z těchto příznaků může být připomínkou, abyste zkontrolovali využití disku:

  • Jednotky se naplňují rychleji než očekáváno
  • Aktualizace systému se odmítají instalovat
  • Pomalé operace se soubory
  • Varování o nízkém volném místě na disku

Spouštím df -h pro zobrazení celkového využití disku. Pro nalezení velkých adresářů spouštím:

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

Jakmile je to hotové, mohu zúžit hledání na konkrétní adresáře, abych našel, co zabírá místo, a mohu použít příkaz ncdu /, abych měl jednodušší, interaktivní přehled. Jakmile začnu z tohoto kořenového adresáře, je snazší vidět problémové oblasti na úrovni systému, které by se obvykle neobjevily v grafických nástrojích.

Než spustíte příkaz ncdu, musí být na vašem počítači nainstalován. Můžete použít tento příkaz: sudo apt install ncdu

Obnovit síťové připojení bez restartu systému

Vyprázdnit DNS, restartovat rozhraní a ověřit konektivitu

Velmi často problémy se sítí pocházejí z vašeho počítače, ne z routeru nebo poskytovatele internetu. Běžné spouštěče jsou zastaralé DNS záznamy, nereagující síťové služby nebo závady rozhraní. Existuje několik příkazů, které používám k eventualnímu vyřešení problému, a impulsem pro vyzkoušení těchto příkazů je kterýkoli z následujících případů:

  • Webové stránky se zasekávají nebo se načítají částečně
  • Chyby „Dočasné selhání při rozlišení názvu“
  • Přerušené stahování nebo nahrávání
  • Ostatní zařízení fungují normálně, zatímco můj systém je offline

Prvním krokem je identifikovat síťové rozhraní. Tento příkaz s tím pomáhá: ip link show. Dále spusťím tento příkaz k vyprázdnění mé mezipaměti DNS: sudo resolvectl flush-caches.

Na starších systémech můžete místo toho spustit ekvivalentní příkaz:sudo systemd-resolve --flush-caches

Dále spusťte dva níže uvedené příkazy pro resetování síťového rozhraní:

sudo ip link set  down
sudo ip link set  up

Nakonec můžete použít příkaz ping k testování konektivity:

ping -c 4 google.com

Na systémech běžících s NetworkManager může přímé použití příkazu ip link způsobit, že NetworkManager přepíše vaše změny. Příkazy nmcli níže aplikují trvalé resetování přes NetworkManager.

nmcli networking off
nmcli networking on

Přestaňte hádat, proč váš systém působí pomalu

Okamžitě seřaďte využití procesoru, paměti a disku






Není neobvyklé, že váš počítač občas působí pomalu. Nicméně stojí za to to zkontrolovat, zejména když zpomalení nenastávají při náročných úlohách. Všiml jsem si, že často může zpomalení způsobit nekontrolovaný proces, tlak na paměť nebo vysoká aktivita disku. Jakmile si všimnu některého z níže uvedených příznaků, začnu problém zkoumat:

  • Aplikace zamrzají nebo se zasekávají
  • Vysoká činnost ventilátoru
  • Časté výkyvy CPU
  • Pomalá odezva desktopu

Nejprve používám příkaz top k zobrazení aktuálního využití systémových zdrojů. Poté spustím tento příkaz: top -b -n 1 | head -20, abych zachytil snímek aktivních procesů. Dále spustím tento příkaz, abych zjistil, které procesy spotřebovávají paměť: ps aux --sort=-%mem | head -10. Pokud potřebujete sledovat aktivitu diskového I/O, spusťte tento příkaz: iostat -x 1 3.

Pokud není iostat nainstalován, nainstalujte balíček sysstat (například sudo apt install sysstat na Debianu/Ubuntu).

Také můžete použít příkaz htop, pokud dáváte přednost interaktivnějšímu prohlížeči procesů. Jakmile najdete proces, který nefunguje správně, poznamenejte si jeho PID a nejprve se pokuste jej ukončit čistě pomocí kill PID, který pošle signál SIGTERM a dá procesu šanci uložit data a ukončit se bez problémů. Pokud proces nereaguje, ukončete jej pomocí příkazu: kill -9 PID jako poslední možnost.

Opravte chyby souborového systému dříve, než způsobí ztrátu dat

Spusťte fsck bezpečně a ověřte integritu disku

Při používání počítače očekávejte systémové chyby. Náhlá ztráta napájení, poruchy hardwaru nebo nesprávné vypnutí jsou snadné spouštěče. Skutečným problémem však je, že tyto chyby se mohou hromadit a způsobit, že soubory zmizí. V některých případech může počítač přestat správně spouštět systém. Běžné příznaky, které vidím před opravou systémových souborů, jsou:

  • Soubory se nepodařilo otevřít
  • Neočekávané chyby čtení nebo zápisu
  • Soubory systémy přecházejí do režimu pouze pro čtení

Než přistoupíte k jakýmkoli větším opravám, spusťte níže uvedený příkaz pro identifikaci oddílu: lsblk

Spusťte fsck pouze na odpojených oddílech; jeho spuštění na připojených souborových systémech může způsobit vážné poškození dat.

Obvykle provedu pouze čtecí sken, než použiju jakékoli automatické opravy pomocí následujícího příkazu:

sudo fsck -n /dev/sdX

Pokud zjistím jakékoli chyby, které potřebuji spustit automaticky, spustím níže uvedený příkaz (přepínač -y provádí opravy bez dalších dotazů):

sudo fsck -y /dev/sdX

Je bezpečné spustit fsck z live USB prostředí, když potřebujete zkontrolovat kořenový souborový systém. Také používám nástroje jako smartctl k odhalení selhávajících disků.

Několik příkazů může vyřešit většinu problémů v Linuxu

Doporučuji určité obecné příkazy pro každodenní použití. Pro řešení běžných problémů v Linuxu jsou však tyto pět skupin příkazů vaší nejlepší volbou. Řešení mnoha problémů zabere jen několik minut. Můžete diagnostikovat problémy z grafického rozhraní, ale terminál umožňuje pokročilejší řešení problémů.

Související články