Lab. di Sistemi Operativi - Esercitazione - Comandi Shell

Documenti analoghi
- comando sort: con chiavi di ordinamento -

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

Linux - La Shell Bash

Elaborato Shell. Elementi di architettura e sistemi operativi 2016/2017

Shell BASH. Variabili Redirezione

SHELL: File e Filesystem

Esempio di domande sul file system

Shell: variabili di sistema. Per visualizzare il valore di tutte le variabili d ambiente si usa il comando set

Esercitazione 1 la shell

Linux e la shell Bash

Uso del terminale in ambiente UNIX

Introduzione all'uso del sistema operativo Ubuntu

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

Lezione 3: Programmazione della Shell di Unix

Per visualizzare il valore di tutte le variabili d ambiente si usa il comando env

La Back Office Console consente di costruire lo scheletro degli schema.

Esercitazione GNU/Linux n. 2

2.5 Sottomaschere e Report avanzati MODULO L2

CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS

Nozioni Base di Linux

DESCRIZIONE ILLUSTRATA FUNZIONALITA' SOFTWARE ORAZIO WEB

Esercitazione 2 GUIDA

Utilizzo delle Maschere in Microsoft Access

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

MODULO 5 - USO DELLE BASI DI DATI 2 FINALITÁ

Shell di Linux e Comandi Utente

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

Transcript:

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell 1

- Esercizi Comandi Unix - 2

Esercizio n 0 0a) creare una cartella EsercitazioneLSO-1 nella directory di lavoro 0b) creare un file testo chiamato provafile.txt di almeno 5 righe utilizzando touch, echo, cat e ridirezione 0c) creare unfile testo chiamato provafile2.txt che ha il contenuto di provafile.txt ripetuto 4 volte 3

Esercizio n 1 head n nomefile (visualizza le prime n righe del file, se non specificato nomefile legge stdin) tail n nomefile (visualizza le ultime n righe del file, se non specificato nomefile legge stdin) 4

Esercizio n 1 1a) Scrivere il comando Unix che consente la visualizzazione la terza e la quarta riga del file provafile1.txt 1b) Scrivere il comando Unix che consente la visualizzazione delle penultime 3 righe di un del file provafile1.txt 1c) Scrivere il comando Unix che consente la visualizzazione della n-esima riga del file provafile.txt 5

Esercizio n 1 head 4 nomefile tail -2 tail 4 nomefile head -3 head -n nomefile tail -1 6

/etc/passwd Il file /etc/passwd è il database degli utenti su ogni sistema Unix. Ad ogni user è dedicata una riga che definisce quali sono i suoi principali attributi. Sui sistemi Unix meno recenti in questo file viene scritta anche la password (criptata), su quelli più recenti viene scritta, generalmente, in /etc/shadow, che ha maggiori restrizioni in termini di sicurezza. 7

/etc/passwd Le righe di /etc/passwd si presentano nella seguente forma: Username:Password:UserID:GroupID:Info:HomeDirector y:shell 8

/etc/passwd Username: Nome dell user, la login con cui può accedere al sistema; Password: Campo riservato alla password dell'utente. Può essere scritta direttamente in forma criptata o esserci semplicemente una x (la password c'è ma è scritta altrove, di solito in /etc/shadow). Se c'è un * (asterisco) significa che l'utente o non ha una password o la password non è valida (in questo caso non gli è permesso di login); UserID: ID dell user; GroupID: ID del gruppo di appartenenza; Info: Contiene informazioni sull'utente non necessarie al sistema (nome esteso, numero di telefono, mail ecc...); HomeDirectory: Indica la directory della home dell'utente; Shell: Indica la shell di default per quell'utente. 9

/etc/passwd Un esempio: root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin [...] diego:x:501:503::/home/diego:/bin/bash 10

Esercizio n 2 2a) Con un opportuno comando Unix visualizzare il contenuto del file /etc/passwd 2b) Con un opportuno comando Unix estrarre il primo campo dal file /etc/passwd 11

Soluzione Esercizio n 2a cat /etc/passwd cut [...] /etc/passwd consente di visualizzare il contenuto del file passwd selezionando alcuni campi 12

Soluzione Esercizio n 2b l opzione f seguito dal numero del campo da estrarre consente di estrarre il campo indicato cut -d: -f1 /etc/passwd il separatore si specifica con l opzione d (delimiter) seguito dal simbolo del separatore nel file 13

