strings (Unix)
strings è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX[1] e GNU[2], che legge i dati di uno o più file, o i dati provenienti dallo standard input, ricercando in essi delle sequenze di byte rappresentanti valide stringhe di caratteri visibili, e le visualizza sullo standard output, una linea per ciascuna stringa trovata, opzionalmente indicando anche l'offset a cui la stringa è stata trovata.
Il funzionamento si basa sul fatto che solo alcune delle sequenze di byte presenti in un flusso di dati possono rappresentare anche delle valide stringhe di caratteri secondo la codifica di caratteri in uso.
Il comportamento predefinito prevede di ricercare stringhe composte da almeno 4 caratteri, e di considerare solo le porzioni dei dati ritenute rilevanti (ad esempio, nel caso di file eseguibili nel formato nativo del sistema, sono normalmente prese in considerazione solo le sezioni contenenti i dati del programma, e non quelli contenenti ad esempio le istruzioni).
Sintassi
[modifica | modifica wikitesto]La sintassi generale del comando strings è la seguente:
strings [opzioni] [--] [file1 …]
I parametri facoltativi file specificano i nomi dei file da cui leggere i dati. Se non sono specificati, o se è un trattino (-), strings legge i dati provenienti dallo standard input.
Il doppio trattino -- (facoltativo) indica che i parametri successivi non sono da considerarsi opzioni.
Opzioni
[modifica | modifica wikitesto]Tra le opzioni principali vi sono:
- -a
- Effettua la ricerca considerando tutti i dati, anziché le sole sezioni considerate rilevanti.
- -n num
- Indica la lunghezza minima delle stringhe da ricercare (il valore predefinito è 4).
- -t formato
- Indica di mostrare anche l'offset a partire dall'inizio dei dati a cui la stringa è stata trovata. Il parametro formato è una lettera che specifica la base numerica con cui visualizzare l'offset, e può essere
- d per il formato decimale;
- o per il formato ottale;
- x per il formato esadecimale.
Esempi
[modifica | modifica wikitesto]Mostra le stringhe nelle sole sezioni considerate rilevanti del file /bin/ls:
strings /bin/ls
Mostra le stringhe di almeno 6 caratteri del file /tmp/dati.dat, indicando anche l'offset in forma esadecimale:
strings -a -n 6 -t x /tmp/dati.dat