6 FANTASTICI strumenti da riga di comando per LINUX e MAC

Quando si parla dei grandi vantaggi che Linux e MAC offrono, lo strumento a riga di comando, il cosiddetto terminale, ci rientra sempre. A dire il vero questo strumento è disponibile anche su altri sistemi operativi, ma non con la flessibilità che il terminale offre su Linux e MAC. Entrambi i sistemi operativi si basano su kernel Linux. Ciò significa che sia Linux che MAC, pur condividendo lo stesso kernel, eseguono distribuzioni del S.O. progettate separatamente per i due ambienti.

Tuttavia i due sistemi operativi, pur presentando differenze sostanziali, hanno una cosa in comune. Lo strumento a riga di comando chiamato terminale. Questo strumento consente di gestire l’intero computer da un’interfaccia puramente amministrativa. Una caratteristica rivoluzionaria rispetto ai sistemi operativi Windows. Per i quali la Microsoft, pur avendo adottato il “prompt dei comandi” sin dalle prime versioni di Windows, solo ultimamente grazie all’introduzione di “PowerShell” è riuscita a dare maggior slancio alla gestione del sistema operativo in modalità più interattiva.

Il terminale, noto anche come console dei comandi, è un’interfaccia testuale, non grafica, utilizzata per impartire comandi Linux e MAC. Si tratta di uno strumento molto importante in entrambi i sistemi, in quanto viene utilizzato per eseguire modifiche dirette alla gestione amministrativa del computer. Molti sviluppatori lo usano ogni giorno per creare programmi, configurare server e applicazioni, rimuovere virus e persino modificare file attraverso comandi diretti al sistema operativo.

Molto anni prima dello sviluppo e dell’avvento dell’interfaccia grafica (GUI), i sistemi informatici venivano gestiti su macchine che disponevano solo di un terminale a riga di comando. Persino i programmi o i software gestionali, erano scritti e progettati utilizzando il terminale. Pertanto, molti programmatori professionisti si sono abituati ad utilizzare questo strumento al punto da considerarlo necessario per lo sviluppo e il lavoro da programmatore. Infatti, anche molti editor per lo sviluppo, come Visual Studio Code, integrano il terminale direttamente al loro interno. Per cui è più facile per chi sviluppa software digitare comandi senza abbandonare la finestra contenente il codice sorgente. Insomma il terminale può semplificarti veramente la vita.


Leggi anche: Come creare un programma con Prettier e Visual Studio Code


Ci sono buone notizie per gli amanti del terminale: Esistono decine di strumenti a riga di comando, detti anche CLI. Per gli scopi di questa guida ci concentreremo sul terminale di Linux e MAC e su 6 fantastici strumenti richiamabili da riga di comando che ti permetteranno di gestire e velocizzare il tuo computer in completa autonomia.

1. Pulire il disco da file inutili o danneggiati con rmlint

rmlint è l’acronimo di remove lint. È uno strumento molto potente studiato per individuare ed eliminare automaticamente tutti i file inutili e danneggiati che si accumulano sul disco. Occupando spazio ed appesantendo notevolmente la memoria e l’esecuzione dei processi attivi. Con rmlint è possibile ripulire il tuo computer facilmente da vecchi file privi di collegamenti simbolici che puntano a file non più esistenti e quindi ormai inutili. I file di backup, le cartelle temporanee, i file di registro e i file duplicati non necessari e/o danneggiati vengono rimossi anch’essi, completamente, dalle partizioni del disco rigido.

A questo punto ho una domanda da farti: Hai installato troppi software sul tuo computer ed ora è troppo lento? Beh, se ti interessa capire come risolvere la questione sappi che la mancanza di spazio libero è fortemente penalizzante per un sistema operativo e, comunque sia, risulta sempre molto difficile capire cosa occupa spazio sul tuo hard disk e cosa sta rallentando il tuo computer. Ed è proprio in questi casi che rmlint si rivela uno strumento efficace. Basta eseguire rmlint e il comando individuerà automaticamente cosa sta occupando spazio su disco rimuovendo tutti i file che non servono più.


Leggi anche: Come velocizzare Windows 10 in un colpo solo


Inoltre, se il tuo disco rigido ha più di un paio d’anni di vita, è probabile che abbia raccolto un sacco di file spazzatura. Cioè file relativi a vecchie installazioni che il sistema non esegue più da molto tempo. Quando questi file diventano obsoleti, vengono eliminati e spostati altrove, dal sistema, per lasciare spazio a dati più recenti. Purtroppo, in alcuni casi questi file eliminati rimangono intatti nelle loro posizioni originali. Rmlint è uno strumento che ti consente di scovare e rimuovere anche questi file, e altri danneggiati o addirittura vuoti, dal tuo computer.