Esercizio n 3a 3a) Ordinare le righe del file di testo votostudenti.txt (anche in senso inverso): Gianni 20 Bruno 15 Carlo 10 Alice 30 14

Soluzione Esercizio n 3a sort votostudenti.txt (ordinamento alfabetico di default) Alice 30 Bruno 15 Carlo 10 Gianni 20 15

Soluzione Esercizio n 3a sort r esempio.txt (ordinamento inverso) Gianni 20 Carlo 10 Bruno 15 Alice 30 inverte il senso di ordinamento sort r esempio.txt -o file_risultato.txt ordinamento inverso con scrittura del risultato nel file _risultato.txt invece che sullo standard outuput 16

- Chiavi di ordinamento - Tramite l'opzione -k è possibile definire una chiave di ordinamento su una porzione della linea contenuta nel file Specificando più opzioni -k è possibile definire più chiavi di ordinamento da usare in cascata. 17

- Chiavi di ordinamento - La sintassi di una chiave di ordinamento è la seguente: -k numero_campo_iniziale[.indice_primo_carattere][tipo] [,numero_campo_finale[.indice_ultimo_carattere][tipo]] Tipo di ordinamento da applicare su tale campo 18

Esercizio n 3b 3b) Ordinamento numerico con chiave: File da ordinare: esempio.txt: Gianni 20 Bruno 15 Carlo 10 Alice 30 Secondo numerico campo 19

Soluzione Esercizio n 3b Ordinamento numerico con chiave: chiave di ordinamento: secondo campo del file da ordinare sort -k 2 -n esempio.txt output Ordina numericamente in quanto il campo scelto come chiave di ordinamento è numerico. Bruno 15 Alice 30 Carlo 10 Gianni 20 20

Esercizio n 4 Con opportuni comandi Unix modificare un file di testo mrighe.txt rimuovendo le prime n righe (con m>n) Dal file votistudenti.txt selezionare gli studenti con gli n migliori voti e gli n peggiori voti 21

Soluzione Esercizio n 4 Supponiamo di avere un file costituito da m righe con m > n Effettua il conteggio delle linee (per la precisione, effettua il conteggio dei caratteri di ritorno a capo). wc -l mrighe.txt (m righe è il valore restituito) tail -k mrighe.txt > tmp (dove k = m n) mv tmp mrighe.txt (rinomina il file tmp nel file mrighe.txt) 22

Esercizio n 5 Realizzare una combinazione di comandi unix che, dato un file di testo esistente elenco, crea un nuovo file nominativo, contenente la riga di elenco che viene lessicograficamente per seconda. Ad esempio se il contenuto di un file elenco è il seguente: valeria aldo roberta bruno sandro paola il comando deve creare il file nominativo con il seguente contenuto: bruno 23

Soluzione: Soluzione Esercizio n 5 sort elenco head 2 tail 1 > nominativo ordina il contenuto del file elenco in ordine alfabetico scrive il risultato sul file nominativo out put aldo bruno paola input head -2 output aldo bruno input tail -1 roberto outp ut bruno sandro valeria 24

Esercizio n 6 Realizzate una combinazione di comandi Unix per visualizzare gli ultimi n utenti collegati. 25

Soluzione Esercizio n 6 Soluzione: chiave di ordinamento in base al quinto campo inverte il senso di ordinamento, producendo i risultati a partire dall utente che si è collegato per ultimo who sort k 5 -r head 3 identifica gli utente attualmente collegati al sistema Visualizza gli ultimi tre utenti connessi 26

Esercizio n 7 Scrivere uno script shell di nome estrai che ha tre argomenti di input. I primi due sono file che esistono. Il terzo argomento è il nome di un file che deve essere creato e deve essere formato dalle prime 3 righe del primo file e dalle ultime 2 righe del secondo file. Non devono essere usati file temporanei. 27

Soluzione Esercizio n 7 Soluzione: head -3 $1 > $3 (le prime tre righe del primo file vengono scritte nel terzo file che rappresenta il terzo argomento) tail -2 $2 >> $3 nome (le ultime due righe del secondo file vengono scritte nel terzo argomento che è il del terzo file) scrive sul terzo file in aggiunta a ciò che è stato già scritto 28