Il filesystem dei sistemi Un*x:
Linux
/
|-- bin programmi eseguibili principali
|-- boot file per l'avvio del calcolatore
|-- dev dispositivi
|-- etc file di configurazione di sistema
|-- home directory personali degli utenti
|-- lib librerie
|-- media dispositivi esterni
|-- mnt file system subordinati secondari
|-- opt eseguibili da pacchetti non standard
|-- proc directory virtuale per i processi
|-- root directory dell'utente root
|-- sbin eseguibili per l'amministrazione
|-- sys directory virtuale per i dispositivi
|-- tmp directory per file temporanei
|-- usr documentazione, librerie, programmi
|-- var dati delle applicazioni
Esistono tre categorie di utenti:
(rinvio) Esistono dei meccanismi che consentono a root di delegare altri utenti a compiere delle operazioni.
Tradizionalmente le informazioni sugli utenti del sistema sono mantenuti nei seguenti file:
L'autenticazione può avvenire anche con sistemi diversi da quelli tradizionali (LDAP, SMB, ecc.)
Il comando ls
permette di mostrare il contenuto di una directory:
ls # elenco dei file
ls -l # elenco con dettagli
ls -a # mostra anche i file nascosti
ls -F # mostra il tipo
Altri comandi utili:
tree # visualizzazione ad albero
find # ricerca
Una directory è, nella sostanza, un file speciale che elenca altri file.
mkdir nome_directory
rmdir nome_directory
Le directory non vuote possono essere rimosse con la rimozione ricorsiva (rm -rf
).
Per spostarsi da una directory ad un'altra, si usa il comando cd
.
I percorsi (path) indicati possono essere assoluti (se iniziano dalla radice, ad esempio /var/log
) o relativi (ad esempio ../lavori
).
Sui file si possono eseguire molte operazioni.
cp
mv
rm
file
stat
touch
cmp
A differenza che nel mondo dos/windows, l'estensione nel nome di un file non ha significato a livello di sistema, ma solo a livello di singola applicazione.
Si considerano file nascosti quelli il cui nome inizia con un punto.
Per ottenere più parametri in modo sintetico, la bash offre il meccanismo dell'espansione:
con parentesi graffa:
a{d,c,b}e
è espanso in ade ace abe
a{1..5}e
è espanso in a1e a2e a3e a4e a5e
~
è la propria home directory, ~mario
è quella dell'utente mario*
per qualsiasi stringa (compresa la stringa nulla), ?
per qualsiasi carattere[a-z]
per qualsiasi carattere tra la a e la z$((1+3))
corrisponde a 4basata sull'interpretazione di comandi: mkdir $(whoami)
o mkdir
whoami``crea una directory con il proprio identificativo
Inoltre, .
è un riferimento alla directory corrente, ..
è un riferimento alla directory di livello superiore.
A volte è utile poter utilizzare l'output di un comando come lista di parametri di un altro comando.
$ cat elenco
mario giorgio stefania donata
$ mkdir $(cat elenco)
$ mkdir $(date -I)
$ mv $(cat elenco) $(date -I)
Nota: per lo stesso scopo è possibile l'uso del backtick.
Molti comandi permettono di operare su diversi file contemporaneamente.
mkdir uno due tre "quattro cinque"
touch pagina{1..40}.html
mkdir -p miadir/{a,b,c}/file{1,2,3,4}
Se il comando accetta un solo parametro, lo si può utilizzare in un ciclo oppure con xargs
.
for utente in $(cat elenco); do useradd $utente; done
cat elenco | xargs useradd
Nota: a differenza di quanto accade nel mondo dos/windows, l'espansione è a carico della shell, non del singolo programma.
(rinvio)
I permessi vengono gestiti in tre terzetti:
In ogni terzetto sono presenti i seguenti permessi:
Il comando chmod
permette di cambiare i permessi.
cd
e ls
for
, oppure xargs
)wget
il file es_file_01.zip
, scompattarlo con unzip
e seguire le istruzioni contenute in esso