|Operating system||Unix, Unix-like, Plan 9, Inferno|
|License||Plan 9: MIT License|
In computer software, strings is a program in Unix, Plan 9, Inferno, and Unix-like operating systems that finds and prints the strings of printable characters in files. The files can be of regular text files or binary files such as executables. It can be used on object files and core dumps. strings is mainly useful for determining the contents of non-text files.
Strings are recognized by looking for sequences of at least 4 (by default) printable characters terminating in a NUL character (that is, null-terminated strings). Some implementations provide options for determining what is recognized as a printable character, which is useful for finding non-ASCII and wide character text. By default, it only prints the strings from the initialized and loaded sections of object files; for other types of files, it prints the strings from the whole file. But it doesn't make the behavior of cat and strings the same on regular text files. cat processes the non printable characters and output it to the terminal but strings ignore them.
It is part of the GNU Binary Utilities (binutils), and has been ported to other operating systems including Windows.
Using strings to print sequences of characters that are at least 8 characters long (this command prints the system's BIOS information; should be run as root):
dd if=/dev/mem bs=1k skip=768 count=256 2>/dev/null | strings -n 8 | less
a aa aaa aaaa
strings file.txt # prints aaaa