Indice
Esercitazione 4
Dove si sperimentano alcuni comandi di base bash.
Esercizio -1: Basics interazione utente
Seguire i lucidi della prima parte bash e provare i comandi negli esempi mostrati a lezione. Carcare di diminuire i tempi di battitura dei comandi sfruttando il meccanismo di history, il completamento (TAB) e l'editing di linea.
Esercizio 0: man, cat, grep, sort
Utilizzare cat per creare un file di nome lyrics che contiene la canzone del non compleanno di Alice nel Paese delle meraviglie:
Statistics prove, prove that you've one birthday, one birthday ev'ry year. But there are three hundred and sixty four unbirthdays. That is why we're gathered here to cheer. A very merry unbirthday to you, to you. A very merry unbirthday to you, It's great to drink to someone and I guess that you will do. A very merry unbirthday to you
con grep e sort selezionare tutte le linee che contengono esattamente la parola one (non come sottostringa di una parola data), ordinarle lessicograficamente e farle sampare sullo standard output (usare sort).
Utilizzare le opzioni di grep (vedi man grep) per stampare il numero di linea in cui e' stata trovata un'occorrenza come in:
1:Statistics prove, prove that you've one birthday 2:one birthday ev'ry year.
e poi sempre con grep stampare tutte le linee che non contengono la parola merry in ordine lessicografico case-unsensitive, cioe' :
But there are three hundred and sixty four It's great to drink to someone and I guess that you will do. one birthday ev'ry year. Statistics prove, prove that you've one birthday, That is why we're gathered here to cheer. unbirthdays.
Approfondimenti:
- Usare
fgrepinvece digrepe confrontare il tempo impiegato dai due comandi in modalita' utente e kernel usando latime. - Controllare le chiamate di sistema effettuate dai vari comandi con
strace
Esercizio 1: Trasformismo
Trasformare il file lyrics dell'esercizio precedente nel file LYRICS in cui tutte le lettere minuscole sono state trasformate in lettere maiuscole.
Esercizio 2: Trovare i file non acceduti negli ultimi 30 giorni
Scrivere un pipeline di comandi che lista tutti i file che non sono stati acceduti negli ultimi 30 giorni nella gerarchia di directory radicata nella directory corrente. (Suggerimento: usare find)
Esercizio 3: prettyPATH
Stampare su standard output tutte le directory in $PATH separate da newline.
Esercizio 4: Personalizzare il prompt
Personalizzare il prompt della shell in modo da stampare utente, tipi di shell, working directory etc.. (man bash, cercare PROMPTING)
Esercizio 5: Aliasing
Definire i seguenti alias per la propria shell:
cpcome alias dicp -imvcome alias dimv -irmcome alias dirm -icercaErimuoviche effettua la rimozione di tutti i file che terminano per ~ nella gerarchia di directory radicata nella directory correntebyeche effettua l'uscita dalla shell
Fare in modo che gli alias vengano registrati automaticamente ogni volta che una shell viene attivata.(Suggerimento: man bash cercare bashrc)
Esercizio 6: ????
Sapete interpretare il risultato del seguente comando?
ls -l /proc/$$/fd
Esercizio 7: Magic files and numbers
Utilizzare file per stabilire il tipo dei file che si trovano nella vostra home.
file lavora controllando i magic numbers in /usr/share/file/magic, esplorando questo file riuscite a ritrovare il tipo dei file visitati?
Approfondimenti: Come si potrebbe aggiungere un nuovo tipo riconoscibile da file?
