Ricerca nel sito web

5 comandi del terminale Linux che risolvono la maggior parte dei miei problemi di sistema


Anche se i sistemi Linux sono abbastanza stabili, l'uso quotidiano può provocare determinati errori. Diverse distro Linux includono strumenti GUI, ma le correzioni più affidabili avvengono nel terminale perché offre un controllo più preciso sulle riparazioni.

Dopo un paio d'anni a risolvere molti di questi problemi di Linux, ho creato una serie di comandi da terminale che mi aiutano a affrontare quasi qualsiasi problema incontro. Non sono solo comandi da eseguire su sistemi nuovi e dimenticare; sono un kit di strumenti quotidiano.

Ripara i pacchetti rotti prima che si propagano

Correggi gli errori di dipendenza e le installazioni incomplete nel modo corretto

Su Linux, interi pacchetti possono diventare instabili quando un aggiornamento o un'installazione di software viene interrotta, o se alcune dipendenze non riescono a risolversi. Questo spesso causa il mancato avvio delle applicazioni esistenti e talvolta il fallimento delle nuove installazioni.

Per risolvere questo, eseguo i comandi seguenti in sequenza:

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

I comandi sopra indicati sono specifici per Debian/Ubuntu (APT/dpkg). Su Fedora, usare sudo dnf distro-sync; su Arch, usare sudo pacman -Syu.

Li eseguo in questo ordine così posso ripristinare un sistema di pacchetti rotto senza reinstallare il sistema operativo. Qualsiasi dei seguenti può essere il mio segnale per eseguire i comandi sopra:

  • Installazioni di software che falliscono a causa di errori di dipendenza
  • Aggiornamenti che si fermano a metà
  • Il gestore di pacchetti segnala pacchetti danneggiati
  • Applicazioni che si bloccano dopo un aggiornamento di sistema

Uso il primo comando per completare l'installazione di qualsiasi pacchetto incompleto. Il comando --fix-broken risolve le dipendenze non soddisfatte scaricando e installando ciò che manca. Il comando clean rimuove i file dei pacchetti memorizzati nella cache, mentre il comando autoremove rimuove i pacchetti non necessari che sono stati installati automaticamente per soddisfare le dipendenze di un altro pacchetto.

Scopri cosa sta silenziosamente riempiendo il tuo disco

Espone gli accumulatori di risorse che il terminale rivela immediatamente

Secondo la mia esperienza, i problemi di spazio su disco sono piuttosto comuni su Linux. Questi problemi possono essere causati dall'accumulo graduale di log e file temporanei. Possono anche essere provocati da una cache di grandi dimensioni. Per me, i colpevoli comuni sono di solito le mie immagini e i miei container Docker, i vecchi kernel e le cache delle applicazioni.

Se Docker è responsabile di riempire il tuo disco, puoi rimuovere in sicurezza i container fermati eseguendo il comando docker system prune. Il comando eliminerà anche le immagini senza tag non utilizzate da alcun container e la cache di build inutilizzata. Per recuperare più spazio rimuovendo tutte le immagini inutilizzate, aggiungi l'opzione -a: docker system prune -a

Qualsiasi di questi sintomi può essere un promemoria per controllare l'utilizzo del disco:

  • I dischi si riempiono più velocemente del previsto
  • Gli aggiornamenti di sistema rifiutano di installarsi
  • Operazioni di file lente
  • Avvisi di spazio su disco insufficiente

Eseguo df -h per mostrare l'utilizzo complessivo del disco. Per individuare directory di grandi dimensioni, eseguo:

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

Una volta fatto ciò, posso restringere la mia ricerca a directory specifiche per individuare cosa sta occupando spazio, e potrei usare il comando ncdu / solo per avere una visualizzazione interattiva più semplice. Una volta che inizio da questa directory radice, è più facile vedere problemi a livello di sistema che normalmente non emergerebbero negli strumenti grafici.

Prima di eseguire il comando ncdu, deve essere installato sul tuo computer. Puoi usare questo comando: sudo apt install ncdu

Reimposta la rete senza riavviare il sistema

Svuotare la cache DNS, riavviare le interfacce e verificare la connettività

Molto spesso, i problemi di rete originano dal tuo computer, non da un router o dal fornitore di internet. I fattori scatenanti comuni sono le voci DNS obsolete, i servizi di rete non rispondenti o i malfunzionamenti dell'interfaccia. Ci sono diversi comandi che utilizzo per risolvere eventualmente il problema, e il segnale per provare questi comandi è uno qualsiasi dei seguenti:

  • Pagine web che si bloccano o che si caricano parzialmente
  • Errori di risoluzione del nome temporaneamente non riuscita
  • Download o caricamenti interrotti
  • Altri dispositivi funzionano normalmente mentre il mio sistema è offline

