Linux ha una quota di mercato mondiale del 4,05% sui desktop, ma oltre il 90% di tutte le infrastrutture cloud e i servizi di hosting gira su questo sistema operativo. Solo per questo motivo, è fondamentale avere familiarità con i comandi Linux più utilizzati.

Linux è generalmente considerato uno dei sistemi operativi più potenti e sicuri. Non è una coincidenza. Linux è gratis e open-source, ha una sicurezza superiore rispetto ai suoi concorrenti e vanta una potente riga di comando che aumenta l’efficienza di sviluppatori e power user. E dà anche accesso a un potente gestore di pacchetti e a un sacco di strumenti di sviluppo come DevKinsta.

Questa guida può essere utile sia per gli amministratori di sistema esperti che per chi si avvicina per la prima volta a Linux.

Cominciamo!

Cos’è un comando Linux?

Un comando Linux è un programma o un’utilità che viene eseguito sulla riga di comando. Una riga di comando è un’interfaccia che accetta stringhe di testo e le elabora in istruzioni per il computer.

Qualsiasi interfaccia grafica utente (GUI) è solo un’astrazione dei programmi a riga di comando. Ad esempio, quando si chiude una finestra cliccando sulla “X”, c’è un comando in esecuzione dietro quell’azione.

Un flag è un modo per passare delle opzioni al comando che si esegue. La maggior parte dei comandi Linux ha una pagina di aiuto che possiamo invocare con il flag -h. La maggior parte delle volte i flag sono opzionali.

Un argomento o parametro è l’input che diamo a un comando in modo che possa essere eseguito correttamente. Nella maggior parte dei casi, l’argomento è il percorso di un file, ma può essere qualsiasi cosa si digiti nel terminale.

Puoi invocare i flag usando i trattini (-) e i doppi trattini (--), mentre l’esecuzione degli argomenti dipende dall’ordine in cui li passate alla funzione.

I 40 comandi Linux più utilizzati

Prima di passare ai comandi Linux più usati, apri una finestra del terminale. Nella maggior parte delle distribuzioni Linux, dovresti usare Ctrl + Alt + T. Se non funziona, cerca “terminale” nel pannello delle applicazioni.

L'emulatore del terminale Linux.
L’emulatore del terminale Linux.

Ora analizziamo i 40 comandi Linux più utilizzati. Molti di questi hanno molte opzioni che ti si possono associare, quindi ricordati di dare un’occhiata al manuale dei comandi.

1. Comando ls

ls è probabilmente il primo comando che qualsiasi utente Linux abbia digitato nel suo terminale. Permette di elencare il contenuto di una directory (di default si tratta della directory corrente), inclusi i file e le altre directory annidate.

ls

Questo comando ha molte opzioni, quindi potrebbe essere utile ottenere un po’ di aiuto usando il flag --help. Questo flag restituisce tutti i flag che puoi usare con ls.

Ad esempio, per colorare l’output del comando ls, puoi usare:

ls --color=auto
Il comando ls colorato.
Il comando ls colorato.

Ora l’output del comando ls è colorato e potrai apprezzare la differenza tra una directory e un file.

Ma digitare ls con il flag del colore sarebbe inefficiente; ecco perché utilizziamo il comando alias.

2. Comando alias

Il comando alias permette di definire alias temporanei nella tua sessione di shell. Quando crei un alias, stai dicendo alla shell di sostituire una parola con una serie di comandi.

Per esempio, per impostare ls in modo che abbia colore senza digitare ogni volta il flag --color, dovresti usare:

alias ls="ls --color=auto"

Come puoi vedere, il comando alias prende un parametro come coppia chiave-valore: alias NAME="VALUE". Notate che il valore deve essere compreso tra virgolette.

Se vuoi elencare tutti gli alias che hai nella tua sessione di shell, puoi eseguire il comando alias senza argomento.

alias
Il comando alias.
Il comando alias.

3. Comando unalias

