FONDAMENTI DEI SISTEMI OPERATIVI

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "FONDAMENTI DEI SISTEMI OPERATIVI"

Transcript

1 FONDAMENTI DEI SISTEMI OPERATIVI Appunti dalle esercitazioni del laboratorio di GNU/Linux (Ing. Silvia Giannini) Anno Accademico

2 Premessa La presente dispensa contiene una descrizione dei comandi di shell Bash presentati a lezione nell ambito delle esercitazioni su sistemi operativi GNU/Linux per il corso di Fondamenti dei Sistemi Operativi, tenuto dal Prof. Giacomo Piscitelli nei corsi di laurea di Ingegneria Informatica e dell Automazione ed Ingegneria Elettronica e delle Telecomunicazioni (A.A ). Parte del contenuto è tratto dalle slide del corso di Laboratorio di Sistemi Operativi (distribuite nei termini della licenza Creative Commons Attribuzione/Condividi allo stesso modo tenuto dal Dott. Gennaro Oliva presso l Università degli Studi di Napoli Federico II nell A.A Saranno apprezzate e benvenute le segnalazioni di errori, imprecisioni ed omissioni (mail to s.giannini@de .poliba.it). Tale dispensa non è da considerarsi esaustiva sugli argomenti affrontati a lezione. Per ulteriori approfondimenti si rimanda a "Linux e la shell Bash" ( Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 2

3 Indice Comandi di help...6 man...6 Il file system...8 pwd...8 ls...8 Protezione di file e directory...9 cd cp mkdir mv rm rmdir stat touch Manipolazione dei permessi chown chgrp chmod Link Hard link Soft link o symbolic link Altri comandi di base alias/unalias echo date which Caratteri speciali di shell File globbing Espansione della shell Regole di quoting Espressioni Regolari Sintassi delle espressioni regolari Caratteri speciali della shell ed espressioni regolari Caratteri speciali per le espressioni regolari Operatori di ripetizione Regole di precedenza degli operatori Comandi di ricerca di stringhe grep Gestione utenti e gruppi Gruppi di utenti groupadd groupdel groupmod useradd Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 3

4 passwd userdel usermod su (substitute user) Comandi informativi id whoami who groups last Variabili Definizione Variabili d'ambiente printenv export set/unset Visualizzazione ed editing di file cat file less (more) Canali di comunicazione e ridirezione Operatori di ridirezione dello standard output Operatori di ridirezione dello standard error Operatori di ridirezione dello standard input Operatore di pipeline Liste di comandi sequenza concorrenza condizione esclusione Exit status di liste di comandi Script BASH Filtri e programmi di utilità generica sort wc head tail uniq cut diff Gestione dei processi Avvio del sistema Runlevel shutdown Controllo dei processi ps Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 4

5 pstree top Background e foreground yes sleep wait jobs fg bg Segnali kill pkill killall Terminazione di un processo Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 5

6 Comandi di help man Il comando man (manual) fornisce informazioni su qualsiasi comando, visualizzandone la pagina di manuale relativa. Il manuale è suddiviso in pagine logiche che corrispondono ad una sezione. Ogni sezione si riferisce ad un insieme di argomenti logicamente affini. Le pagine di manuale di un sistema UNIX sono raggruppate in 8 sezioni: 1) programmi eseguibili o comandi di shell (ls, vi,...); 2) system call (open, write, fork,...); 3) funzioni di libreria (printf, scanf, ); 4) file speciali (/dev/null, /dev/mouse,...); 5) formati di file (/etc/passwd, /etc/hosts, ); 6) giochi (fortune,...); 7) protocolli, convenzioni, panoramiche, varie (tcp, boot,... ); 8) comandi per la gestione del sistema (iptables, mkfs,...). SINTASSI: $ man [opzioni] comando $ man man All'interno di una pagina di manuale ci si può muovere con i tasti direzione: su, giù, pg su, pg giù. Si esce dalla visualizzazione premendo q (quit). Si può ricercare una stringa digitando /stringa e se ne visualizzano le occorrenze premendo n (occorrenza successiva) oppure N (occorrenza precedente). La struttura della documentazione dei comandi è simile per ogni comando e segue il paradigma LDP (Linux Documentation Project). All'interno di una pagina di manuale ci sono varie sottosezioni. Quelle convenzionali sono: NAME, SYNOPSIS, CONFIGURATION, DESCRIPTION, OPTIONS, EXIT STATUS, RETURN VALUE, ERRORS, ENVIRONMENT, FILES, VERSIONS, CONFORMING TO, NOTES, BUGS, EXAMPLE, AUTHORS, SEE ALSO. Di particolare rilevanza: NAME: nome del comando e relativo commento SYNOPSIS: sintassi del comando DESCRIPTION: descrizione dettagliata del comando OPTIONS: flag attribuibili al comando -f Mostra NAME (con session) e relativo commento (equivale a SINTASSI: $ whatis comando) -k Cerca nel NAME e nel commento del man di tutti i comandi il pattern (comando) in argomento. Risponde col NAME del comando e con il commento associato (equivale a SINTASSI: $ apropos comando) -L Consente di visualizzare il manuale nella traduzione richiesta, se disponibile. $ man -L it man $ man -L en man L'argomento del comando man viene ricercato all'interno delle sezioni in ordine crescente. Alla prima corrispondenza trovata, viene visualizzata la pagina di manuale individuata. Alcune parole chiave possono essere presenti in più sezioni, quindi per visualizzare il manuale di una sezione specifica bisogna anteporre come opzione il numero della sezione (preceduto o meno dal flag -s). Esempi. - La parola write corrisponde almeno a due pagine di manuale: (1) il comando write per comunicare con gli utenti; (2) la system call write per l'i/o a basso livello. Per visualizzare la pagina della system call usiamo: $ man 2 write Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 6

7 - $ man -s1 chmod (Mostra la prima sessione) $ man -s2 chmod (Mostra la seconda sessione) In maniera alternativa, è possibile utilizzare SINTASSI: $ comando --help Accede direttamente alla sottosezione relativa alla descrizione delle options. Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 7

8 Il file system Il file system di Unix ha un'organizzazione gerarchica ad albero, la cui radice (root) è una directory identificata dal carattere /. Alcune sottodirectory della root directory sono comuni a tutti i sistemi UNIX. bin: programmi binari (built-in) essenziali utilizzabili da tutti gli utenti sbin: (superuser bin) programmi binari essenziali per l'amministrazione del sistema boot: file necessari all'avvio del sistema quali il kernel ed i driver dev: file speciali associati a dispositivi hardware etc: file di configurazione home: home directory degli utenti che hanno un account sulla macchina root: home directory del root user tmp: file temporanei usr: file read-only var: file che il sistema scrive durante l'esecuzione (log, spool, cache,...) Per i sistemi Linux i nomi delle directory e le loro funzioni sono stabilite dal Filesystem Hierarchy Standard (FHS). I nomi di file e directory possono essere composti da qualsiasi sequenza di caratteri eccetto /. E' buona prassi limitarsi nell'utilizzo degli spazi. Ogni directory contiene 2 directory speciali:., che corrisponde alla directory stessa;.., che corrisponde alla directory padre (la directory padre di / è / stessa). La struttura ad albero consente di identificare univocamente un elemento del file system mediante il percorso che va dalla root directory / al file stesso. Questo percorso viene detto pathname. Nel pathname tutte le directory del percorso vengono separate dal carattere /. Un pathname che inizia con il carattere / viene detto assoluto, parte dalla root directory ed arriva ad un elemento del filesystem. Un pathname che inizia senza il carattere /, parte da una directory del file system e viene detto relativo. pwd Il comando pwd (print working directory) mostra sullo standard output il percorso completo (pathname assoluto) della directory di lavoro corrente. SINTASSI: $ pwd user@ubuntu:~$ pwd /home/user ls Il comano ls (list) lista il contenuto di una directory in ordine alfabetico (in assenza del path in argomento lista il contenuto della current working directory - cwd). SINTASSI: $ ls [opzioni] [path] Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 8

9 -a (all) Mostra anche i file nascosti (tutti i file che iniziano con il carattere '.') -F Associa un identificatore per ogni tipo di file in coda al nome (@ link simbolico; * eseguibile; / directory; FIFO; = socket) -t Ordina i file per data di modifica, dal più recente -u Ordina i file per data di ultimo accesso, dal più recente -r Inverte l'ordine alfabetico di visualizzazione -R Visualizza in modo ricorsivo il contenuto delle sottodirectory -1 Visualizza l'elenco in un'unica colonna -Q Circonda i nomi dei file con le virgolette (utile in caso di nomi di file che contengono spazi) -i Visualizza l'#i-node del file. -l Mostra informazioni dettagliate sui file contenuti nella directory in maniera tabellare: [Access Control List] [numero di link al file] [utente] [gruppo] [dimensione in byte] [ultimo accesso] [nome simbolico file] Protezione di file e directory Unix è un sistema multi utente e necessita di meccanismi di protezione di file e directory per consentire ad ogni utente di preservare i propri dati dall'accesso da parte di altri utenti. Ogni file ha un proprietario e un gruppo di appartenenza. L'amministratore può modificare, assieme al proprietario, i diritti d'accesso. Al file sono associate protezioni per tre tipi di accesso: a) Accesso in lettura identificato dalla lettera r (read) b) Accesso in scrittura identificato dalla lettera w (write) c) Accesso in esecuzione identificato dalla lettera x (execute) Le protezioni possono essere applicate a 3 classi di utenti: 1. il proprietario del file (user) 2. il gruppo a cui appartiene il file (group) 3. tutti gli altri utenti (others) L'Access Control List (ACL) è una sequenza di 10 caratteri. Il primo carattere rappresenta il tipo di file: d directory (contiene nomi di file e puntatori ad i-node) l link simbolico (puntatore a file) - file ordinario o regolare (contengono dati, senza distinzione tra file binari o di testo) b file speciale a blocchi (file speciale che fornisce un'interfaccia bufferizzata a blocchi di lunghezza fissa per l'i/o da dispositivi di memorizzazione quali hard disk, cdrom, floppy...) c file speciale a caratteri (file speciale che fornisce un'interfaccia non bufferizzata con blocchi di lunghezza variabile a dispositivi quali schede audio, terminali, porte seriali,...) p file FIFO o pipe con nome (tipo di file destinato alla comunicazione iterprocesso su una stessa macchina) s socket (file utilizzato per la comunicazione tra due processi anche su rete) Gli altri 9 caratteri vanno interpretati a gruppi di tre: A u B u C u A g B g C g A o B o C o A: permesso di lettura (r o -) B: permesso di scrittura (w o -) C: permesso di esecuzione (x o -) per lo user owner (u); per il group owner (g); per gli others (o) ovvero il resto del mondo. Esempio di ACL: l rw- rw- r-- Si tratta di un link simbolico. L'utente proprietario ha permessi di lettura e scrittura, non di esecuzione; gli utenti appartenenti al gruppo del proprietario hanno diritto di lettura e scrittura, non di esecuzione; il resto del mondo ha solo diritto di esecuzione. Nel caso di directory, i tre tipi di permesso assumono il seguente significato: Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 9

