Attorno al terminale aleggia sempre una certo non so che di mistero. Si tratta di uno strumento molto potente, il quale permette di fare praticamente tutto all’interno del proprio sistema.
Di seguito riporterò i comandi di base per poter iniziare ad usare un terminale Unix, come quello presente sulle distribuzioni Linux e MacOs, e il relativo equivalente, se presente, da usare in Windows, il quale differisce nella maggior parte delle volte.
Indice dei contenuti
Navigazione
Forse il comando più utilizzato è sicuramente ls
, il suo scopo è quello di elencare i file e le sotto directory presenti in una directory.
1ls
Se sprovvisto di opzioni, ls
mostrerà il contenuto della directory corrente.
Di base, quando si apre il terminale ci si trova nella directory Home dell’utente che sta usando il terminale, la quale viene contraddistinta dal carattere tilde (~
).
1ls nome-directory
Se ls
viene fatto seguire dal nome di una directory è possibile vederne il contenuto.
Oltre ai percorsi relativi è possibile scrivere anche quelli assoluti, ottenendo lo stesso medesimo risultato.
1ls nome-directory/\*.jpg
Mettiamo il caso che stai cercando un file, ma ti ricordi il formato del file, ma non il nome. Per poter filtrare i risultati di ls
basterà usare il carattere jolly asterisco (*
) seguito dall’estensione.
1ls -R
Occhio ad usare questa opzione perché se si ti trovi in una cartella particolarmente affollata potrebbe mostrare a video parecchie informazioni (in quel caso se vuoi interrompere il processo di scansione puoi usare la combinazione di tasti command + c
o ctrl + c
).
L’opzione -R
di fatto permette di mostrare in maniera ricorsiva i contenuti della varie sottodirectory della directory specificata (quella corrente se non ne specifichi nessuna).
Questo evita di dover riscrivere il comando ls
per ogni sotto directory.
1ls -l
L’opzione -l
permette di mostrare le varie voci in colonna con tutte le varie informazioni relative ai permessi (lettura, scrittura ed esecuzione).
1ls -m
Se sei un amante degli elenchi separati da virgole, allora l’opzione -m
fa per te.
1ls -a
Stai cercando la cartella di git, ma non la trovi? Normale, si tratta di una directory nascosta e ls
non la mostra, per ovviare al problema basta usare l’opzione -a
.
1ls -r
Da non confondere con -R
(che sta per ricorsivo), -r
o nella sua versione estesa --reverse
permette di mostrare i file e le directory nell’ordine inverso rispetto a quello principale.
1ls -X
L’opzione -X
permette di ordinare i file e le directory per estensione.
1ls -t
L’opzione -t
ordina i file per data e ora.
1ls -S
L’opzione -S
ordina i contenuti per dimensione.
1ls -h # Senza l'opzione -l non mostra nulla di speciale
2ls -lh # Così va meglio
L’opzione -h
mostra le dimensioni dei file in Kilobyte, Megabyte e Gigabyte.
L’equivalente di ls
in Windows è dir
.
1pwd
Con ls
archiviato possiamo andare avanti. Il comando qui sopra è pwd
abbreviazione di print working directory.
Mentre si naviga da terminale può capitare di perdere l’orientamento, pwd
corre in nostro soccorso mostrando il percorso corrente.
L’equivalente di pwd
in Windows è cd
.
1cd
Il comando cd
, da solo, sui sistemi Unix fa tornare alla directory home, mentre su Windows è l’equivalente di pwd
.
In generale cd permette di cambiare directory.
1cd ~
Facendo seguire cd da una tilde (~), rendiamo esplicito il voler ritornare nella nostra directory Home.
1cd -
Il meno ti porta alla directory precedente.
1cd directory/sotto-directory
Facendo seguire un percorso a cd
, cambieremo directory, raggiungendo quella desiderata.
Non c’è differenza tra Unix e Windows, cd
è equivalente.
Creazione
1touch
Lo scopo principale del comando touch
è quello di modificare l’accesso e l’ora di modifica di un file, ma in realtà è il suo scopo secondario a risultare super utile. touch
infatti viene largamente impiegato per la creazione di file vuoti.
1touch test.txt
Facendo seguire touch dal nome di un file e relativa estensione, verrà creato suddetto file nella directory corrente.
Se invece vuoi anche scrivere qualcosa destro il file da creare puoi usare questo comando:
1echo "Hello, World!" > test.txt
echo
da solo si limita a mostrare quanto richiesto, in questo caso la stringa "Hello, World!"
, ma facendolo seguire da > test.txt
rendiamo esplicito il fatto che tale risultato debba essere inserito all’interno di un file, il quale se non esiste verrà creato automaticamente.
Per modifiche più complesse puoi sempre usare nano
.
1nano test.txt
Sono consapevole del fatto che nano non piaccia a tutti, ma è un buon punto di partenza per iniziare.
L’equivalente di touch in Windows è abbastanza particolare: type nul > testo.txt
Mentre se si vuole creare un file con del contenuto si usa lo stesso comando di Unix echo
.
1cat <nome-file>
Lo scopo principale di cat
è quello di concatenare, ma può anche essere usato per mostrare il contenuto di un file se fatto seguire dal nome del file interessato.
Per vedere solo una prima parte del contenuto puoi usare il comando tail
.
1cat <nome-file-1> <nome-file-2>
Mettendo uno o più file separati da uno spazio, cat
mostrerà la concatenazione che ne risulterà.
1cat <nome-file-1> <nome-file-2> > <nome-file-risultato>
Se vogliamo salvare il risultato della concatenazione basta far seguire alla lista di file da concatenare > <nome-file-risultato>
come già visto con echo
.
L’equivalente di cat in Windows è type
, per il resto la sintassi è identica.
1mkdir <nome-cartella>
Il comando permette di creare una cartella.
1mkdir -p immagini/animali/cani
Mentre con mkdir
senza opzioni è possibile creare una cartella, con l’opzione -p
è possibile creare anche le sottocartelle.
1mkdir -v <nome-cartella> # oppure
2mkdir --verbose <nome-cartella>
Come gli esempi visti in precedenza -v
è l’opzione che attiva la modalità verbosa mostrando i passaggi compiuti da mkdir
.
mkdir
è valido anche per Windows.
Copia
1cp
cp
è il comando che permette all’utente di copiare un file.
1cp <nome-file>.<estensione> <nome-file-copia>.<estensione>
Da solo, ovviamente, non ha alcun effetto. Per copiare un file bisogna far seguire il nome del file da copiare e il nome della copia.
Nel caso ci fosse un conflitto, il terminale vi avviserà.
1cp tes\* test.txt
Il carattere jolly (*
) è ideato per i più pigri i quali non vogliono scrivere tutto il nome del file da copiare.
Se il file deve essere copiato in una directory basta specificare il percorso al posto del solo nome.
1cp -v
Come già visto in precedenza anche cp
, ha la sua modalità verbose.
1cp -R
Di default, cp
emetterà un’errore qualora si provasse a copiare una cartella non vuota, per ovviare al problema basta usare l’opzione -R
.
1cp -a
Per quanto ci siano comandi più avanzati per effettuare copie di backup, cp
rimane comunque l’alternativa più semplice. Grazie all’opzione -a
verrà creato una copia evitando di copiare eventuali collegamenti simbolici che potrebbero appesantire il processo di copiatura.
In Windows l’equivalente di cp
è copy
, mentre per la copia ricorsiva (quella con l’opzione -R
) l’equivalente è xcopy
.
Spostamento
1mv
mv
è un comando particolare, di fatto permette di spostare i file all’interno del sistema, ma ha anche una seconda finalità, la rinominazione.
1mv <nome-file> <directory>
Sposta un file in una directory.
1mv <nome-file> <nuovo-nome-file>
Se al posto di un percorso specifichiamo un nuovo nome di file, mv
rinominerà il suddetto file.
L’equivalente Windows di mv
è move
.
Rimozione
1rm
rm
, il quale sta per remove, permette appunto di rimuovere file e cartelle.
1rm \*
Con l’ausilio del carattere jolly rm
eliminerà tutti i file (non le directory).
1rm -v
Come già visto in precedenza, anche rm
ha la sua opzione verbose, la quale mostrerà l’avanzamento della rimozione.
1rm -i
rm
ha anche una modalità interattiva, la quale mostrerà per ogni file un prompt, dove sarà necessario dare una conferma per procedere con la cancellazione. Il prompt accetta y
per yes e n
per no.
1rmdir
Per rimuovere una cartella vuota non si usa rm -R
, ma rmdir
. Attenzione! Se la cartella contiene dei file il comando fallirà, avvisandoci che la cartella non è vuota.
1rm -Rf
Per rimuovere le cartelle e i relativi file e sotto directory bisogna usare il comando rm
seguito dalle opzioni -R
e -f
.
L’equivalente di rm
in Windows è del
, mentre nel caso di rimozione di cartelle e file e sotto directory contenuti in esse l’equivalente è deltree
. Per la rimozione di cartelle vuote non c’è differenza.
Referenze
1man <comando>
Il comando man
mostra il manuale di un comando specifico.
1man ls
Mostrerà tutto ciò che c’è da sapere sul comando ls
.
1man -k list
Se non si è sicuri di quale comando utilizzare per eseguire una determinata task, l’opzione -k
seguito dalla funzionalità cercherà tutti i comandi che mostrano una lista.
1man -f ls # Oppure
2whatis ls
A differenza di man
che mostra un vero e proprio manuale, man -f
o whatis
mostrano una riga di descrizione abbastanza intuitiva che fa intendere la funzione del comando.
L’equivalente di man
in Windows è help
.
1info
Il comando info
è praticamente man
sotto steroidi. Le pagine man presentavano diversi problemi, per ovviare al problema, il progetto GNU ha creato un formato apposito: le pagine info. Tali pagine sono scritte meglio rispetto a quelle di man e sono decisamente più accessibili per la consultazione.
1info ls
Mostrerà la pagina info del comando ls
.
Non esiste corrispondenza in Windows per il comando info
.
Pulizia
1clear
Può capitare di fare un po’ di casino. Per poter ripulire il terminale dalle righe scritte e mostrate finora si può usare il comando clear
.
Caricamento...
Diventiamo amici di penna? ✒️
Iscriviti alla newsletter per ricevere una mail ogni paio di settimane con le ultime novità, gli ultimi approfondimenti e gli ultimi corsi gratuiti puubblicati. Ogni tanto potrei scrivere qualcosa di commerciale, ma solo se mi autorizzi, altrimenti non ti disturberò oltre.
Se non ti piace la newsletter ti ricordo la community su Discord, dove puoi chiedere aiuto, fare domande e condividere le tue esperienze (ma soprattutto scambiare due meme con me). Ti aspetto!