Основы Linux для хакеров, часть 9: Манипуляции с текстом

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
152
Депозит
-8.95$
Как я уже неоднократно упоминал в своих предыдущих руководствах по Linux , практически всё в Linux представляет собой файлы, и очень часто это текстовые файлы. Например, все файлы конфигурации в Linux — текстовые. Чтобы перенастроить приложение в Linux, достаточно просто открыть файл конфигурации, изменить текст, сохранить его заново и перезапустить приложение, после чего изменения будут применены.





6a4a49_727da0d46cbf46b9b873a0a5ace9d13emv2.jpg




При таком большом количестве текстовых файлов работа с текстом становится критически важной для управления Linux и приложениями Linux. В этом руководстве мы рассмотрим несколько команд и методов для работы с текстом в Linux.

Для демонстрации мы будем использовать файлы лучшей в мире системы обнаружения сетевых вторжений (NIDS) Snort.

Шаг 1: Cat That File

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

Кали > кот /etc/snort/snort.conf



6a4a49_3da1881de2784fd7a039f012a1c94244mv2.png




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



6a4a49_9104be6407e54b97bf065b8b5c74f38fmv2.png


Шаг 2: Возьмите голову

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

kali > head /etc/snort/snort.conf



6a4a49_0e029082a2194cf88d1424122ae988f6mv2.png




Если мы хотим увидеть больше или меньше, чем 10 строк по умолчанию, мы можем указать head, сколько строк мы хотим увидеть, указав нужное нам количество строк (с помощью ключа –) между командой и именем файла.

кали > голова -20 /etc/snort/snort.conf



6a4a49_36b4d95ef5d94268a3c0d70a1f30b4b5mv2.png




Здесь мы видим, что отображаются только первые 20 строк snort.conf.

Шаг 3: хватайтесь за хвост

Подобно команде head, мы просматриваем последние строки файла с помощью команды tail. Давайте применим её к файлу snort.conf.

Кали > хвост /etc/snort/snort.conf



6a4a49_6ed77341bf9b4c1fb717e4c97a1ca7acmv2.png




Обратите внимание, что он отображает некоторые из последних включений файлов правил, но не все. Давайте теперь посмотрим, сможем ли мы отобразить все включения правил, используя последние 20 строк из snort.conf.

Кали > хвост -20 /etc/snort/snort.conf

Теперь мы можем просмотреть почти все правила на одном экране.



6a4a49_64b27ab9164c48fcb60e011ebe2a3ba2mv2.png


Шаг 4: Нумерация строк

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

Кали > нл /etc/snort/snort.conf



6a4a49_15347fa5032b4b14ba3a8774796a2c3cmv2.png




Обратите внимание, что теперь каждая строка имеет номер, что значительно упрощает поиск ссылок.

Шаг 5: Я использую Grep для этого

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

kali > cat /etc/snort/ snort.conf | grep output



6a4a49_d9f4b3e2d3ef4d4882a66415d5829719mv2.png




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

Шаг 6: Я сказал, что это работает

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

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



6a4a49_c9ba4a3bff0a4e5cb182f4bcc714d528mv2.png




Мы видим, что команда grep нашла два вхождения слова mysql.

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

Мы можем сделать это, набрав:

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



6a4a49_66e0af2863e9411daaf61ebce648eaedmv2.png




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

kali > cat /etc/snort/snort2.conf | grep MySQL

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

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

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

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

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

Шаг 7: Меньше значит больше


Хотя cat — хорошая утилита для отображения файлов и создания небольших файлов, у неё, безусловно, есть недостатки при отображении больших файлов. Когда мы используем cat для snort.conf, она прокручивает множество страниц, пока не дойдёт до конца. Не очень практично.

Для работы с большими файлами у нас есть две другие утилиты: more и less. More появилась первой и используется в страницах руководства (man). Откроем snort.conf командой more.

Кали > подробнее /etc/snort/snort.conf



6a4a49_1a0b81125d7841a8bc523c1c00cea5cdmv2.png




Обратите внимание, что more отображает только первую страницу, а в нижнем левом углу указывается, какая часть файла показана (в данном случае 2%).

Чтобы увидеть дополнительные строки или страницы, можно использовать клавишу ENTER или клавиши PAGE UP или PAGE DN для перехода на целую страницу. Чтобы выйти из других разделов, просто нажмите «q» (выход).

less очень похож на more, но с дополнительной функциональностью, отсюда и распространённая шутка поклонников Linux : «Less is more».

Давайте откроем snort.conf с помощью less.

кали > меньше /etc/snort/snort.conf



6a4a49_a695dd44e46c4c709ee4dab25530a4b7mv2.png




Обратите внимание, что в левом нижнем углу экрана less выделил путь к файлу.

Если нажать клавишу /, less позволит нам искать термины в файле. Например, при настройке snort нам нужно определить, как и куда отправлять выходные данные. Если нам нужно найти этот раздел файла конфигурации, мы можем просто ввести:

/выход



6a4a49_a37644fe3700403f9f0182224b1aba46mv2.png




Это немедленно перенесет нас к первому вхождению выходных данных и выделит его.



6a4a49_186eb8a748f14194b6c819b95e33d310mv2.png




Затем мы можем поискать следующее вхождение выходных данных, введя «n» для следующего.



6a4a49_51fe479d3f4640beb120badd860a6e92mv2.png




Как видите, less перенёс нас к следующему вхождению слова в результатах поиска, выделил все поисковые запросы и, в данном случае, перенёс нас прямо в раздел результатов поиска snort. Как удобно!

https://www.amazon.com/Linux-Basics...?refinements=p_27:Occupytheweb&s=books&sr=1-3
 
Назад
Сверху Снизу