Dove si sperimentano alcuni comandi di base bash.
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.
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:
fgrep
invece di grep
e confrontare il tempo impiegato dai due comandi in modalita' utente e kernel usando la time
.strace
Trasformare il file lyrics
dell'esercizio precedente nel file LYRICS
in cui tutte le lettere minuscole sono state trasformate in lettere maiuscole.
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
)
Stampare su standard output tutte le directory in $PATH
separate da newline.
Personalizzare il prompt della shell in modo da stampare utente, tipi di shell, working directory etc.. (man bash, cercare PROMPTING)
Definire i seguenti alias per la propria shell:
cp
come alias di cp -i
mv
come alias di mv -i
rm
come alias di rm -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
)
Sapete interpretare il risultato del seguente comando?
ls -l /proc/$$/fd
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
?