Il primo passo è identificare l'interfaccia di rete. Questo comando aiuta in questo: ip link show. Successivamente, eseguo questo comando per svuotare la cache DNS: sudo resolvectl flush-caches.

Sui sistemi più datati, potresti invece eseguire il comando equivalente:sudo systemd-resolve --flush-caches

Successivamente, esegui i due comandi sottostanti per reimpostare l'interfaccia di rete:

sudo ip link set  down
sudo ip link set  up

Infine, puoi utilizzare un comando ping per testare la connettività:

ping -c 4 google.com

Nei sistemi che utilizzano NetworkManager, l'uso diretto di ip link può causare a NetworkManager di sovrascrivere le tue modifiche. I comandi nmcli qui sotto applicheranno un reset persistente tramite NetworkManager.

nmcli networking off
nmcli networking on

Smetti di indovinare perché il tuo sistema sembra lento

Classifica istantaneamente l'utilizzo di CPU, memoria e disco






Non è raro che il tuo computer sembri lento di tanto in tanto. Tuttavia, vale la pena controllarlo, soprattutto quando i rallentamenti non si verificano durante compiti pesanti. Ho notato che spesso un processo fuori controllo, la pressione sulla memoria o un'elevata attività del disco possono causare rallentamenti. Nel momento in cui noto uno dei sintomi elencati di seguito, inizio a investigare il problema:

  • Applicazioni che si bloccano o rallentano
  • Alta attività della ventola
  • Picchi frequenti della CPU
  • Lentezza nella reattività del desktop

Per prima cosa, uso il comando top per vedere l'utilizzo delle risorse di sistema in tempo reale. Poi eseguo questo comando: top -b -n 1 | head -20 per catturare un'istantanea dei processi attivi. Successivamente, eseguo questo comando per identificare quali processi stanno consumando memoria: ps aux --sort=-%mem | head -10. Se è necessario monitorare l'attività di I/O del disco, eseguire questo comando: iostat -x 1 3.

Se iostat non è installato, installa il pacchetto sysstat (per esempio, sudo apt install sysstat su Debian/Ubuntu).

Puoi anche usare il comando htop se preferisci un visualizzatore di processi più interattivo. Una volta trovato un processo che si comporta male, annota il PID e prova prima a terminarlo in modo pulito con kill PID, che invia un segnale SIGTERM e dà al processo la possibilità di salvare i dati e uscire in modo corretto. Se il processo non risponde, terminatelo usando il comando: kill -9 PID come ultima risorsa.

Ripara gli errori del filesystem prima che causino perdita di dati

Esegui fsck in sicurezza e verifica l'integrità del disco

Quando si utilizza un computer, ci si deve aspettare errori di sistema. La perdita improvvisa di energia, guasti hardware o spegnimenti impropri sono cause comuni. Tuttavia, il vero problema è che questi errori possono accumularsi e far scomparire i file. In alcuni casi, il computer potrebbe smettere di avviarsi correttamente. I sintomi comuni che osservo prima di riparare i file di sistema sono:

  • File impossibili da aprire
  • Errori di lettura o scrittura imprevisti
  • Sistemi di file che passano alla modalità di sola lettura

Prima di procedere a qualsiasi riparazione importante, esegui il comando sottostante per identificare la partizione: lsblk

Esegui fsck solo sulle partizioni smontate; eseguirlo su file system montati può causare gravi danni ai dati.

Di solito eseguo una scansione in sola lettura prima di applicare qualsiasi riparazione automatica usando il comando qui sotto:

sudo fsck -n /dev/sdX

Se rilevo errori che devo correggere automaticamente, eseguo il comando seguente (il flag -y applica le correzioni senza ulteriori richieste):

sudo fsck -y /dev/sdX

È sicuro eseguire fsck da un ambiente live USB quando è necessario controllare il filesystem root. Inoltre, uso strumenti come smartctl per rilevare unità in avaria.

Pochi comandi possono risolvere la maggior parte dei problemi di Linux

Raccomando alcuni comandi generali per l'uso quotidiano. Tuttavia, per risolvere problemi comuni di Linux, questi cinque gruppi di comandi saranno la tua scelta migliore. Ci vogliono solo pochi minuti per risolvere molti problemi. Puoi fare il troubleshooting dalla GUI, ma il terminale permette un troubleshooting più avanzato.

Articoli correlati