Per eseguire rmlint, sia su linux che su MAC, basta aprire il terminale e digitare il comando rmlint seguito dalla pressione del tasto INVIO.

il comando rmlint per rimuovere file obsoleti da riga di comando
Strumento da riga di comando rmlint

2. Copiare e sincronizzare file e directory con rsync

Rsync è uno strumento a riga di comando per sistemi operativi Unix like. Rsync può copiare e sincronizzare file da una directory all’altra utilizzando suo protocollo proprietario. Per sincronizzare file tra due directory, al comando rsync, vanno passati due parametri. Come primo parametro viene indicata la directory sorgente mentre la directory destinazione deve essere specificata come secondo parametro nella riga di comando.

rsync è un ottimo strumento per mantenere sincronizzate le strutture delle directory. Per questo motivo è molto utile per fare backup e copie di sicurezza. Recentemente ho dovuto copiare oltre 12.000 file da un server remoto a un altro. La copia di questi file tramite FTP, in questo caso, non era un’opzione da tenere in considerazione perché il trasferimento avrebbe richiesto giorni se non addirittura qualche settimana. L’uso di rsync, schedulato con un cronjob, si è rivelato il metodo più efficiente che ho trovato.

Negli ultimi anni ho lavorato con molti sviluppatori e uno dei problemi che si ripresenta di continuo è quello di come effettuare una copia di sicurezza del repository di codice sorgente condiviso. È sorprendentemente difficile convincere gli sviluppatori a usare sistemi di versioning come Git o SubVersion. Questi sistemi di versioning risolverebbero egregiamente il problema effettuando, ad ogni commit, una sorta di copia dei sorgenti suddivisi per versione. Invece la tendenza e quella di copiare manualmente i file dopo ogni modifica del codice sorgente. Per cui è richiesto del tempo per copiare e creare copie di sicurezza affidabili. Utilizzando Rsync avrai la certezza di mantenere sincronizzate le tue copie di backup eseguendo fedelmente il lavoro senza intoppi.

Per esempio, per copiare la directory1 nella directory2, sincronizzando il loro contenuto, basta aprire il terminale e digitare il comando rsyncav /directory1 /directory2 seguito dalla pressione del tasto INVIO. Rsync si occuperà dell’intero processo mantenendo sempre una copia affidabile e sicura dei tuoi dati.

il comando rsync per creare copie di sicurezza da riga di comando
Strumento da riga di comando rsync

“Se sei un utente di sistemi Windows sappi che puoi usare in alternativa al comando rsync il comando Robocopy per eseguire la stessa operazione.


Leggi anche: SVN & GIT: Il controllo di versione del codice sorgente


3. Come gestire i tuoi file su cloud con rclone

Fino ad ora per accedere ai file presenti sul cloud, bisognava accedervi tramite un browser o un’applicazione dedicata. Non era ancora possibile spostarli facilmente o sincronizzarli direttamente tra il tuo computer e i tuoi dispositivi mobili. Un servizio di gestione del contenuto su cloud come rclone ha il potere di cambiare le cose, dandoti il pieno controllo dei tuoi file e permettendoti di sincronizzarli e copiarli da un provider di cloud storage (come Google Drive, Amazon S3, ecc…) ad un altro (come Dropbox) il tutto eseguendo un semplice comando da terminale.

Insomma, tramite rclone puoi sincronizzare file e directory da e verso più provider di cloud storage. Più avanti ti mostrerò, con un semplice esempio, come utilizzare rclone per eseguire il backup di un’intera raccolta di file e cartelle sul Cloud e gestire questi file direttamente da terminale.

Sebbene rclone sia uno strumento da riga di comando, è estremamente facile da usare. Supporta Amazon Drive, Google Drive, Microsoft OneDrive e Dropbox. Se desideri accedere ai tuoi file memorizzati su uno dei provider summenzionati o da un altro computer remoto, ecco i passaggi da seguire:

a) Installare Rclone sul tuo computer (se non è già installato).

b) Assicurati di avere installato l’ultima versione di Python, compreso il suo gestore di pacchetti pip.

c) Ottenere, dalla pagina del tuo provider Cloud, l’access token e il secret ID. Ad esempio se usi Google Drive, come Cloud Provider, puoi seguire questa guida per ottenere il secret ID e il token access ID.

