Linux e la shell Bash – Parte II

50
Sistemi Operativi Sistemi Operativi DEE DEE - Politecnico di Bari Politecnico di Bari Linux e la shell Bash Linux e la shell Bash – Parte II Parte II Gestione file e directory Gestione file e directory Link Link Redirezione Redirezione I/O I/O Con Concate catenamento namento comandi comandi Con Concate catenamento namento comandi comandi Visualizzazione Visualizzazione file file Espressioni regolari Espressioni regolari Filtri e ricerche Filtri e ricerche Gestione processi Gestione processi A.A. 2009 A.A. 2009-2010 2010 Testi Testi di riferimento: di riferimento: Linux e la Linux e la shell shell Bash Bash http http:// ://sisinflab.poliba.it/ruta/linux/Linux e la sisinflab.poliba.it/ruta/linux/Linux e la shell shell Bash.pdf Bash.pdf La La shell shell Bash Bash http://www http://www-ictserv.poliba.it/piscitelli/doc/lab_esercitazioni_SO_no/bash_shell.pdf ictserv.poliba.it/piscitelli/doc/lab_esercitazioni_SO_no/bash_shell.pdf

description

Linux e la shell Bash – Parte II

Transcript of Linux e la shell Bash – Parte II

Page 1: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari

Linux e la shell Bash Linux e la shell Bash –– Parte IIParte II

Gestione file e directory Gestione file e directory LinkLink

RedirezioneRedirezione I/O I/O ConConcatecatenamentonamento comandi comandi ConConcatecatenamentonamento comandi comandi

VisualizzazioneVisualizzazione file file Espressioni regolari Espressioni regolari Filtri e ricercheFiltri e ricerche

Gestione processiGestione processi

A.A. 2009A.A. 2009--20102010

Testi Testi di riferimento:di riferimento:Linux e la Linux e la shellshell BashBash httphttp://://sisinflab.poliba.it/ruta/linux/Linux e la sisinflab.poliba.it/ruta/linux/Linux e la shellshell Bash.pdfBash.pdf

La La shellshell BashBash http://wwwhttp://www--ictserv.poliba.it/piscitelli/doc/lab_esercitazioni_SO_no/bash_shell.pdfictserv.poliba.it/piscitelli/doc/lab_esercitazioni_SO_no/bash_shell.pdf

Page 2: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari

PercorsiPercorsi assolutiassoluti e e relativirelativi::PWD PWD -- TOUCHTOUCH

Mostra il percorso completo della directory di lavoro corrente.

SINTASSI: pwduser@ubuntu:~/Desktop$ pwd/home/user/Desktop

Cambia l'orario di accesso e/o modifica di ogni file specificato (di default entrambi), aggiornandolo all'orario corrente. Se il file non esiste, ne crea uno vuoto.

SINTASSI: touch [-acm] file_esempio

2

SINTASSI: touch [-acm] file_esempio

-a Cambia l'orario di accesso di file_esempio

-c Non crea il file, aggiorna solo la data di ultimo accesso

-m Cambia l'orario di modifica di file_esempio

Linux e la shell BashLinux e la shell Bash

Page 3: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari CDCD

Cambia la directory corrente in quella specificata.

SINTASSI: cd [nome_directory]

Directory Attuale: /home/user/Desktop/shell_linux

cd Se non si specifica la directory, la directory di lavoro diventerà la home-directory dell'utente loggato. Equivalente di: cd ~

/home/user/

3

/home/user/cd - La directory di lavoro diventerà quella precedentemente utilizzata, questa è

memorizzata nella variabile d'ambiente OLDPWD.

/home/user/Desktop/shell_linuxcd . La directory di lavoro resterà quella corrente.

/home/user/Desktop/shell_linuxcd .. La directory di lavoro diventerà quella padre di quella corrente.

/home/user/Desktop

Linux e la Linux e la shellshell BashBash

Page 4: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari LSLS

Lista il contenuto della directory corrente o di quella specificata.

SINTASSI: ls [-aFlrtu] [percorso]

user@ubuntu:~/Desktop$ lslirc mamas ns230 prova.txt prova.txt~ Reasoner shell_linux tlc

-F Aggiunge ai nomi dei file un carattere che ne indica il tipo (* file eseguibili, / directory, @ per i link simbolici, | per i FIFO)

4

@ per i link simbolici, | per i FIFO)

user@ubuntu:~/Desktop$ ls -Flirc/ mamas/ ns230/ prova.txt prova.txt~ Reasoner@ shell_linux/ tlc/

-r Inverte l'ordinamento alfabetico

-t Ordina i file per data di ultima modifica

-u Ordina i file per data di ultimo accesso

-1 Mostra l'elenco in un unica colonna.

-a Include nell'elenco anche i file che iniziano con . (punto), cioè file e directory nascoste

Linux e la Linux e la shellshell BashBash

Page 5: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari LSLS

-l Mostra informazioni dettagliate sui file:

[Access Control List] [numero di link al file] [utente]

[gruppo][dimensione in byte] [ultimo accesso] [nome file]

user@ubuntu:~/Desktop$ ls -ltotal 24

drwxr-xr-x 6 user user 4096 2010-05-20 03:25 lirc

drwxr-xr-x 6 user user 4096 2010-04-19 13:06 mamas

5

drwxr-xr-x 6 user user 4096 2010-04-19 13:06 mamas

drwxr-xr-x 2 user user 4096 2010-04-19 10:47 ns230

-rw-r--r-- 1 user user 636 2010-04-26 06:22 prova.txt

-rw-r--r-- 1 user user 0 2010-04-26 06:22 prova.txt~