10 r w x Visualizzare il contenuto della directory (il list è una lettura) Scrivere all'interno della directory (rinomina, modifica, rimozione) Attraversare una directory, ovvero utilizzare il nome della directory per accedere ad un qualsiasi file contenuto nel sottoalbero di cui è radice. Assegnare un premesso di esecuzione ad una directory equivale a permettere la navigazione dell'albero. Se chiedo il list del contenuto di una cartella che non posso eseguire il sistema comunica permission denied. Negli altri casi il permesso di esecuzione esiste solitamente solo per file ordinari. E' d'uso fare una maschera in forma ottale dell'acl, escluso il primo carattere. I 9 valori possono essere interpretati come bit (0: permesso negato; 1: permesso concesso) e considerati a gruppi di 3 (8 combinazioni per ciascun terzetto). Esempi: = 664 (dall'esempio precedente) 755 = ovvero rwx r-w r-w 640 = ovvero rw- r cd Il comando cd (change directory) cambia la cwd corrente con quella specificata. SINTASSI: $ cd [path] Utilizzi particolari: cd (Torna alla homedir dell'utente loggato: equivale a cd ~) cd - (Torna alla directory precedentemente referenziata, memorizzata nella variabile d'ambiente OLDPWD) cd. (Porta nella cwd) cd.. (Porta nella directory padre della cwd) $ cd / $ cd /usr/bin Esercizi 1. Visualizzate la pagina di manuale del comando ls. 2. Cercate la stringa long per leggere la sezione relativa all'opzione -l. 3. Cercate la stringa all per leggere la sezione relativa all'opzione -a. 4. Spostatevi nella directory /usr/bin. 5. Visualizzatene il contenuto. 6. Tornate nella vostra home directory. cp Il comando cp (copy) copia il file (o una directory vuota) dal percorso di partenza a quello di destinazione. Se il file di destinazione non esiste viene creato, viceversa si rischia la sovrascrittura. La copia di cartelle non vuote va effettuata in maniera ricorsiva. SINTASSI: $ cp [opzioni] [path/]fileorigine [path/]filedest -f Forza la sovrascrittura -i Richiede interattivamente la conferma di sovrascrittura -p Mantiene le caratteristiche del file sorgente compresa la data e l'ora di referenziazione -R Copia ricorsiva -v Verbose mode Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 10

11 Esempi: $ cp esempio esempio.bak $ cp -i esempio2 esempio.bak $ cp -Rv dir/dir1 silviax mkdir Il comando mkdir (make directory), crea una directory. SINTASSI: $ mkdir [opzioni] [path/]nomedir -m ACL Crea una directory specificando l'acl -v Verbose Mode: mostra sullo standard output le operazioni eseguite Esempi: $ mkdir prova $mkdir prova1 prova2 $ mkdir prova1/prova11 /home/silvia/prova/prova2 $ mkdir -m 766 prova3 Come verificate che la creazione sia andata a buon fine? $ mkdir -vm 766 provav mv Il comando mv (move), sposta (cut and paste/rename) file o directory da un percorso di partenza ad uno di destinazione. SINTASSI: $ mv [opzioni] [path/]fileorigine [path/]filedest -f Forza la sovrascrittura -i Richiede interattivamente la conferma di sovrascrittura -v Verbose mode Esempi: $mv file1 file2 $mv file1 dira $mv dira file1 $mv dira dirb (rinomina file 1 come file2 eventualmente sovrascrivendolo) (sposta file1 in dira) (non concesso se file1 è un file esistente) (sposta dira in dirb o rinomina dira in dirb, se dirb non esiste) rm Il comando rm (remove file), rimuove un file (o una directory in manera ricorsiva se non vuota). SINTASSI: rm [opzioni] nomefile -R Cancellazione ricorsiva del contenuto di una directory e della directory stessa, se non vuota -v Verbose mode Esempi: $ rm -Rv provafull $ rm file1 rmdir Il comando rmdir (remove directory), cancella una directory. La directory dev'essere vuota. Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 11

