strings – standardowy program komputerowy w systemach Unix wypisujący na standardowe wyjście drukowalne ciągi znaków znalezione w plikach. Domyślnie przez drukowalny ciąg znaków rozumiana jest sekwencja co najmniej 4 znaków drukowalnych zakończonych znakiem nowej linii lub znakiem końca ciągu znaków (znak o kodzie ASCII równym 0). Program strings jest zwykle używany z plikami binarnymi, wykonywalnymi, obiektowymi, bibliotekami oraz zrzutami pamięci. Stanowi on cenne narzędzie w rękach programistów oraz osób analizujących działanie programów.
Składnia
Każda zgodna ze standardem Single UNIX Specification implementacja programu strings powinna obsługiwać następującą składnię:
strings [-a][-t format][-n number][file...]
Twórcy implementacji mają jednak prawo do dodawania własnych rozszerzeń. Tak jest między innymi w przypadku implementacji powstałej w ramach projektu GNU.
Przykład
$strings /bin/ping
...
wrong data byte #%d should be 0x%x but was 0x%x
Warning: time of day goes back (%ldus), taking countermeasures.
rtt min/avg/max/mdev = %ld.%03ld/%lu.%03ld/%ld.%03ld/%ld.%03ld ms
, min/avg/ewma/max = %ld.%03ld/%lu.%03ld/%d.%03d/%ld.%03ld ms
PATTERN: 0x
%02x
ping: bad sndbuf value.
ping: bad linger time.
ping: bad timing interval.
ping: ttl %u out of range
ping: bad wait time.
ping: sendmsg
ping: recvmsg
%d bytes from %s: icmp_seq=%u
ttl=%d
time=%ld.%02ld ms
...