d) Digitare il comando rclone config da terminale dei comandi e inserire tutte le informazioni quando richieste. Per sapere quali sono i provider supportati e come configurare l’accesso con rclone config ti consiglio di dare un’occhiata a questa pagina. Da questa pagina web, cliccando sul pulsante config relativo al provider interessato, puoi ottenere tutte le informazioni per una corretta configurazione di rclone da effettuare con il comando rclone config.

provider supportati dal comando rclone
provider supportati da rclone

Una volta effettuate tutte le operazioni indicate nei punti precedenti, puoi eseguire questo comando sul computer locale per copiare/eseguire un backup dei file sul cloud.

rclone copy source:sourcepath dest:destpath

È doveroso da parte mia puntualizzare che, rclone, è corredato da un’infinità di comandi che puoi utilizzare per eseguire qualsiasi operazione su file da e verso un provider cloud. A questo indirizzo puoi vedere un elenco dettagliato di ogni comando.

Inoltre, digitando il comando rclone command –help, da terminale, il sistema visualizzerà l’elenco dei comandi disponibili nella finestra del terminale sia di Linux sia di MAC. In figura parte dei comandi disponibili con rclone.

tutte le opzioni disponibili per il comando rclone
tutte le opzioni disponibili per il comando rclone

Beh, avrai capito quanto sia importante saper utilizzare e sfruttare appieno questo comando. E per fugare ogni dubbio ti consiglio di seguire questo breve video tutorial dove avrai modo di capire come viene utilizzato rclone in ambito professionale.

Il comando RCLONE

4. Analizzare l’utilizzo del disco con ncdu

Lo spazio su disco è sempre stato un bene prezioso. Si ignora, con molta facilità, l’impatto che può avere un cattivo utilizzo dello spazio su disco sulle operazioni che quotidianamente vengono svolte al computer. Anche se non ti piacerà analizzare dati e risorse con l’uso di strumenti da riga di comando, questi rappresentano un ottimo modo per misurare le performance del sistema e identificare potenziali problematiche. Insomma, l’ottimizzazione dello spazio su disco rigido, rappresenta tutt’ora un’ottima pratica da eseguire periodicamente per mantenere il tuo computer in ottimo stato.

Uno dei compiti più importanti quando si ottimizza il disco rigido è tenere traccia di come viene utilizzato lo spazio su disco. Molte persone, me compreso, iniziano con strumenti grafici di visualizzazione e gestione dell’utilizzo del disco, come Gnome Disk Usage Analyzer. Pur essendo strumenti eccellenti, ritengo che, l’utilizzo di strumenti da riga di comando rappresenti il sistema migliore per avere un immediato resoconto di come viene gestito lo spazio su disco. Tutti i sistemi Unix like, come Linux e MAC, hanno a disposizione l’utility ncdu per gestire e monitorare l’utilizzo del disco rigido e di tutto il filesystem.

È possibile che, su alcune distribuzioni di Linux e MAC, lo strumento ncdu non sia disponibile. In tal caso può essere installato con estrema facilità. Tuttavia sia su Linux sia su MAC l’installazione del software segue regole diverse. Di seguito il comando per Linux e il comando per MAC da eseguire per installare ncdu su entrambi i sistemi.

a) Installazione di ncdu su Linux:

sudo apt install ncdu

b) Installazione di ncdu su MAC:

brew install ncdu

Ora che ncdu è disponibile sul tuo computer eseguendo il comando da terminale, il sistema effettuerà prima una scansione di tutto il filesystem e successivamente mostrerà un elenco di cartelle e lo spazio occupato da ognuna.

comando ncdu che esegue scansione da riga di comando
scansione filesystem con comando ncdu

Sfruttando i tasti freccia potrai selezionare la cartella da dare in pasto a ncdu e indicarla come punto di partenza per l’analisi. Come utente di sistemi Unix like saprai che la cartella var è sempre un ottimo punto di partenza per l’analisi. In questa cartella sono contenuti molti file dpkg che vengono utilizzati dal sistema per installare e disinstallare software. Molti di questi file potrebbero essere eliminati in quanto non più necessari. A tal proposito basta posizionarsi su uno di questi file, premere il tasto ”d”, e confermare con la pressione del tasto “y” l’eliminazione. Procedendo in questo senso è possibile liberare un bel po’ di spazio su disco.

elenco file e directory dopo scansione filesystem
elenco file e directory dopo scansione filesystem

In questo video tutorial potrai vedere nel dettaglio come monitorare e liberare spazio su disco utilizzando ncdu in combinazione con df.

Come monitorare e liberare spazio su disco con Linux

5. Gestire processi e memoria con btop