12 SINTASSI: $ rmdir [opzioni] nomedir_1 [nomedir_n] --ignore-fail-on-non-empty Non mostra a video il messaggio di errore -v Verbose mode stat Ad ogni file sono associate una serie di informazioni o metadati, quali la dimensione, i permessi, le date di accesso e di modifica. Queste informazioni possono essere lette dal filesystem e vengono memorizzate in una struttura dati chiamata stat che contiene almeno i seguenti membri: struct stat { dev_t st_dev /*ID del device che contiene il file*/ ino_t st_ino /*n.ro inode*/ mode_t st_mode /*tipo di file e permessi*/ nlink_t st_nlink /*numero di link al file*/ uid_t st_uid /*user ID del proprietario del file*/ gid_t st_gid /*group ID del proprietario del file*/ dev_t st_rdev /*device ID (se il file è speciale a blocchi o a caratteri)*/ off_t st_size /*dimensione del file in bytes (per file regolari, directory o link)*/ time_t st_atime /*orario dell'ultimo accessoai dati*/ time_t st_mtime /*orario dell'ultima modifica ai dati*/ time_t st_ctime /*orario dell'ultimo cambiamento all'inode (ad esempio attraverso chmod)*/ blksize_t st_blksize /*dimensione del blocco per l'oggetto (è specifica del FS, può variare da file a file)*/ blkcnt_t st_blocks /*numero di blocchi allocati per l'oggetto*/ } Per avere informazioni su data di creazione, accesso e modifica di un file si può utilizzare il comando SINTASSI: $ stat nomefile) touch Aggiorna data ed ora di ultima referenziazione del file in argomento (di default cambia sia l'orario di accesso che di modifica), con l'orario corrente. Se il file non esiste, crea un file vuoto con data e ora corrente. SINTASSI: $ touch [opzioni] nomefile -a Cambia l'orario di accesso -c Non crea il file, aggiorna solo la data di ultimo accesso -m Cambia l'orario di modifica Esempio: $ touch prova/touch.exe Esercizi 1. All'interno della vostra home directory create 2 directory denominate uno e due. 2. Copiate il file /etc/profile nella directory uno, conservandone il nome. 3. Copiate il file /etc/profile nella directory due cambiandone il nome in copia-profile. 4. Spostate il file profile nella directory due ed il file copia-profile nella directory uno. 5. Cancellate i due file con uno stesso comando. 6. Cancellate le due directory vuote. 7. Verificate il funzionamento di touch per la modifica dell'orario di ultimo accesso e per la creazione di un file vuoto. Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 12

13 Manipolazione dei permessi Al momento della creazione di un file, esso appartiene all utente che lo ha creato e assume il gruppo di quest ultimo. Il superuser può modificare queste informazioni con i comandi: chown Il comando chown (change owner), modifica il proprietario di un file. SINTASSI: # chown newowner file1 [file2... filen] chgrp Il comando chgrp (change group), modifica l'owner group di un file. SINTASSI: # chgrp newgroup file1 [file2... filen] Esempio: # chown userb:groupb file1 chmod Il comando chmod (change mode), consente all'utente proprietario (o al superuser) di modificare i permessi (la ACL) di file e directory. SINTASSI: $ chmod [codiceutente±codicepermesso formaottale] file1 [file2... filen] codiceutente: user group other all operatore: + (aggiunge) (rimuove); codicepermesso: read write execute. Esercizi 1. Copiate il file /bin/ls nella vostra home directory specificando il pathname. 2. Eliminate i permessi di esecuzione a tutti gli utenti per la copia locale. 3. Ripristinate i permessi di esecuzione al solo proprietario del file. 4. Create una directory test nella vostra home directory e copiate il file /bin/ls al suo interno 5. Eliminate i permessi di esecuzione alla directory e provate a listare il contenuto. Perché non è concessa l'operazione? 6. Ripristinate i vecchi permessi e cancellate con un unico comando il file all'interno della directory e la directory stessa. Link Un cilindro è organizzato in i-nodes (i-node table) e data-blocks. Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 13

14 Ad ogni file è associato un singolo ed unico i-node che memorizza la maggior parte delle informazioni restituite da stat (numero di link, dimensione, proprietario, allocazione sul disco, etc.) e i puntatori ai data block, in cui viene memorizzato il contenuto di un file. All aumento delle dimensioni del file può corrispondere un aumento dei data block allocati per il file. Il data block di una directory viene detto directory block e contiene, per ogni file contenuto nella directory, una directory entry (#inode, filename) contenente il nome del file e il numero di i-node ad esso associato. La modifica del nome di un file viene effettuata sull'informazione memorizzata nel directory block. Un riferimento ad un file è detto link. Ogni file può avere un numero qualsiasi di link. UNIX ha due tipi di link: hard link e soft link. Entrambi possono essere creati con il comando ln. Hard link Un hard link è un puntatore all'i-node di un file. Un hard link è un elemento all interno di una directory il cui numero di i-node corrisponde a quello di un altro file. In pratica, è possibile creare un file all interno di una directory creando un puntatore ad un file già esistente. Un hard link eredita tutte le informazioni associate all'inode del file originale e non c'è più modo di distinguere tra l'hard link e il file originale. Le directory hanno un numero di link almeno pari a 2: un puntatore è memorizzato nella voce corrispondente contenuta dalla directory padre ; un puntatore è contenuto nella stessa directory verso.. La maggior parte di implementazioni UNIX moderne non consente di creare ulteriori hard link a directory. Questo limite viene imposto per evitare ricorsioni infinite nel tentativo di attraversare un albero che parte da un hard link che punta alla propria directory padre. Inoltre, non è possibile effettuare un hard link con un file memorizzato su una partizione diversa da quella della directory in cui lo si vuole creare. Ogni volta che si crea un hard link ad un file, il link count per il file si incrementa di 1. Quando il comando rm riceve come argomento un hard link, il sistema decrementa il link count (nell i-node del file) di 1. Se il link count non è 0, il sistema rimuove solo la directory entry del file cancellato. Il contenuto del file e altre directory entry per quel file (hard link) rimangono inalterati. Se il link count è 0, il sistema rimuove la directory entry per quel file, libera l -inode del file e dealloca i data block che contenevano il file. SINTASSI: ln [opzioni] fileesistente1 [fileesistente2... fileesistenten] nuovofile fileesistentex non può essere una directory. nuovofile può essere una directory. In tal caso viene creato un hard link all'interno di nuovofile a tutti i fileesistenti indicati nel comando e i link hanno lo stesso nome dei file originari. -n Non crea il link se nuovofile esistente già. Soft link o symbolic link Un soft link (o symbolic link) corrisponde ad un file che contiene, all interno dell unico data block ad esso associato, il percorso assoluto di un altro file. I soft link superano i limiti degli hard link in quanto consentono di: - creare collegamenti tra entità su filesystem diversi; - creare link a directory. Un soft link può essere utilizzato per creare puntatori a file o directory lasciando sempre ben chiara la distinzione tra il file originale e il link. Quando il comando rm riceve come argomento un soft link, cancella quest'ultimo e non il file a cui esso si riferisce. SINTASSI: $ ln -s pathnameassolutofileesistente nomelink Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 14

15 Altri comandi di base alias/unalias L'alias è un nome alternativo dato ad una sequenza complessa SINTASSI: $ alias Visualizza tutti gli alias $ alias nomealias='comando' Crea un alias Esempi: $ alias al='ls -al' $ alias cp='cp -i' (impone al sistema il controllo di sovrascrittura) SINTASSI: $ unalias [opzioni] nomealias Distrugge l'alias nomealias Esempio: $ unalias al -a Distrugge tutti gli alias echo Stampa una stringa sullo standard output. SINTASSI: $ echo [stringa] Esempi: $ echo hello world! $ echo ~ (Mostra il percorso assoluto della home-dir dell'utente loggato, vedi sezione Espansione della shell) date Mostra la data e l'ora corrente which Stampa il path assoluto di un comando Esercizio: Trovate il path del comando whoami Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 15

16 Caratteri speciali di shell Prima di eseguire un comando, la shell interpreta alcuni caratteri speciali (wildcard) sostituendoli secondo regole. Il carattere di escape \ preserva un singolo carattere dall'espansione della shell (analogo utilizzo è attribuito al simbolo di escape nelle espressioni regolari). $ echo \* 1. File globbing * l'asterisco rappresenta un gruppo qualsiasi di caratteri, compreso il punto, purché il punto non si trovi all'inizio del nome $ rmdir pro* Cancella tutte le directory vuote il cui nome inizia con pro? il punto interrogativo rappresenta un unico carattere qualsiasi, compreso il punto, purché il punto non si trovi all'inizio del nome $ rmdir pro? Cancella tutte le directory vuote con nome pro seguito da un solo carattere qualsiasi [...] le parentesi quadre permettono di rappresentare un carattere qualsiasi o un intervallo di caratteri possibili. [adfz] [g-z] [^a] Uno qualsiasi dei caratteri a,d,f,z Uno qualsiasi dei caratteri compresi tra g e z Un carattere qualsiasi diverso da a 2. Espansione della shell {...} le parentesi graffe consentono di specificare un qualsiasi insieme di stringhe nella forma: prefisso{stringa1,stringa2,stringa3}suffisso Esempi: $ echo v{en,id,ic}i veni vidi vici $ echo v{en,i{d,c}}i veni vidi vici ~ Utilizzato per riferirsi alle home directory dell'utente loggato ~name Identifica la home dir dell'utente name $ mkdir ~/Mail (Crea una directory Mail sotto la home directory dell'utente loggato) $nomevar Espansione dei parametri d'ambiente e delle variabili (vedi sezione Variabili) $ echo $USER $(comando) Sostituisce l'output del comando $ echo Oggi e\' $(date) Oggi e' gio 24 mar 2011, , CET 3. Regole di quoting L'inserimento di una stringa tra apici singoli ' ' protegge i caratteri speciali contenuti nella stringa dall'espansione da parte della shell. Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 16

17 $ echo '$HOME'=$HOME $HOME=/home/silvia L'utilizzo di apici doppi consente l'espansione da parte della shell dei soli nomi di variabile, mentre preserva gli altri caratteri speciali dall'espansione. $ echo "ls $HOME/* mostra il contenuto della homedir" ls /home/silvia/* mostra il contenuto della homedir Esercizi 1. Listare tutti i file della cartella /var/log che contengono il carattere '-' nel nome e che terminano per '.log'. 2. Listare tutti i file della cartella /var/log composti da tre caratteri e che terminano con '.log'. 3. Listare tutti i file della cartella /var/log che iniziano con un carattere compreso tra 'h' e 'z' e terminano con '.log'. 4. Visualizzare i file nella directory /var/log che contengono un numero all'interno del nome e terminano in '.log'. 5. Il man del comando mv riporta tra le options: -t DEST_DIR Sposta tutti gli argomenti della cartella sorgente nella cartella DEST_DIR Scrivere un comando per spostare il contenuto della cartella./folder2 all'interno della cartella./prova1. Disegnare l'albero delle directory risultante al termine dell'operazione, supponendo che la cartella./folder2 contenga i file file1, file2, folder1. Quale comando utilizzare per spostare l'intera cartella folder2 all'interno di prova1? Espressioni Regolari Un'espressione regolare è un pattern che rappresenta un insieme di stringhe. In altre parole, è una stringa scritta secondo una precisa sintassi. Le espressioni regolari vengono tipicamente utilizzate nella ricerca di stringhe all'interno di file di testo e nella sostituzione delle stringhe trovate con nuovo testo. Usando espressioni regolari nell'effettuare ricerche, non si è obbligati a specificare esattamente i termini da ricercare, ma si possono definire delle regole generali da utilizzare per trovare le stringhe di interesse. Sintassi delle espressioni regolari 1. Il caso più elementare di espressione regolare è un singolo carattere, che rappresenta l'insieme delle stringhe costituite dal solo carattere. Il carattere a, ad esempio, rappresenta l'insieme di stringhe costituito dal solo carattere {a}. 2. Insiemi di caratteri Per identificare diversi caratteri è possibile utilizzare le parentesi quadre [...], come accade per il file globbing. Una lista di caratteri racchiusa tra parentesi quadre corrisponde a qualsiasi carattere in esse contenuto. Se la lista viene preceduta dal simbolo ^, l'espressione corrisponde a qualsiasi carattere non contenuto nella lista. Esempio: [^abcd] fughe mostrata perché contiene f,u,g,h,e coda mostrata perché contiene o bada non mostrata perché non contiene caratteri diversi da a,b,c,d Il carattere ^, se specificato dopo il primo carattere, assume significato letterale. L espressione '[a^b]' mostra le linee del file che contengono i caratteri a,^ e b e non caratteri a seguiti da caratteri diversi da b. Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 17

18 All'interno delle parentesi quadre è possibile indicare un intervallo di caratteri specificando gli estremi e separandoli con il carattere -. L'espressione [a-g] mostra tutte le righe del file che contengono una lettera compresa tra a e g. Alcune localizzazioni prevedono l'ordinamento aabbccdd... per cui specificando [a-g] si individuano le lettere [aabbccddeeff]. Si possono anche identificare classi di caratteri attraverso le espressioni: [:alnum:] Caratteri alfanumerici (cifra o lettera) [:alpha:] Caratteri alfabetici [:digit:] Caratteri numerici [:lower:] Lettere minuscole [:upper:] Lettere maiuscole [:xdigit:] Cifre esadecimali... Esempio: [[:lower:]] Seleziona tutte le righe che contengono una minuscola. 3. Concatenazione Due espressioni regolari, regex1 e regex2, possono essere concatenate in una nuova espressione regolare regex1regex2. Ad essa corrisponde qualsiasi stringa formata da due stringhe concatenate corrispondenti alle singole espressioni di partenza. La più semplice forma di concatenazione è una stringa di lettere o numeri. L'espressione regolare 'ab' ricerca tutte le righe che contengono la stringa ab. L'espressione regolare 'a[1-5]' restituisce tutte le righe contenenti una delle seguenti stringhe: {a1,a2,a3,a4,a5}. 4. Alternanza Due espressioni regolari, regex1 e regex2, possono essere concatenate utilizzando l'operatore pipe. L'espressione regolare risultante corrisponde a qualsiasi stringa che corrisponda alla prima o alla seconda. L'insieme delle stringhe rappresentate dall'espressione regex1 regex2 è l'unione degli insiemi delle stringhe rappresentate da regex1 e regex2. L'espressione regolare 'a b' visualizza le righe che contengono le stringhe che contengono la lettera a e quelle che contengono la lettera b. 5. Posizionamento a. I caratteri ^ e $ identificano all'interno di un'espressione regolare rispettivamente inizio e fine riga. L'espressione regolare 'stringa$' stampa tutte le righe che terminano con stringa. L'espressione regolare '^stringa' stampa tutte le righe che iniziano con stringa. L'espressione regolare '^stringa$' stampa le righe costituite solo dalla parola stringa. b. I simboli \< e \> individuano rispettivamente l'inizio e la fine di una stringa. L'espressione regolare '\<stringa' stampa la tutte le righe che contengono una parola che comincia con stringa (ad es.: stringa, stringato, ma non costringa). L'espressione regolare 'stringa\>' stampa la tutte le righe che contengono una parola che termina con stringa (ad es.: stringa, costringa, ma non stringato). Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 18

19 Caratteri speciali della shell ed espressioni regolari Le espressioni regolari possono generare confusione perché utilizzano gli stessi caratteri speciali della shell, ma con significati a volte diversi. L'espansione dei caratteri speciali della shell viene sempre effettuata prima di eseguire un comando. Per preservare le espressioni regolari utilizzate da alcuni comandi (come ad esempio grep) da interpretazioni errate, è opportuno proteggerle con gli apici ' ', evitando così che la shell interpreti i caratteri speciali di shell contenuti nell'espressione regolare. Questo è necessario anche quando i caratteri speciali hanno la stessa funzione. Caratteri speciali per le espressioni regolari Il carattere punto. è un carattere speciale che rappresenta qualsiasi carattere (lettera, cifra, spazio, tab,...). N.B. La sintassi delle espressioni regolari differisce da quella del file globbing dove un singolo carattere è rappresentato dal carattere?. I caratteri speciali all'interno di un'espressione regolare con le quadre [...] perdono di significato e vengono considerati letteralmente. L'espressione regolare '[\.*]' mostra le linee del file che contengono i caratteri.,\ e * e non zero o più occorrenze del carattere. (vedi sezione Operatori di ripetizione). Operatori di ripetizione Un'espressione regolare che genera una corrispondenza con un singolo carattere può essere seguita da uno o più operatori di ripetizione. Il carattere * viene specificato per cercare un'espressione ripetuta un numero qualsiasi di volte (anche zero). N.B. Notare la differenza con il carattere * del file globbing! L'espressione regolare 'ab*c' visualizza le righe che contengono le stringe {ac,abc,abbc,abbbc,ab...bc}. Il carattere? viene specificato per cercare un'espressione ripetuta al più una volta (anche zero) L'espressione regolare 'ab?c' visualizza le righe che contengono le stringe {ac,abc}, ma non corrisponde alle stringhe {abbc,abbbc,ab...bc}. Il carattere + viene specificato per cercare un'espressione ripetuta almeno una volta. L'espressione regolare 'ab+c' visualizza le righe che contengono le stringhe {abc,abbc,abbbc,ab...bc}, ma non corrisponde alla stringa {ac}. L'espressione {n} viene specificata per cercare un'espressione ripetuta esattamente n volte. L'espressione 'ab{2}c' visualizza le righe che contengono le stringhe {abbc}, ma non corrisponde alle stringhe {ac,abc,abbbc,ab...bc}. L'espressione {n,m} viene specificata per cercare un'espressione ripetuta almeno n volte e al più m volte. L'espressione regolare 'ab{2,5}c' visualizza le righe che contengono le stringhe {abbc,abbbc,abbbbc,abbbbbc}, ma non corrisponde alle stringhe {ac,abc,abbb...bbc}. L'espressione {n,} viene specificata per cercare un'espressione ripetuta almeno n volte. Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 19

20 L'espressione regolare '\<[[:digit:]]{4,}\>' visualizza le righe contenenti stringhe che cominciano con numeri aventi almeno quattro cifre. Regole di precedenza degli operatori Nell'interpretazione delle espressioni regolari le operazioni sulle espressioni vengono valutate nel seguente ordine 1) ripetizione 2) concatenazione 3) alternanza Le parentesi tonde possono essere utilizzate per modificare quest'ordine predefinito. L'espressione regolare 'a bc+', esplicitando l'ordinamento delle operazioni, equivale a: '(a (b(c+)))' overo ricerca stringhe del tipo {a, bc, bcc, bccc...}. Con le parentesi tonde possiamo modificare l'ordinamento delle operazioni: con 'a (bc)+' ricerchiamo stringhe del tipo {a, bc, bcbc...}; con '(a b)c+' ricerchiamo stringhe del tipo {ac..., bc...}. Comandi di ricerca di stringhe grep Il comando grep (Global Regular Expression Print) viene utilizzato per cercare stringhe all'interno di un file. SINTASSI: $ grep [opzioni] 'pattern' [file] pattern è un'espressione regolare. Se il file non è specificato, grep opera sullo standard input. -v Stampa le righe che non contengono stringhe corrispondenti al pattern -n Antepone il numero di riga -c Visualizza soltanto quante righe contengono stringhe corrispondenti al pattern -i Rende il comando case-insensitive --color Evidenzia, colorandola, l'occorrenza del pattern all'interno della riga -E Abilita l'interpretazione di espressioni regolari estese I caratteri?, +, {, },, (, e ), se utilizzati con grep che interpreta espressioni regolari base (in assenza dell'opzione -E), vanno preceduti dal carattere di escape \. Se si utilizzano con egrep o con l'opzione -E di grep, che abilita l'interpretazione di espressioni regolari estese, non è necessario anteporre il carattere \. La differenza è solo nella sintassi dell'espressione regolare non nella sua funzionalità: $ grep 'a\+' equivale a $ egrep 'a+'. Quando si proteggono gli argomenti del pattern di grep con gli apici singoli, si preclude l'utilizzo di variabili. In alcuni casi si possono utilizzare gli apici doppi, che non impediscono la sostituzione della variabile con il suo valore. $ grep ^$USER: /etc/passwd (si veda la sezione Variabili) Esempi: Sia dato il seguente file di test denominato 'file': fughe coda bada MAIUSCOLE a1 Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 20

