pipelining, redirection e filtri: head tail wc sort grep uniq tr ----------------------------------------------------------------- - conta gli utenti del tuo sistema - mostra il file passwd ordinato alfabeticamente - mostra una lista di utenti (tipo quella contenuta in /etc/passwd) in ordine alfabetico e in cui i campi sono separati da virgole - mostra una lista di utenti come sopra ma mostrando solo quelli che usano bash come shell. - considera l'output di "ls -l", dai una lista delle parole contenute in cui ciascuna parola compare una volta sola. Una parola e' una sequenza di caratteri separata spazi. - dai la stessa lista di prima in cui ogni parola ha a fianco il numero di occorrenze - crea un file vuoto e usa >> ed echo per aggiungere un riga in coda al file. - usa tail per vedere quando un file ha qualcosa di nuovo in coda (utile per monitorare i file di log come "/var/log/messages") - usa tail per togliere l'intestazione all'output di ps aux scripting: if-fi while-do-done for-do-done ------------------------------------------- - scrivi uno script che crei 10 file vuoti col nome pippoN.txt dove N va da 1 a 10 (usando for) - considera lo stesso esercizio di prima con cento file. - cancella a caso un po' dei file creati automaticamente e scrivi un programma che identifichi nella sequenza i file mancanti (usa if [ -e ... ] ) e dia la lista in output. - considera il primo esercizio con la variante che il file deve essere creato solo se N e' dispari. (di questo esercizio puoi dare due soluzioni abbastanza diverse) - rinomina i file di prima in plutoN.txt usando for e mv - considera il comando "rename" e fai la stessa rinominazione usando tale comando (attenzione il comando non e' standard). - scrivi uno script che esegua infinite volte un certo comando dato come parametro sulla linea di comando. - scrivi uno script che aspetti finche' un file di nome "eccomi" appare nella directory corrente, quindi stampa un messaggio "il file e' apparso!" ed esce. Il controllo deve essere effettuato una volta al secondo. (considera il comando "sleep") - scrivi uno script che a tutti i file (considerati plain ascii) della directory corrente aggiunga in coda una linea contenente il nome del file stesso, e il numero di linee dello stesso file prima dell'inserzione. Attenzione la directory corrente potrebbe contenere altre directory che vanno ignorate! - scrivi uno script che, a tutti i file della directory corrente, tolga l'ultima riga. - scrivi uno script che converta tutti i file della directory corrente da ASCII UNIX in formato ASCII DOS. Suggerimento: in tutte le distribuzioni recenti e' disponibile il comando unix2dos (non standard) - scrivi uno script che faccia il lavoro opposto del precedente. - scrivi uno script che faccia unix2dos o dos2unix a seconda che di una opzione fornita come parametro sulla riga di comando.