Comandi Linux di base

Top 30 comandi da terminale su Linux

|

Home » comandi da terminale » Top 30 comandi da terminale su Linux

Nonostante sia possibile far quasi di tutto attraverso un’interfaccia grafica, ecco a voi i 30 comandi da terminale su Linux più importanti!

La shell Bash è uno strumento potentissimo che, se saputo usare bene, permette agli utenti GNU/Linux di fare tutto in modo più efficiente, più veloce ed offre nuove possibilità a chi non la conosceva. 👍

Non a caso, abbiamo citato qui il Terminale tra i motivi di forza di GNU/Linux.

Insomma siete pronti a diventare sovrani del regno del vostro computer?

Se cerchi una serie di video didattici sui comandi da terminale, eccola qua:

Comandi da terminale 1: man

Ogni qualvolta vorrete leggere il manuale o scovare qualche informazione per un determinato comando, digitate semplicemente:

man nome_del_comando

Comandi da terminale 2: pwd

Tramite pwd potrete visualizzare il percorso della directory in cui vi trovate attualmente. Molto utile quando imparerete (tra poco) a spostarvi da una parte all’altra del vostro sistema e non ricordate su quale directory siete. 😃

Comandi da terminale 3: mkdir

Con mkdir andate a creare una nuova directory. Potete digitare il comando seguito dal nome scelto per la nuova directory oppure seguito dal percorso della nuova directory. Ecco alcuni esempi:

mkdir la_mia_nuova_directory # crea all'interno della directory attuale

mkdir Documenti/nuova_dir_documenti # crea all'interno di documenti, ammesso che "Documenti" sia presente nella directory in cui ci troviamo

mkdir /home/utente/Documenti/nuova_dir_documenti # anche questo crea all'interno di "Documenti": la differenza è che "/home/utente/Documenti/nuova_dir_documenti" è un percorso assoluto, valido indipendentemente da dove ci si trova sul sistema

Comandi da terminale 4: rmdir

Il comando rmdir rimuove la directory specificata, ma solo se quest’ultima è completamente vuota:

rmdir directory_da_eliminare # verrà eliminata se presente sulla directory in cui ci troviamo

rmdir /home/utente/Documenti/dir_da_eliminare # come il precedente ma con percorso assoluto

Comandi da terminale 5: ls

Ecco a voi il comando per visualizzare file e sottodirectory! Può essere usato sulla directory attuale o su qualunque percorso del sistema. Vediamo alcuni degli usi più comuni del comando ls:

ls # stampa il contenuto della directory attuale

ls -l # stampa il contenuto ma con più informazioni

ls -a # stampa il contenuto, compresi i file nascosti

ls Documenti # stampa il contenuto della directory "Documenti"

ls -lah /home/utente/Musica # stampa il contenuto di "Musica" con diverse informazioni e con le dimensioni dei file

Comandi da terminale 6: cd

Questo è un comando molto semplice e permette di collocarsi altrove nel sistema. Come già visto per altri comandi, anche cd può essere usato da solo senza argomenti, oppure con un percorso relativo o assoluto:

cd # sposta dalla directory attuale alla home dell'utente

cd Musica # sposta sulla directory "Musica"

cd /home/utente/Video # sposta sulla directory "Video"

Comandi da terminale 7: touch

Finalmente un comando per creare un file, anche se vuoto! In realtà, touch serve anche ad aggiornare all’orario attuale le informazioni di accesso e modifica di un file. Tuttavia creerete un nuovo file, se gli date in pasto un nome di file inesistente:

touch nuovo_file # crea il file "nuovo_file", oppure aggiorna le sue informazione se il file esiste già sulla directory attuale

touch /home/utente/Documenti/nuovo.txt # come sopra, ma si tratterà del file "nuovo.txt" nella directory "Documenti"

Comandi da terminale 8: rm

Abbiamo visto come eliminare directory vuote, ma non sappiamo ancora né come eliminare file né come forzare la rimozione di directory non vuote. Ecco quindi che ci viene incontro il comando rm:

rm file1 # elimina "file1" se presente nella directory attuale

rm Documenti/file2 # elimina (se presente) "file2" dalla directory "Documenti"