21 a2 a3 a4 a5 a6 a7a8 a9 stringa stringa stringato costringa ac abc abbc abbbc file.txt ciao a * exit ^_^ a^ done matr matr matr tel prefix 080 a b bc bcc bccc bcbcbc bacbc bac ac acc caa acac $ grep a file Mostra tutte le linee del file che contengono la lettera a almeno una volta in qualsiasi punto della riga $ grep. file Mostra tutte le linee del file che contengono almeno un carattere $ grep '[abcd]' file Mostra tutte le linee del file che contengono almeno una tra le lettere a,b,c,d $ grep '[^abcd]' file Mostra le linee del file che contengono lettere diverse da a,b,c,d fughe mostrata perché contiene f,u,g,h,e; coda mostrata perché contiene o; bada non mostrata perché non contiene lettere diverse da a,b,c,d; etc. Quale comando utilizzare per visualizzare tutte le righe che non contengono a, b, c e d? $ grep '[a-g]' file Mostra tutte le righe del file che contengono una lettera compresa tra a e g Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 21

22 $ grep [[:upper:]] file Stampa tutte le righe che contengono un carattere maiuscolo $ grep 'ad' file Stampa tutte le linee del file che contengono la stringa ad $ grep 'a[1-5]' file Ricerca una stringa di tipo {a1,a2,a3,a4,a5} $ grep 'stringa$' file Stampa tutte le righe che terminano con stringa $ grep '^stringa' file Stampa tutte le righe che iniziano con stringa $ grep '^stringa$' file Stampa le righe che contengono soltanto stringa $ grep '\<stringa' file Stampa tutte le righe che contengono una parola che comincia con stringa (stringa, stringato, ma non costringa) $ grep 'stringa\>' file Stampa tutte le righe che contengono una parola che termina con stringa (stringa, costringa, ma non stringato) $ grep '\<stringa\>' file Cosa restituisce? $ grep 'ab*c' file Visualizza le righe che contengono le stringhe: ac, abc, abbc, abbbc, ab...bc $ grep '[\.*]' file Mostra le linee del file che contengono i caratteri.,\ e * e non zero o più occorrenze del carattere. file.txt mostrata perché contiene.; ciao a * mostrata perché contiene *; etc. $ grep '[a^b]' file Mostra le linee del file che contengono i caratteri a, ^ e b e non caratteri a seguiti da caratteri diversi da b ^_^ mostrata perché contiene ^; a^ mostrata perché contiene a e ^; etc. $ egrep 'ab?c' file Visualizza le righe che contengono le stringhe: ac, abc; ma non corrisponde alle stringhe: abbc, abbbc, ab...bc. $ egrep 'ab+c' file Visualizza le righe che contengono le stringhe: abc, abbc, abbbc, ab...bc; ma non corrisponde alla stringa ac $ egrep 'ab{2}c' file Visualizza le righe che contengono le stringhe abbc, ma non corrisponde alle stringhe ac, abc, abbbc, ab...bc $ egrep 'ab{2,3}c' file Visualizza le righe che contengono le stringhe abbc e abbbc, ma non corrisponde alle stringhe ac, abc, abbbbc, abbb...bbc $ grep -E '\<[[:digit:]]{4,}\>' file Visualizza le righe contenenti i numeri con più di quattro cifre $ egrep 'a b' file Visualizza le righe che contengono stringhe contenenti la lettera a o la lettera b $ egrep 'a bc+' file Visualizza le righe che contengono stringhe del tipo: a, bc,bcc... $ egrep 'a (bc)+' file Visualizza le righe che contengono stringhe del tipo: a, bc, bcbc... $ egrep '(a b)c+' file Visualizza le righe che contengono le stringhe di tipo: ac..., bc... Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 22

23 Esercizi Scrivere un comando per visualizzare nel file /etc/passwd le righe: 1. che non contengono cifre pari; 2. che corrispondono ad utenti con prima lettera compresa tra g e l, ordinate in ordine alfabetico; 3. che contengono la lettera 'c' ripetuta minimo 1 volta e massimo 2 volte di seguito. 4. Scrivere un comando per visualizzare nel file /etc/services le righe contenenti la parola 'ftp'. 5. Scrivere un comando che mostri a video tutti i file regolari contenuti nella cwd che risultano accessibili in lettura al resto del mondo. Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 23

24 Gestione utenti e gruppi Nei sistemi Unix gli utenti si dividono in: superuser (utente amministratore o root) e utenti regolari. L'utente root ha tutti i privilegi sul sistema e può aggiungere o rimuovere i privilegi agli altri utenti (diritti di accesso), così come creare nuovi utenti. Gruppi di utenti Ciascun utente di un sistema Unix appartiene ad uno o più gruppi. Ogni utente ha un unico gruppo di login (gruppo principale) di cui è titolare e può essere membro di più gruppi supplementari, a cui l'utente aderisce senza esserne il titolare. Su alcuni sistemi, l'appartenenza ad alcuni gruppi supplementari determina la possibilità di utilizzare alcune funzionalità del sistema (audio utilizzare la scheda audio; video utilizzare la webcam; dialout utilizzare il modem e le porte seriali; dip utilizzare connessioni ad internet via modem; etc.). Di fatto i gruppi servono per gestire con maggiore flessibilità l'accesso ai file e di conseguenza l'uso delle risorse. L'amministratore di sistema può creare un gruppo e gli account per gli utenti che amministreranno il gruppo. Il file /etc/group contiene l'elenco dei gruppi di utenti presenti nel sistema. Ad ogni gruppo è associata una riga nella quale si trova l'idgroup e l'elenco degli utenti che ne fanno parte. Alcuni sistemi Linux, alla creazione di un nuovo utente, se non si specifica il gruppo principale, di default creano un gruppo con lo stesso nome dell'utente di cui l'utente diventa titolare. Altri sistemi hanno il gruppo "users" in cui vengono automaticamente inseriti tutti gli utenti aggiunti al sistema. Le righe di /etc/group si presentano nella seguente forma: GroupName:Password:GroupID:User1,User2,...,UserN GroupName Indica il nome del gruppo. Password Indica la password del gruppo. Solitamente non viene data una password al gruppo ma solo ai singoli utenti. GroupID Indica l'id associato a quel gruppo. User1,...,UserN E' l'elenco degli users aventi tale gruppo come gruppo supplementare. I nomi dei singoli users devono essere sparati da una virgola. groupadd Crea un nuovo gruppo. Il nuovo gruppo verrà aggiunto ai file di sistema necessari. SINTASSI: # groupadd [opzioni] nome_gruppo [-o] -g #gid Specifica il valore numerico dell'identificatore del gruppo (#gid). Deve essere univoco, a meno che si usi l'opzione -o. groupdel Modifica i file di account del sistema, rimuovendo tutte le voci che si riferiscono al nome del gruppo specificato (che si suppone esistente). Non è possibile rimuovere il gruppo primario di un utente senza aver rimosso prima quest'ultimo. SINTASSI: # groupdel nome_gruppo groupmod Modifica la definizione di un gruppo sul sistema. SINTASSI: # groupmod [opzioni] groupname [-o] -g #gid Modifica l'id del gruppo groupname in #gid. Il flag -o consente l'uso di un #gid non univoco. -n group_name Modifica il nome del gruppo groupname nel nuovo nome group_name. Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 24

