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
fgrep
invece digrep
e 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:
cp
come alias dicp -i
mv
come alias dimv -i
rm
come alias dirm -i
cercaErimuovi
che effettua la rimozione di tutti i file che terminano per ~ nella gerarchia di directory radicata nella directory correntebye
che 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
?