Con l'aiuto di ls
comando, utenti e superutenti elencano le informazioni su file e directory. Questo articolo aiuta l'amministratore e l'utente a identificare le autorizzazioni dei file, utile per l'accesso e la risoluzione dei problemi di base.
Utilizzo di ls
Nella sua forma più semplice, puoi usare ls
comando per vedere quali file si trovano in una directory:Nota:l'elenco può avere o meno un codice colore.
[root@centos7 ~]# ls /etc
abrt firewalld makedumpfile.conf.sample rdma
adjtime flatpak man_db.conf redhat-release
aliases fonts maven request-key.conf
aliases.db fprintd.conf mime.types request-key.d
alsa fstab mke2fs.conf resolv.conf
alternatives fuse.conf modprobe.d rhsm
anacrontab gconf modules-load.d rpc
...
Ci sono molte bandiere disponibile per darti maggiori informazioni con il tuo elenco di file. Il più comune da usare è -a
(o --all
), poiché mostra tutti i file nella directory, inclusi quelli che iniziano con un punto (ad esempio, .bash_logout
).
Un altro flag comune è -l
, che fornisce ulteriori informazioni sui file in una directory, incluse le autorizzazioni, la proprietà e le dimensioni del file. Se vuoi essere in grado di dire più facilmente in quali unità si trova la dimensione di un file (ad es. 1K, 234M, 2G), puoi aggiungere il -h
(abbreviazione di --human-readable
) bandiera.
Esaminiamo un esempio. Un semplice elenco di file nella directory dell'utente root potrebbe essere questo:
[root@name ~]# ls /root
anaconda-ks.cfg
Se desideri la versione in formato lungo di questo elenco (ci occuperemo delle informazioni aggiuntive mostrate qui nella prossima sezione):
[root@name ~]# ls -l /root
total 4
-rw-------. 1 root root 896 Feb 22 01:40 anaconda-ks.cfg
Tuttavia, se aggiungi il -a
flag, il ls
comando restituisce un elenco in forma abbreviata che include gli elementi nascosti:
[root@name ~]# ls -a /root
. anaconda-ks.cfg .bash_logout .bashrc .cshrc .tcshrc
.. .bash_history .bash_profile .cache .local
Considera il punto singolo e il punto doppio in entrambi gli elenchi di directory. Il punto singolo (.
) si riferisce alla directory stessa. Questo punto è comodo se vuoi eseguire un comando e fare riferimento alla tua directory corrente (ad esempio, quando vuoi copiare un file lì).
I doppi punti (..
) fare riferimento alla directory principale. Se digiti cd ..
si sale di un gradino nella gerarchia del filesystem. Ad esempio, se la tua directory corrente è /root
, digitando cd ..
ti porterebbe a /
, il massimo della gerarchia.
Se combini -a
opzione con -l
opzione in -la
, ottieni maggiori dettagli sui file nascosti e non nascosti:
[root@name ~]# ls -la /root
total 44
dr-xr-x---. 4 root root 4096 Feb 11 05:47 .
dr-xr-xr-x. 19 root root 4096 Jul 11 13:15 ..
-rw-------. 1 root root 896 Feb 22 01:40 anaconda-ks.cfg
-rw-------. 1 root root 163 Jul 11 01:18 .bash_history
-rw-r--r--. 1 root root 18 Feb 2 10:37 .bash_logout
-rw-r--r--. 1 root root 176 Feb 2 10:37 .bash_profile
-rw-r--r--. 1 root root 176 Feb 2 10:37 .bashrc
drwx------. 3 root root 4096 Jul 11 01:37 .cache
-rw-r--r--. 1 root root 100 Feb 2 10:37 .cshrc
drwxr-xr-x. 3 root root 4096 Feb 22 01:57 .local
-rw-r--r--. 1 root root 129 Feb 2 10:37 .tcshrc
Decodifica del formato elenco lungo
Quando inizi a usare -l
flag, noterai molte più informazioni. Ecco un esempio di riga di output:
drwxrwxr-x 2 root test 4096 Dec 3 2009 test
Il primo carattere a sinistra ti dice cosa stai guardando. Se è un d
, come puoi vedere qui, ciò indica che questo file è una directory, che è fondamentalmente un tipo speciale di file (e verrà indicato come un file in tutto). Tuttavia, se fosse un trattino (-
), che indicherebbe che il file è un file normale.
Se il primo carattere era un l
minuscolo , allora questo elemento sarebbe un tipo di file speciale chiamato collegamento simbolico, o collegamento software, che è un puntatore (scorciatoia) a un'altra posizione nel filesystem. Tale elenco potrebbe assomigliare a questo:
lrwxrwxrwx 1 root root 4 Jun 30 03:29 sh -> bash
Dopo il primo carattere ci sono le abbreviazioni dei permessi, che sono raggruppate in tre. Le autorizzazioni per i file sono rappresentate dalle seguenti lettere:
r
per il permesso di letturaw
per il permesso di scritturax
per l'autorizzazione all'esecuzione
Torna a questo esempio:
drwxrwxr-x 2 root test 4096 Dec 3 2009 test
- La prima tripletta (
rwx
) mostra le autorizzazioni per l'utente o il proprietario del file. - La prossima tripletta (
rwx
) mostra le autorizzazioni per la categoria del gruppo. - L'ultima tripletta (
r-x
) mostra i permessi per la categoria finale, altro.
In questo esempio, gli utenti che non sono né il proprietario del file né il gruppo hanno i permessi di lettura ed esecuzione ma non di scrittura, come indicato dal trattino (-
) in posizione centrale.
Il numero elencato dopo le autorizzazioni indica il link conteggio (per un file) o il numero di voci di directory contenute (per una directory). Questo numero non è rilevante per le autorizzazioni.
Dopo questo numero, il nome indica il proprietario del file. Le autorizzazioni utente (prima tripletta) si applicano a questo proprietario, quindi in questo esempio l'utente root
ha le autorizzazioni di lettura, scrittura ed esecuzione per questa directory.
Il secondo nome è il gruppo del file. Le autorizzazioni del gruppo si applicano a qualsiasi utente dello stesso gruppo, quindi in questo caso chiunque sia nella mail
il gruppo ha le autorizzazioni di lettura, scrittura ed esecuzione.
Conclusione
Ora dovresti avere una sensazione molto migliore per ottenere informazioni sui tuoi file dalla riga di comando. Il ls
comando ha molte più opzioni. Digita man ls
per saperne di più e capire le tue combinazioni di bandiere preferite per fare le cose. Potresti anche voler creare degli alias.