25 Ogni account utente è caratterizzato da: username (pubblico), userid (pubblico), password (privata), groupname (pubblico), groupid (pubblico). useradd Comando di basso livello per la creazione di un nuovo utente (analogo alla procedura guidata offerta dal comando adduser nomeutente). SINTASSI: # useradd [opzioni] nomeutente -d home_dir Setta la home-directory dell'utente -m Crea la home-directory dell'utente -k /etc/skel Copia i file i file predefiniti nella home del nuovo utente -e #YYYY-MM-DD Imposta la data di scadenza dell'account -f giorni_inattività Indica il numero di giorni, che intercorrano fra la data di expire della password e la disabilitazione dell'account -g/--gid nome_gruppo/#gid Nome o #gid del gruppo principale assegnato al nuovo utente. Tale gruppo deve esistere! -G gruppo1[,gruppo2,...,gruppon] Lista di gruppi supplementari assegnati all utente. Tali gruppi devono esistere -p password_criptata Setta la password per il nuovo utente. La password inserita dev'essere la versione crittografata (hash MD5) -s defaultshell Nome della shell di login dell utente [-o] -u #uid Valore numerico assegnato all id utente. Dev'essere univoco a meno che non si usi l'opzione -o. -D [opzioni] Modifica le impostazioni di default di un nuovo utente # useradd -d /home/ciccio -m -k /etc/skel -g 100 -s /bin/bash ciccio passwd Comando che permette di settare o modificare la password di un utente. L'utente root può modificare le password di ogni utente, mentre gli utenti normali possono modificare solo la propria. SINTASSI: # passwd [opzioni] nomeutente Opzione: -d Disabilita la password per l'utente Il file /etc/passwd è il database degli utenti su ogni sistema Unix. Ad ogni user è dedicata una riga che definisce quali sono i suoi principali attributi. Sui sistemi Unix meno recenti in questo file viene scritta anche la password (criptata); su quelli più recenti essa viene scritta, generalmente, in /etc/shadow, che ha maggiori restrizioni in termini di sicurezza (visualizzate i diritti associati al file /etc/passwd). Le righe di /etc/passwd si presentano nella seguente forma: Username:Password:UserID:GroupID:Info:HomeDirectory:Shell Username Password UserID GroupID Info Nome di login al sistema dell'utente Campo riservato alla password dell'utente. Può essere scritta direttamente in forma criptata o esserci semplicemente una x (la password c'è ma è scritta altrove, di solito in /etc/shadow). Se c'è un * significa che l'utente o non ha una password o la password non è valida (in questo caso non gli è permesso il login) ID dell'user ID del gruppo di appartenenza Contiene informazioni sull'utente non necessarie al sistema (nome esteso, numero di telefono, mail,etc...) HomeDirectory Indica la directory della home dell'utente Shell Indica la shell di default per l'utente Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 25

26 Storicamente su Unix il file /etc/passwd conteneva l'elenco di tutti gli utenti e la loro password in forma criptata. Per la stessa natura di Unix, tutti gli utenti devono poter aver accesso in lettura a questo file, per cui esporre le password di tutti, seppur criptate, risultava rischioso per la sicurezza del sistema. Su tutti i sistemi Linux e Unix recenti, la gestione della password è stata migliorata sia in termini di sicurezza che di versatilità, affiancando al normale /etc/passwd la gestione del file /etc/shadow che introduce nuove funzionalità (vedi i diritti associati al file /etc/shadow e confronta con /etc/passwd). Questo file è leggibile solo dal root, mentre viene lasciato l'accesso in lettura a /etc/passwd per tutti gli utenti. Le password in /etc/shadow sono criptate con algoritmi più complessi e robusti. È possibile gestire il tempo di scadenza, la durata minima e massima e i tempi di notifica della password. Il file /etc/shadow è il database delle password sui sistemi Unix più evoluti. In esso sono elencate, per ogni utente, la password (criptata) e vari parametri ad essa connessi (ultima modifica, durata massima e minima, ecc...). Ad esso fanno riferimento diversi files, fra cui /etc/passwd e tutti i comandi per la gestione degli utenti (useradd, userdel, usermod). Le righe in /etc/shadow si presentano nella seguente forma: Username:password:lastchange:min:max:warn:inactive:expire Username Il nome dell'utente a cui fa riferimento la password Password Password criptata (13 caratteri). Può assumere anche altri valori quali * che sta ad indicare che l'utente è disabilitato e!! (o nessun carattere) che indica che l'utente non ha password lastchange Numero di giorni compresi fra il 1 gennaio 1970 e l'ultima modifica della password min Minimo numero di giorni dall'ultima data di modifica prima di poter nuovamente cambiare la password max Durata massima della password (sempre in giorni) warn Numero di giorni di preavviso all'utente prima di invalidare la password inactive Numero di giorni di inattività possibili per l'utente expire Data dopo la quale il login non può più essere effettuato userdel Rimuove l'account di un utente, ma non i file relativi. SINTASSI: # userdel [opzioni] nome_utente -r Rimuove anche i file della home_directory utente usermod Comando che permette di cambiare le impostazioni di un account creato precedentemente. L'utente che lancia il comando deve possedere i privilegi di amministratore. SINTASSI # usermod [opzioni] login-name -d home_dir Modifica la home_dir dell'utente -e expire_date Modifica l'expire_date -f inactive_days Modifica il numero di giorni che intercorrono fra la scadenza della password e la disabilitazione dell'account -g initial_group Modifica il gruppo primario -G groups Modifica i Gruppi secondari -l login Cambia il nome di login dell'utente -p password Modifica la password criptata (sconsigliato) -s shells Modifica la shell di default dell'utente -u UID Modifica l'uid -L Esegue il lock dell'account -U Operazione inversa del lock, ovvero riabilita l'account Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 26

27 su (substitute user) Cambia id utente o diventa superuser, se il nome utente non è specificato. SINTASSI: $ su [opzioni] [nomeutente] -l Fornisce un ambiente simile a quello di login dell'utente $ su (si intende root) Esercizi 1. Creare un nuovo gruppo di nome 'new' assegnando l'id 1001 che corrisponde al gid di un gruppo esistente. 2. Creare un nuovo utente con lo stesso nome del gruppo appena creato e assegnargli il gruppo new. 3. Cambiare il gruppo principale dell'utente appena creato in usera e assegnare l'utente al gruppo supplementare supa. 4. Rimuovere il gruppo creato all'esercizio 1. Viene rimosso anche il gruppo con #gid=1001? 5. Definire una serie di comandi che consentano di creare manualmente un nuovo utente, senza far ricorso ai comandi useradd o adduser. Si suppone che il comando di riferimento sia: useradd -u gid d /home/ciccio -m -k /etc/skel -s /bin/bash ciccio a. Loggarsi come amministratore b. Editare il file /etc/passwd ciccio:x:1006:1007::/home/ciccio:/bin/bash c. Editare il file /etc/group ciccio:x:1007 d. Editare il file /etc/shadow ciccio:...:15482:0:999:7::: e. Creare la home directory mkdir /home/ciccio f. Inizializzare i file della home cp /etc/skel/* /home/ciccio g. Cambiare il proprietario della home directory chown ciccio:ciccio /home/ciccio h. Cambiare i diritti di accesso alla home directory chmod 700 /home/ciccio i. Impostare una password per l'utente ciccio passwd ciccio Comandi informativi Consentono di ottenere dal sistema informazioni sugli utenti. id Mostra gli identificatori numerici (uid, gid, groups), e i nomi simbolici ad essi associati, dell'utente indicato come argomento. SINTASSI: $ id [opzioni] [nomeutente] -u Filtra sull'utente (mostra solo l'id) -g Filtra sul gruppo principale (mostra solo l'id) -G Filtra sui gruppi supplementari (mostra solo l'id) -n Se utilizzato assieme a -u, -g e -G mostra solo il nome anzichè l'id numerico silvia@ubuntu:~ id silvia Esercitazioni comandi shell Bash (Ing. S. Giannini) Pagina 27

Lesson #4. Espressioni Regolari. Roberto De Virgilio

Lesson #4. Espressioni Regolari. Roberto De Virgilio Lesson #4 Espressioni Regolari Roberto De Virgilio Sistemi operativi - 9 Novembre 2015 Espressioni regolari in Unix Patterns (modelli) che individuano insiemi di stringhe (linguaggi) e rappresentano uno

Dettagli

Espansione della shell 1) Espansione delle parentesi graffe

Espansione della shell 1) Espansione delle parentesi graffe Espansione della shell 1) Espansione delle parentesi graffe p{a,e,i,o,u}zza 2) Espansione della tilde ~oliva 3) Espansione dei parametri e delle variabili $USER,$0 4) Sostituzione di comando $(wc -l

Dettagli

Linux - La Shell Bash

Linux - La Shell Bash DEI DEI -- Politecnico di di Bari Bari Linux - La Shell Bash Gestione file e directory Directory di sistema Percorsi relativi e assoluti I comandi: pwd, ls, cd, cp, rm, mv, mkdir, rmdir, stat, touch Esercizi

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2016/2017. Comandi Shell

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2016/2017. Comandi Shell Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2016/2017 Comandi Shell 1 Sommario Comandi shell: ls, cd, pwd echo touch cat head tail cut sort 2 Esercizio n 0 0a) Creare una cartella EsercitazioneLSO-1

Dettagli

SHELL: File e Filesystem

SHELL: File e Filesystem SHELL: File e Filesystem Obiettivi : - Usare i comandi per muoversi all'interno del filesystem - Copiare, spostare, rinominare file e directory - Usare i link - Visualizzare il contenuto di un file - Conoscere

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2018/2019. Comandi Shell

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2018/2019. Comandi Shell Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2018/2019 Comandi Shell 1 Sommario Comandi shell: ls, cd, pwd echo touch cat head tail cut sort 2 Esercizio n 0 0a) Creare una cartella EsercitazioneLSO-1

Dettagli

File System Unix. Generalità