Btop è uno strumento di ottimizzazione e monitoraggio delle prestazioni per tutta la famiglia di sistemi operativi UNIX Like. BTop fornisce un’interfaccia simile allo strumento Top attraverso la quale gli utenti possono osservare, filtrare e gestire processi, attività e memoria RAM. Lo strumento utilizza tutti i più recenti miglioramenti apportati al kernel, i quali, forniscono strumenti di gestione e diagnostica delle risorse più avanzati. Ti permetterà, inoltre, di vedere in dettaglio come il computer sta gestendo le risorse a sua disposizione.

Come ti ho detto precedentemente, bTop è un pratico strumento da riga di comando che visualizza informazioni in tempo reale sui processi e sulle attività in esecuzione sul computer. Di conseguenza è molto semplice individuare quali processi stanno consumando più memoria, rallentando il tuo computer. Ora ti mostrerò come monitorare e gestire la memoria e i processi del computer con btop.

Una volta eseguito il comando btop, da riga di comando, il sistema visualizzerà una finestra contenente un sacco di informazioni utili. In questa finestra avrai la possibilità di capire quanta memoria RAM il sistema sta utilizzando, l’eccessivo utilizzo del disco e cosa molto importante i processi attivi e le risorse che ogni processo utilizza.

gestione dei processi e della memoria con btop
gestione dei processi e della memoria con btop

Non è raro che qualche processo sfrutti più del dovuto la memoria del computer rallentando e penalizzando le performance dell’intero sistema. A questo punto, tramite btop, puoi selezionare il processo in questione e chiuderlo senza tante pretese. Un’altra feature di btop riguarda il monitoraggio del traffico gestito dalla scheda di rete. Anche in questo caso, btop, risulta essere di fondamentale importanza permettendoti di capire se la scheda di rete è interessata da traffico anomalo.

monitoraggio del traffico di rete con btop
monitoraggio del traffico di rete con btop

6. Come inviare notifiche personalizzate con ntfy

Ntfy è uno strumento di automazione delle notifiche per sistemi Linux e Mac capace di notificare eventi direttamente al sistema operativo. Con ntfy puoi essere informato sullo stato di avanzamento dell’esecuzione di lunghi comandi, oppure, ricevere una notifica quando si verificano eventi specifici, come il completamento di un lavoro in background di lunga durata o la modifica/cancellazione di un file specifico. Se ti senti frustrato dal sistema di notifica predefinito e vuoi implementare e personalizzare tale sistema di gestione delle notifiche, puoi dare un’occhiata alla pagina ufficiale di ntfy cliccando qui.

Ntfy è un tool multipiattaforma, flessibile ed eseguito interamente in background, sul computer locale. Ntfy controllerà regolarmente la presenza di eventuali comandi programmati per l’esecuzione. E se uno di questi comandi viene eseguito in un momento specifico, ntfy innesca un evento che eseguirà per te l’invio di una notifica schedulata al sistema operativo.

Per esempio, per inviare la notifica testuale “hello” al tuo sistema operativo non ti resta che aprire il terminale e digitare il comando ntfy send hello. Successivamente, dopo la pressione del tasto INVIO, il sistema riceverà la notifica e la visualizzerà sfruttando il suo sistema di visualizzazione delle notifiche. Per cui il tuo computer visualizzerà questo messaggio:

ricezione di una notifica con ntfy
ricezione di una notifica con ntfy

prima ti ho parlato dell’invio e della ricezione di notifiche al completamento di un comando. Ora, ti mostrerò, come inviare una notifica circa l’esito positivo o negativo dell’esecuzione di un altro comando in combinazione con ntfy. Ad esempio, con questo comando il sistema dopo la rimozione del file “prova” invierà la notifica “file cancellato”, oppure, “file non trovato” in caso di insuccesso.

rm prova && ntfy send file cancellato || ntfy send file non trovato

Essendo il file “prova” inesistente il sistema riceverà la notifica “file non trovato”. Utilizzare ntfy come sistema alternativo di gestione delle notifiche, ti permetterà di gestire l’esecuzione di processi impegnativi in modo più professionale. In ogni caso cliccando su questo link potrai consultare la pagina ufficiale di ntfy, dove potrai apprendere come inviare notifiche anche al tuo smartphone.


Leggi anche: Trasforma qualsiasi testo in un video in 5 semplici passaggi


Antonio Lamorgese

Amministratore di rete e sviluppatore. Dopo anni di esperienza nel settore, ho ideato un sistema di gestione dati MYSQL in PHP senza scrivere una sola riga di codice. Scopri di più....