Come suggerisce il nome, il comando unalias rimuove un alias dagli alias già definiti. Per rimuovere il precedente alias di ls, puoi usare

unalias ls

4. Comando pwd

Il comando pwd sta per “print working directory”, e produce il percorso assoluto della directory in cui ti trovi. Per esempio, se il tuo nome utente è “john” e sei nella directory Documenti, il percorso assoluto sarebbe: /home/john/Documents.

Basta digitare pwd nel terminale:

pwd

# My result: /home/kinsta/Documents/linux-commands

5. Comando cd

Come ls, anche il comando cd è molto utilizzato. Significa “cambia directory” e, come suggerisce il nome, ti fa passare alla directory a cui stai cercando di accedere.

Ad esempio, se sei all’interno della directory Documenti e stai cercando di accedere a una delle sottocartelle chiamata Video, puoi entrarci digitando:

cd Videos

Puoi anche fornire il percorso assoluto della cartella:

cd /home/kinsta/Documents/Videos

Ci sono alcuni trucchi che possono farti risparmiare molto tempo quando giochi con il comando cd:

1) Vai alla cartella home

cd

2) Sposta un livello sopra

cd ..

3) Torna alla directory precedente

cd -

6. Comando cp

È così facile copiare file e cartelle direttamente nel terminale Linux che a volte può farti sostituire i file manager convenzionali.

Per usare il comando cp, basta digitarlo insieme ai file di origine e di destinazione:

cp file_to_copy.txt new_file.txt

Puoi anche copiare intere directory usando il flag ricorsivo:

cp -r dir_to_copy/ new_copy_dir/

Ricordate che in Linux le cartelle finiscono con una barra in avanti (/).

7. Comando rm

Ora che sai come copiare i file, ti sarà utile sapere come rimuoverli.

Puoi utilizzare il comando rm per rimuovere file e directory. Fai attenzione, però, perché è molto difficile (ma non impossibile) recuperare i file cancellati in questo modo.

Per cancellare un file normale, si digita:

rm file_to_copy.txt

Se vuoi cancellare una directory vuota, puoi usare il flag ricorsivo (-r):

rm -r dir_to_remove/

D’altra parte, per rimuovere una directory con dei contenuti al suo interno, è necessario utilizzare i flag force (-f) e recursive:

rm -rf dir_with_content_to_remove/

8. Comando mv

Si usa il comando mv per spostare (o rinominare) file e directory nel file system.

Per usare questo comando, dovrai digitare il suo nome con i file di origine e di destinazione:

mv source_file destination_folder/

mv command_list.txt commands/

Per utilizzare i percorsi assoluti, devi usare:

mv /home/kinsta/BestMoviesOfAllTime ./

…dove ./ è la directory in cui ti trovi al momento.

Puoi anche usare mv per rinominare i file mantenendoli nella stessa directory:

mv old_file.txt new_named_file.txt

9. Comando mkdir

Per creare cartelle nella shell, si usa il comando mkdir. Basta specificare il nome della nuova cartella, assicurarsi che non esista, e si è pronti a partire.

Per esempio, per creare una directory per archiviare tutte le tue immagini, basta digitare

mkdir images/

Per creare delle sottodirectory con un semplice comando, usa il flag parent (-p):

mkdir -p movies/2004/

10. Comando man

Un altro comando Linux essenziale è man. Questo visualizza la pagina di manuale di qualsiasi altro comando (purché ne abbia una).

Per vedere la pagina manuale del comando mkdir, digita:

man mkdir

Si potrebbe anche fare riferimento alla pagina del manuale man:

man man
La pagina di manuale di
La pagina di manuale di “man”.

11. Comando touch

Il comando touch permette di aggiornare i tempi di accesso e di modifica dei file specificati.

Ad esempio, ho un vecchio file che è stato modificato l’ultima volta il 12 aprile:

Comando di lista che mostra le date di modifica di un insieme di file.
Vecchia data.

