Conoscere e navigare il filesystem del sistema operativo che si sta utilizzando è sicuramente una delle abilità fondamentali per sviluppatori, amministratori di sistema e per chiunque desideri sfruttare al massimo le potenzialità della macchina che ha di fronte.
In questo primo articolo della rubrica sui comandi da terminale, presenterò alcuni comandi fondamentali per muoversi all’interno del nostro sistema operativo preferito.
Muoversi attraverso le directory – Comando: cd
Sicuramente uno dei comandi più semplici da utilizzare, cd
(Change directory) permette di cambiare directory di lavoro.
Utilizzo
cd [percorso/della/directory]
Esempi
cd /var/www/html
sposta la directory di lavoro in quella specificata dopo il comando.
cd /
sposta la directory di lavoro alla directory root, tutto ciò che è presente nel filesystem è raggiungibile da questa directory.
cd ~
sposta la directory di lavoro nella directory dell’utente.
cd ..
o cd ../
spostano la directory di lavoro in quella sopra a quella corrente.
cd -
sposta la directory di lavoro nell’ultima directory visitata.
cd --
sposta la directory di lavoro nella penultima directory visitata.
Stampare la directory di lavoro – Comando: pwd
Ancora più semplice del precedente, pwd
(Print working directory) stampa a video la directory corrente.
Utilizzo
pwd
Elencare il contenuto di una directory – Comando ls
Per vedere il contenuto di una directory e organizzarlo come più ci conviene, utilizziamo il comando ls
(list).
Utilizzo
ls [-aAlbBCdDfFghHiIklLmNopqQrRsStTuvwxXZ1] [/percorso/della/directory]
Ogni switch svolge una funzione particolare e più switch possono essere concatenati tra loro per ottenere il tipo di visualizzazione che si desidera.
Se omettiamo di specificare il percorso della directory, il comando agirà sulla directory di lavoro.
Esempi
ls /var/www/html
Elenca i file contenuti nella directory specificata, omettendo quelli che iniziano con .
o con ..
.
ls -l
Elenca i file contenuti nella directory corrente e specifica per ognuno, nel seguente ordine: permessi, numero di collegamenti fisici, proprietario, gruppo assegnato, data dell’ultima modifica, nome e, in caso di symlink, la destinazione del collegamento.
ls -a
Include nell’elenco i file che iniziano con .
e con ..
.
ls -h
Mostra le dimensioni dei file in formato leggibile ad un occhio umano.
ls -lha /var/www/html
Compie tutte le azioni precedentemente descritte in un solo comando.
Cercare risorse nel filesystem – Comando find
Utilizzo
find [-H] [-L] [-P] [percorso/in/cui/cercare] [espressioni]
Gli switch -H
, -L
e -P
istruiranno il comando su come trattare i symlink:
-H
fa in modo che i symlink non vengano seguiti. I link simbolici vengono trattati come ogni altro file. Tuttavia, nel caso in cui un link simbolico faccia parte dei criteri di selezione verrà risolto.-L
fa in modo che i symlink vengano seguiti e processati.-P
forza che i symlink siano trattati come normali file, analizza le proprietà dei link stesso ma non della destinazione.
Le espressioni sono costituite da opzioni, test e azioni legati da operatori, sono veramente una miriade. Per avere un’idea più precisa di cosa si può fare vi rimando al manuale del comando!
Esempi
find /home -user mkay
trova tutti i file che hanno come proprietario l’utente mkay all’interno della diretory home.
find /etc -name *conf
trova tutti i file che hanno il nome che termina con conf all’interno della directory etc.
find /tmp -name image* -type f -print | xargs /bin/rm -f
trova e cancella tutti i file i cui nomi che iniziano con image all’interno della cartella tmp. Tutti i file i cui nomi contengono a capo, virgolette singole o doppie e spazi non verranno processati correttamente.
find /tmp -name image* -type f -print0 | xargs -0 /bin/rm -f
è analogo al comando precedente e processa anche i file i cui nomi contengono a capo, virgolette singole o doppie e spazi.