Команды 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

Вот вывод, который эта команда произвела на моей системе:

Как использовать команду strings

Вопрос 2. Как принудительно установить пользовательский лимит символов?

Как объяснялось в начале, поведение утилиты Strings по умолчанию заключается в том, чтобы выводить только последовательности символов, которые имеют длину не менее 4 символов. Однако, если вы хотите, вы можете изменить этот лимит, используя опцию командной строки -n (которая требует, чтобы вы передали число, обозначающее новый лимит).

Например, если вы хотите установить лимит на 2, вот как вы можете это сделать:

strings -n 2 test

Теперь вы также можете видеть строки из двух и трех символов в выводе.

Вопрос 3. Как заставить strings выводить смещение последовательностей символов?

Если вы хотите, чтобы Strings также отображала смещения последовательностей символов, которые она выводит, это можно сделать с помощью опции командной строки -t, которая требует, чтобы вы предоставили один символ, указывающий основание смещения - ‘o’ для восьмеричного, ‘x’ для шестнадцатеричного или ‘d’ для десятичного.

Например:

strings -t d test

Вот вывод, который он произвел на моей системе:

Как заставить strings выводить смещение последовательностей символов

Теперь вы можете видеть, что строки в выводе теперь предшествуют их соответствующим смещениям.

Вопрос 4. Как заставить Strings сканировать весь файл?

В зависимости от того, как была настроена программа Strings, она может или не может сканировать весь входной файл. Однако, если вы хотите быть абсолютно уверены, что инструмент читает полный файл (а не только загружаемые, инициализированные секции данных), используйте опцию командной строки -a.

Например:

strings -a test

С другой стороны, если вы хотите, чтобы Strings выводила только строки из инициализированных, загруженных секций данных в файле, используйте опцию командной строки -d.

strings -d test

Вопрос 5. Как изменить разделитель?

Как вы могли заметить, по умолчанию разделитель, используемый Strings, - это новая строка. Однако, если вы хотите, вы можете установить пользовательский разделитель, используя опцию командной строки -s.

Например:

strings -s [[[]]] test

Как изменить разделитель

Заключение

Команда Strings является чрезвычайно полезным инструментом, если вы занимаетесь поиском полезной информации в двоичных/исполняемых файлах. Мы обсудили некоторые важные опции командной строки здесь. Так что практикуйтесь, и как только вы закончите, перейдите на страницу man инструмента для получения дополнительной информации.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.