Esercitazione Linux: Introduzione, shell, permessi

Transcript

Esercitazione Linux: Introduzione, shell, permessi
Sistemi Operativi
DEE - Politecnico di Bari
Introduzione a Linux
Introduzione a Linux
Shell bash
Testi di riferimento:
• Linux e la shell Bash
• La shell Bash
• Comandi shell bash
1
http://sisinflab.poliba.it/ruta/linux/Linux e la shell Bash.pdf
http://www-ictserv.poliba.it/piscitelli/doc/lab_esercitazioni_SO_no/bash_shell.pdf
http://sisinflab.poliba.it/giannini/SO/Comandi_shell_bash.pdf
A.A. 2016-2017
Sistemi Operativi
Linux - Introduzione
DEE - Politecnico di Bari
Cos’è LINUX?
•
Si tratta di un clone di UNIX
•
Più precisamente è il kernel del S.O.
Funzionalità di base
•
Scheduling dei processi
•
Gestione della memoria
•
Gestione dei file
•
Gestione dell’input/output
Funzionalità avanzate
•
Editing e compilazione
•
Giochi, grafica e multimedialità
•
Supporto al networking
2
A.A. 2016-2017
Sistemi Operativi
Caratteristiche del sistema
DEE - Politecnico di Bari
•
•
•
•
•
•
3
Nota sui numeri di versione
Le funzionalità
Il kernel
Il copyright
Programmi di servizio
Elaboratori di testo e videoscrittura
A.A. 2016-2017
Sistemi Operativi
I numeri di versione
DEE - Politecnico di Bari
•
Sono due, diversi e riferiti a:
•
Distribuzione
•
Kernel
•
Versioning differente per kernel e distribuzione
•
Cos’è una distribuzione
•
Si tratta del pacchetto completo comprendente:
1. LINUX (vale a dire il kernel)
2. Applicativi
•
E’ sviluppata da una comunità indipendente dalle altre
•
Cos’è un kernel
•
Si tratta dell’insieme delle routine di basso livello del S.O.
•
E’ dipendente in maniera debole dalla distribuzione
4
A.A. 2016-2017
Sistemi Operativi
Versioning del kernel (1/2)
DEE - Politecnico di Bari
•
Consiste di quattro cifre:
A.B.C[.D] (es. 2.6.12.3)
•
A: versione del kernel:
• viene modificato molto raramente;
• la più recente è la versione 3, nel 2011, per i 20 anni del kernel linux.
•
B: revisione "maggiore" del kernel:
• prima della serie 2.6.x,
• i numeri pari indicano un ramo stabile;
• i numeri dispari (come 1.1 oppure 2.5) indicano rami di sviluppo;
• a partire dalla serie 2.6.x,
• il versioning diventa di tipo time-based e lo sviluppo di nuove
caratteristiche avviene all'interno dello stesso ramo
5
A.A. 2016-2017
Sistemi Operativi
Versioning del kernel (2/2)
DEE - Politecnico di Bari
•
C: revisione "minore" del kernel:
• Inizialmente, questo numero aumentava in corrispondenza di
aggiornamenti riguardanti la sicurezza, correzioni di alcuni errori, nuove
caratteristiche, o nuovi driver;
• Modello attuale: viene cambiato solo quando nuovi driver o funzionalità
aggiuntive sono introdotte.
•
D: patch number:
• Serve a conteggiare correzioni e patch di sicurezza;
• Nel 2011 si passa direttamente dalla versione 2.6.39 alla 3.0
• Versioning dopo la versione 3.0
• La seconda cifra viene incrementata ad ogni rilascio (3.1, 3.2, ecc.)
• La terza cifra rappresenta il patch number
• Dalla versione 3.19, si è passati direttamente alla 4.0
6
A.A. 2016-2017
Sistemi Operativi
Funzionalità
DEE - Politecnico di Bari
• Multitasking e multiuser;
• Multiprocessing;
• Compatibilità con molte architetture di CPU:
• Intel x86;
• Sparc, Alpha, PowerPC;
• Compatibilità con diversi file system
• Compatibile con la maggioranza degli standard UNIX
• Controllo diretto dei job in esecuzione
• Console virtuale (modalità testuale)
• Coesistenza con altri S.O.
7
A.A. 2016-2017
Sistemi Operativi
X Window
DEE - Politecnico di Bari
•
•
•
•
•
•
•
Si tratta dell’interfaccia grafica per macchine UNIX
Ha una elevata configurabilità
Si basa sull’utilizzo di dispositivi di puntamento generici
E’ distribuita gratuitamente ed è open source
E’ presente anche un emulatore di terminale
Ha una architettura client-server
E’ stratificato e modulare
• X Server
• Window Manager
• Desktop Manager
8
A.A. 2016-2017
Sistemi Operativi
X Window: Architetttura
DEE - Politecnico di Bari
• La soluzione client-server
• E’ flessibile e vantaggiosa
• Si adatta bene a casi in cui non
serve un accesso grafico
• Il server X può non essere avviato
lasciando libere preziose risorse per
altre applicazioni
• Non vengono causati crash a causa
della gestione grafica
• Se il desktop manager si blocca non
occorre riavviare la macchina
• Il server ed il client possono trovar
posto su due macchine differenti
9
A.A. 2016-2017
Sistemi Operativi
X Server
DEE - Politecnico di Bari
Si occupa della gestione dell’hardware grafico
E’ a contatto con il kernel
Somiglia ai driver per scheda video di Windows
Esistono diversi tipi di X Server
Ogni X Server è riservato alla gestione di uno specifico
insieme di hardware
• E’ in esecuzione nella macchina fisica collegata ai
dispositivi di input-output
•
•
•
•
•
10
A.A. 2016-2017
Sistemi Operativi
Window Manager
DEE - Politecnico di Bari
•
•
•
•
•
•
E’ un pacchetto complementare rispetto a X Window
Non ha analogo in Microsoft Windows
Gestisce le funzionalità avanzate della GUI
Configura l’aspetto della barra del titolo di una finestra
Configura l’aspetto dei pulsanti, delle icone e dei menu
Gestisce le modalità operative
• Configurazione dei tasti del mouse
• Combinazioni di tasti per le scelte rapide
11
A.A. 2016-2017
Sistemi Operativi
Desktop Manager
DEE - Politecnico di Bari
E’ l’ambiente grafico vero e proprio
Si tratta del lato client del sistema grafico di LINUX
E’ basato su librerie e componenti specifiche
Viene distribuito con i relativi programmi
configurazione
• I più famosi
•
•
•
•
• KDE (Usa la libreria QT)
• GNOME (Usa la libreria GTK)
12
A.A. 2016-2017
di
Sistemi Operativi
Copyright(1/2)
DEE - Politecnico di Bari
• Software libero (GNU Free Software Foundation):
1. Libertà di eseguire il programma come si desidera, per qualsiasi
scopo;
2. Libertà di studiare come funziona il programma e di modificarlo
in modo da adattarlo alle proprie necessità;
3. Libertà di ridistribuire copie;
4. Libertà di migliorare il programma e distribuirne pubblicamente
i miglioramenti.
• Un software libero non è detto che sia gratuito!
• Il kernel LINUX è rilasciato con licenza GNU GPL
• I sorgenti sono liberamente modificabili;
• Non esistono limitazioni ai diritti di distribuzione.
13
A.A. 2016-2017
Sistemi Operativi
Copyright(2/2)
DEE - Politecnico di Bari
• La
•
•
• La
licenza GPL si estende ai sorgenti modificati
Non è possibile introdurre licenze più restrittive
La diffusione può essere gratuita o a pagamento
GPL pone ampi margini di scelta alle aziende venditrici
• I sorgenti di un software libero possono essere forniti in un secondo
momento, ma è stabilito un limite al costo aggiuntivo (costi di
spedizione del DVD).
• La GPL impone la diffusione dei sorgenti
• Obiettivi della GPL
• Incrementare la qualità del software
• Non trarre profitto
14
A.A. 2016-2017
Sistemi Operativi
Programmi di servizio
DEE - Politecnico di Bari
• Traduzione per LINUX di tutte le utility UNIX
• Possibilità di replicare un certo ambiente operativo:
• Es. Java Development Kit (JDK)
• Editor di testo:
• vi e vim
• Emacs e joe
• Utility di compressione dati:
• tar, gzip e bzip2
• SHELL
15
A.A. 2016-2017
Sistemi Operativi
Elaboratori di testo
DEE - Politecnico di Bari
• Si introduce il testo in un linguaggio di formattazione che ne
descrive l’aspetto
• Un esempio di linguaggio di formattazione è HTML
• La formattazione avviene mediante un programma distinto che
converte i codici
• Analogia con editing e compilazione
• Maggiore portabilità dei documenti
• Riferimenti aggiornati automaticamente
• I più famosi sono TEX e il suo dialetto LATEX
16
A.A. 2016-2017
Videoscrittura
Sistemi Operativi
DEE - Politecnico di Bari
•
Interfaccia visuale
•
Editing di espressioni complesse (formule matematiche)
•
Interfaccia grafica per disegnare figure e schemi
•
Correttore ortografico interattivo
•
Generatore automatico di indici per documenti
•
Tool per la progettazione di font
•
Es: gedit, OpenOffice Writer
17
A.A. 2016-2017
Sistemi Operativi
La shell: introduzione
DEE - Politecnico di Bari
• Un programma che permette ad un utente di interagire con un
sistema operativo leggendo ed interpretando i comandi che
vengono inseriti dall'utente.
• La shell tipica dei sistemi Unix e Unix-like (GNU/Linux) è derivata da
quella di Bourne: la shell BASH – Bourne Again Shell.
• Una shell Unix svolge, di base, i compiti seguenti:
• Prompt per inserimento dei comandi;
• Interprete del comando inserito dall'utente;
• Esegue le sostituzioni, in base ai caratteri jolly e alle variabili di
ambiente;
• Mette a disposizione alcuni comandi interni o programmi esterni;
• Gestisce la ridirezione dell'input e dell'output;
• É in grado di interpretare ed eseguire dei file script in linguaggio di
shell;
• Permette il controllo dei processi.
18
A.A. 2016-2017
Sistemi Operativi
Shell: configurazione
DEE - Politecnico di Bari
•
La shell può essere ampiamente personalizzata modificando le informazioni
fornite da prompt, i colori, definizione statica degli alias e molto molto
altro.
•
Ogni utente di un sistema Linux ha un file di configurazione (nascosto) per
questo scopo, cioè .bashrc oppure .bash_profile, a seconda delle
distribuzione utilizzata.
•
Questi file non sono altro che script di configurazione, contengono cioè una
serie di comandi che verranno eseguiti al login, settando le variabili
d'ambiente come il prompt o i colori, e quanto altro specificato.
•
Modificando questo file è possibile quindi adattare il più possibile la shell
alle proprie esigenze e abitudini, riutilizzando il file di configurazione su altri
sistemi.
•
Nella home-directory di ogni utente è presente un file (nascosto) che
contiene la cronologia dei comandi immessi: .bash_history.
• Viene sovrascritto quando si chiude la sessione
19
A.A. 2016-2017
Sistemi Operativi
Terminale (1/2)
DEE - Politecnico di Bari
• Un terminale, in Unix, è un'interfaccia, testuale o grafica, tramite la
quale gli utenti possono interagire col sistema.
• I primi terminali erano telescriventi (TTY), ovvero apparecchiature
che stampavano i risultati dell'elaborazione su carta,
successivamente si sono diffuse versioni a schermo.
• I terminali virtuali nei sistemi Unix e derivati vengono tutt'ora
identificati con l'acronimo TTY seguito dal numero del terminale (es.
tty3). Si utilizza comunemente la nozione terminale come
abbreviativo di terminale virtuale.
• Normalmente una distribuzione Linux per sistemi desktop avvia
sette terminali di cui i primi sei sono shell testuali, mentre il settimo
è dedicato al terminale che ospita la sessione grafica.
• Quando si avviano più sessioni grafiche, queste risiederanno nei
terminali grafici successivi al settimo.
20
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
Terminale (2/2)
•
ALT+Fx: Per muoversi tra i terminali, dove “x” è il numero del tasto funzione sulla
tastiera e “+” significa contemporaneamente.
•
CTRL+ALT+Fx: Per spostarsi dalla sessione grafica ad un altro terminale, poiché le
combinazioni ALT+Fx sono utilizzate per altri scopi.
•
Nella sessione grafica è possibile utilizzare il terminale tramite un programma che lo
emuli, consentendo le stesse operazioni del terminale standard.
Programma di emulazione del terminale:
•Consente di utilizzare anche il mouse per
inserire comandi ed estrarre del testo
•I programmi di emulazione terminale più
utilizzati nella sessione grafica sono:
•xterm Lo standard, disponibile su tutti i
desktop environment
•gnome-terminal Programma terminale del
desktop Gnome
•kterm Programma terminale del desktop
Kde.
21
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
Connessione ad un terminale virtuale
•
Al prompt compare login:, digitare il login dell'utente, e convalidare premendo Entra,
•
Password:. digitare la password dell'utente e convalidare.
•
La password non si visualizza alla schermata per ragioni di sicurezza.
Se la password è valida, il prompt di comandi deve visualizzarsi, come in seguito,
indicando che la connessione è riuscita
•
22
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
Prompt dei comandi
• Il prompt di comandi della shell ha generalmente la forma seguente:
nome@computer ~ $
• nome - rappresenta il login dell'utente connesso
• computer- rappresenta il nome del computer
• ~ indica la directory personale /home/utente
• $ si è connessi come utente
• Se al posto di $ è visualizzato il simbolo #, allora si è connessi come
superutente (root).
23
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
Tipi di comandi
• Interni (built-in): Funzioni elementari eseguite direttamente dalla
shell, la loro esecuzione non provoca la creazione di un nuovo task
poiché il codice fa parte dell'eseguibile stesso della shell.
• Esterni: File contenenti programmi in formato eseguibile la cui
esecuzione provoca la creazione di un nuovo task figlio della shell da
cui sono avviati.
• Script: File testuali in linguaggio shell, con permessi di esecuzione,
contenente una serie di istruzioni e comandi interpretabili dalla shell.
• Quando si digita un comando:
1.
2.
3.
4.
24
La shell verifica se si tratta di un comando interno (built-in).
In caso positivo lo esegue
Altrimenti crea un nuovo processo che esegue il comando.
Questo processo (task) sarà figlio della shell da cui è stato eseguito
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
Metacaratteri
Servono normalmente per lavorare con file e directory e sono interpretati ed utilizzati
direttamente dalla shell.
•
* : Una qualsiasi stringa di caratteri
•
? : Un solo carattere, qualsiasi
•
[a-h] : Un carattere compreso, nel set ASCII, tra 'a' ed 'h', cioè tra i valori ASCII di a e
h
•
[aei] : Un carattere che sia tra 'a' o 'e' o 'i', i caratteri sono in OR tra loro.
•
[!aei] : Un carattere che non sia 'a' o 'e' o 'i'.
Altri metacaratteri sono:
•
> : Ridirezione dello standard output su file, sostituendo il contenuto del file esistente
•
< : Ridirezione dello standard input su file (es. il contenuto del file diventa l’input di un
comando)
•
>> : Ridirezione in modalità append dello standard output su file, continuando a
scrivere sul file esistente
•
& : Richiesta di esecuzione di un comando in background, il simbolo va messo subito
dopo il comando. Il terminale ritorna subito disponibile dopo averlo lanciato.
•
; : separatore di comandi all'interno di una stessa riga. Serve a separare i comandi
permettendo di eseguire più comandi in maniera sequenziale.
25
A.A. 2016-2017
Sistemi Operativi
Flag
DEE - Politecnico di Bari
•
Sono delle opzioni aggiuntive con cui eseguire un comando, per modificarne l'effetto
rispetto a quello di default.
•
Normalmente l'ordine relativo di inserimento dei flag è indifferente.
•
Sono case sensitive, cioè X è ben diverso da x. Non è raro che un comando abbia flag
maiuscoli e minuscoli dello stesso carattere ma con effetto totalmente differente.
•
Di solito ogni comando ha dei suoi flag, ed ogni flag può essere:
•
Semplice: Una lettera, in genere preceduta da un trattino (es. -R)
•
Estesa: Una parola preceduta da due trattini (es. --all); oppure più parole, sempre precedute
da due trattini ma separate tra loro da un trattino, senza spazi (es. –no-spinner)
•
Con argomento: Un flag semplice o estesa con in aggiunta un argomento di seguito (es. -f file,
oppure --max-depth 3).
•
Esistono, per alcuni comandi, anche dei flag letterali che si usano senza anteporre il
trattino, quindi bisogna prestare molta attenzione alle pagine di manuale.
•
Per usare più flag contemporaneamente,
26
•
si può specificarle tutte separandole da uno o più spazi (es. -X -y -Z)
•
con un solo trattino iniziale se il comando prevede i flag anteponendo il trattino, ma in ogni
caso senza spazi tra di loro (es. -XyZ).
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
Flag: i più frequenti
•
Ci sono alcuni flag che vengono utilizzate in maniera identica da tantissimi comandi.
•
Flag equivalenti che richiedono la visualizzazione dell'help del colmando:
•
--help, -h, -H: Presente normalmente in ogni comando
•
I comandi che accettano necessariamente un argomento su cui operare, se lanciati senza
l'argomento, mostrano (oltre che un errore di mancato inserimento) l'help dei comandi,
esattamente come con il flag --help.
•
Flag equivalenti che richiedono un output (sullo standard output) più dettagliato delle
operazioni eseguite: --verbose, -v
•
Flag frequenti (nei comandi che gestiscono file)
•
•
-R (--recursive) : richiede di eseguire l'operazione ricorsivamente all'interno delle eventuali
subdirectory
•
-f (--force) : forza l'esecuzione dell'operazione in presenza di file o directory con lo stesso
nome
•
-a (--all) : nei comandi che mostrano informazioni su qualcosa, è usata per utilizzare insieme
tutti i possibili flag.
Nella maggior parte dei comandi esterni è spesso presente il flag --version che mostra
la versione del programma, anziché eseguirlo.
27
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
•
Scorciatorie
Tasto Tab: Completa ciò che si sta scrivendo, se è univoco.
•
Velocizza la scrittura di comandi e percorsi,
•
Permette di non sbagliare mai il nome di un comando o di un percorso, poiché se viene
completato col tasto Tab, allora è sicuramente corretto, viceversa c'è di certo qualcosa di
sbagliato.
•
Se il tasto Tab non completa il comando o il percorso vuol dire che i caratteri fin ora digitati
non rendono univoca la scelta del percorso o del comando, oppure che non esiste un comando
o percorso che comincia per i caratteri fin ora digitati. Premendo due volte Tab si visualizzano
le alternative
•
Tasti Freccia: Il tasto su per navigare nell'elenco dei comandi digitati, tornando indietro
cronologicamente, giù per scorrere in avanti la cronologia. Viene mostrata una riga per
volta.
•
CTRL+R: Cerca dinamicamente nella history (trattata in seguito) le righe che
contengono la stringa digitata
•
CTRL+H: Cancella il carattere a sinistra del cursore, equivalente del tasto backspace
•
CTRL+W: Cancella l'ultima parola inserita
•
CTRL+U: Cancella l'intera riga
•
CTRL+L: Pulisce lo schermo (si può anche digitare il comando clear).
28
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
•
•
•
•
Sintassi di un comando: schema
generale
Comando
•
(eventuale significato acronimo)
•
Breve descrizione di quello che fa il comando specificato.
SINTASSI: descrive il modo, anche più di uno, con cui si può utilizzare comando
•
comando [-flag] argomento [file]
•
tutto ciò che è racchiuso tra [parentesi quadre] è da intendersi come opzionale.
FLAG: elenca le opzioni maggiormente utilizzate del rispettivo comando
•
-X: Descrizione dell'effetto del flag X sul comando
•
-t stringa: Descrizione dell'effetto del flag t seguita dal suo argomento stringa.
ESEMPI
•
1. comando -X argomento
•
Descrizione dell'effetto del comando con il flag x.
•
La maggior parte dei comandi descritti in questo documento contengono altri
flag, per un utilizzo più approfondito è sempre necessario consultare l'unica
fonte esaustiva: la pagina man del comando.
•
Spesso anche i flag hanno argomenti, questo accade quando il comando può
fare un'azione abbastanza complessa e quindi avere più argomenti per le
varie opzioni disponibili.
29
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
•
man (1/3)
man
•
(manual)
•
Formatta e mostra le pagine di guida in linea del comando specificato. Le pagine
di manuale hanno delle sottosezioni, i cui nomi e ordine sono stabiliti per tutte le
pagine. L'ordine in genere è:
• NAME Nome comando e breve descrizione
• SYNOPSIS Sintassi del comando
• DESCRIPTION Descrizione dettagliata
• OPTIONS Lista di tutti i flag con relativa descrizione.
•
•
Diversi file di configurazione del sistema hanno una loro pagina di manuale
accessibile digitando man nome_file_configurazione.
SINTASSI
•
30
man -[fkKw] [sezione o -S sezione] [-P paginatore] [-m sistema] [-p stringa]
nomecomando
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
man (2/3)
•
FLAG
•
-f : Equivalente a whatis – corrispondenza esatta con NAME, mostra NAME (e sezione)
e relativo commento
•
-k : Equivalente ad apropos - cerca nel NAME e nel commento del man di tutti i
comandi il pattern (comando) in argomento.
•
-K : Ricerca una stringa specifica in tutte le pagine della guida, può risultare lento
•
-w : Non mostra subito la pagina di guida, ma stampa la posizione dei file che
dovrebbero essere formattati o mostrati (Equivalente a --path)
•
-P : Specifica il programma di impaginazione da usare. Per default il comando man usa
/usr/bin/less
•
-Sx : Le pagine di manuale di un sistema UNIX sono raggruppate in 8 sezioni (insieme
di argomenti logicamente affini). Mostra la pagina di manuale della sezione x, con x
numero intero.
•
1 - Comandi per l'utente: programmi eseguibili o comandi di shell (ls, vi, ...)
•
2 - System call (open, write, fork, ...);
•
3 - Funzioni C di libreria (printf, scanf, …);
•
4 - Device e file speciali (/dev/null, /dev/mouse, ...);
La sezione può essere anche specificata solo con x.
31
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
•
man (3/3)
ESEMPIO
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.
•
man write
La parola write corrisponde almeno a due pagine di manuale:
•
Il comando write per comunicare con gli utenti (sezione 1);
•
La system call write per l'I/O a basso livello (sezione 2).
Difatti:
•
man –f write: restituisce il seguente output
• write (2)
- write to a file descriptor
• write (1)
- send a message to another user
Per visualizzare la pagina della system call usiamo equivalentemente:
•
man -S2 write
•
man 2 write
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
•
info
•
•
•
Mostra la documentazione in formato Info del comando specificato.
SINTASSI
•
•
info - whatis
info nomecomando
whatis
•
Ricerca una parola chiave nel suo database contenente brevi descrizioni dei comandi di
sistema, ossia solo i campi NOME (NAME) delle rispettive pagine man di tutti i comandi.
•
Mostra i risultati sullo standard output, cercando solo le corrispondenze esatte della parola
chiave.
•
Il database di whatis è creato usando il comando makewhatis
ESEMPIO
•
33
whatis man : restituisce il seguente output
• man (1)
- un'interfaccia ai manuali di riferimento in linea
• man (7)
- macros to format man pages
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
•
•
apropos
apropos
•
Opera come whatis
•
Mostra però tutte le corrispondenze trovate, non solamente quella esatta nel nome del
comando, ma anche le parole che contengono la stringa specificata, sia nel nome del
comando sia nella loro descrizione.
ESEMPI
•
whatis grep restituisce il seguente output:
• grep (1)
•
- print lines matching a pattern
apropos grep restituisce il seguente output
• bzegrep (1)
- search possibly bzip2 compressed files for a regular e...
• bzfgrep (1)
- search possibly bzip2 compressed files for a regular e...
• bzgrep (1)
- search possibly bzip2 compressed files for a regular e...
• egrep (1)
- print lines matching a pattern
• fgrep (1)
- print lines matching a pattern
• git-grep (1)
- Print lines matching a pattern
• grep (1)
- print lines matching a pattern
• grep-aptavail (1)
- grep Debian control files
• …
34
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
•
•
history
history
•
Mostra sullo standard output lo storico dei comandi, di default gli ultimi 500, digitati nella shell
dall'utente correntemente loggato, numerandoli progressivamente.
•
Permette molte funzioni di manipolazione ed elaborazione della cronologia dei comandi.
ESEMPI
•
history
• Mostra gli ultimi 500 comandi digitati
•
history -c
• Elimina la cronologia dei comandi, ricominciando la numerazione.
•
E' possibile utilizzare nella shell delle scorciatoie collegate a history:
35
•
!n: Per riutilizzare il comando n-esimo nella history
•
!-n: Per riutilizzare il comando già usato n comandi prima
•
!string: Per riutilizzare il comando più recente contenente string
A.A. 2016-2017
Sistemi Operativi
uname
DEE - Politecnico di Bari
•
uname
•
•
SINTASSI
•
•
•
Mostra alcune informazioni sul sistema.
uname -[a] -[snrvmpio]
FLAG
•
-a (--all): Mostra tutte le informazioni dei flag successivi, nell'ordine in cui sono indicati i flag
•
-s (--kernel-name): Nome del kernel in uso
•
-n (--nodename): Hostname del calcolatore, il nome del suo nodo nella rete
•
-r (--kernel-release): Release del kernel in uso
•
-v (--kernel-version): Versione del kernel in uso
•
-m (--machine): Nome dell'architettura della CPU (es. i686)
•
-p (--processor): Tipo di processore o “unknown” se non viene riconosciuto automaticamente
•
-i (--hardware-platform): Tipo di piattaforma hardware o “unknown” se non viene riconosciuta
automaticamente.
•
-o (--operating-system): Sistema operativo (es. GNU/Linux).
ESEMPI
36
•
uname -p :AMD Athlon(tm) 64 X2 Dual Core Processor 6200+
•
uname -roms :Linux 2.6.27-gentoo-r2 x86_64 GNU/Linux (l’ordine resta quello definito sopra!)
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
Permessi di accesso a file e directory
•
Ad un file possono essere attribuiti i
seguenti permessi:
• Lettura (read)
• Scrittura (write)
• Esecuzione (execute)
•
Appena un file è creato, esso viene
collegato all’utente che lo ha creato
e al gruppo cui fa parte in quel
momento l’utente
•
I permessi sono definiti per:
• Utente proprietario del file
• Gruppo (a cui appartiene il
proprietario del file)
• Other (tutti gli altri utenti)
37
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
ACL
• Ad ogni file (e directory) è associata una stringa di 10 caratteri, detta lista di
controllo agli accessi o Access Control List (ACL), contenente i diritti di accesso
al file
•
I permessi sono visualizzati nei primi dieci caratteri, suddivisi in 4 insiemi:
38
•
l: tipo di file
•
u: permessi concessi al proprietario del file
•
g: permessi concessi agli utenti membri del gruppo
•
o: permessi agli altri utenti, non compresi nei precedenti insiemi
A.A. 2016-2017
Sistemi Operativi
Tipo di file
DEE - Politecnico di Bari
simbolo
tipo
d
Directory
-
File
b
File speciale a blocchi
Fornisce un'interfaccia bufferizzata a
blocchi di lunghezza
fissa per l'I/O da dispositivi di
memorizzazione (hard disk, cdrom, …)
c
File speciale a caratteri
Fornisce un'interfaccia non bufferizzata con
blocchi di
lunghezza variabile a dispositivi quali
schede audio, terminali, porte seriali, ...
l
Link simbolico
Realizza collegamenti tra file
39
descrizione
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
•
Significato dei permessi
Se è presente il permesso ci sarà la lettera corrispondente (r,w,x), sempre
nell'ordine indicato, viceversa al suo posto ci sarà un trattino (–)
40
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
Esempi
•
- rwx rw- r-• file ordinario (- iniziale);
• l'utente proprietario (rwx, primo blocco da tre caratteri) può leggere (r),
scrivere (w) ed eseguire il file (x);
• Il gruppo proprietario (rw-, secondo blocco da tre caratteri) può leggere (r)
e scrivere (w) il file ma non eseguirlo (-);
• Gli altri utenti (r--, terzo blocco da tre caratteri) possono solamente leggere
(r) il file.
•
d rwx r-x r-x
• directory (d iniziale);
• l'utente proprietario (rwx, primo blocco da tre caratteri) può leggere(r),
modificare(w) ed scansionare(x) la directory;
• Sia i membri del gruppo proprietario che tutti gli altri utenti (r-x, secondo e
terzo blocco da tre caratteri) possono solamente leggere (r) il contenuto
della directory o navigare.
41
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
Creazione di un file
•
Al momento della creazione di un file, esso appartiene all’utente che lo ha
creato (utente proprietario) e assume il gruppo di quest’ultimo (gruppo
proprietario)
•
Un file (directory), al momento della creazione, è per default reso accessibile
con tutti i permessi all’utente proprietario
•
Generalmente tutti gli altri possono leggere ed eseguire ma non scrivere,
compresi quelli del gruppo di appartenenza.
•
La sua ACL sarà:
• - rw- r-- r-- (file, non eseguibile)
• d rwx r-x r-x (directory)
•
L’utente proprietario può cambiare la ACL in qualunque momento mediante il
comando chmod
•
Il superuser può modificare l’utente e il gruppo proprietario con i comandi
chown e chgrp
42
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
chmod
•
change mode: permette di cambiare i permessi di accesso (lettura, scrittura,
esecuzione) di un file.
•
Il comando può essere eseguito solo dall’utente proprietario (o dal superuser)
SINTASSI
• chmod [-R] modo file
• L'argomento modo può essere o in formato simbolico oppure ottale.
FLAG
• -R: Cambia i permessi ricorsivamente, cioè proseguendo l'operazione nelle
eventuali subdirectory e relativi file
43
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
Permessi: forma simbolica (1/1)
• I permessi sono formati da una combinazione sequenziale di codici
utente e codici di permesso:
44
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
Permessi: forma simbolica (2/2)
• Per modificare i permessi di uno o più file, l’argomento del comando
chmod (oltre al file) deve essere:
• Codice utente
• Operatore
• Codice di permesso
45
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
Permessi: forma ottale
• La forma ottale è costituita da tre cifre comprese tra 0 e 7, una per
ogni tipo di permesso ammissibile.
• Ogni cifra è interpretata come una somma delle prime 3 potenze del 2.
• Ogni cifra in forma ottale corrisponde a tre bit dell’ACL
• I permessi di accesso variano da 000 a 777
46
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
47
chmod: esempi
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
48
chmod: esempi
A.A. 2016-2017
Sistemi Operativi
DEE - Politecnico di Bari
49
chmod: esempi
A.A. 2016-2017
Sistemi Operativi
chown
DEE - Politecnico di Bari
•
change owner: cambia l'utente proprietario, il gruppo proprietario (o entrambi) dei file
specificati (solo da superuser).
•
Per cambiare anche o solo il gruppo proprietario bisogna farlo precedere da un punto
(.)
SINTASSI
•
chown[-R] [utente] [.] [gruppo]file
FLAG
•
-R: Cambia i permessi ricorsivamente, cioè proseguendo l'operazione nelle eventuali
subdirectory
ESEMPI
•
chown utente1 /percorso/file_esempio
file_esempio avrà come proprietario utente1
•
chown –R utente1.gruppoB /percorso/directory_esempio
directory_esempio e tutti i suoi file e subdirectory avranno come proprietario utente1 e gruppoB
come gruppo proprietario
•
chown .gruppoB /percorso/file_esempio
file_esempio avrà come gruppo proprietario gruppoB.
50
A.A. 2016-2017
Sistemi Operativi
chgrp
DEE - Politecnico di Bari
•
change group: cambia il gruppo proprietario dei file specificati (solo da superuser)
SINTASSI
•
chgrp [-R] nuovo_gruppo lista_file
FLAG
•
-R: Cambia i permessi ricorsivamente, cioè proseguendo l'operazione nelle eventuali
subdirectory
ESEMPI
•
chgrp gruppoB /percorso/file_esempio
file_esempio avrà come nuovo gruppo proprietario gruppoB
51
A.A. 2016-2017