+ All Categories
Home > Documents > Roberto Aringhieri DTI Crema - Universita` degli Studi di...

Roberto Aringhieri DTI Crema - Universita` degli Studi di...

Date post: 18-Aug-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
23
Shell di Linux e Comandi Utente Sistemi Operativi Roberto Aringhieri DTI Crema - Universit ` a degli Studi di Milano Sistemi Operativi - Shell di Linux e Comandi Utente Roberto Aringhieri – p.1/23
Transcript
Page 1: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 2: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 3: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 4: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 5: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 6: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 7: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 8: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 9: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 10: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 11: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 12: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 13: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 14: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 15: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 16: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 17: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 18: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 19: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 20: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 21: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 22: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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

Page 23: Roberto Aringhieri DTI Crema - Universita` degli Studi di ...homes.di.unimi.it/piuri/pages/didattica/SO/mat/2-shell.pdf · Shell di Linux e Comandi Utente Sistemi Operativi Roberto

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


Recommended