Tutti conoscono (ed amano) grep, ho anche scritto un articolo su di esso, ma oggi vedremo altre piccole utility che hanno alcune cose in comune con esso.
In particolare vi mostrerò: pgrep, grepcidr, ngrep, pdfgrep e taggrepper.
Sono tutti strumenti a linea di comando per essere utilizzati con la vostra shell preferita,vi farò vedere anche qualche esempio di uso con o0gni comando.
pgrep
pgrep è diventato un comando comune per la shell (o almeno così credo), guarda attraverso i processi attualmente in esecuzione ed elenca gli ID dei processi che corrispondono ai criteri di selezione sullo stdout.
Uso base
pgrep command_name |
Trova il processo che si sta cercando meno il pgrep stesso.
example :
pgrep ssh 378 1854 |
L’output darà alcuni PIDs, questo è l’equivalente del comando:
ps -ef |grep ssh |grep -v grep | awk '{print $2}' 378 1854 |
Si prega di notare che tutti i criteri devono corrispondere. Per esempio,
pgrep -u root sshd |
sarà solo l’elenco dei processi chiamati sshd e di proprietà di root. D’altra parte,
pgrep -u root,daemon |
elencherà i processi di proprietà di root o daemon.
grepcidr
grepcidr può essere utilizzato per filtrare un elenco di indirizzi IP a fronte di una o più specifiche Classless Inter-Domain Routing (CIDR), o reti arbitrarie specificate da un intervallo di indirizzi. Come con grep, ci sono opzioni per invertire il risultato e caricare le stringhe da cercare da un file. grepcidr è in grado di confrontare migliaia o addirittura milioni di indirizzi IP con un utilizzo della memoria ragionevole e in poco tempo di calcolo .
Uso base
grepcidr pattern file |
Trova all’interno del file gli indirizzi che corrsipondono alla stringa.
Stringa può assumere i seguenti valori:
Formato CIDR a.b.c.d/xx range di IP a.b.c.d-e.f.g.h Singolo IP a.b.c.d
Esempi:
grepcidr -f ournetworks blocklist > abuse.log |
Trova i nostri clienti che compaiono in elenchi di IP bloccati
grepcidr 127.0.0.0/8 iplog |
Ricerche per tutti gli indirizzi IP locali all’interno del file iplog
grepcidr "192.168.0.1-192.168.10.13" iplog |
Ricerche per IP corrispondente all’intervallo indicato nel file iplog
grepcidr -f list1 list2 |
Riferimenti incrociati tra due elenchi, l’output rappresenta gli IP comuni ad entrambe le liste
ngrep
ngrep si sforza di fornire la maggior parte delle caratteristiche comuni del grep di GNU, applicandole allo strato di rete.
Il programma applica le funzioni di ricerca tipiche di grep sul traffico di rete ed è “pcap-aware”, cioè guarda e cerca (ergo: sniffa) nello specifico dentro i pacchetti di dati.
Uso base
Se lanciato com’è, senza opzioni, ngrep rileverà tutto il nostro traffico di rete istantaneo.
Per essere un più utile è possibile utilizzare i parametri -d per specificare la scheda di rete ed il parametro -p per indicare la porta.
Esempi
ngrep -d en0 port 80 |
Questo comando mostrerà tutto il traffico in transito su eth0 verso la porta 80.
ngrep -d any 'error' port syslog |
Controlla il traffico di rete su tutte le interfaccie verso il syslog cercando l’occorrenza della parola “errore”. ngrep sa come convertire i nomi dei servizi ai numeri di porta (su UNIX, la mappatura che si trova in “/etc/services”) .
pdfgrep
Pdfgrep è uno strumento di ricerca di testo nei file PDF. Funziona in modo analogo a grep, supporta la ricerca per espressioni regolari, il nome del file come output, il numero delle pagine come output, opzionalmente ignora maiuscole/minuscole.
Uso Base
pdfgrep [grep options] [file ...] |
Esempio
#pdfgrep "acer" acer1400.pdf Original version: http://personal.digital.it/prodotti/S1018490/acer-aspire-1400lc.html/scheda.html |
E’ possibile usare l’opzione -c per contare il numero di occorrenze o -n per stampare il numero di pagine in cui è contenuta la parola.
taggrepper
taggrepper è un piccolo strumento scritto in maniera simile a “grep” per cercare i tag dei file multimediali. Attualmente, esso può essere utilizzato per cercare con espressioni regolari alcuni o tutti i tag di file MP3, Ogg Vorbis e FLAC. Supporta anche le ricerche ricorsive.
Uso Base
Le opzioni più comuni sono:
--display-title display title tag of matching files --display-artist display artist tag of matching files --display-album display album tag of matching files --display-year display year tag of matching files --display-genre display genre tag of matching files --display-comment display comment tag of matching files --display-track display track tag of matching files --display-composer display composer tag of matching files --display-orig-artist display orig-artist tag of matching files --display-copyright display copyright tag of matching files --display-url display url tag of matching files --display-encoded-by display encoded-by tag of matching files
Esempi
taggrepper -y 2009 -r *.mp3 |
Cerca all’interno di tutti i file mp3 quelli con tag 2009 come anno.
taggrepper -r -a Rahman ~/AV/Music_collection/ |
Trova tutte le canzoni in ~/AV/Music_collection/ che hanno “Rahman” nel loro tag “artista”.
Conclusione
Spero che vi siano piaciute tutte o alcune di queste 5 piccole utility, potete usarle sul terminale e utilizzare un pipe ( | ) per concatenare più comandi.
E’ possibile utilizzare questi comandi anche nei vostri server in web hosting, se avete accesso via SSH. Credeteci o no anche alcune compagnie web hosting ecnomiche danno accessovia SSH, ma la maggior parte delle volte bisogna farne domanda.
Popular Posts:
- None Found
There is also a command called grepmail that will pull an email out of an mbox file that matches
the search criteria.
See also ack at betterthangrep.com. It’s optimized for programmers.
Thanks Andy, i’ll check it.
Is not amazing, only is Linux
> ps -ef |grep ssh |grep -v grep | awk ‘{print $2}’
The will miss processes (eg. ssh grep@mybox) and is inefficient.
Use
ps -ef | grep [s]sh
instead
Thanks Roberto.
There also the zgrep command , it search pattern inside gz tar zip files…