29 марта, 2024

Основы Linux.Часть 10 ( Манипуляции с текстом)

Содержание:

С возвращением, мои начинающие хакеры!

Как мы уже упоминали в предыдущих статьях, почти все в Linux — это файлы, и очень часто это текстовые файлы. Например, все файлы конфигурации в Linux представляют собой именно текстовые файлы. Чтобы перенастроить приложение, нам нужно просто открыть его файл конфигурации, изменить содержимое, сохранить сделанные изменения, а затем перезапустить приложение и новые настройки конфигурации будут применены.

С таким количеством текстовых файлов умение работать с текстом становится решающим для управления как самой Linux так и приложениями. В этом уроке мы рассмотрим несколько команд и способов обращения с текстом в Linux. Для демонстрационных целей мы будем использовать файлы из лучших в мире пакетов NID и Snort.

Шаг 1. Команда cat

Как показано в одной из предыдущих статей, команда cat является самой основной командой для отображения текста. Давайте используем ее для демонстрации содержимого файла конфигурации Snort, который находится в /etc/snort

cat /etc/snort/snort.conf

Как видите, содержимое snort.conf прокручивается на мониторе до тех пор, пока не дойдет до конца файла. И это конечно не очень удобный способ работы с таким длинным файлом.

Шаг 2. Использование команды head

Если мы просто хотим просмотреть начало какого-нибудь файла, то в этом случае можно воспользоваться командой head. По умолчанию эта команда отображает первые 10 строк файла.

head /etc/snort/snort.conf

Если мы хотим увидеть больше или меньше чем 10 строк по умолчанию, то мы можем явно указать, сколько строк нам нужно. Делается это через использование дефиса между названием команды и именем файла.

head -30 /etc/snort/snort.conf

Теперь мы видим первые 30 строк файла snort.conf

Шаг 3. Команда tail

Команда tail работает аналогично команде head, только показывает она последние строки файла. Давайте испробуем ее на snort.conf

tail /etc/snort/snort.conf

Обратите внимание, что отображаются некоторые из последних строк «include» rule-файлов, но далеко не все. Давайте теперь посмотрим, можем ли мы отобразить все правила «include», захватив последние 40 строк файла snort.conf

tail -40 /etc/snort/snort.conf

Вот теперь видно практически все включения rule-файлов.

Читать также:  LDAP-серверы способны усилить DDoS-атаку в 46-55 раз

Шаг 4. Отображение номеров строк

Иногда, особенно когда работаем с очень длинными файлами, мы можем отобразить файл с номерами строк. И это как раз случай snort.conf, так как у него 838 строк. Номера строк упрощают обращение к изменениям и дают возможность быстро вернуться в одно и то же место в файле. Чтобы отобразить файл с номером строк, просто введите:

nl snort.conf

Обратите внимание, что теперь все строки файла пронумерованы. Это упрощает поиск конкретных строк.

Шаг 5. Команда grep

После cat команда grep, вероятно, является самой широко используемой командой обработки текста. Это команда фильтрации. Она позволяет фильтровать содержимое файла и потом отображает результат. Если, например, мы хотим увидеть все вхождения слова «database» в нашем файле snort.conf, то мы используем команду cat, чтобы отобразить только те строки, где оно встречается. Наберите:

cat /etc/snort/ snort.conf | grep database

Эта команда сначала возьмет содержимое файла snort.conf, а затем пропустит его (благодаря символу «|») через команду grep, которая, в свою очередь, примет содержимое файла как входные данные, найдет все вхождения слова «database» и покажет только эти строки. Grep — мощная и важная команда для работы в Linux, так как она может сэкономить нам уйму времени, которое мы могли бы потратить на поиски нужных слов или команд.

Шаг 6. Команда sed

Команда sed позволяет искать вхождения слов или текстовых шаблонов, а затем выполнять некоторую работу над ними. Название происходит из концепции потокового редактора (stream editor) и является сокращением этих двух слов — sed. В своей самой базовой форме sed работает как функция поиска и замены в Windows. Давайте поищем слово «mysql» в файле snort.conf с помощью команды grep.

cat /etc/snort/snort.conf | grep mysql

Как видно, команда grep нашла пять вхождений слова mysql.

Читать также:  Важность исключения выходных узлов в TOR

Предположим, мы хотим, чтобы sed заменил каждое найденное вхождение слов mysql на слово MySQL (помните, что Linux чувствителен к регистру), а затем сохранил новый файл в snort2.conf. Чтобы сделать это, нужно набрать:

sed s/mysql/MySQL/g snort.conf > snort2.conf

Эта команда говорит: «Выполнить глобальный поиск (т.е. целиком по всему файлу) слова mysql и заменить его словом MySQL».

Теперь, если мы используем команду grep snort2.conf для поиска mysql, то увидим, что ни одного вхождения этого слова не было найдено, а если мы воспользуемся grep для MySQL, то найдем пять вхождений MySQL.

cat /etc/snort/snort.conf | grep MySQL

Если мы хотим просто заменить первое вхождение слова mysql, мы можем убрать завершающий параметр «g», и команда заменит только первое вхождение.

sed s/mysql/MySQL/ snort.conf > snort2.conf

Команда sed также может использоваться для поиска и замены любого конкретного вхождения данного слова. Например, если я хочу заменить только третье вхождение слова mysql, то я могу просто поместить номер этого вхождение в конец команды, и sed заменит только третье вхождение слова «mysql» на «MySQL»

sed s/mysql/MySQL/3 snort.conf > snort2.conf

Оставайтесь с нами

Вот и все на сегодня, но впереди еще много интересного, поэтому ознакомьтесь с нашим разделом по основам Linux ( 1, 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9), чтобы быть в курсе последних новостей. Если у вас есть какие-либо вопросы по использованию команд sed, cat, head, tail, nl или grep — задайте их в комментариях ниже или поищите ответ на форуме.

Добавить комментарий