Shell di Linux e Comandi UtenteSistemi Operativi
Roberto Aringhieri
DTI Crema - Universita degli Studi di Milano
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.1/23
Outline
Accesso al sistema
Documentazione
Linux Filesystem
Comandi base: /bin
stdin, stdout e stderr
Manipolazione ed editing di testi
Process Management
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.2/23
Accesso al sistema
Linux è un ambiente di lavoro multiutente
occorre quindi farsi riconoscere per poter accederealle risorse del sistema
l’accesso in locale avviene tramite login testuale ografico
username e password
passwd e passmass
exit
reboot e shutdown
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.3/23
Documentazione
Linux offre ampia documentazione on line
man
info
Esempi:man info, man man, man -k
info info, info man
The Linux Documentation Project: http://www.tldp.org/
Cosa potete trovare:HowTo, Guides, FAQs
man pages (per integrare il vostro man)
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.4/23
Linux Filesystem - 1
Il filesystem standard (FHS) di Linux è composto dalleseguenti directory di base, ciascuna contenente:
/bin: binari che possone essere eseguiti da tutti gli utenti
/sbin: binari necessari all’amministrazione del sistema
/dev: files necessari per l’accesso ai dispositivi del calcolatore
/etc: files di configurazione del sistema
/home: home directory degli utenti
/lib: librerie necessarie al funzionamento del software installato
/proc: filesystem virtuale per il passaggio “on the fly ” di parametri al kernel
/tmp: file temporanei
/var: dati variabili (coda printserver, coda mailserver, logs, ...)
/usr: software utilizzato dagli utenti: X11R6, Header file, Sorgenti, ...
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.5/23
Linux Filesystem - 2
Linux consente il controllo dell’accesso ai file su trelivelli
I tre livelli sono:utente (user, u)gruppo (group, g)altri (other, o)
Esempio:168k -rw-r----- 1 roberto opt 162k apr 15 15:16 pippo.tex
il file pippo.tex è accessibile:
in lettura e scrittura rw- all’utente roberto
in lettura r-- al gruppo opt
in nessun modo agli altri utenti
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.6/23
Linux Filesystem - 3
Ognuno dei tre gruppi di permessi può specificare con3 bit i limiti di accesso:
r permesso di lettura
w permesso di scrittura
x permesso di esecuzione
Comandi:whoami (caso particolare di who)
chmod per cambiare i permessi di un file
chown per cambiare l’owner di un file
du disk usage
df filesystem
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.7/23
Linux Filesystem - 4
comandi per muoversi all’interno del filesystemls, elenca i file contenuti in un directory
rm, cancella un file
mv, nuovi un file
cp, copia un file
cd, cambia directory
mkdir, crea una directory (opzione -p)
rmdir, cancella directory (alt: rm -rf)
Esercizio 1: scrivere comando che usando cp compieil backup con update di /bin/ nella propria home.(Hints: man cp, backup con update significa che ripetendo il comando, se i files
contenuti in /bin/ non sono modificati, non viene copiato niente)
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.8/23
stdin, stdout e stderr
ogni processo unix ha tre canali standard dicomunicazione
stdin, stdout e stderr sono rispettivamente:lo standard input, ovvero il canale dal quale arrivano i dati da processare
lo standard output, ovvero il canale nel quale vengono inviati il risultato delleesecuzioni
lo standard error, ovvero il canale nel quale vengono inviati gli errori di
esecuzione
normalmente lo standard input è la tastiera mentrestandard output e standard error sono il terminale
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.9/23
redirezionamento dei canali - 1
per modificare un canale standard, esistono deglioperatori detti di shell
< file prende come input il contenuto di filepiuttosto quello che arriva da tastiera
> file l’output di un certo comando è messo in filepiuttosto che inviato a terminale
| permette di utilizzare l’output del comando a sinistracome input del comando a destra (pipe)
2> file ridirige lo standard error verso file
>> file ridirige lo standard output verso fileconcatenandolo con il contenuto precedenteSistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.10/23
redirezionamento dei canali - 2
Esercizio 2
1. creare un file manuale contenente le man pages deiseguenti comandi:
maninfochmod
Per visualizzare il contenuto del file manuale usare il co-
mando less manuale
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.11/23
Manipolazione dei testi - 1
Esistono una serie di comandi per trattare un testo1. less, visualizzazione di un testo2. tail, come less ma mostra le ultime righe del file3. head, come less ma mostra le prime righe del file4. grep, ricerca di un testo all’interno di files5. sort, ordina un file per righe6. diff, per evidenziare le differenze tra due files7. cut, rimuove sezioni da ogni riga di file8. wc, word count
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.12/23
Manipolazione dei testi - 2
Esercizio 3
Contare quante sono le occorrenze della stringa “gcc”nel man di gcc
Visualizzare tutti i file di configurazione (cheassumiamo terminare con l’estensione .conf)contenuti nella directory /etc/ ed in tutte le suesottodirectory
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.13/23
Editor di testi
Linux fornisce anche una serie di test editorestremamente potenti
vi, editor testualeemacs, editor grafico
vi, editor standard presente in ogni ambiente linux
emacs, editor NON presente in tutte le distribuzioni
xemacs
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.14/23
vi - 1
vi è un editor full-screen
due modi: comando ed inserimento
modo comando: tasto ESC
modo inserimento:i, insert
a, append
o, nuova riga
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.15/23
vi - 2
vi comandi di basex, cancella un carattere
dd, cancella una riga
yy, copy
uu, undo
p, paste
:w, salva
:q, esci
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.16/23
Shell environment - 1
L’ambiente di lavoro di una shell è caratterizzato davalori che sono mantenuti (ed accessibili) in variabilid’ambiente
Esempi:PWD
HOME
HOSTNAME
PATH
MANPATH
...
comando per visualizzare tutte le variabili: env
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.17/23
Shell environment - 2
È possibile modificare il valore di una variabiled’ambiente con il comando builtin export
Esempio:export PATH=$PATH:/path/directory/modifica il valore di PATH aggiungendo il valore/path/directory
Significato:PATH è la variabile d’ambiente che indica alla shelldove cercare i comandi eseguibili (quelli con la x inrwx); la modifica aggiunge al percorso di ricerca icomandi in /path/directory/
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.18/23
Shell environment - 3
Come rendere le modifiche stabili? File .bashrc
# .bashrc
# User specific aliases and functions
alias rm=’rm -i’
alias cp=’cp -i’
alias mv=’mv -i’
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.19/23
Shell environment - 4
Esercizio 4:Modificare la variabile PATH aggiungendo il percorso$HOME/bin/Fare le modifiche con vi nel file .bashrc
Osservare le differenze della variabile con env prima edopo la modifica
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.20/23
process management - 1
un comando = un processo (circa)
pid: process identifier
NI: priorità processo nello scheduling; valori negativicorrispondono a priorità più alte
ogni utente può inviare un segnale ai processi cheverranno eseguiti a seconda delle possibilità dell’utente
lista dei segnali:kill -l
segnale SIGKILL per terminare un processokill -9 pid
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.21/23
process management - 2
Elenco processi attivi: top
ps: process status
ps -fux elenco dei processi attivi dell’utentevisualizzati con “ASCII art forest”
top aggiorna la lista dei processi ogni
�
di tempo edordina i processi per un parametro (es. % CPU
Esercizio 5:
aprire top
selezionare i propri processi no-idle
fare il renice a 20 di uno di questi taskSistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.22/23
Esercizi
Esercizio 6:Trovare il file più grande in /libHints: usare du, sort e tail
Esercizio 7:Recuperare l’elenco ordinato degli utenti delsistemaHints: usare cat, cut e sort; file /etc/passwd
Esercizio 8:Contare tutti i link simbolici in /dev (solo directory/dev, niente ricerca nelle subdirectory)Hints: usare ls, cut, grep e wc
Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.23/23