Команды Linux · 3 min read · Sep 19, 2025
Учебник по команде Linux strings для начинающих (5 примеров)
Посмотреть содержимое двоичного/исполняемого файла, чтобы извлечь читаемые человеком строки, не является работой, которую делает каждый, но что если вас попросят сделать это? Открытие файла в редакторе и ручной поиск информации не является элегантным решением. Итак, что делать? Да, вы угадали правильно - существует утилита командной строки, которая делает это за вас.
Инструмент, о котором идет речь, называется Strings, и в этом учебнике мы обсудим основы этой команды, используя несколько простых для понимания примеров. Но прежде чем мы это сделаем, стоит упомянуть, что все примеры в этой статье были протестированы на машине с Ubuntu 16.04 LTS.
Команда Linux Strings
Команда Strings в основном выводит строки печатных символов из файлов. Вот ее синтаксис:
strings [OPTIONS] FILENAMEА вот как страница man этого инструмента описывает его:
Для каждого указанного файла GNU strings выводит последовательности печатных символов,
которые имеют длину не менее 4 символов (или число, указанное с
опциями ниже) и за которыми следует непечатный символ.
В зависимости от того, как была настроена программа strings, она по умолчанию
будет выводить все печатные последовательности, которые она может найти в
каждом файле, или только те последовательности, которые находятся в загружаемых,
инициализированных секциях данных. Если тип файла не распознается, или если
strings читает из stdin, то она всегда будет выводить все печатные
последовательности, которые она может найти.
Для обратной совместимости любой файл, который идет после опции командной строки
просто - также будет полностью просканирован, независимо от наличия
какой-либо опции -d.
strings в основном полезна для определения содержимого непечатных
файлов.Следующие примеры в формате вопросов и ответов должны дать вам хорошее представление о том, как работает команда Strings.
Вопрос 1. Как использовать команду strings?
Основное использование довольно просто - просто передайте имя файла в качестве входных данных и выполните команду.
Обратите внимание, что поскольку Strings в основном используется для извлечения информации из двоичных/исполняемых файлов, мы будем использовать один такой файл во всех наших примерах.
Например:
strings testВот вывод, который эта команда произвела на моей системе:

Вопрос 2. Как принудительно установить пользовательский лимит символов?
Как объяснялось в начале, поведение утилиты Strings по умолчанию заключается в том, чтобы выводить только последовательности символов, которые имеют длину не менее 4 символов. Однако, если вы хотите, вы можете изменить этот лимит, используя опцию командной строки -n (которая требует, чтобы вы передали число, обозначающее новый лимит).
Например, если вы хотите установить лимит на 2, вот как вы можете это сделать:
strings -n 2 testТеперь вы также можете видеть строки из двух и трех символов в выводе.
Вопрос 3. Как заставить strings выводить смещение последовательностей символов?
Если вы хотите, чтобы Strings также отображала смещения последовательностей символов, которые она выводит, это можно сделать с помощью опции командной строки -t, которая требует, чтобы вы предоставили один символ, указывающий основание смещения - ‘o’ для восьмеричного, ‘x’ для шестнадцатеричного или ‘d’ для десятичного.
Например:
strings -t d testВот вывод, который он произвел на моей системе:

Теперь вы можете видеть, что строки в выводе теперь предшествуют их соответствующим смещениям.
Вопрос 4. Как заставить Strings сканировать весь файл?
В зависимости от того, как была настроена программа Strings, она может или не может сканировать весь входной файл. Однако, если вы хотите быть абсолютно уверены, что инструмент читает полный файл (а не только загружаемые, инициализированные секции данных), используйте опцию командной строки -a.
Например:
strings -a testС другой стороны, если вы хотите, чтобы Strings выводила только строки из инициализированных, загруженных секций данных в файле, используйте опцию командной строки -d.
strings -d testВопрос 5. Как изменить разделитель?
Как вы могли заметить, по умолчанию разделитель, используемый Strings, - это новая строка. Однако, если вы хотите, вы можете установить пользовательский разделитель, используя опцию командной строки -s.
Например:
strings -s [[[]]] test
Заключение
Команда Strings является чрезвычайно полезным инструментом, если вы занимаетесь поиском полезной информации в двоичных/исполняемых файлах. Мы обсудили некоторые важные опции командной строки здесь. Так что практикуйтесь, и как только вы закончите, перейдите на страницу man инструмента для получения дополнительной информации.
Get new posts in your inbox
No spam. Unsubscribe anytime.