Per cambiare la data di modifica di questo file impostando l’ora corrente, dobbiamo usare il flag -m:

touch -m old_file

Ora la data corrisponde a quella di oggi (che al momento in cui si scrive è l’8 agosto).

Comando di lista che mostra la nuova data.
Nuova data

Tuttavia, nella maggior parte dei casi, non userai touch per modificare le date dei file, ma piuttosto per creare nuovi file vuoti:

touch new_file_name

12. Comando chmod

Il comando chmod permette di cambiare rapidamente la modalità di un file (permessi). Questo comando dispone di un sacco di opzioni.

I permessi di base di un file possono essere:

  • r (lettura)
  • w (scrittura)
  • x (esecuzione)

Uno dei casi d’uso più comuni per chmod è quello di rendere un file eseguibile dall’utente. Per farlo, digita chmod e il flag +x, seguito dal file di cui vuoi modificare i permessi:

chmod +x script

Puoi utilizzare questo comando per rendere gli script eseguibili, per eseguirli direttamente usando la notazione ./.

13. Comando ./

La notazione ./ probabilmente non è un comando in sé, ma vale la pena inserirla in questo elenco. Permette alla shell di eseguire un file eseguibile con qualsiasi interprete installato nel sistema, direttamente dal terminale. Niente più doppio clic su un file in un file manager grafico!

Per esempio, con questo comando, puoi eseguire uno script Python o un programma disponibile solo in formato .run, come XAMPP. Quando esegui un file eseguibile, assicurati che abbia i permessi di esecuzione (x), che puoi modificare con il comando chmod.

Ecco un semplice script Python e come lo eseguiremmo con la notazione ./:


#! /usr/bin/python3

# filename: script

for i in range(20):

print(f"This is a cool script {i}")

Ecco come convertire lo script in un eseguibile ed eseguirlo:

chmod +x script

./script

14. Comando exit

Il comando exit fa esattamente quello che suggerisce il nome: termina una sessione di shell e, nella maggior parte dei casi, chiude automaticamente il terminale che stai usando:

exit

15. Comando sudo

Questo comando sta per “superuser do” e permette di agire come superuser o utente root quando esegui un comando specifico. È il modo in cui Linux protegge se stesso e impedisce agli utenti di modificare accidentalmente il filesystem della macchina o di installare pacchetti inappropriati.

Sudo è di solito utilizzato per installare software o per modificare file al di fuori della home directory dell’utente:

sudo apt install gimp

sudo cd /root/ 

Prima di eseguire il comando che hai digitato, ti chiederà la password dell’amministratore.

16. Comando shutdown

Come si può intuire, il comando shutdown permette di spegnere la macchina. Ma può anche essere utilizzato per fermarla e riavviarla.

Per spegnere il computer immediatamente (l’impostazione predefinita è un minuto), digita:

shutdown now

Puoi anche programmare lo spegnimento del tuo sistema in un formato di 24 ore:

shutdown 20:40

Per annullare una precedente chiamata di shutdown, puoi usare il flag -c:

shutdown -c

17. Comando htop

htop è un visualizzatore di processi interattivo che ti permette di gestire le risorse della tua macchina direttamente dal terminale. Nella maggior parte dei casi, non è installato di default, quindi assicuratevi di approfondire sulla pagina di download.

htop
L'interfaccia
L’interfaccia “htop”.

18. Comando unzip

Il comando unzip permette di estrarre il contenuto di un file .zip dal terminale. Come nel caso precedente, questo pacchetto potrebbe non essere installato di default, quindi assicurati di installarlo con il tuo gestore di pacchetti.

Ecco come scompattare un file .zip pieno di immagini:

unzip images.zip

19. Comandi apt, yum, pacman

Non importa quale distribuzione Linux utilizzate, è probabile che utilizziate i gestori di pacchetti per installare, aggiornare e rimuovere il software che usa tutti i giorni.

È possibile accedere a questi gestori di pacchetti attraverso la riga di comando, e si dovrebbe utilizzare l’uno o l’altro a seconda della distro in esecuzione sulla macchina.