File System Unix. Generalità File System Unix Generalità File System: Caratteristiche Struttura gerarchica Files senza struttura (byte strems) Protezione da accessi non autorizzati Semplicità di struttura "On a UNIX system, everything

Dettagli

Organizzazione di Sistemi Operativi e Reti

Organizzazione di Sistemi Operativi e Reti Organizzazione di Sistemi Operativi e Reti Corso di Laurea Triennale in Ingegneria Informatica Sara Lioba Volpi (sara.volpi@iet.unipi.it) Terza Esercitazione Sommario Shell (I lezione) Permessi (II esercitazione)

Dettagli

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell Lab. di Sistemi Operativi - Esercitazione - Comandi Shell 1 - Esercizi Comandi Unix - 2 Esercizio n 0 0a) creare una cartella EsercitazioneLSO-1 nella directory di lavoro 0b) creare un file testo chiamato

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2015/2016. Comandi Shell

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2015/2016. Comandi Shell Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2015/2016 Comandi Shell 1 Ciclo Esecuzione Shell Comandi Comandi shell: mkdir touch echo cp echo cat cut head tail sort 3 Esercizio n 0 0a) Creare una

Dettagli

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini Sistemi Operativi Corso di Laurea Triennale in Ingegneria Informatica Shell (prosecuzione) Permessi (prosecuzione) Gestione utenti (prosecuzione) Daniel Cesarini daniel.cesarini@for.unipi.it www.iet.unipi.it/d.cesarini

Dettagli

La Shell di Unix. l utente impartisce i comandi al sistema digitandoli ad un apposito prompt;

La Shell di Unix. l utente impartisce i comandi al sistema digitandoli ad un apposito prompt; La Shell di Unix La parte del sistema operativo Unix dedita alla gestione dell interazione con l utente è la shell, ovvero, un interfaccia a carattere: l utente impartisce i comandi al sistema digitandoli

Dettagli

Corso di Sistemi Operativi I/II. Introduzione a Linux. Il File System. Ruggero Donida Labati

Corso di Sistemi Operativi I/II. Introduzione a Linux. Il File System. Ruggero Donida Labati Corso di Sistemi Operativi I/II Introduzione a Linux Il File System Ruggero Donida Labati Dipartimento di Informatica via Bramante 65, 26013 Crema (CR), Italy http://homes.di.unimi.it/donida ruggero.donida@unimi.it

Dettagli

Come si accede a BASH Tasti utili: Ctrl-Alt-F1, Ctrl-Alt-F7. Il Primo comando : exit (CASE SENSITIVE!!) Si può uscire con CTRL-D

Come si accede a BASH Tasti utili: Ctrl-Alt-F1, Ctrl-Alt-F7. Il Primo comando : exit (CASE SENSITIVE!!) Si può uscire con CTRL-D Come si accede a BASH Tasti utili: Ctrl-Alt-F1, Ctrl-Alt-F7 Il Primo comando : exit (CASE SENSITIVE!!) Si può uscire con CTRL-D Il secondo comando: ls Opzioni: ls l, ls a, ls R ls --full-time Parametri:

Dettagli

LABORATORIO DI SISTEMI OPERATIVI