lrwxrwxrwx 1 user user 48 2010-04-21 17:11 Reasoner ->

/home/user/ns2/ns-allinone-2.30/ns-2.30/reasoner

drwxr-xr-x 2 user user 4096 2010-05-31 13:02 shell_linux

drwxr-xr-x 5 user user 4096 2010-04-21 08:13 tlc

Linux e la Linux e la shellshell BashBash

Page 6: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari MKDIR MKDIR -- RMDIRRMDIR

Crea una nuova directory.

SINTASSI: mkdir [-m permessi] [percorso] directory

- v Verbose Mode: mostra sullo standard output le operazioni eseguite

user@ubuntu:~/Desktop$ mkdir prova -vmkdir: created directory `prova'

Rimuove le directory specificate purché vuote.

6

Rimuove le directory specificate purché vuote.

SINTASSI rmdir [--ignore-fail-on-non-empty] directory_1 [directory_n]

--ignore-fail-on-non-empty Rimuove la directory specificata anche se non è vuota

-v Verbose mode.

Linux e la Linux e la shellshell BashBash

Page 7: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari CP CP -- RMRM

Copia i file/file-directory da un percorso di partenza ad uno di destinazione.

SINTASSI: cp [-fipRv] percorso_partenza percorso_destinazione

-f Forza la sovrascrittura di eventuali file di destinazione esistenti

-i In caso di file di destinazione esistenti richiede conferma interattivamenteIl percorso di destinazione può comprendere anche il nuovo nome del file/file-directory, in quest'ultimocaso si effettuerà contemporaneamente la copia e la rinomina del file/file-directory di partenza.

7

Rimuove file/file-directory.

SINTASSI: rm [-filRv] percorso

-R Rimuove file e directory ricorsivamente, cioè proseguendo la rimozione delle eventualisubdirectory

user@ubuntu:~/Desktop$ rm provarm: cannot remove `prova': Is a directory --> ERRORE

Linux e la Linux e la shellshell BashBash

Q2

Page 8: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari MVMV

Sposta i file o directory da un da un percorso di partenza ad uno di destinazione.

SINTASSI: mv [-fipRv] percorso_partenza percorso_destinazione

mv file1 file2 Rinomina file1 in file2. Se quest'ultimo esiste viene sovrascritto da file1

mv file1 directoryA Sposta file1 dentro directoryA

8

mv directoryA directoryB Sposta directoryA in directoryB se quest'ultima esiste già, viceversa rinomina directoryA in directoryB

mv directoryA file1 Operazione non consentita.

Linux e la Linux e la shellshell BashBash

Q3

Page 9: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari FILEFILE

Determina il tipo di uno o più file.

SINTASSI: file [-k] file_esempio

user@ubuntu:~/Desktop/shell_linux$ file esempio_uniq.txtesempio_uniq.txt: UTF-8 Unicode text

