Muoversi nel filesystem Comando pwd, ls -l, ls -F, ls -aF

()
Appena entrati nel sistema ci troviamo all’interno della nostra home directory.
Per verificare il nome della directory possiamo usare il comando pwd (print working directory).
$ pwd
/home/marco
$ _
Il simbolo “/” (slash), oltre ad indicare la root directory del filesystem, è utilizzato come separatore tra le directory che fanno parte di uno stesso path; sui
sistemi Windows la stessa funzione è svolta dal carattere “\” (backslash).

 

Di sicuro la prima cosa che ci viene in mente è quella di visualizzare il contenuto della nostra directory. Per far questo si deve usare il comando ls (list),
equivalente al comando dir del prompt dei comandi di
Windows. Ad esempio potremmo ottenere il seguente output:   $ ls
lettera mail pippo.c progetto tesi
libro pippo pippo.zip src
$ _
Vengono visualizzati nove nomi, ma non è chiaro se siano nomi di file di dati, di sottodirectory o di programmi eseguibili. Abbiamo accennato
precedentemente alle numerose opzioni che generalmente consentono di modificare opportunamente l’esecuzione di un certo comando o programa; in
generale una riga di comando è costituita dal comando stesso seguito da una sequenza di opzioni indicate mediante caratteri (o sequenze di caratteri)
preceduti dal simbolo “-“, e da parametri che vengono passati al comando. Le opzioni consentono di modificare in parte il modo con cui il comando viene
eseguito. Ad esempio potremmo provare la seguente variante del comando ls:
$ ls -F /home/marco
lettera mail/ pippo.c progetto@ tesi/
libro/ pippo* pippo.zip src/
$ _
Il comando è “ls“, la sequenza “-F” rappresenta un’opzione del comando, mentre “/home/marco” è il parametro passato al comando stesso.
L’opzione “-F” del comando ls fa sì che accanto ad alcuni nomi di file venga visualizzato un simbolo che non fa parte del nome, ma che serve ad indicare di
che tipo di file si tratta: lo slash “/” indica che è una directory, l’asterisco “*” indica che si tratta di un file eseguibile, mentre la chiocciola “@” sta ad
indicare che quel file (o directory) non è fisicamente presente nella nostra directory, ma è un link, un rimando, un collegamento, ad un file (o ad una
directory) che si trova da un’altra parte nel filesystem.
Si ottiene un’altra versione del comando ls aggiungendo l’opzione “-l” (long); visto che è possibile specificare più opzioni su uno stesso comando, vediamo
quale potrebbe essere l’output del comando “ls -lF” (che equivale anche ad “ls -l -F“, visto che in molti casi le opzioni dei comandi possono essere
“raggruppate”):
$ ls -lF
-rw-r–r– 1 marco users 937 Apr 23 12:43 lettera
drwxr-xr-x 2 marco users 1024 Apr 10 16:04 libro/
drwx—— 2 marco users 1024 Feb 01 09:32 mail/
-rwxr-x— 1 marco users 37513 Mar 10 11:55 pippo*
-rw-r–r– 1 marco users 18722 Mar 10 11:30 pippo.c
-rw-r–r– 1 marco users 23946 Mar 10 12:03 pippo.zip
lrwxrwxr– 1 marco users 8 Apr 04 18:16 progetto -> /usr/proj
drwxrwx— 2 marco users 1024 Mar 10 08:47 src/
drwxr–r– 2 marco users 1024 Feb 12 1995 tesi/
$ _
Illustriamo brevemente il significato delle numerose informazioni presentate dal comando “ls -l”. Il primo carattere di ogni riga può essere “d” per
indicare che si tratta di una directory, “l” per indicare un link o “-” per indicare che si tratta di un normale file. I successivi nove caratteri rappresentano in
forma sintetica i permessi di accesso assegnati ai file; devono essere letti raggruppandoli a tre a tre. I primi tre caratteri indicano i diritti del proprietario
di tale file sul file stesso; i successivi tre caratteri indicano i diritti degli altri utenti facenti parte del gruppo proprietario del file, mentre gli ultimi tre
caratteri rappresentano i diritti di tutti gli altri utenti del sistema. Una “x” sta ad indicare il diritto di esecuzione di tale file (mentre è chiaro cosa
significa eseguire un programma, è opportuno chiarire che “eseguire” una directory significa poterci entrare dentro). Il carattere “r” sta ad indicare il
diritto di leggere tale file (read), mentre “w” indica il diritto di poterci scrivere sopra (write), modificandolo o cancellandolo.
Di seguito viene riportato lo username del proprietario del file (es.: marco) ed il nome del gruppo di appartenenza (es.: users). Viene poi visualizzata la
dimensione del file, la data e l’ora in cui è stato creato (o modificato per l’ultima volta) ed infine il nome.
Nell’esempio il file pippo.zip può essere letto e modificato dal proprietario (marco), mentre può essere soltanto letto dagli altri utenti del sistema; è
stato creato il 10 Marzo dell’anno in corso alle 12:03. Il file progetto è un link alla directory /usr/proj e può essere utilizzato in lettura, scrittura ed
esecuzione solo dal proprietario e dagli utenti del gruppo users, ma non dagli altri utenti del sistema che possono solo accedervi in lettura.
Delle numerosissime opzioni del comando ls ci limitiamo ad illustrarne solo un’altra, che ci permette di introdurre anche qualche interessante novità a
proposito dei nomi dei file; cominciamo con il solito esempio, osservando l’output prodotto dal comando “ls -a”:
$ ls -aF
./ .bashrc lettera pippo* progetto@
../ .exrc libro/ pippo.c src/
.Xdefaults .newsrc mail/ pippo.zip tesi/
$ _
Da dove spuntano questi strani file preceduti da un punto e perché fino ad ora non li avevamo visti? Per convenzione sotto Unix (ma anche in ambiente
Windows) il nome “.” (punto) sta ad indicare la directory corrente, mentre con “..” si indica la directory “padre” nell’albero del filesystem(1). Gli altri
file preceduti dal punto sono dei normali file (o directory, ma non nel nostro caso) che però non vengono visualizzati dal comando ls proprio perché
hanno un nome che comincia con il punto. In questo modo possiamo evitare di visualizzare alcuni file che devono essere presenti nella nostra directory
(ad esempio i file di configurazione), ma che non utilizzeremo direttamente quasi mai e dei quali dimenticheremo presto la presenza. Visualizzarli ogni
volta renderebbe l’output del comando ls eccessivamente ridondante e quindi tali file vengono, in un certo senso, “nascosti”.
Per spostarsi attraverso le directory del filesystem si usa il comando cd (change directory). Ad esempio per “scendere” nella directory src si dovrà
digitare il comando “cd src”, mentre per risalire nella directory padre (la nostra home directory) dovremo digitare il comando “cd ..”. A proposito della
home directory è utile osservare che ci si può riferire ad essa mediante l’uso del simbolo “~” (tilde), mentre per riferirsi alla home directory dell’utente
“marina” si potrà usare la stringa “~marina” (ad esempio si potrà digitare “cd ~marina” per spostarci nella sua directory: questo modo di impostare il
comando è sicuramente più sintetico del canonico “cd /home/marina”). Visto che si presenta frequentemente la necessità di rientrare nella propria
home directory, il comando cd dato senza nessun parametro assolve efficacemente tale scopo.
/ 5
Grazie per aver votato!

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?