LABORATORIO DI SISTEMI OPERATIVI LABORATORIO DI SISTEMI OPERATIVI Corso di Laurea Triennale in Ingegneria Informatica A.A. 2018/2019 Guglielmo Cola Email: g.cola@iet.unipi.it Web: iet.unipi.it/g.cola Esercitazione 3 Gestione utenti (seconda

Dettagli

LABORATORIO DI SISTEMI OPERATIVI

LABORATORIO DI SISTEMI OPERATIVI LABORATORIO DI SISTEMI OPERATIVI Corso di Laurea Triennale in Ingegneria Informatica A.A. 2018/2019 Guglielmo Cola Email: g.cola@iet.unipi.it Web: www.iet.unipi.it/g.cola Informazioni generali Ricevimento

Dettagli

Lezione 2: Comandi avanzati della Shell di Unix

Lezione 2: Comandi avanzati della Shell di Unix Lezione 2: Comandi avanzati della Shell di Unix Laboratorio di Elementi di Architettura e Sistemi Operativi 6 Marzo 2013 Parte 1: Metacaratteri, link e file speciali I metacaratteri La shell riconosce

Dettagli

File System I parte. File System

File System I parte. File System File System I parte File System Dati e Programmi sono organizzati mediante una struttura di files e directories: file: collezione di dati directory: collezione di file o di directory Il file system possiede

Dettagli

Linux e la shell Bash

Linux e la shell Bash DEI DEI-- Politecnico di dibari Linux e la shell Bash Gestione file e directory Directory di sistema Percorsi relativi e assoluti I comandi: pwd, touch, cd, ls, mkdir, rmdir, cp, rm, mv, file, stat Esercizi

Dettagli

Lezione XII.IV Gestione dei file Uso della shell I permessi di accesso

Lezione XII.IV Gestione dei file Uso della shell I permessi di accesso Programmazione e Laboratorio di Programmazione Lezione XII.IV Gestione dei file Uso della shell I permessi di accesso Programmazione e Laboratorio di Programmazione: Gestione dei file Uso della shell 1

Dettagli

Sistemi Operativi e informatica 1

Sistemi Operativi e informatica 1 1 Dip. Scienze dell Informatica Università degli Studi di Milano, Italia marchi@dsi.unimi.it a.a. 2011/12 1 c 2010-2012 M.Monga R.Paleari M.. Creative Commons Attribuzione-Condividi allo stesso modo 2.5

Dettagli

Codice Corso: UNX010. Durata: 3 giorni

Codice Corso: UNX010. Durata: 3 giorni Codice Corso: UNX010 Durata: 3 giorni Obiettivi: In questo corso si imparano i comandi, la terminologia, la struttura del file system, delle directory e dei processi, e gli aspetti di base dell'architettura

Dettagli

Introduzione alla programmazione nella shell di Unix 10 Maggio 2005

Introduzione alla programmazione nella shell di Unix 10 Maggio 2005 Introduzione alla programmazione nella shell di Unix 10 Maggio 2005 1 Page 1 Shell e programmazione La shell di UNIX definisce un vero e proprio linguaggio di programmazione, le cui caratteristiche principali

Dettagli

Editor, Utenti e Permessi Insegnamento di Sistemi Operativi di Rete Master Universitario in Tecnologie Internet

Editor, Utenti e Permessi Insegnamento di Sistemi Operativi di Rete Master Universitario in Tecnologie Internet Editor, Utenti e Permessi Insegnamento di Sistemi Operativi di Rete Master Universitario in Tecnologie Internet Domenico De Guglielmo E-mail: domenicodegu@virgilio.it Telefono: 050 2217 468 Pervasive Computing

Dettagli

Linux e la shell Bash

Linux e la shell Bash DEI DEI-- Politecnico di dibari Linux e la shell Bash Esercitazione conclusiva G. Piscitelli - M. Ruta - A. Cinquepalmi Testi di riferimento: Linux e la shell Bash http://sisinflab.poliba.it/ruta/linux/linux

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 2- - comando di ricerca: grep -

Lab. di Sistemi Operativi - Esercitazione n 2- - comando di ricerca: grep - Lab. di Sistemi Operativi - Esercitazione n 2- - comando di ricerca: grep - 1 Ricordiamo che Le righe di /etc/passwd si presentano nella seguente forma: Username:Password:UserID:GroupID:Info:HomeDirectory:Shell

Dettagli

BREVISSIMA GUIDA AL SISTEMA UNIX / LINUX

BREVISSIMA GUIDA AL SISTEMA UNIX / LINUX BREVISSIMA GUIDA AL SISTEMA UNIX / LINUX 1. DEFINIZIONI sistema operativo (SO): Software che gestisce le risorse del computer (filesystem e periferiche) filesystem: Insieme dei supporti di memorizzazione.

Dettagli

Utenti e Permessi. Andrea Bontempi. Corsi Linux POuL

Utenti e Permessi. Andrea Bontempi. Corsi Linux POuL POuL Corsi Linux 2013 Multiutenza Uno dei cardini dell informatica moderna è il multitasking, insieme alla possibilità di fare più cose in contemporanea si è però affiancata anche l esigenza che più persone

Dettagli

File System. File system gerarchico. Proteggere la propria home directory ... / = Root nodi interni: directory foglie: directory vuote o file

File System. File system gerarchico. Proteggere la propria home directory ... / = Root nodi interni: directory foglie: directory vuote o file File system gerarchico File System = Root nodi interni: directory foglie: directory vuote o file Arancio: porzione del f.s. di sistema Altri colori: sottoalberi del sistema operativo di proprietà dei vari

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Lezione 23 Martedì 17-01-2017 Il file system Il file system si basa sulle astrazioni

Dettagli

L utility Unix awk [Aho-Weinberger-Kernighan]

L utility Unix awk [Aho-Weinberger-Kernighan] L utility Unix awk [Aho-Weinberger-Kernighan] L utility awk serve per processare file di testo secondo un programma specificato dall utente. L utility awk legge riga per riga i file ed esegue una o più

Dettagli

Shell. Una shell di comandi ci consente, dunque, di eseguire tutte le operazioni di cui abbiamo bisogno!

Shell. Una shell di comandi ci consente, dunque, di eseguire tutte le operazioni di cui abbiamo bisogno! Shell La shell consente all'utente di interfacciarsi con il Sistema Operativo attraverso riga di comando. (Se avete installato correttamente Linux è molto probabile che la shell di comando funzioni anche

Dettagli

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini Daniel Cesarini

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini Daniel Cesarini Sistemi Operativi Corso di Laurea Triennale in Ingegneria Informatica Daniel Cesarini (daniel.cesarini@for.unipi.it) 1 Informazioni Generali Ricevimento su appuntamento (tramite e-mail). E-mail daniel.cesarini@for.unipi.it

Dettagli

File System ext2. Struttura del filesystem ext2.

File System ext2. Struttura del filesystem ext2. Struttura di base File System ext2 Lo spazio fisico di un disco viene usualmente diviso in partizioni; ogni partizione può contenere un filesystem. Nel filesystem ext2 il blocco (block) definisce la minima

Dettagli

Lezione 2: Comandi avanzati della Shell di Unix

Lezione 2: Comandi avanzati della Shell di Unix Lezione 2: Comandi avanzati della Shell di Unix Laboratorio di Elementi di Architettura e Sistemi Operativi 14 Marzo 2012 Parte 1: Soluzione degli esercizi Statistiche Ho ricevuto 21 soluzioni Tutte le

Dettagli

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi Sistemi Operativi Corso di Laurea Triennale in Ingegneria Informatica Editor Utenti Permessi Esercitazione 2 Domande sulle lezioni passate? Lezione 2 Editor Utenti e gruppi, Permessi, Gestione utenti (prima

Dettagli

Page 1. Programmazione. Shell e programmazione. File comandi (script) Introduzione alla programmazione nella shell di Unix

Page 1. Programmazione. Shell e programmazione. File comandi (script) Introduzione alla programmazione nella shell di Unix Introduzione alla programmazione nella shell di Unix 10 Maggio 2005 1 Programmazione E` possibile memorizzare sequenze di comandi all'interno di le eseguibili: Ad esempio: #!bin/bash echo hello world!

Dettagli

Introduzione all'uso del sistema operativo Ubuntu

Introduzione all'uso del sistema operativo Ubuntu Introduzione all'uso del sistema operativo Ubuntu Aprire un Terminal. Osservare il prompt dei comandi Una shell è pronta ad interpretare ed eseguire i vostri comandi consentendovi di accedere ai servizi

Dettagli

&& (nessun altro processo ha il file aperto) && (il fd e chiuso) Cancella il file;

&& (nessun altro processo ha il file aperto) && (il fd e chiuso) Cancella il file; CREAZIONE ritorna fd o 1 Pseudocodice dell operazione: If(file esiste) If(Write permission) Tronca la lunghezza a 0 e lascia il file aperto in scrittura; Else Exit(-1); Else Alloca un nuovo INODE con link=1

Dettagli

Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013

Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013 Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013 Processi bash 1 Sommario I processi Comando ps (process status) Terminazione di un processo CTRL-C Kill Controllo dei processi Processi in background

Dettagli

Esempio di domande sul file system

Esempio di domande sul file system Esempio di domande sul file system Si supponga che un file system usi blocchi di 4 Kbyte, e che un puntatore ad un blocco occupi 4 byte. Se l INODE di un file utilizza 12 blocchi, un blocco indiretto ed

Dettagli

Introduzione a Unix/Bash. Insieme minimo di strumenti per interagire con la shell Bash, compilare ed eseguire

Introduzione a Unix/Bash. Insieme minimo di strumenti per interagire con la shell Bash, compilare ed eseguire Introduzione a Unix/Bash Insieme minimo di strumenti per interagire con la shell Bash, compilare ed eseguire Sistema operativo e shell Il sistema operativo è un programma che Fa da intermediario fra le

Dettagli

Introduzione al sistema Linux

Introduzione al sistema Linux Introduzione al sistema Linux Stazioni di lavoro: PC con sistema operativo Linux Connessione al sistema Username : cognome1 Password : FirstLogin (cambiate la password con yppasswd appena possibile) Linux:

Dettagli

Esercizi su permessi

Esercizi su permessi Esercizi su permessi usare umask per verificare il valore corrente creare file e directory verificare i permessi cambiare umask e ripetere l esercizio verificando come cambiano i permessi creare una cartella

Dettagli

Linux - La Shell Bash

Linux - La Shell Bash DEI DEI -- Politecnico di di Bari Bari Linux - La Shell Bash I link Hard link e soft link Il comando ln Redirezione dell I/O Concatenamento di comandi: la pipeline Visualizzazione ed diting di file Filtri

Dettagli

Utenti. Il cuore del sistema di gestione degli utenti si trova nei file. Anche altri file sono (più o meno) importanti in questo processo:

Utenti. Il cuore del sistema di gestione degli utenti si trova nei file. Anche altri file sono (più o meno) importanti in questo processo: Utenti Il cuore del sistema di gestione degli utenti si trova nei file /etc/passwd /etc/group /etc/shadow Anche altri file sono (più o meno) importanti in questo processo: /etc/skel/ /etc/motd... /etc/passwd

Dettagli

Bash: history list (I)

Bash: history list (I) Bash: history list (I) L history list è un tool fornito dalla shell bash che consente di evitare all utente di digitare più volte gli stessi comandi: bash memorizza nell history list gli ultimi 500 comandi

Dettagli

ORGANIZZAZIONE del FILE SYSTEM SISTEMA OPERATIVO UNIX FILE SYSTEM. FILE astrazione unificante del sistema operativo

ORGANIZZAZIONE del FILE SYSTEM SISTEMA OPERATIVO UNIX FILE SYSTEM. FILE astrazione unificante del sistema operativo FILE SYSTEM SISTEMA OPERATIVO UNIX - FILE COME SEQUENZA DI BYTE NON sono pensate organizzazioni logiche o accessi a record - FILE SYSTEM gerarchico ALBERO di sottodirettori - OMOGENEITÀ dispositivi e file

Dettagli

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat. Esame Laboratorio di Sistemi Operativi 2-01-2008 Il compito è costituito da domande chiuse e domande aperte. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 1 ora. Domande chiuse:

Dettagli

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A. 2005-2006

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A. 2005-2006 Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione Corso di Sistemi Operativi A. A. 2005-2006 Link e permessi Link Un riferimento ad un file è detto link Ogni file può avere un numero

Dettagli

Linux e la shell Bash

Linux e la shell Bash Fondamenti di Sistemi Operativi Linux e la shell Bash I link Hard link e soft link Il comando ln Redirezione dell I/O Concatenamento di comandi: la pipeline Visualizzazione ed editing di file I comandi:

Dettagli

File System e Interprete Comandi

File System e Interprete Comandi File System e Interprete Comandi Marco Alberti Programmazione e Laboratorio, A.A. 2016-2017 Dipartimento di Matematica e Informatica - Università di Ferrara Ultima modifica: 29 settembre 2016 Sommario

Dettagli

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini.

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini. Sistemi Operativi Corso di Laurea Triennale in Ingegneria Informatica 3 Shell (prosecuzione) Permessi (prosecuzione) Gestione utenti (prosecuzione) Daniel Cesarini daniel.cesarini@for.unipi.it www.iet.unipi.it/d.cesarini

Dettagli

Ulteriori comandi sui file

Ulteriori comandi sui file Ulteriori comandi sui file Confronto tra file: 1. > cmp file1 file2 restituisce il primo byte ed il numero di linea in cui file1 e file2 differiscono (se sono uguali, non viene stampato nulla a video).

Dettagli

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi Sistemi Operativi Corso di Laurea Triennale in Ingegneria Informatica Editor Utenti Permessi Esercitazione 2 Domande sulle lezioni passate? Lezione 2 Editor Utenti e gruppi, Permessi, Gestione utenti (prima

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi Laboratorio di Sistemi Operativi LAB8 Uso della shell nella gestione dei file 2002/2003 Pagani Trentini Slide 1 Concetti base Filesystem, i nodes Comandi Agenda Spostarsi (cd, pwd, etc.) Leggere (ls, ll,

Dettagli

Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica

Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica Ing. Daniele Migliorini (daniele.migliorini@for.unipi.it) # 1 1 Seconda Esercitazione # 2 2 Sommario Editor Utenti e gruppi, Permessi,

Dettagli

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 3. Gestione utenti (prosecuzione) MBR e GPT Partizioni

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 3. Gestione utenti (prosecuzione) MBR e GPT Partizioni Sistemi Operativi Corso di Laurea Triennale in Ingegneria Informatica Esercitazione 3 Gestione utenti (prosecuzione) MBR e GPT Partizioni Domande sulle lezioni passate? Esercizio Esercizio Supporre di

Dettagli

Lezione 3: Programmazione della Shell di Unix

Lezione 3: Programmazione della Shell di Unix Lezione 3: Programmazione della Shell di Unix Laboratorio di Elementi di Architettura e Sistemi Operativi 2 Marzo 202 Parte : Soluzione degli esercizi Statistiche Ho ricevuto 2 soluzioni Tutte le soluzioni

Dettagli

Sistemi Operativi FILE SYSTEM : INTERFACCIA. D. Talia - UNICAL. Sistemi Operativi 8.1

Sistemi Operativi FILE SYSTEM : INTERFACCIA. D. Talia - UNICAL. Sistemi Operativi 8.1 FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Senza Soluzioni. Può un altro utente non appartenente al gruppo di mgiorgio, eseguire gli stessi comandi?

Senza Soluzioni. Può un altro utente non appartenente al gruppo di mgiorgio, eseguire gli stessi comandi? Senza Soluzioni Scrivere i due seguenti semplici script in bash shell: a. (1.5pt.)uno script che cancella un file dando il suo inode. Lo script e' attivato cosi': irm b. (1.5pt.)uno script che

Dettagli

Esercitazione 1 la shell

Esercitazione 1 la shell Esercitazione 1 la shell Obiettivi Prendere confidenza con i comandi per la gestione del file system Utilizzare gli strumenti visti a lezione per creare tre semplici script bash File system 1/2 1. Verificare

Dettagli

Cos'è Linux. Un sistema operativo : un insieme di programmi necessari per il funzionamento del computer e per il funzionamento di altri programmi.

Cos'è Linux. Un sistema operativo : un insieme di programmi necessari per il funzionamento del computer e per il funzionamento di altri programmi. Cos'è Linux Un sistema operativo : un insieme di programmi necessari per il funzionamento del computer e per il funzionamento di altri programmi. Unix gratuito : una implementazione gratuita di Unix per

Dettagli

Sistemi Operativi (modulo di Informatica II) L interfaccia del file system

Sistemi Operativi (modulo di Informatica II) L interfaccia del file system Sistemi Operativi (modulo di Informatica II) L interfaccia del file system Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di file Metodi di accesso Struttura delle

Dettagli

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab Shell. Lab-Shell 1

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni. Lab Shell. Lab-Shell 1 Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab Shell Lab-Shell 1 Scelta della shell La prima riga di un file comandi deve specificare quale shell si vuole utilizzare:

Dettagli

Lezione 1: Introduzione alla Shell di Unix

Lezione 1: Introduzione alla Shell di Unix Lezione 1: Introduzione alla Shell di Unix Laboratorio di Elementi di Architettura e Sistemi Operativi 5 Marzo 2013 Chi è UNIX? UNIX è il nome di una famiglia di sistemi operativi, con diverse implementazioni

Dettagli

- comando sort: con chiavi di ordinamento -

- comando sort: con chiavi di ordinamento - - comando sort: con chiavi di ordinamento - 1 - sort: chiavi di ordinamento - Tramite l'opzione -k è possibile definire una chiave di ordinamento su una porzione della linea contenuta nel file Specificando

Dettagli

Uso del terminale in ambiente UNIX

Uso del terminale in ambiente UNIX Uso del terminale in ambiente UNIX Non sempre è disponibile un interfaccia grafica sui computer su cui si lavora In questo caso l interazione con il calcolatore avviene attraverso l interfaccia a riga

Dettagli

Lab. di Sistemi Operativi

Lab. di Sistemi Operativi Lab. di Sistemi Operativi Esercitazioni proposte per la lezione del 9 marzo 2012 Utilizzando la shell di Linux e disponendosi in gruppi di due persone per ogni PC del laboratorio. 1. Elencare i file nella

Dettagli

Utente. Sistemi operativi 2003/2004. /etc/passwd

Utente. Sistemi operativi 2003/2004. /etc/passwd Sistemi operativi 2003/2004 La gestione degli utenti Utente Ha qualche tipo di accesso alla macchina Deve identificarsi fornendo una login e una password ( account ) login, logout Ci sono utenti locali

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 3 - a.a. 2016/2017. Script shell

Lab. di Sistemi Operativi - Esercitazione n 3 - a.a. 2016/2017. Script shell Lab. di Sistemi Operativi - Esercitazione n 3 - a.a. 2016/2017 Script shell 1 Sommario Script shell Script shell con struttura di controllo ed iterativa: if then ciclo for ciclo While ciclo Until 2 - Script

Dettagli

Introduzione. P4 termina prima di P3, P2 e P3 prima di P1 P1 P2 P3 P4 P1 P1 P2 P3 P4. Padre. P1,..., P4 sono processi. Figlio

Introduzione. P4 termina prima di P3, P2 e P3 prima di P1 P1 P2 P3 P4 P1 P1 P2 P3 P4. Padre. P1,..., P4 sono processi. Figlio Processi Introduzione Processo = entità attiva 1. esiste per un certo lasso di tempo 2. utilizza risorse Ogni processo ha un identificatore intero (PID: process identifier) Tutti i processi UNIX hanno

Dettagli

Introduzione a Unix e comandi principali. Sistema multitasking e multiuser. Concetto di Terminale. Login con username e password

Introduzione a Unix e comandi principali. Sistema multitasking e multiuser. Concetto di Terminale. Login con username e password Introduzione a Unix e comandi principali Sistema multitasking e multiuser Concetto di Terminale Login con username e password il processo di login riconosce la homedirectory e fa partire l interprete dei

Dettagli

Linux e la shell Bash

Linux e la shell Bash DEI DEI-- Politecnico di dibari Gestione utenti e gruppi Comandi: who, whoami, id, last, su, sudo, date, passwd, shadow, useradd, userdel, groupadd, groupdel, groups, newgrp, sg, alias, unalias Variabili

Dettagli

Laboratorio. Sistemi Operativi: Linux/Windows. Giovanni Da San Martino

Laboratorio. Sistemi Operativi: Linux/Windows. Giovanni Da San Martino Laboratorio Sistemi Operativi: Linux/Windows Giovanni Da San Martino dasan@math.unipd.it 1 Sistemi operativi Un sistema operativo è insieme di programmi che gestiscono la macchina fisica. Un sistema operativo

Dettagli

File-System! Introduzione al File-System! Struttura dei File! Concetto di File!

File-System! Introduzione al File-System! Struttura dei File! Concetto di File! File-System Introduzione al File-System Dal punto di vista dell utente File Directory Metodi e strutture per garantire accesso organizzazione condivisione protezione su/ai dati memorizzati Operating System

Dettagli

L ambiente UNIX/Linux. I filtri Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

L ambiente UNIX/Linux. I filtri Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino L ambiente UNIX/Linux I filtri Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Filtri In UNIX/Linux un filtro è un comando che Riceve il proprio input da standard input Lo

Dettagli

Esercitazione GNU/Linux n. 2

Esercitazione GNU/Linux n. 2 2.1 Copiare i file cp (copy) Esercitazione GNU/Linux n. 2 cp file1 file2 è il comando che crea una copia del file1 presente nella directory corrente e la chiama file2 Ciò che faremo adesso, è prendere

Dettagli

Laboratorio di sistemi operativi A.A. 2010/2011 Gruppo 2 Gennaro Oliva Processi

Laboratorio di sistemi operativi A.A. 2010/2011 Gruppo 2 Gennaro Oliva Processi Laboratorio di sistemi operativi A.A. 2010/2011 Gruppo 2 Gennaro Oliva Processi Processo L'istanza di un programma in esecuzione in ambiente UNIX viene detta processo Ogni programma può generare diversi

Dettagli

Interfaccia del file system

Interfaccia del file system Interfaccia del file system Concetto di file Metodi di accesso Struttura delle directory Protezione 1 Concetto di File Insieme di informazioni correlate, registrate in memoria secondaria, con un nome.

Dettagli

Processi. Introduzione. Effective user/group id. Fork

Processi. Introduzione. Effective user/group id. Fork Introduzione Processi = entità attiva 1. esiste per un certo lasso di tempo 2. utilizza risorse Ogni processo ha un identificatore intero (PID: process identifier) Tutti i processi UNIX hanno un genitore

Dettagli

Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013

Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013 Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013 Espressioni Regolari 1 Sommario Metacaratteri Quoting Comandi di filtro: grep Espressioni Regolari (E.R.): I caratteri grep con E.R. 2 - Metacaratteri

Dettagli

La struttura del Filesystem Linux

La struttura del Filesystem Linux La struttura del Filesystem Linux MontelLUG Montebelluna Linux User Group 27 settembre 2007 27 set 2007 - Montebelluna 1 Licenza d'utilizzo Copyright 2007, Questo documento viene rilasciato secondo i termini

Dettagli

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 3

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 3 Sistemi Operativi ì Corso di Laurea Triennae in Ingegneria Informatica Esercitazione 3 She (prosecuzione) Permessi (prosecuzione) Gestione utenti (prosecuzione) Domande sue ezioni passate? Souzione esercizi

Dettagli

Lab. di Sistemi Operativi - Esercitazione n 2 - a.a. 2012/2013

Lab. di Sistemi Operativi - Esercitazione n 2 - a.a. 2012/2013 Lab. di Sistemi Operativi - Esercitazione n 2 - a.a. 2012/2013 Comandi di ricerca 1 Sommario Comandi shell di ricerca: grep find 2 - comando di ricerca: grep - 3 file passwd, ricordiamo che Le righe di

Dettagli

i link Unix i link Unix gli hard link (link fisici)

i link Unix i link Unix gli hard link (link fisici) i link Unix 1 In Unix, un file è identificato univocamente dall index-node che contiene tutte le informazioni relative al file: i suoi attributi e in quali blocchi sono memorizzati i suoi dati. Entry nella

Dettagli

Il sistema operativo LINUX Esercitazione 3

Il sistema operativo LINUX Esercitazione 3 Il sistema operativo LINUX Esercitazione 3 Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica esercitazioni e temi d'esame 1

Dettagli

L ambiente UNIX/Linux. Comandi UNIX & Linux (parte A) Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

L ambiente UNIX/Linux. Comandi UNIX & Linux (parte A) Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino L ambiente UNIX/Linux Comandi UNIX & Linux (parte A) Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino 2 Installazione Linux Esistono diverse possibilità per avere a disposizione

Dettagli

Gestione Utenti & Permessi

Gestione Utenti & Permessi Gestione Utenti & Permessi Corsi Linux 2014 Gestione Utenti & Permessi Corsi Linux 2014 1 / 32 1 Utenti Ci sono utenti e l Utente... Creare un utente 2 I permessi U can t touch this Assegnare la proprietà

Dettagli

Linux e la shell Bash

Linux e la shell Bash Linux e la shell Bash Parte III Gestione utenti e gruppi Variabili d ambiente Gestione file system Avvio del sistema Testi di riferimento: Linux e la shell Bash La shell Bash http://sisniflab.poliba.it/ruta/linux/linux

Dettagli

Utenti e gruppi. Ogni utilizzatore di UNIX ha associato: Nomeutente nome alfanumerici UID identità numerica

Utenti e gruppi. Ogni utilizzatore di UNIX ha associato: Nomeutente nome alfanumerici UID identità numerica Utenti e gruppi Utenti e gruppi Ogni utilizzatore di UNIX ha associato: Un identità univoca Nomeutente nome alfanumerici UID identità numerica Uno o più gruppi Nomegruppo nome alfanumerico GID identità

Dettagli

Sistemi Operativi (modulo di Informatica II) L interfaccia del file system

Sistemi Operativi (modulo di Informatica II) L interfaccia del file system Sistemi Operativi (modulo di Informatica II) L interfaccia del file system Patrizia Scandurra Università degli Studi di Bergamo a.a. 2011-12 Sommario Il concetto di file Metodi di accesso Struttura delle

Dettagli

Laboratorio. Sistemi Operativi: Linux/Windows. Giovanni Da San Martino

Laboratorio. Sistemi Operativi: Linux/Windows. Giovanni Da San Martino Laboratorio Sistemi Operativi: Linux/Windows Giovanni Da San Martino dasan@math.unipd.it 1 Sistemi operativi Un sistema operativo è insieme di programmi che gestiscono la macchina fisica. Un sistema operativo

Dettagli

I.S. Sobrero. Dipartimento di Informatica. Utilizzo. install.linux@home. 16/02/2007 install.linux@home Marco Marchisotti

I.S. Sobrero. Dipartimento di Informatica. Utilizzo. install.linux@home. 16/02/2007 install.linux@home Marco Marchisotti I.S. Sobrero Dipartimento di Informatica Utilizzo install.linux@home 1 La shell La shell di Linux è a linea di comando. Appare obsoleta e difficile da usare, ma in realtà è molto più potente e versatile

Dettagli

Introduzione ai sistemi UNIX/Linux. Introduzione ai sistemi UNIX/Linux

Introduzione ai sistemi UNIX/Linux. Introduzione ai sistemi UNIX/Linux Introduzione ai sistemi UNIX/Linux M. Di Francesco, Vanessa Gardellin, Sara Volpi Ilaria Giannetti, Daniele Migliorini Dipartimento di Ingegneria dell Informazione Università di Pisa Informazioni generali

Dettagli

Corso di Laboratorio di Sistemi Operativi A.A Fabio Buttussi Ivan Scagnetto

Corso di Laboratorio di Sistemi Operativi A.A Fabio Buttussi Ivan Scagnetto Corso di Laboratorio di Sistemi Operativi A.A. 2006-2007 Fabio Buttussi Ivan Scagnetto Informazioni generali Orario: Martedì 15:00-16:45 e mercoledì 9:00-10:45 Docenti: Fabio Buttussi (prime 12 lezioni),

Dettagli

Il sistema operativo LINUX La shell

Il sistema operativo LINUX La shell Il sistema operativo LINUX La shell Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica Sistemi Operativi - Shell 1 La shell

Dettagli