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.
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
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
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
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:
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).
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
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"
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
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
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
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
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
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:
Ora, facciamo fare a shred
le sue cose digitando il seguente comando:
shred file_to_shred.txt
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
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
Per visualizzare solo le ultime quattro righe:
tail -n 4 long.txt
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
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
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
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:
Lascia un commento