user@ubuntu:~/Desktop/shell_linux$ file ./*./esempio_sort_num.txt: ASCII text

9

./esempio_sort_num.txt: ASCII text

./esempio_sort.txt: ASCII text

./esempio_uniq.txt: UTF-8 Unicode text

./file_esempio.txt: ASCII text

Linux e la Linux e la shellshell BashBash

Page 10: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari Link: LNLink: LN

Realizza i collegamenti tra file. Di default realizza un hard link.

SINTASSI: ln [-sn] file_sorgente file_destinazioneln [-sn] directory_sorgente file_destinazione

-n Non crea il link se file_destinazione esiste già

-s Crea un collegamento simbolico a file_sorgente o a directory_sorgente con il nomefile_destinazione.

10

Un hard link è un puntatore all'inode di un file esistente, non viene creato un nuovo file ma solo undirectory-entry (inode#, nome_file) nella directory contenente il nuovo collegamento. I due riferimentisono totalmente equivalenti perché puntano allo stesso inode. Quando si crea un hard link, il link-countdel file viene incrementato di 1, quindi il file esiste con nomi diversi.

Un soft link è un collegamento che può riferirsi sia a file che a directory. Viene creato un nuovo file diche contiene semplicemente un percorso. Ogni volta che il sistema incontra un soft link sostituisce ilsuo contenuto con il percorso che lo individua. Quando viene rimosso un soft link, si elimina solo il filespeciale e non il file a cui esso si riferisce. I due file (speciale e sorgente) hanno numero di inode(inode#) differente.

Linux e la Linux e la shellshell BashBash

Page 11: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari REDIREZIONE I/OREDIREZIONE I/O

Descrittori di file per l'input e l'output:

0 standard input

1 standard output

2 standard error

n ciascun processo ha a disposizione 1024 descrittori di file

Operatori di ridirezione:

< Redirige lo standard input su un file qualunque file, equivalente a 0<

11

< Redirige lo standard input su un file qualunque file, equivalente a 0<

> Redirige solo lo standard output su un file sovrascrivendone il contenuto, equivalente a 1>

2> Redirige solo lo standard error

>> Redirige lo standard output su un file aggiungendo il contenuto in coda al file di ridirezione, append mode

2>> Redirige lo standard error su un file in append mode

n> Redirige il descrittore n-esimo (n>> append mode)

n>&m Concatena i due canali di comunicazione associati ai descrittori di file n ed m

Linux e la Linux e la shellshell BashBash

Page 12: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari REDIREZIONE I/O REDIREZIONE I/O -- EsempioEsempio

user@ubuntu:~/Desktop/shell_linux$ ls -l > stdout.txt

stdout.txttotal 16

-rw-r--r-- 1 user user 13 2010-05-31 06:36 esempio_sort_num.txt

-rw-r--rw- 1 user user 28 2010-05-31 05:56 esempio_sort.txt

-rw-r--r-- 1 user user 215 2010-05-31 11:55 esempio_uniq.txt

-rw-rw-r-- 1 user user 125 2010-05-31 11:48 file_esempio.txt

-rw-r--r-- 1 user user 0 2010-06-01 06:22 stdout.txt

12

-rw-r--r-- 1 user user 0 2010-06-01 06:22 stdout.txt

Linux e la Linux e la shellshell BashBash

Q1

Page 13: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari CONCATENAMENTO COMANDICONCATENAMENTO COMANDI

Il simbolo di pipe (|) serve a redirigere lo standard output del comando a sinistra della pipe nellostandard input del comando a destra della pipe.

Se all'inizio nella pipeline c'è un punto esclamativo (!) il valore restituito corrisponde alla negazionelogica del risultato normale.

La shell attende che tutti i comandi della pipeline siano terminati prima di restituire un valore.

SINTASSI: [!] comando1 [| comando2]

I comandi separati da punto e virgola (;) sono eseguiti sequenzialmente.

SINTASSI: comando1 ; comando2

13

SINTASSI: comando1 ; comando2

L'operatore di controllo && si comporta come l'operatore booleano AND. Viene eseguito il comando adestra solo se il primo ha terminato con successo.

SINTASSI: comando1 && comando2

L'operatore di controllo || si comporta come l'operatore booleano OR. Viene eseguito il comando a destra solo se il primo non ha terminato con successo oppure non si è potuto eseguire.

SINTASSI: comando1 || comando2

Linux e la Linux e la shellshell BashBash

Page 14: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari ECHO ECHO -- CATCAT

Mostra una stringa sullo standard output.

SINTASSI: echo [stringa]

echo ~ Mostra il percorso della home-directory dell'utente loggato

echo “testo” >> file_prova Inserisce la stringa parola_esempio in coda al file_prova

Mostra sullo standard output il contenuto di uno o più file specificati.

14

Mostra sullo standard output il contenuto di uno o più file specificati.

SINTASSI: cat [file]

cat file1 Mostra sullo standard output il contenuto di file1.

cat file1 file2 > file3 Genera file3 che è il risultato del concatenamento in sequenza di file1 e file2

Linux e la Linux e la shellshell BashBash

Page 15: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari Visualizzazione File: MORE Visualizzazione File: MORE -- LESSLESS

Formatta il testo in pagine per facilitarne la lettura a video. Permetto solo uno scorrimento delle pagine in avanti.

SINTASSI: more [file]

Formatta il testo in pagine per facilitarne la lettura a video.

SINTASSI: less [file]

Rispetto a “more” permette una completa navigazione tra pagine e non richiede

15

Rispetto a “more” permette una completa navigazione tra pagine e non richiede la lettura dell'intero documento prima dell'avvio.

ls -l | less Mostra mediate il paginatore less l'output del comando precedente

Linux e la Linux e la shellshell BashBash

Page 16: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari FiltriFiltri e e ricerchericerche: SORT: SORT

Ordina o fonde insieme il contenuto dei file

SINTASSI: sort [-cmbdfinr] [-o file] [file1 file2]

user@ubuntu:~/Desktop/shell linux$ cat esempio_sort.txtRIGA ARIGA DRIGA C

16

RIGA CRIGA B

user@ubuntu:~/Desktop/shell linux$ sort esempio_sort.txtRIGA ARIGA BRIGA CRIGA D

Linux e la Linux e la shellshell BashBash

Page 17: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari SORT SORT -- flagflag

-c Controlla se i file indicati siano già ordinati. Se non lo sono viene emessa una segnalazione di errore e il programma mostra la prima riga che non rispetta l'ordine

user@ubuntu:~/Desktop/shell linux$ sort -c esempio_sort.txtsort: esempio_sort.txt:3: disorder: RIGA C

17

RIGA A OKRIGA D OKRIGA C ERRRIGA B

Linux e la Linux e la shellshell BashBash

Page 18: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari SORT SORT -- flagflag

-n Esegue un ordinamento numerico considerando anche il segno meno e il punto decimale

Non ordinati

user@ubuntu:~/Desktop/shell linux$ cat esempio_sort_num.txt1.1100511

18

Ordinati in base al testo

Ordinamento numerico

user@ubuntu:~/Desktop/shell linux$ sort esempio_sort_num.txt100111.15

user@ubuntu:~/Desktop/shell linux$ sort -n esempio_sort_num.txt1.1511100

Linux e la Linux e la shellshell BashBash

Page 19: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari SORT SORT –– flagflag

-m Fonde insieme i file indicati che devono essere già ordinati

-b Ignora gli spazi vuoti iniziali

-d Ignora tutti i caratteri che non siano lettere, numeri o spazi

-f Non distingue tra lettere maiuscole e minuscole

19

-f Non distingue tra lettere maiuscole e minuscole

-i Ignora i caratteri speciali al di fuori del set ASCII puro

-r Inverte l'ordine della comparazione

-o file Invece di utilizzare lo standard output, utilizza il file indicato per

inserire il risultato dell'operazione.

Linux e la Linux e la shellshell BashBash

Q4

Page 20: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari GREP GREP -- GGlobal Regular Expression Printlobal Regular Expression Print

Mostra le linee che corrispondono al modello ricercato. Si possono specificare

uno o più file oppure è possibile usare lo standard input

SINTASSI: grep [-GEFecnvlLi] modello [file_1 file_2]

ESPRESSIONI REGOLARI

20

ESPRESSIONI REGOLARI

1) Un qualsiasi carattere è già un'espressione regolare (es. caratteri speciali)

2) Un carattere speciale può essere usato come carattere regolare anticipandolo con backslash (\) (es. * viene considerato asterisco con \*)

3) L'espressione regolare va racchiusa tra apici (es. grep 'expr').

Linux e la Linux e la shellshell BashBash

Page 21: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari Regole sintattiche Regole sintattiche –– Classi di caratteriClassi di caratteri

[:upper:]

lettere maiuscole

[:alpha:]lettere alfabetiche

[:lower:] [:alnum:]

lettere minuscole caratteri alfanumerici

[:digit:]cifre numeriche

21

cifre numeriche

[:punct:] Caratteri di punteggiatura

[:space:] Caratteri definiti come «spazi bianchi»

[:blank:] Comprende solo <space> e <tab>

Linux e la Linux e la shellshell BashBash

Page 22: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari Regole sintatticheRegole sintattiche

. (punto) carattere qualsiasi

[xwyz] Set di caratteri qualsiasi all'interno delle parentesi quadre, i caratteri sono in OR tra di loro

[a-f] Un carattere qualsiasi tra a ed f, estremi inclusi

[^a-f] Tutti i caratteri tranne quelli specificati

^[a-f] Cerca il modello specificato all'inizio di ogni riga

[a-f]$ Cerca il modello specificato alla fine di ogni riga

[^a-f] è diverso

da ^[a-f]

22

[a-f]$ Cerca il modello specificato alla fine di ogni riga

\<[a-f] Cerca il modello specificato all'inizio di ogni parola

[a-f]\> Cerca il modello specificato alla fine di ogni parola

y{n,m} Ripetizione del carattere da n a m volte. n ed m possono anche non essere definiti

y* Ripetizione del carattere da 0 a più volte (Eq. a y{0,})

y? Al massimo una ripetizione (Eq. a y{0,1})

y+ Almeno una ripetizione (Eq. a y{1,})

Linux e la Linux e la shellshell BashBash

Page 23: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari GREP GREP –– flagflag

-G Utilizza l'espressione regolare elementare (default)

-E Utilizza l'espressione regolare estesa. Aggiunge ulteriori metacaratteri allaserie di base

-F Utilizza un modello fatto di stringhe fisse

-e Specifica il modello di ricerca

-c Mostra il numero di righe in cui è presente il modello

23

-n Aggiunge ad ogni riga contenente il modello il numero di tale riga nel file

-v Selezione inversa: mostra tutte le righe tranne quelle contenenti il modello

-l Mostra il percorso dei file in cui è presente il modello

-L Selezione inversa: mostra il percorso di tutti i file in cui non è presente ilmodello

-i Non distingue tra caratteri maiuscoli e minuscoli di modello

Linux e la Linux e la shellshell BashBash

Page 24: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari GREP GREP -- EsempiEsempi

Mostra tutte le righe di file_esempio

grep '.*' file_esempio

15 fifteen

14 fourteen

13 thirteen

12 twelve

11 eleven

10 ten

1) grep '[24]' file_esempio.txt

14 fourteen12 twelve4 four2 two

Mostra tutte le righe di file_esempio contenenti i caratteri 2 oppure 4, indipendentemente dalla loro collocazione nella stringa.

24

10 ten

9 nine

8 eight

7 seven

6 six

5 five

4 four

3 three

2 two

1 one

2) grep 'ee.' file_esempio.txtgrep 'e\{2\}.' file_esempio.txtgrep -E 'e{2}.' file esempio.txt

15 fifteen14 fourteen13 thirteen

Mostra le righe che contengono due “e” di seguito seguite da un carattere qualsiasi.

Linux e la Linux e la shellshell BashBash

Page 25: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari GREP GREP -- EsempiEsempi

Mostra tutte le righe di file_esempio

grep '.*' file_esempio

15 fifteen

14 fourteen

13 thirteen

12 twelve

11 eleven

10 ten

3) grep '^1.*e$' file_esempio.txt

12 twelve1 one

Mostra le righe che:

^1 Iniziano con il carattere “1”e$ Terminano con il carattere “e”.* Presentano al loro interno zero o più caratteri

25

10 ten

9 nine

8 eight

7 seven

6 six

5 five

4 four

3 three

2 two

1 one

4) grep '\<f.*n\>' esempio_grep.txt

15 fifteen14 fourteen

Mostra le righe contenenti parole che:

\<f Iniziano con il carattere “f”n\> Terminano con il carattere “e”.* Presentano al loro interno zero o più caratteri

Linux e la Linux e la shellshell BashBash

Q5

Q6

Page 26: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari HEADHEAD

Mostra le prime righe o byte di un file, di default le prime 10 righe.

SINTASSI: head [-cn] [file]

-c X Mostra i primi X byte di un file

-c -X Mostra i byte di un file esclusi gli ultimi X byte

user@ubuntu:~/Desktop/shell linux$ head -c 6 file_esempio.txt15 fif

1 byte per

carattere

26

15 fif

-n X Mostra le prime X righe di un file (equaivale a -X)

-n -X Mostra le righe di un file escluse le ultime X

user@ubuntu:~/Desktop/shell linux$ head -n 3 file_esempio.txt15 fifteen

14 fourteen

13 thirteen

Linux e la Linux e la shellshell BashBash

Q7

Q8

Page 27: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari TAILTAIL

Mostra le ultime righe o byte di un file, di default le prime 10 righe.

SINTASSI: tail [-cn] [file]

-c X Mostra gli ultimi X byte di un file

-c +X Mostra gli ultimi byte di un file a partire dal byte X

user@ubuntu:~/Desktop/shell linux$ tail -c 3 file_esempio.txtne

L’ultimo byte

è EOF

27

ne

-n X Mostra le ultime X righe di un file (equivale a -X)

-n +X Mostra le ultime righe di un file a partire dalla riga X

user@ubuntu:~/Desktop/shell linux$ tail -n 3 file_esempio.txt3 three

2 two

1 one

Linux e la Linux e la shellshell BashBash

Q9Q11

Q12

Page 28: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari UNIQUNIQ

Mostra od omette le linee ripetute. Se non è specificato nessun flag visualizza tutte le righe senza ripeterle.

SINTASSI: uniq [-cdfisuw] [file_esempio]

user@ubuntu:~/Desktop/shell linux$ cat esempio_uniq.txtQuesta riga è presente una sola volta.

Questa riga è presente due volte.

Questa riga è presente due volte.

28

Questa riga è presente tre volte.

Questa riga è presente tre volte.

Questa riga è presente tre volte.

user@ubuntu:~/Desktop/shell linux$ uniq esempio_uniq.txtQuesta riga è presente una sola volta.

Questa riga è presente due volte.

Questa riga è presente tre volte.

Linux e la Linux e la shellshell BashBash

Page 29: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari UNIQ UNIQ -- flagflag

-d Mostra solo le linee duplicate

user@ubuntu:~/Desktop/shell linux$ uniq -d esempio_uniq.txtQuesta riga è presente due volte.

Questa riga è presente tre volte.

-u Mostra solo le linee uniche non duplicate

29

user@ubuntu:~/Desktop/shell linux$ uniq -u esempio_uniq.txtQuesta riga è presente una sola volta.

-c Per ogni riga indica il numero di occorrenze

user@ubuntu:~/Desktop/shell linux$ uniq -c esempio_uniq.txt1 Questa riga è presente una sola volta.

2 Questa riga è presente due volte.

3 Questa riga è presente tre volte.

Linux e la Linux e la shellshell BashBash

Page 30: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari UNIQ UNIQ –– flagflag

-f N Salta il confronto delle prime N parole

-i Nel confronto ignora la differenza tra lettere maiuscole e minuscole

-s N Salta il confronto dei primi N caratteri

-w N Confronta non più di N caratteri per riga.

30 Linux e la Linux e la shellshell BashBash

Page 31: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari WC WC –– Word CountWord Count

Conta e mostra righe, parole, caratteri e byte per ogni file. Di default contarighe, parole e byte.

SINTASSI: wc [-cmlw] [file_esempio]

user@ubuntu:~/Desktop/shell linux$ cat esempio_uniq.txtQuesta riga è presente una sola volta.

Questa riga è presente due volte.

Questa riga è presente due volte.

31

Questa riga è presente tre volte.

Questa riga è presente tre volte.

Questa riga è presente tre volte.

user@ubuntu:~/Desktop/shell linux$ wc -w -l -m -c esempio_uniq.txt6 37 209 215 esempio_uniq.txt

Formato risposta: [righe] [parole] [caratteri] [byte] nome_file

Linux e la Linux e la shellshell BashBash

Q10

Page 32: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari FINDFIND

Cerca dei file nella directory specificata e relative subdirectory.

SINTASSI: find [-HLP] [percorso] [-name 'modello'] [-user utente_1][-group gruppo_a] [-perm +-permessi] [-max(min)depth X][-mount] [-[mac]time n] [-[mac]min n] [-[nac]ewer file][-empty] [-links n] [-inum n] [-size n[bckMG]]

-name espress.regol. Restituisce i file aventi nel nome la stringa espress.regol.

-iname espress.regol. Come -name ma non distingue maiuscole e minuscole in espress.regol.

32

-iname espress.regol. Come -name ma non distingue maiuscole e minuscole in espress.regol.

-user utente_1 Cerca i file in percorso aventi come utente proprietario utente_1

-group gruppo_a Cerca i file in percorso aventi come gruppo proprietario gruppo_a

-maxdepth X Prosegue la ricerca massimo fino al livello X, con X intero non negativo

-mindepth X Prosegue la ricerca a partire dal livello X

-[mac]time n Trova i file o directory la cui data di modifica (mtime), accesso (atime) o creazione (ctime) corrisponde a n giorni fa

-[mac]min n Come l'opzione precedente ma n corrisponde a minuti

-empty Solo file e directory non vuoti

-size n[bckMG] File che usano al massimo n unità di spazio

Linux e la Linux e la shellshell BashBash

Page 33: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari FIND FIND -- flagflag

(644) -rw-r--r-- esempio_sort_num.txt

(646) -rw-r--rw- esempio_sort.txt

(644) -rw-r--r-- esempio_uniq.txt

(664) -rw-rw-r-- file_esempio.txt

user@ubuntu:~/Desktop/shell linux$ find -perm 644./esempio_uniq.txt

./esempio_sort_num.txt

Restituisce i file che hanno esattamente i permessi specificati, in modo ottale o simbolico

33

Restituisce i file che hanno esattamente i permessi specificati, in modo ottale o simbolico

user@ubuntu:~/Desktop/shell linux$ find -perm -242./esempio_sort.txt

Restituisce i file che hanno almeno i permessi specificati, in modo ottale o simbolico

user@ubuntu:~/Desktop/shell linux$ find -perm +022./esempio_sort.txt

./file_esempio.txt

Restituisce i file che hanno alcuni i permessi specificati, in modo ottale o simbolico. Almeno uno tra quelli indicati.

Linux e la Linux e la shellshell BashBash

Page 34: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari SEDSED

Esegue modifiche sui dati ricevuti dallo standard input, lavorando con stringhe di qualsiasi lunghezza.

SINTASSI: sed [-n] [-e script] [file]

-n Il normale output non viene mostrato

-e Viene usata l'espressione script per elaborare il testo.

sed -e '/regexp/d' file Elimina (d) tutte le righe corrispondenti all'espressione

34

sed -e '/regexp/d' file Elimina (d) tutte le righe corrispondenti all'espressione regolare regexp

sed -e ‘n,md' file Elimina (d) le righe dalla n alla m incluse.

sed –n -e '/regexp/p' file Visualizza (p) solo le righe corrispondenti all'espressione regolare regexp (-n).

sed -e 's/stringa1/stringa2/g' file Sostituisce (s) ogni occorrenza di stringa1 con stringa2. Se g non è presente viene sostituita sola la prima occorrenza di ogni riga.

Linux e la Linux e la shellshell BashBash

Page 35: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari CUTCUT

Permette di estrarre sezioni di una riga di testo, delimitate da un carattere separatore.

SINTASSI: cut -d separatore -f sottoinsieme

-d separatore indica il carattere/stringa separatore

-f intervallo indica gli intervalli delle porzioni della riga

cut –d ; file -f 1,3,5-9 Considera ogni riga composta da più stringhe separate dal

35

cut –d ; file -f 1,3,5-9 Considera ogni riga composta da più stringhe separate dal separatore due punti (;) e ne visualizza solo prima, terza e dalla quinta alla nona (estremi inclusi).

Linux e la Linux e la shellshell BashBash

Page 36: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari DIFFDIFF

Trova differenze tra due file. Questo comando risulta molto utile per confrontare file di configurazione. Se si sostituisce a uno dei file da confrontare il trattino (-) questo indica che il confronto verrà eseguito con lo standard input.

SINTASSI: diff [-bBr] [--brief] [--ignore-case] da_file1 a_file2

-b Ignora differenze nella quantità di spazi bianchi

-B Ignora differenze che consistono solo in righe vuote

--brief Riferisce solo se i file sono diversi, senza mostrarne le differenze

36

--brief Riferisce solo se i file sono diversi, senza mostrarne le differenze

-r Confrontando due directory, confronta ogni sottodirectory ricorsivamente

--ignore-case Considera allo stesso modo maiuscole e minuscole, ignorando ogni relativa differenza

colordiff: Il comando ha le stesse opzioni ed effetti di diff ma mostrare un output colorato che permette una maggiore leggibilità

Linux e la Linux e la shellshell BashBash

Page 37: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari GESTIONE DEI PROCESSIGESTIONE DEI PROCESSI

Un processo eseguito in foreground interagisce in maniera diretta con l'utente (browser, editor di testo).

Un processo in background è invece un processo che non interagisce direttamente con l'utente e tipicamente fornisce un servizio non direttamente visibile all'utente (servizio di sistema, demone).

Per eseguire un comando (o una pipeline) in background da shell si aggiunge il carattere e-commerciale & alla fine della linea comando.

Quando viene lanciata una pipeline in background vengono mostrati il numero di job e il PID dell'ultimo processo della pipeline.

37

PID dell'ultimo processo della pipeline.

user@ubuntu:~/Desktop/shell_linux$ sleep 5&

[1] 15902

user@ubuntu:~/Desktop/shell_linux$ ps

PID TTY TIME CMD

6690 pts/0 00:00:00 bash

15902 pts/0 00:00:00 sleep

15904 pts/0 00:00:00 ps

Linux e la shell BashLinux e la shell Bash

Page 38: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari YES YES –– FG FG –– BG BG

Stampa il carattere “y”, o la stringa specificata indefinitamente sullo standard output, finché non viene terminato.

SINTASSI: yes [stringa]

La sequenza CTRL-Z ferma l'esecuzione del comando o di tutti i processi della pipeline restituendo il controllo alla shell, il job in questione viene messo in background.

Premendo invece CTRL-C viene terminato il comando o la pipeline attualmente in esecuzione.

38

Porta in foreground un job che prima era in background. Se non viene specificato il job su cui agire si intende quello attuale, ossia l'ultimo referenziato.

SINTASSI: fg [num_job]

Permette di far riprendere in background l'esecuzione di un job sospeso, se il job in questione non è in attesa di un input o di poter emettere l'output.

SINTASSI: bg [num_job]

Linux e la shell BashLinux e la shell Bash

Page 39: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari SLEEP SLEEP -- WAITWAIT

Sospende la shell per i secondi specificati.

SINTASSI: sleep num_secondi

Sospende l'esecuzione del processo chiamante sino a quando uno dei suoi figli termina.

SINTASSI: wait [PID]

L'interprete standard di comandi, permette quindi di eseguire comandi letti da una stringa a riga di comando (-c), dallo standard input (-s) o da un file specificato.

39

stringa a riga di comando (-c), dallo standard input (-s) o da un file specificato.

SINTASSI: sh -c stringa_comandosh -ssh file_script

Linux e la shell BashLinux e la shell Bash

Page 40: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari JOBSJOBS

Mostra lo stato dei job avviati nella sessione corrente. In maniera informale un jobs è definibile come un'attività derivata da un comando dato attraverso una shell.

SINTASSI: jobs [-lp]

user@ubuntu:~$ sleep 15&

[1] 17245

user@ubuntu:~$ jobs

[1]+ Running sleep 15 &

40

-l Visualizzazione estesa delle informazioni di ogni processo di statouser@ubuntu:~$ jobs -l

[1]+ 17245 Running sleep 15 &

-p Mostra solo il PID del processo leader del job selezionatouser@ubuntu:~$ jobs -p

17245

Linux e la shell BashLinux e la shell Bash

Page 41: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari PSPS

Mostra i processi attivi al momento.

SINTASSI: ps [-rxeaf] [f] [-u lista_user] [-p lista_PID] [-t lista_tty]

-u [lista_utenti] Solo i processi relativi agli utenti in lista_utenti, se non specificato all'utente corrente.

-r Restringe la selezione solo ai processi in esecuzione

-f Visualizzazione estesa

-p [lista_PID] Solo le informazioni relative ai PID specificati

41

ps ax Visualizza in processi utilizzando la notazione BSDuser@ubuntu:~$ ps ax | head –n 10

PID TTY STAT TIME COMMAND

1 ? Ss 0:02 /sbin/init

2 ? S< 0:00 [kthreadd]

3 ? S< 0:00 [migration/0]

4 ? S< 0:03 [ksoftirqd/0]

5 ? S< 0:00 [watchdog/0]

6 ? S< 0:00 [events/0]

7 ? S< 0:00 [khelper]

46 ? S< 0:00 [kintegrityd/0]

48 ? S< 4:46 [kblockd/0]

Linux e la shell BashLinux e la shell Bash

STAT = Codici dello stato dei

processi

R – Running

D – Sleep non interromp.

S – Sleep interromp.

< - Alta Priorità

….

Page 42: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari TOPTOP

Mostra dinamicamente (in foreground), ad intervalli regolari, una serie di informazioni sui processi e sul sistema.

SINTASSI: top

user@ubuntu:~$ toptop - 12:31:19 up 7:12, 2 users, load average: 1.64, 1.45, 1.36Tasks: 116 total, 4 running, 112 sleeping, 0 stopped, 0 zombieCpu(s): 2.7%us, 1.7%sy, 0.0%ni, 33.2%id, 62.5%wa, 0.0%hi, 0.0%si, 0.0%stMem: 514296k total, 493048k used, 21248k free, 136620k buffersSwap: 0k total, 0k used, 0k free, 153360k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

PARTE SUPERIORE

Informazioni generali

sul sistema

TABELLA CENTRALE

42

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1983 root 15 -5 0 0 0 D 3.7 0.0 15:26.33 kjournald 6059 root 20 0 42320 14m 7376 S 3.7 3.0 1:29.96 Xorg

48 root 15 -5 0 0 0 S 1.3 0.0 5:00.52 kblockd/0 5938 mythtv 20 0 69804 7844 5044 D 1.3 1.5 5:13.02 mythbackend 6541 user 20 0 45252 14m 8428 S 0.7 2.9 0:01.26 gnome-settings-6633 user 20 0 30156 15m 10m S 0.7 3.0 0:39.56 vmware-user-loa 16217 user 20 0 98.8m 25m 12m R 0.7 5.0 0:07.76 gnome-terminal 4974 root 20 0 13808 2820 2288 R 0.3 0.5 0:28.42 vmtoolsd 5492 mysql 20 0 125m 17m 5188 S 0.3 3.5 1:00.04 mysqld

1 root 20 0 3056 1888 564 S 0.0 0.4 0:02.00 init 2 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0 4 root 15 -5 0 0 0 S 0.0 0.0 0:03.76 ksoftirqd/0 5 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 6 root 15 -5 0 0 0 R 0.0 0.0 0:00.62 events/0

Linux e la shell BashLinux e la shell Bash

TABELLA CENTRALE

mostra i processi che

usano maggiormente

la CPU

Page 43: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari KILLKILL

Il comando kill permette di inviare un segnale ai processi di un job, indicando direttamente il PID del processo.

SINTASSI: kill [-s nome_segnale] [-nome_segn] [-num_segn] num_PID

1 SIGHUP Indica la caduta della "portante" della linea telefonica.

2 SIGINT Questo segnale è inviato ai processi per interromperli.

3 SIGQUIT Indica, come il precedente, la richiesta di terminazione del processo a cui è diretto, ma genera anche un'immagine di memoria del processo in esecuzione al momento della ricezione del segnale

43

processo in esecuzione al momento della ricezione del segnale

9 SIGKILL Questo segnale provoca la conclusione forzata ed immediata del processo dal kernel Linux.

15 SIGTERM Questo segnale è inviato ai processi per concluderli. E' il segnale che si invia premendo CTRL-C. (default)

30 SIGPWR È il segnale che viene inviato a tutti i processi attivi nel caso in cui si verifichi una caduta di tensione.

Linux e la shell BashLinux e la shell Bash

Page 44: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari KILLALLKILLALL

Si comporta esattamente come il comando kill ma non riceve come argomento uno o più PID. Come il comando kill, se non è specificato nessun segnale di default esso è SIGTERM (15).

SINTASSI: killall [-ui] [-nome_segn] [-num_segn] [nome_proc]

-u [utente] Manda il segnale di terminazione a tutti i processi relativi all'utente specificato.

-i Chiede conferma prima di inviare il segnale, processo per processo.

44

killall gdm Termina tutti i processi della sessione grafica, questi infatti sono tutti figli del processo gdm.

Linux e la shell BashLinux e la shell Bash

Page 45: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari EserciziEsercizi

Q1) Supponendo di trovarsi in una working directory qualsiasi, scrivere il comando per poter listare il contenuto della home directory (compresi i file nascosti), redirezionando l’output nel file output.out

ls -a ~/ > output.out

Q2) Si supponga che la current working directory sia ~/dir1. Descrivere come copiare il file ~/dir1/myfile nella home directory, evitando di sovrascrivere un file esistente.

cp -i ./myfile ../

45

cp -i ./myfile ../

Equivalente a: cp -i ./myfile ~/

cp -i ~/dir1/myfile ~/

Linux e la shell BashLinux e la shell Bash

Page 46: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari EserciziEsercizi

Q3) Sia assegnato il seguente albero di directory e si supponga di avere i privilegi di superutente:

/

var/

www/

html/

etc/

passwd(file)

default/

shadow(file)

/

var/

www/

prova/

etc/

passwd(file)

default/ passwd(file)

shadow(file)

html/

46

Dire come l’albero risulta modificato dopo la seguente sequenza di comandi:

cd /etc/default ci posizioniamo nella cartella /etc/default

cp ../pa* ./ copia il file passwd nella directory corrente /etc/default

cd /var/www ci posizioniamo nella cartella /var/www

mv ./html / sposta la cartella html in root /

touch ./html cambia l'orario di accesso e/o modifica

mkdir prova crea la cartella prova nella directory corrente /var/www

cd – ci posizioniamo nella cartella precedente /etc/default

pwd visualizza la working directory

Linux e la shell BashLinux e la shell Bash

Page 47: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari EserciziEsercizi

Q4) Scrivere il comando UNIX per visualizzare in ordine alfabetico i file contenuti nella directory corrente e produrre il risultato nel file di nome fileA nella root directory.

ls | sort > /fileA

Q5) Si dica quale genere di output produce il comando seguente:

$grep – E ‘^.*\<7[3-9]’ ./prova?

La grep viene eseguita sul contenuto dei file aventi come nome ‘prova’ seguito da un

47

La grep viene eseguita sul contenuto dei file aventi come nome ‘prova’ seguito da un carattere qualsiasi (ES: prova1, prova2, provaA,…).

-E indica che il comando grep è utilizza espressioni regolari estese

^.* indica che le righe da selezionare possono iniziare con una qualsiasi sequenza di caratteri

\<7[3-9] indica che nella riga deve essere presente una parola che inizi con 7 seguito da un carattere tra 3 e 9 (ES: 73, 74, …79)

Linux e la shell BashLinux e la shell Bash

Page 48: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari EserciziEsercizi

Q6) Spiegare quale è l’effetto del seguente comando: $ls -aF1 | grep ‘\<.’

ls -aF1 visualizza i file presenti nella directory corrente compresi i file nascosti (-a), aggiungendo a ciascun file un carattere chee ne indica il tipo (-F) mostrando il tutto in una singola colonna (-1)

grep ‘\<.’ Seleziona i file che presentino delle parole che inizino con un carattere qualsiasi. Seleziona quindi tutti i file ottenuti con il comando precedente

48

Q7) Scrivere una pipe di comandi che consenta di estrarre da un file di testo di nome fileA le prime X linee e di ordinarle in ordine alfabetico decrescente.

head –n X fileA | sort –r

Q8) Scrivere una sequenza di comandi che consenta di ordinare in ordine alfabetico il contenuto di un file di nome gianni e di estrarre dal file ordinato le prime X linee scrivendole in appendice sul file gianni2 nella home directory dell’utente loggato.

sort gianni | head –n X >> ~/gianni2

Linux e la shell BashLinux e la shell Bash

Page 49: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari EserciziEsercizi

Q9) Il file di testo text.txt contiene le seguenti parole:

casa

cane cane cane

gatto tail -n +2 gatto grep ‘a’ gatto

volpe volpe

Indicare l’output del seguente comando $ tail -n +2 text.txt | grep ‘a’| sort -r

gatto

cane

49

cane

Q10) Dati due file, uno di nome fileA costituito da X linee di testo e uno di nome fileB costituito da Y linee di testo, indicare l’output del comando (cat fileA fileB) | wc –l

Cat concatena i due file mentre wc visualizza il n° di linee complessive, quindi l’output sarà rappresentato dal valore X+Y

Linux e la shell BashLinux e la shell Bash

Page 50: Linux e la shell Bash – Parte II

Sistemi OperativiSistemi OperativiDEE DEE -- Politecnico di BariPolitecnico di Bari EserciziEsercizi

Q11) Qual è l effetto del comando: cat risultati|tail -5|grep ‘^.*\<[m-z].*$’ 2> risultati

se il file risultati è così fatto:

mario rossi 12/07/1982 25 Ammesso

paolo paoli 15/09/1984 16 Non Ammesso

rocco verdi 12/02/1980 22 Ammesso

marco rossi 24/06/1984 19 Ammesso

sergio bianchi 02/07/1985 28 Ammesso

fabio giallo 03/05/1988 19 Ammesso

rosa barbieri 17/03/1981 20 Ammesso

Non essendoci errori durante l’esecuzione del comando non saranno inviati messaggi sullo standard

50

Non essendoci errori durante l’esecuzione del comando non saranno inviati messaggi sullo standard error e quindi il file risultati sarà vuoto.

Q12) Qual è l’effetto del comando:

cat elenco.promossi|head -6|grep ‘\<2[29].*$’ -v &> output

mario rossi 12/07/1982 25 Ammesso mario rossi 12/07/1982 25 Ammesso

paolo paoli 15/09/1984 16 Non Ammesso paolo paoli 15/09/1984 16 Non Ammesso

rocco verdi 12/02/1980 22 Ammesso

marco rossi 24/06/1984 19 Ammesso marco rossi 24/06/1984 19 Ammesso

sergio bianchi 02/07/1985 28 Ammesso sergio bianchi 02/07/1985 28 Ammesso

fabio giallo 03/05/1988 19 Ammesso fabio giallo 03/05/1988 19 Ammesso

rosa barbieri 17/03/1981 20 Ammesso

Linux e la shell BashLinux e la shell Bash