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_directoryrmdir nome_directoryLe 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.
cpmvrmfilestattouchcmpA 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 abea{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 mkdirwhoami``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 lsfor, oppure xargs)wget il file es_file_01.zip, scompattarlo con unzip e seguire le istruzioni contenute in esso