rm -r Documenti # elimina la directory "Documenti" e tutto il suo contenuto ricorsivamente

rm -rf /home/utente/Musica # elimina la directory "Musica" e tutto il suo contenuto in modo forzoso, senza richiedere ulteriori interazioni all'utente e ignorando file e argomenti non esistenti

Comandi da terminale 9: echo

Questo è uno facile! Può essere davvero molto utile, se combinato tramite piping ad altri comandi o se usato con la redirezione. Di per sé, il comando echo mostra semplicemente il testo dato come input. Vediamo due semplici usi:

echo "Ciao, come va?" # stampa a schermo "Ciao, come va?"

echo 12345 >> numeri.txt # aggiunge una nuova riga "12345" al file "numeri.txt": se il file non esiste, lo crea esattamente con questa riga

Comandi da terminale 10: nano

Non vi basta creare file vuoti con touch ed inserirvi delle righe di testo con echo? No, ovviamente no! 😂

Ok, stavo scherzando: nonostante si possa manipolare file in una miriade di modi, abbiamo ovviamente bisogno di un editor di testo (e ne esistono diversi).

nano è un editor di testo da terminale user-friendly. Vi basterà digitare “nano nome_file” e si aprirà il file specificato: se il file non esiste già, avrete la possibilità di inserire quel che volete su questo file che verrà creato; altrimenti avrete la possibilità di editare il contenuto del (preesistente) file.

In basso alla schermata vedrete le combinazioni di tasti tramite cui impartire ordini all’editor nano. Ad esempio CTRL-O per salvare e CTRL-X per uscire.

Comandi da terminale 11: cat

Spesso è molto utile visualizzare semplicemente l’intero contenuto di un file ed, eventualmente, effettuare delle operazioni su questo output.

Grazie al comando cat possiamo quindi mostrare a schermo un file, ma non solo! Infatti questo è uno strumento per concatenare insieme diversi file:

cat file1 # stampa a schermo il contenuto di "file1"

cat /home/Documenti/file2 # stampa il contenuto di "file2" presente in "Documenti"

cat file1 file3 # stampa i due file (concatenati)

E se digitiamo solo “cat” senza alcun argomento? A voi scoprirlo…

Comandi da terminale 12: less

Abbiamo visto che il comando cat stampa a video il contenuto di un file. Ma esiste un’opzione più comoda che permetta di aprire un lungo file in lettura e scorrerne il suo contenuto? Ovviamente si!

Vi basterà digitare “less nome_file” e potrete scorrerlo con i tasti direzionali (e non solo). Per uscire e tornare al prompt dovrete semplicemente premere il tasto “q”.

Comandi da terminale 13: cp

Vediamo finalmente come copiare file o directory tramite il comando cp:

cp file1 file2 # crea una copia di "file1" su "file2"

cp file1 Documenti/ # crea una copia di "file1" su "Documenti/file1"

cp -r Immagini/ Documenti/ # crea una copia della directory "Immagini" e (ricorsivamente) del suo contenuto sulla directory "Documenti"

Comandi da terminale 14: mv

Dopo aver visto come copiare, vediamo adesso come spostare o rinominare tramite il comando mv:

mv file1 file2 # rinomina il "file1" a "file2"

mv file1 Documenti/ # sposta "file1" dalla directory attuale alla directory "Documenti"

mv Documenti/sfondi/ Immagini/ # sposta tutta la directory "sfondi" da "Documenti" a "Immagini"

Comandi da terminale 15: ln

Bene! Hai già imparato non poco! 😉

Adesso vediamo il comando per creare collegamenti tra file o directory. Esistono duei tipi di link su GNU/Linux: hard e simbolici.

Creando un link simbolico, create semplicemente un nuovo file che contiene il percorso al file o directory a cui volete puntare. Questo nuovo file vi farà da ponte verso il file originale:

ln -s file_originale symlink # crea il collegamento "symlink" al file "file_originale"

ln -s directory_originale/ symlink # come sopra: lo stesso comando è valido per file e directory