Negli esempi che seguono vediamo come installare GIMP, un software libero e open source solitamente disponibile nella maggior parte dei gestori di pacchetti:

Basato su Debian (Ubuntu, Linux Mint)

sudo apt install gimp

Basato su Red Hat (Fedora, CentOS)

sudo yum install gimp

Basato su Arch (Manjaro, Arco Linux)

sudo pacman -S gimp

20. Comando echo

Il comando echo visualizza un testo definito nel terminale:

echo "Cool message"
Il comando echo che visualizza
Il comando echo

L’impiego principale è quello di stampare le variabili ambientali all’interno di questi messaggi:

echo "Hey $USER"

# Hey kinsta

21. Comando cat

Cat, abbreviazione di “concatenare”, consente di creare, visualizzare e concatenare file direttamente dal terminale. È usato principalmente per vedere l’anteprima di un file senza aprire un editor di testo grafico:

cat long_text_file.txt
Il comando cat che visualizza
Il comando cat.

22. Comando ps

Con ps, puoi dare un’occhiata ai processi che l’attuale sessione di shell sta eseguendo. Stampa informazioni utili sui programmi in esecuzione, come ID del processo, TTY (TeleTYpewriter), tempo e nome del comando.

ps
Il comando ps.
Il comando ps.

Se vuoi qualcosa di più interattivo, puoi usare htop.

23. Comando kill

È fastidioso quando un programma non risponde e non puoi chiuderlo in nessun modo. Il comando kill risolve questo tipo di problema.

In breve, kill invia un segnale TERM o kill a un processo che lo termina.

Puoi interrompere i processi inserendo il PID (ID dei processi) o il nome binario del programma:

kill 533494

kill firefox

Fai attenzione con questo comando, perché con kill corri il rischio di cancellare accidentalmente il lavoro fatto.

24. Comando ping

ping è l’utilità terminale di rete più utilizzata per testare la connettività di rete. ping ha un sacco di opzioni, ma nella maggior parte dei casi lo userai per richiedere un dominio o un indirizzo IP:

ping google.com

ping 8.8.8.8

25. Comando vim

vim è un editor di testo gratuito e open source per terminali in uso già dagli anni ’90. Ti permette di modificare file di testo semplice usando efficienti associazioni di tasti.

Alcuni lo considerano difficile da usare – uscire da Vim è una delle domande più visualizzate su StackOverflow – ma una volta che ci si abitua, diventa il tuo migliore alleato nella riga di comando.

Per avviare Vim, basta digitare:

vim
L'editor di testo vim.
L’editor di testo vim.

26. Comando history

Se stai cercando di ricordare un comando, ti sarà utile history. Questo comando visualizza una lista numerata con i comandi che hai usato in precedenza:

history
Il comando history.
Il comando history.

27. Comando passwd

passwd ti permette di cambiare le password degli account utente. Prima ti chiede di inserire la tua password attuale, poi ti chiede una nuova password e la conferma.

È simile a qualsiasi altra modifica di password, ma in questo caso è direttamente nel terminale:

passwd
Il comando passwd chiede la password corrente.
Il comando passwd

Fate attenzione quando lo usate – potresti corrompere la password utente!

28. Comando which

Il comando which restituisce il percorso completo dei comandi di shell. Se non riesce a riconoscere il comando dato, emette un errore.

Ad esempio, possiamo usarlo per verificare il percorso binario del Python e il browser web Brave:

which python

# /usr/bin/python

which brave

# /usr/bin/brave

29. Comando shred

Se ti è mai capitato di voler rendere un file quasi impossibile da recuperare, shred può aiutarti. Questo comando sovrascrive il contenuto di un file ripetutamente e, come risultato, il file dato diventa estremamente difficile da recuperare.

Ecco un file con poco contenuto:

Un file_to_shred.txt che contiene
File da distruggere.

