Capitolo 5. Strumenti da linea di comando

Sommario
5.1. grep: General Regular Expression Parser
5.2. find: cerca file in base a determinati criteri
5.3. crontab: analizzare o modificare il file crontab
5.4. at: programmare un comando per una sola esecuzione
5.5. tar: Tape ARchiver
5.6. bzip2 e gzip: programmi per la compressione di dati
5.7. Tanti, tanti altri...

Lo scopo di questo capitolo è presentare alcuni strumenti da linea di comando che possono tornare utili nell'uso quotidiano. Naturalmente potete evitare di leggerlo se intendete usare unicamente l'ambiente grafico, ma un rapido sguardo potrebbe farvi cambiare idea :-).

Questo capitolo non ha una vera e propria struttura, i comandi sono elencati così come capita, dal più comunemente usato al più oscuro. Ciascun comando sarà accompagnato da un esempio, ma la ricerca di altri usi interessanti per gli stessi comandi sarà lasciata a voi, come esercizio.

5.1. grep: General Regular Expression Parser

Va bene, il nome non è molto intuitivo, e non lo è neanche l'acronimo, ma il suo scopo è semplice: cercare in uno o più file un modello (ingl. pattern) di testo immesso come argomento. La sua sintassi è:
grep [opzioni] <modello> [uno o più file]
Se indicate più file insieme, prima di ciascuna riga del risultato sarà mostrato il nome del file corrispondente. Usate l'opzione -h per evitare che i nomi dei file siano mostrati; usate invece l'opzione -l per ottenere solo i nomi dei file in cui sono state trovate corrispondenze. Il modello è una espressione regolare, sebbene la maggior parte delle volte si tratti di una semplice parola. Le opzioni usate più di frequente sono le seguenti:

Ecco un esempio di come usarlo:

$ cat my_father
Hello dad
Hi daddy
So long dad

  # Cerca la stringa "hi", nessuna differenza tra maiuscole e minuscole
$ grep -i hi my_father
Hi daddy

  # Cerca la stringa "dad" come parola intera, e stampa 
  # il numero di riga prima di ogni occorrenza
$ grep -nw dad my_father
1:Hello dad
3:So long dad

  # Adesso vogliamo tutte le righe che non cominciano con "H"
$ grep -v "^H" my_father
So long dad
$

Se volete usare grep in una pipe non dovete indicare il nome di un file, poiché come comportamento predefinito il comando preleva il suo ingresso dallo standard input. Allo stesso modo, come comportamento predefinito, il comando stampa il risultato sullo standard output, quindi potete redirigere l'output di un grep verso un altro programma senza alcun problema. Ad esempio:

$ cat /usr/share/doc/HOWTO/Parallel-Processing-HOWTO | \
  grep -n thread | less

 

 


Tux on Star from MandrakeSoft Linux è un marchio registrato di Linus Torvalds. Tutti gli altri marchi e copyright appartengono ai rispettivi proprietari.
Se non diversamente specificato, i diritti di tutto il contenuto di queste pagine e di tutte le immagini sono proprietà di MandrakeSoft S.A. e MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/