ln -sf Documenti/file1 Immagini/file2 # crea un collegamento "file2" nella directory "Immagini" al "file1" della directory "Documenti". Ma se un "file2" esisteva già, forzerà la creazione sovrascrivendo il preesistente "file2"

L’hard link (collegamento fisico) si differenzia dal link simbolico perché va ad associare proprio il contenuto di un file: in sostanza, il link non sarà una “scorciatoia” verso il percorso originale del file, ma piuttosto un secondo nome di file associato a quel contenuto. Non sarà tecnicamente accurato, ma forse vi aiuterà pensare all’hard link come ad una “copia” del file, con la particolarità che le modifiche al contenuto di una delle due “copie” si ripercuoteranno sull’altra.

Con il link simbolico, il contenuto originale si perderà definitivamente dopo aver cancellato il file originale. Con l’hard link, il contenuto originale si perderà definitivamente solo dopo aver cancellato tutte le “copie”, compreso il file originale da cui il tutto è partito.

In questa guida non vi verrà mostrato l’hard link, ma il comando rimane comunque il buon ln, senza il flag “-s” visto per il link simbolico.

Comandi da terminale 16: grep

Uh, che faticaccia i link! Ma ora passiamo alla ricerca di una stringa, di un pattern all’interno di un determinato testo.

Con grep potrete ricercare all’interno dell’output dato da altri comandi oppure su uno o più file. Sono tante le possibilità, ma qui vedremo le più comuni:

grep "pattern" file1 # mostra le righe del "file1" dove è presente "pattern"

grep -v "pattern" Documenti/file2 # mostra le righe del "file2" dove NON è presente "pattern"

grep -R "pattern" Documenti/ # cerca ricorsivamente tutte le occorrenze di "pattern" nella directory "Documenti" e le mostra

qualche_comando_che_da_output | grep "pattern" # qui grep viene usato col pipe per filtrare l'output del primo comando

Comandi da terminale 17: tr

Cominciamo ad effettuare qualche manipolazione del testo! Con tr potrete sostituire o cancellare singoli caratteri da un output generato da un altro comando o da un file:

echo "ciao" | tr 'c' 'm' # mostra "miao" sullo schermo

echo "ciao" | tr -d 'a' # cancella la "a" e mostra "cio" sullo schermo

tr 'a' 'z' < file1 # mostra il contenuto di "file1", ma con delle "z" al posto di "a"

Comandi da terminale 18: sed

Questo comando viene usato per trasformare del testo proveniente da un file o dall’output di un altro comando. Impossibile trattare sed a fondo in questo articolo, ma ecco a voi come viene usato più comunemente:

echo "Il gatto miagola" | sed 's/gatto/cane/' # La prima e unica occorrenza di "gatto" verrà sostituita da "cane

echo "Il gatto miagola, il gatto fa le fusa" | sed 's/gatto/cane/g' # Vengono sostituite tutte le occorrenze di gatto, grazie alla "g" finale del comando 

sed 's/gatto/cane/g' file1 # mostra il contenuto di "file1", ma ogni "gatto" verrà sostituito da "cane"

sed -i 's/gatto/cane/g' file1 # stesso effetto del precedente, ma il file verrà modificato

sed '/gatto/d' file1 # mostra il contenuto di "file1" senza le righe contenenti "gatto"

Comandi da terminale 19: cut

A volte riceviamo una lunga linea di output sul terminale ma siamo interessati solo ad una sezione in particolare, che sappiamo essere separata da altre sezioni da un determinato delimitatore. Su questa linea immaginaria saranno presenti, quindi, un primo campo, il delimitatore, un secondo campo, un eventuale secondo delimitatore e così via. Il comando cut ci permette di scegliere il delimitatore e il campo da selezionare:

echo "a-b-c-d" | cut -d "-" -f2 # stampa il secondo campo, ovvero "b"

echo "a:b:c:d" | cut -d ":" -f3 # stampa il terzo campo, ovvero "c"

Comandi da terminale 20: awk

awk è un linguaggio di programmazione specializzato per la manipolazione del testo. In questo articolo vedremo solo un paio di esempi più comuni su come usare il comando awk.

Se sei già un mago di awk, non troverai nulla di interessante qui… 😁