Ora, facciamo fare a shred le sue cose digitando il seguente comando:

shred file_to_shred.txt
Contenuto sovrascritto.
Contenuto sovrascritto.

Se vuoi cancellare subito il file, puoi usare il flag -u:

shred -u file_to_shred.txt

30. Comando less

less (opposto di more) è un programma che permette di ispezionare i file avanti e indietro:

less large_text_file.txt
Il comando
Il comando “less”.

La cosa bella di less è che include i comandi more e vim nella sua interfaccia. Se hai bisogno di qualcosa di più interattivo di cat, less è una buona opzione.

31. Comando tail

Simile a cat, tail stampa il contenuto di un file, ma attenzione: stampa solo le ultime righe. Di default, stampa le ultime 10 righe, ma è possibile modificare questo numero con -n.

Ad esempio, per stampare le ultime righe di un grande file di testo, si usa:

tail long.txt
Il comando tail.
Il comando tail.

Per visualizzare solo le ultime quattro righe:

tail -n 4 long.txt
Il comando tail visualizza le ultime quattro righe di un file.
tail di quattro righe.

32. Comando head

Questo comando è complementare al comando tail. head emette le prime 10 righe di un file di testo, ma è possibile impostare qualsiasi numero di righe che si desidera visualizzare con il flag -n:

head long.txt

head -n 5 long.txt
Il comando head.
Il comando head.

33. Comando grep

Grep è una delle utility più potenti per lavorare con i file di testo. Cerca le righe che corrispondono a un’espressione regolare e le stampa:

grep "linux" long.txt
Il comando grep.
Il comando grep.

Puoi contare il numero di volte che il template si ripete utilizzando il flag -c:

grep -c "linux" long.txt

# 2

34. Comando whoami

Il comando whoami (abbreviazione di “who am i”) visualizza il nome utente attualmente in uso:

whoami

# kinsta

Si otterrebbe lo stesso risultato con echo e la variabile ambientale $USER:

echo $USER

# kinsta

35. Comando whatis

whatis stampa una singola riga di descrizione di qualsiasi altro comando, come utile riferimento:

whatis python

# python (1) - an interpreted, interactive, object-oriented programming language

whatis whatis

# whatis (1) - display one-line manual page descriptions

36. Comando wc

Wc sta per “word count”, e come suggerisce il nome, restituisce il numero di parole in un file di testo:

wc long.txt

# 37 207 1000 long.txt

Analizziamo l’output di questo comando:

  • 37 linee
  • 207 parole
  • 1000 byte-size
  • Il nome del file (long.txt)

Se hai bisogno solo del numero di parole, usa il flag -w:

wc -w long.txt

207 long.txt

37. Comando uname

uname (abbreviazione di “Unix name”) stampa le informazioni sul sistema operativo, che è utile quando si conosce la versione corrente di Linux.

Userai quasi sempre il flag -a (–all), perché l’output predefinito non è molto utile:

uname

# Linux

uname -a

# Linux kinstamanjaro 5.4.138-1-MANJARO #1 SMP PREEMPT Thu Aug 5 12:15:21 UTC 2021 x86_64 GNU/Linux

38. Comando neofetch

Neofetch è uno strumento CLI (command-line interface) che visualizza informazioni sul tuo sistema – come la versione del kernel, la shell e l’hardware – accanto a un logo ASCII della tua distro Linux:

neofetch
Neofetch che visualizza le informazioni di sistema.
Il comando neofetch.

Nella maggior parte delle macchine, questo comando non è disponibile di default, quindi assicuratevi di installarlo prima con il tuo gestore di pacchetti.

39. Comando find

Il comando find cerca i file in una gerarchia di directory sulla base di un’espressione regex. Per usarlo, seguite la sintassi qui sotto:

find [flags] [path] -name [expression]

Per cercare un file chiamato long.txt nella directory corrente, digita questo:

find ./ -name "long.txt" # ./long.txt 

Per cercare i file che finiscono con un’estensione .py (Python), puoi usare il seguente comando:

find ./ -type f -name "*.py" ./get_keys.py ./github_automation.py ./binarysearch.py 

40. Comando wget

wget (World Wide Web get) è una utility per recuperare contenuti da internet. Dispone di una delle maggiori collezioni di flag.

Ecco come si scarica un file Python da una repo GitHub:

wget https://raw.githubusercontent.com/DaniDiazTech/Object-Oriented-Programming-in-Python/main/object_oriented_programming/cookies.py

Cheat Sheet dei comandi Linux

Ogni volta che vuoi un riferimento rapido, torna alla tabella qui sotto:

Comando Uso
ls Elenca il contenuto di una directory
alias Definire o visualizzare gli alias
unalias Rimuovere le definizioni di alias
pwd Stampa la directory di lavoro
cd Modifiche alla directory
cp Copia file e directory
rm Rimuovere file e directory
mv Sposta (rinomina) file e directory
mkdir Crea le directory
man Visualizza la pagina manuale di altri comandi
touch Crea file vuoti
chmod Cambia i permessi dei file
./ Esegue un eseguibile
exit Esce dalla sessione di shell corrente
sudo Esegue i comandi come superutente
shutdown Spegne la macchina
htop Visualizza le informazioni sui processi e le risorse
unzip Estrae i file compressi ZIP
apt, yum, pacman Gestori di pacchetti
echo Visualizza le righe di testo
cat Stampa il contenuto del file
ps Riporta lo stato dei processi della shell
kill Termina i programmi
ping Prova la connettività di rete
vim Modifica efficiente del testo
history Mostra un elenco di comandi precedenti
passwd Cambia la password dell’utente
which Restituisce il percorso binario completo di un programma
shred Sovrascrive un file per nascondere il suo contenuto
less Ispeziona i file in modo interattivo
tail Visualizza le ultime righe di un file
head Visualizza le prime righe di un file
grep Stampa le linee che corrispondono ai modelli
whoami Restituisce nome utente
whatis Mostra le descrizioni a linea singola
wc Conteggio delle parole
uname Visualizza le informazioni sul sistema operativo
neofetch Visualizza le informazioni sul sistema operativo e sull’hardware
find Cerca i file che seguono un modello
wget Recupera i file da internet

Domande frequenti sui comandi di Linux

Qual è il comando di base di Linux?

Esiste in realtà una serie di comandi di base che sono perfetti per chiunque si avvicini a Linux:

  • pwd (Stampa la working directory)
  • cat (Stampa il contenuto dei file)
  • cp (Copia file e directory)
  • mv (Sposta e rinomina file e directory)
  • rm (Rimuove file e directory)
  • touch (Crea file vuoti)
  • mkdir (Crea directory)

Quanti comandi ha Linux?

Ci sono migliaia di comandi (e ogni giorno ne vengono scritti di nuovi). Ma non preoccuparti: non c’è bisogno di ricordarne nessuno. Puoi sempre cercarli online.

Si può imparare Linux da soli?

È possibile. In rete si trovano solide risorse che ti aiuteranno a iniziare. Ma se hai bisogno di una mano, ecco alcuni corsi consigliati:

Riepilogo

Per imparare Linux ci può volere un po’ di tempo, ma una volta che si padroneggiano alcuni dei suoi strumenti, diventa il tuo migliore alleato e non ti pentirai di averlo scelto come tuo autista quotidiano.

Una delle cose notevoli di Linux è che anche gli utenti esperti non smettono mai imparare e sono sempre più produttivi.

Ci sono molti altri utili comandi Linux. Se abbiamo dimenticato qualcosa, condividi i tuoi comandi Linux preferiti nei commenti qui sotto!

Daniel Diaz

Daniel è uno sviluppatore Python autodidatta, scrittore tecnico e un'amante dello studio. Gli piace creare software da zero e spiegare questo processo attraverso articoli straordinari. Seguitelo su X: @DaniDiazTech