Al momento in cui scriviamo questo articolo, Linux ha una quota di mercato mondiale del 2,68% 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.

Secondo il sondaggio di StackOverflow, Linux è il sistema operativo più utilizzato dagli sviluppatori professionisti, con un impressionante 55,9% della quota di mercato. Non è una coincidenza. Linux è libero e open-source, ha una sicurezza superiore rispetto ai suoi concorrenti e vanta una potente linea 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.

Che siate Sysadmin esperti o un novizi di Linux, questa guida vi sarà utile.

Cominciamo!

Cos’è un Comando Linux?

Un comando Linux è un programma o un’utilità che viene eseguito sulla linea di comando. Una linea 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.

Potete 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, aprite una finestra del terminale. Nella maggior parte delle distribuzioni Linux, dovreste usare Ctrl + Alt + T. Se non funziona, cercate “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 vi si possono associare, quindi ricordatevi 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. Vi 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 potete usare con ls.

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

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

Ora l’output del comando ls è colorato e potrete 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 vi permette di definire alias temporanei nella vostra sessione di shell. Quando create un alias, state 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, dovreste usare:

alias ls="ls --color=auto"

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

Se volete elencare tutti gli alias che avete nella vostra sessione di shell, potete 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, potete usare

unalias ls

4. Comando pwd

Il comando pwd sta per “print working directory”, e produce il percorso assoluto della directory in cui vi trovate. Per esempio, se il vostro nome utente è “john” e siete nella vostra 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, vi fa passare alla directory a cui state cercando di accedere.

Ad esempio, se siete all’interno della directory Documenti e state cercando di accedere a una delle sottocartelle chiamata Video, potete entrarci digitando:

cd Videos

Potete anche fornire il percorso assoluto della cartella:

cd /home/kinsta/Documents/Videos

Ci sono alcuni trucchi che possono farvi risparmiare molto tempo quando giocate 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ò farvi 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

Potete 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 sapete come copiare i file, vi sarà utile sapere come rimuoverli.

Potete utilizzare il comando rm per rimuovere file e directory. Fate 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 volete cancellare una directory vuota, potete 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, dovrete 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, dovete usare:

mv /home/kinsta/BestMoviesOfAllTime ./

…dove ./ è la directory in cui vi trovate al momento.

Potete 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 vostre immagini, basta digitare

mkdir images/

Per creare delle sottodirectory con un semplice comando, usate 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, digitate:

man mkdir

Si potrebbe anche fare riferimento alla pagina del manuale man:

man man
La pagina di manuale di "man".
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 userete 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, digitate chmod e il flag +x, seguito dal file di cui volete modificare i permessi:

chmod +x script

Potete 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 vostra shell di eseguire un file eseguibile con qualsiasi interprete installato nel vostro sistema, direttamente dal terminale. Niente più doppio clic su un file in un file manager grafico!

Per esempio, con questo comando, potete eseguire uno script Python o un programma disponibile solo in formato .run, come XAMPP. Quando eseguite un file eseguibile, assicuratevi che abbia i permessi di esecuzione (x), che potete 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, chiudere automaticamente il terminale che state usando:

exit

15. Comando sudo

Questo comando sta per “superuser do” e vi permette di agire come superuser o utente root quando eseguite 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 avete digitato, vi 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), digitate:

shutdown now

Potete anche programmare lo spegnimento del vostro sistema in un formato di 24 ore:

shutdown 20:40

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

shutdown -c

17. Comando htop

htop è un visualizzatore di processi interattivo che vi permette di gestire le risorse della vostra 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 assicuratevi di installarlo con il vostro 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 usate 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 che avete in esecuzione sulla vostra 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 "Cool message".
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 "Not that large at all".
Il comando cat.

22. Comando ps

Con ps, potete dare un’occhiata ai processi che la vostra 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 volete qualcosa di più interattivo, potete usare htop.

23. Comando kill

È fastidioso quando un programma non risponde e non potete 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.

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

kill 533494

kill firefox

Fate attenzione con questo comando, perché con kill correte 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 userete 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. Vi 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 vostro migliore alleato nella linea di comando.

Per avviare Vim, basta digitare:

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

26. Comando history

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

history
Il comando history.
Il comando history.

27. Comando passwd

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

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

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

Fate attenzione quando lo usate – potreste corrompere la vostra 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 vi è mai capitato di voler rendere un file quasi impossibile da recuperare, shred può aiutarvi. 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 "A testing file"
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 volete cancellare subito il file, potete 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 "less".
Il comando “less”.

La cosa bella di less è che include i comandi more e vim nella sua interfaccia. Se avete 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.

Potete 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 avete bisogno solo del numero di parole, usate 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.

Userete 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 vostro sistema – come la versione del kernel, la shell e l’hardware – accanto a un logo ASCII della vostra 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 vostro 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, digitate questo:

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

Per cercare i file che finiscono con un’estensione .py (Python), potete 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 volete un riferimento rapido, tornate 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

Riepilogo

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

Una delle cose notevoli di Linux è che, anche se siete utenti esperti, non smetterete mai imparare ed essere sempre più produttivi.

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


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 preoccupatevi: non c’è bisogno di ricordarne nessuno. Potete sempre cercarli online.

Si può Imparare Linux da Soli?

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

Daniel Diaz

Daniel is a self-taught Python Developer, Technical Writer, and long-life learner. He enjoys creating software from scratch and explaining this process through stunning articles. Follow him on Twitter: @DaniDiazTech