echo "a b c d" | awk '{print $2}' # stampa la seconda colonna, ovvero "b"

echo "1 2 3 4" | awk '{print $3}' # stampa la terza colonna, ovvero "3"

echo "1:2:3:4" | awk -F ":" '{print $3}' # anche qui la terza colonna, con i due punti come delimitatore

echo "1:2:3:4" | awk -F ":" '{print $1+$2}' # stampa la somma della prima e seconda colonna, ovvero "3"

echo "a b c d" | awk '{print $NF}' # stampa l'ultima colonna, ovvero "d"

awk '{print $1}' file # stampa la prima colonna di tutte le righe presenti in "file"

awk '/foo/ {print $2}' file # stampa la seconda colonna di tutte le righe contenenti "foo"

awk 'NR==30' file # stampa la trentesima linea di "file"

Comandi da terminale 21: wc

Ma ora torniamo a qualcosa di facile!

Il comando wc, usato senza alcun flag, vi mostrerà il numero di linee, parole e bytes di un qualche testo:

echo "ciao amico" | wc
# mostra       1       2      11

wc file # mostra numero di linee, parole e bytes del file

wc -l file # mostra solo il numero di linee

wc -w file # mostra solo il numero di parole

Comandi da terminale 22: sort

Spesso si ha la necessità di riordinare linee di output e il comando sort ci viene in soccorso:

printf '%s\n' d b e a c | sort # ordina da "a" a "d"

printf '%s\n' 4 2 8 7 1 9 3 5 6 10 | sort # ordina ma ATTENZIONE al numero "10", che andrà direttamente dopo "1"

printf '%s\n' 4 2 8 7 1 9 3 5 6 10 | sort -n # ordina numericamente...

printf '%s\n' 4 2 8 7 1 9 3 5 6 10 2 | sort -nu # ordina numericamente e toglie i duplicati

printf '%s\n' 4K 2M 8G 7G 1M 9K 3G 5K 6M 10K | sort -h # ordina in base alle dimensioni (human-readable sizes)

sort -r file # ordina le linee del file, ma al contrario

23: chmod

Ed ecco che ci vorrebbe un articolo a parte per parlare dei permessi su GNU/Linux!

In questo articolo ci limiteremo ad apprendere che esistono permessi di lettura, scrittura ed esecuzione e che questi tre permessi possono variare per il proprietario, per il gruppo e per “gli altri”.

Per semplicità tratteremo solo i permessi dei file e trascureremo le directory:

chmod +r file # assegna il permesso di lettura per il proprietario

chmod -r file # toglie il permesso di lettura al proprietario

chmod +w file # assegna il permesso di scrittura (modifica)

chmod -w file # toglie il permesso di scrittura (modifica)

chmod +x file # assegna il permesso di esecuzione

chmod g-x file # toglie il permesso di esecuzione al gruppo

chmod o+w file # assegna agli altri il permesso di scrittura

chmod a+rwx # assegna a chiunque (proprietario, gruppo e altri) permesso di lettura, scrittura ed esecuzione

chmod 777 # equivalente al precedente, ma con la notazione numerica...che non tratteremo

24: chown

Dopo aver visto il comando per cambiare permessi, passiamo a quello per cambiare proprietario e gruppo di file e directory:

chown mario file # "mario" sarà proprietario di "file"

chown mario:mario file # il primo "mario" si riferisce al proprietario, il secondo al gruppo

chown -R mario:mario directory # le modifiche valgono per "directory" e, ricorsivamente, per le sottodirectory

25: find

Vediamo adesso come cercare file e directory tramite find. Anche qui, ci limiteremo a pochi esempi:

find . -name "FILE_DIRECTORY" # trova "FILE_DIRECTORY" ricorsivamente sulla directory attuale, ma solo con tutte le lettere maiuscole (come specificato)

find . -iname "FILE_DIRECTORY" # trova questo nome di file o directory ricorsivamente sulla directory attuale, ma in modo case-insensitive (ignorando per ogni lettera se è maiuscola o minuscola)

find . -iname "mario" -type f # trova solo il file "mario" ma non la directory "mario"

