По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Нужно просмотреть текст внутри двоичного файла или файла данных? Команда Linux strings извлечет и выведет на терминал биты текста, которые называются "строками". Linux полон команд, которые могут выглядеть как решения в поисках проблем. Команда strings одна из них. Так, зачем же она нужна? Есть ли похожая команда, которая перечисляет строки для печати из двоичного файла? Давайте вернемся назад. Двоичные файлы, такие как программные файлы, могут содержать строки читаемого человеком текста. Но как мы их видим? Если использовать cat или less, то, скорее всего, зависнет окно терминала. Программы, предназначенные для работы с текстовыми файлами, не могу обрабатывать исполняемые файлы, содержащие непечатаемые символы. Большая часть данных в двоичном файле нечитабельна и не могут быть выведены в окно терминала каким-либо образом, так как нет знаков или стандартных символов для представления двоичных значений, которые не соответствуют буквенно-цифровым символам, знакам пунктуации или пробелам. В совокупности они называются "печатаемыми" символами. Остальные - "непечатаемые" символы. Поэтому попытка просмотра или поиска текстовых строк в двоичном файле или файле данных является проблемой. И вот здесь на помощь спешит strings. Он извлекает строки печатаемых символов из файлов, чтобы другие команды могли использовать эти строки без необходимости контактировать с непечатаемыми символами. Использование команды strings На самом деле нет ничего сложного в этой команде: просто передаем команде название файла. Как пример, мы попробуем просмотреть содержимое исполняемого файла jibber с помощью strings. strings jibber На скриншоте ниже список строк, извлечённых из указанного файла: Установка минимальной длины строки По умолчанию, команда strings ищет строки, содержащие четыре и более символов. Чтобы изменить значение по умолчанию используется ключ –n. Имейте ввиду, что чем короче минимальная длина, тем больше шансов получить на выводе бесполезного материала. Некоторые двоичные значения имеют то же числовое значение, что и значение, представляющее печатаемый символ. Если два из этих числовых значений находятся рядом в файле, а минимальная длина, равна двум, эти байты будут отображаться как строки. Чтобы установить длину строки равной двум, используйте следующую команду: strings -n 2 jibber Теперь у нас на выводе есть строки, длина который равна двум и более символам. Учтите, что пробел тоже считается печатаемым символом. Ограничение вывода команды strings командой less Чтобы ограничить объем выведенной информации вывод команды strings можно передать команде less, а затем прокруткой просматривать всю информацию: strings jibber | less Теперь мы видим список, выводимый командой less, где начало списка отображено первым: Использование strings с файлами объектов Обычно исходный код программ компилируется в файлы объектов. Они в свою очередь связаны с файлами библиотек, чтобы создать исполняемый файл. У нас есть файл объектов jibber, давайте посмотрим, что в нем: jibber.o | less Данные выводятся в таблице по 8 колонок, каждая из строк которой заканчивается на букву “H”. В данном примере у нас SQL запрос. Но если прокрутить ниже, то можно заметить, что форматирование не относится ко всему файлу. Думаю, интересно видеть разницу между текстовыми строками файла объектов и конечного исполняемого файла. Поиск в конкретной области файла Скомпилированные программы имеют различные области, которые используются для хранения текста. По умолчанию, strings ищет текст во всем файле. Это так же, как если бы вы использовали параметр -a (all). Для поиска строк только в инициализированных, загруженных разделах данных в файле используйте параметр -d (data). strings -d jibber | less Если нет особой причины, то вполне можно обойтись значением по умолчанию. Вывод номера строки Иногда бывает необходимо узнать точное смещение, расположение строки в файле. В этом нам поможет ключ –o (offset). strings -o parse_phrases | less В данном случае номера строки показаны в восьмеричной системе. Для получения значений в других системах исчисления, достаточно использовать опцию –t, а затем передать нужный ключ: d (десятичная система), x (шестнадцатеричная) или o (восьмеричная). Опция –t с ключом o равнозначна запуску команды strings с ключом –o. strings -t d parse_phrases | less Теперь номера строк показаны в десятичной системе: strings -t x parse_phrases | less А тут в шестнадцатеричной: Вывод управляющих символов Команда strings принимает знаки табуляции и пробела, как часть строки, игнорируя при этом символ начала новой строки - /r или возврата каретки - /r. Чтобы включить их отображение нужно добавить ключ –w. strings -w add_data | less Ниже мы видим пустую строку. Это результат работы управляющих символов: либо символа новой строки, либо символ возврата каретки. Мы не ограничены только файлами Мы можем использовать строки с любым, что есть или может создать поток байтов. С помощью этой команды мы можем просмотреть содержимое оперативной памяти (RAM) нашего компьютера. Нам нужно использовать >sudo, потому что мы получаем доступ /dev/mem. Это символьного файл устройства, в котором хранится изображение оперативной памяти компьютера. sudo strings /dev/mem | less В списке не все содержимое оперативной памяти, а лишь то, что команда strings смогла извлечь. Поиск нескольких файлов сразу Маски можно использовать для выбора групп файлов для поиска. Символ * обозначает нуль и больше символов, а символ «?» означает любой отдельный символ. Можно также указать в командной строке множество имен файлов. Мы будем использовать маску для поиска всех исполняемых файлов в каталоге /bin. Поскольку список будет содержать результаты из многих файлов, будет использоваться параметр -f (имя файла). Имя файла будет напечатано в начале каждой строки. Затем можно просмотреть файл, в котором была найдена данная строка. Затем передадим результаты через grep и выведем строки, содержащие слово "Copyright": strings -f /bin/* | grep Copyright Мы получаем упорядоченный список с об авторских правах каждого файла в каталоге /bin, с именем файла в начале каждой строки. Команда strings распутана Команда strings – это не какая-то тайная команда. Это обычная команда Linux. Он делает выполняет конкретные задачи и делает это очень хорошо. Это еще один из преимуществ Linux, и действительно мощных в сочетании с другими командами. Когда вы видите, как он может оперировать двоичными файлами и другими инструментами, такими как grep, начинаете по-настоящему ценить функциональность этой слегка непонятной команды.
img
У всех профессионалов есть набор инструментов, который ежедневно помогает ему в работе. Независимо от того, проектируете ли вы сеть, диагностируете и устраняете проблему или отслеживаете среду, ваш пакет сетевых инструментов должен быть полным, удобным и надежным. Вот почему мы собрали список некоторых из основных бесплатны инструментов для сетевых администраторов, и оставили ссылки на скачивание. Некоторые будут вам знакомы, некоторые будут новыми, но в любом случае эта информация не будет лишней. Давайте начнем! Анализаторы Wireshark / Tshark Wireshark - это не имеющий аналогов анализатор сетевых протоколов, и, честно говоря, один из лучших бесплатных сетевых инструментов, когда-либо созданных. Когда вы решаете сетевую проблему и вам действительно нужно погрузиться глубже, внутрь пакетов – Wireshark будет вашим микроскопом. Если вы ищете что-то для захвата командной стоки или, возможно, вы хотите программно инициировать захват пакетов, не забудьте проверить TShark. Он включен в Wireshark, работает аналогично Tcpdump и совершенно потрясающий. iPerf / JPerf Между любыми двумя узлами находится сеть - огромная или маленькая. Простой пинг между двумя узлами хорош только для проверки общей достижимости и понимания времени кругового обхода для небольших пакетов. Если вы хотите измерить реально достижимую пропускную способность, вам нужен другой инструмент, такой как iPerf. iPerf3 - последняя версия этого инструмента. Вы запускаете клиент на двух концах сети, настраивая параметры, необходимые для измерения производительности. Он поддерживает настройку многих параметров, связанных с синхронизацией, буферами и протоколами (TCP, UDP, SCTP с IPv4 и IPv6). После выполнения он активно измеряет и сообщает о пропускной способности, потерях, задержке, джиттере и т. д. Вы можете инициировать несколько одновременных подключений, чтобы действительно имитировать нагрузку в сети. Очень удобный инструмент! Если вы больше предпочитаете графический интерфейс, то посмотрите Jperf. Он возрасте, но все еще работает как часы. Nmap / Zenmap Nmap (Network Mapper) - это сканер безопасности, используемый для обнаружения хостов и сервисов в компьютерной сети, который создает таким образом «карту» сети. Для достижения своей цели Nmap отправляет специально созданные пакеты целевому хосту, а затем анализирует ответы. Nmap предоставляет невероятное количество функций для исследования сетей, включая обнаружение узлов, обнаружение служб и детектирование операционной системы. Эти функции расширяются с помощью сценариев, которые обеспечивают более расширенное обнаружение служб, обнаружение уязвимостей и другие функции. Фактически, Nmap используется в бэкэнде для различных инструментов оценки безопасности, таких как Nexpose. Опять же, если вы являетесь большим поклонником графического интерфейса, обязательно загрузите пакет с Zenmap. Paessler SNMP Tester SNMP может быть сложным. Вот почему вам нужен хороший тестер, например Paessler SNMP Tester. Идея этой программы состоит в том, чтобы иметь инструмент, который позволяет пользователю отлаживать действия SNMP, чтобы находить проблемы со связью или с данными в конфигурациях мониторинга SNMP. Ваши устройства настроены правильно? Вы используете правильные ключи? Используйте этот инструмент, чтобы проверить, будет ли ваша конфигурация SNMP работать с такими программами, как PRTG Network Monitor. Angry IP Scanner Angry IP Scanner - это многопоточный сканер IP-адресов и портов с открытым исходным кодом. Подобный Nmap, используемый миллионами, он стал стандартным инструментом для сетевых администраторов. Angry IP Scanner сначала быстро пингует, затем проверяет состояние порта, затем начинает резолвить имена хостов, собирать MAC-адреса, операционные системы и все, что он может различить на основе собранных данных. Он может собирать информацию NetBIOS, такую как имена рабочих групп и доменов, а также зарегистрированных пользователей, если у вас есть привилегированные права для получения этой информации. Как и Nmap, он расширяется с помощью плагинов. Результаты сканирования могут быть сохранены в CSV, TXT, XML или файлы списка IP-портов. Работает на Windows, Mac и Linux. Netcat Netcat, часто описываемый как «швейцарский нож», чрезвычайно полезен для всего, что касается отправки или получения информации о сетевых портах. Это многофункциональный инструмент для отладки и исследования сети, поскольку он может создавать практически любые виды соединений, которые вам понадобятся. Мониторинг и логирование Nagios Nagios - это программное решение для сетевого мониторинга. Фактически это набор решений для мониторинга доступности сети, анализа потоков данных и безопасности, а также сбора журналов для аудита. Это полностью открытый исходный код и имеет энергичное сообщество единомышленников разработчиков и администраторов. С
img
Изначально разработанный для Unix-систем grep, является одной из наиболее широко используемых утилит командной строки в среде Linux. grep расшифровывается как "глобальный поиск строк, соответствующих регулярному выражению и их вывод" (globally search for a regular expression and print matching lines). grep в основном ищет на основе указанного посредством стандартного ввода или файла шаблона, или регулярного выражения и печатает строки, соответствующие заданным критериям. Часто используется для фильтрации ненужных деталей при печати только необходимой информации из больших файлов журнала. Это возможно благодаря совместной работе регулярных выражений и поддерживаемых grep параметров. Здесь мы рассмотрим некоторые из часто используемых сисадминами или разработчиками команд grep в различных сценариях. Синтаксис grep Команда grep принимает шаблон и необязательные аргументы вместе со перечислять файлов, если используется без трубопровода. $ grep [options] pattern [files] Простой пример: $ grep my file.txt my_file 1. Поиск среди нескольких файлов grep позволяет выполнять поиск заданного шаблона не только в одном, но и среди нескольких файлах. Для этого можно использовать подстановочный символ *. $ sudo grep -i err /var/log/messages Как видно из вывода, утилита перед результатом искомого шаблона выводит также название файла, что позволяет определить где именно было найдено совпадение. 2. Регистронезависимый поиск grep позволяет искать шаблон без учета регистра. Чтобы указать grep игнорировать регистр используется флаг –i. $ grep -i [pattern] [file] 3. Поиск слова Иногда появляется необходимость поиска не части, а целого слова. В таких случаях утилита запускается с флагом -w. $ grep -w [pattern] [file] 4. Вывод количества совпадений Не всегда нужно выводить результат совпадения. Иногда достаточно только количества совпадений с заданным шаблоном. Эту информацию мы можем получить с помощью параметра -c. $ grep -c [pattern] [file] 5. Поиск в поддиректориях Часто необходимо искать файлы не только в текущей директории, но и в подкаталогах. grep позволяет легко сделать это с флагом -r. $ grep -r [pattern] * 6. Инверсивный поиск Если вы хотите найти что-то, что не соответствует заданному шаблону, grep позволяет сделать только это с флагом -v. $ grep -v [pattern] [file] Можно сравнить выходные резултаты grep для одного и того же шаблона и файла с флагом -v и без него. С параметром -v выводятся любые строки, которые не соответствуют образцу. 7. Вывод нумерации строк grep позволяет нумеровать совпавшие строки, что позволяет легко определить, где строка находится в файле. Чтобы получить номера строк в выходных данных. используйте параметр –n: $ grep -n [pattern] [file] 8. Ограничение вывода Результат вывода grep для файлов вроде журналов событий и т.д. может быть длинным, и вам может просто понадобиться фиксированное количество строк. Мы можем использовать -m [num], чтобы ограничить выводимые строки. $ grep -m[num] [pattern] [file] Обратите внимание, как использование флага -m влияет на вывод grep для одного и того же набора условий в примере ниже: 9. Вывод дополнительных строк Часто нам нужны не только строки, которые совпали с шаблоном, но некоторые строки выше или ниже их для понимания контекста. С помощью флагов -A, -B или -C со значением num можно выводить строки выше или ниже (или и то, и другое) совпавшей строки. Здесь число обозначает количество дополнительных печатаемых строк, которое находится чуть выше или ниже соответствующей строки. Это применимо ко всем совпадениям, найденным grep в указанном файле или списке файлов. $ grep -A[num] [pattern] [file] $ grep -B[num] [pattern] [file] $ grep -C[num] [pattern] [file] Ниже показан обычный вывод grep, а также вывод с флагом -A, -B и -C один за другим. Обратите внимание, как grep интерпретирует флаги и их значения, а также изменения в соответствующих выходных данных. С флагом -A1 grep печатает 1 строку, которая следует сразу после соответствующей строки. Аналогично, с флагом -B1 он печатает 1 строку непосредственно перед соответствующей строкой. С флагом -C1 он печатает 1 строку, которая находится до и после соответствующей строки. 10. Вывод списка файлов Чтобы напечатать только имя файлов, в которых найден образец, а не сами совпадающие строки, используйте флаг -l. $ grep -l [pattern] [file] 11. Вывод абсолютных совпадений Иногда нам нужно печатать строки, которые точно соответствуют заданному образцу, а не какой-то его части. Флаг -x grep позволяет делать именно это. $ grep -x [pattern] [file] В приведенном ниже примере файл file.txt содержит строку только с одним словом «support», что соответствует требованию grep с флагом –x. При этом игнорируются строки, которые могут содержать слова «support» с сопутствующим текстом. 12. Поиск совпадения в начале строки С помощью регулярных выражений можно найти последовательность в начале строки. Вот как это сделать. Обратите внимание, как с помощью символ каретки ^ изменяет выходные данные. Символ каретки указывает grep выводить результат, только если искомое слово находится в начале строки. Если в шаблоне есть пробелы, то можно заключить весь образец в кавычки. 13. Поиск совпадения в конце строки Другим распространенным регулярным выражением является поиск шаблона в конце строки. $ grep [options] "[string]$" [file] В данном примере мы искали точку в конце строки. Поскольку точка . является значимым символом, нужно её экранировать, чтобы среда интерпретировала точку как команду. Обратите внимание, как изменяется вывод, когда мы просто ищем совпадения . и когда мы используем $ для указания grep искать только те строки, которые заканчиваются на . (не те, которые могут содержать его где-либо между ними). 14. Использования файла шаблонов Могут возникнуть ситуации, когда у вас есть сложный список шаблонов, которые вы часто используете. Вместо записи его каждый раз можно указать список этих образцов в файле и использовать с флагом -f. Файл должен содержать по одному образцу на каждой строке. $ grep -f [pattern_file] [file_to_match] В нашем примере мы создали файла шаблона с названием pattern.txt со следующим содержимым: Для его использования используйте флаг -f. 15. Поиск по нескольким шаблонам grep позволяет задать несколько шаблонов с помощью флага -e. $ grep -e [pattern1] -e [pattern2] -e [pattern3]...[file] 16. Указание расширенных регулярных выражений grep также поддерживает расширенные регулярные выражения (Extended Regular Expressions – ERE) или с использованием флага -E. Это похоже на команду egrep в Linux. Использование ERE имеет преимущество, когда вы хотите рассматривать метасимволы как есть и не хотите экранировать их. При этом использование -E с grep эквивалентно команде egrep. $ grep -E '[Extended RegEx]' [file] Ниже приведён пример использование ERE, для вывода не пустых и не закомментированных строк. Это особенно полезно для поиска чего-то в больших конфигурационных файлах. Здесь дополнительно использован флаг –v, чтобы НЕ выводить строки, соответствующих шаблону '^ (# | $)'. Заключение Приведенные выше примеры являются лишь верхушкой айсберга. grep поддерживает ряд вариантов и может быть очень полезным инструментом в руке человека, который знает, как его эффективно использовать. Мы можем не только использовать приведенные выше примеры, но и комбинировать их различными способами, чтобы получить то, что нам нужно. Для получения дополнительной информации можно воспользоваться встроенной системой справки Linux – man.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59