find . -iname "mario" -type d # trova solo la directory "mario" ma non il file "mario"

find . -iname "*.jpg" # trova nomi che finiscono con ".jpg"

find /home/utente/Immagini -iname "*.jpg" # come il precedente, ma specificando "/home/utente/Immagini" come percorso in cui cercare e non la directory attuale

26: locate

Anche quest’ultimo comando vi potrà essere utile per trovare file ma, al contrario di find, si appoggia al database preparato da updatedb, che si aggiorna automaticamente ad intervalli regolari.

Il comando locate è molto semplice ma, se la vostra ricerca implica qualcosa che è stato recentemente creato/cancellato e il database non è ancora aggiornato a queste novità, beh… i risultati della ricerca saranno ovviamente falsati!

sudo updatedb # aggiorna il database sul momento

locate pattern # trova nell'intero database tutto ciò che contiene "pattern"

27: date

Con il comando date potete visualizzare data e orario del sistema ed, eventualmente, settarli voi:

date # mostra qualcosa del tipo "ven 24 mag 2024, 11:16:50, CEST"

date +"%Y" # stampa l'anno corrente

date +"%m" # mostra il numero del mese corrente

date +"%B" # mostra il nome del mese corrente

date +"%d" # mostra il giorno del mese

date +"%A" # mostra il giorno della settimana

date +"%H:%M" # mostra le ore e i minuti

date 052411252024.40 # imposta la data al 24/05/2024 ore 11:25:40. Il formato è mese (05), giorno (24), ore (11), minuti (25), anno (2024) e i secondi (40) dopo il punto

28: su

Questo comando permette di eseguire comandi cambiando temporaneamente l’utente che li esegue. Possiamo eseguire un singolo comando (come altro utente) oppure eseguire una shell (come altro utente) e proseguire fin quando vogliamo, per poi uscire col comando “exit”:

su # esegue una shell come utente root (disabilitato su molte distribuzioni)

sudo su # permette l'esecuzione di una shell come root sulle distribuzioni in cui l'accesso a root è disabilitato

su - username # vi richiederà la password dell'utente in questione e vi restituirà una shell, come se questo utente si stesse loggando

su - username -c "comando" # eseguirà solamente "comando" come utente "username"

29: sudo

Anche sudo permette di eseguire comandi come altro utente, generalmente come superutente (root), quindi per compiti di amministrazione.

Usate sudo sempre con cautela e solo se strettamente necessario per l’amministrazione del sistema. Avrete a disposizione questo comando solo se amministrate direttemente il sistema che state usando o, alternativamente, se l’amministratore del sistema vi ha inseriti nel file /etc/sudoers:

sudo comando # esegue "comando" come utente root

sudo -u username comando # esegue "comando" come utente "username"

sudo su # esegue un'intera shell come utente root

sudoedit file # apre "file" in lettura e scrittura con privilegi di amministrazione, con editor nano di default

30: clear

Complimenti! Sei giunto alla fine della top 30 dei comandi da terminale su GNU/Linux! 😉

Su questo comando c’è ben poco da dire: digitando clear pulirete lo schermo del terminale. Almeno nella Bash shell, esiste la scorciatoia CTRL-L per ottenere lo stesso risultato.

Abbiamo finito! Siate sovrani del vostro sistema e non esitate a visitare il forum per feedback e chiarimenti.

Autore

  • Chi siamo - clarintux

    Mi chiamo Luigi e sono utente di GNU/Linux e di software libero dal 2008. Non sono un programmatore né un informatico o un sistemista. Sono semplicemente un amatore del sistema operativo del pinguino, che si diletta a smanettare col proprio PC. Per me GNU/Linux è come il LEGO per un bambino: ognuno può costruirsi tutto a proprio piacimento, pezzo dopo pezzo. Mi trovi anche su YouTube, GiHub ed il nostro forum.

    Visualizza tutti gli articoli

2 risposte a “Top 30 comandi da terminale su Linux”

  1. […] qui il nostro articolo sulla top 30 dei comandi da terminale su […]

  2. […] Finito! Se ti stai appassionando ai comandi da terminale, non perderti la nostra top 30 dei comandi su Linux. […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *