Top.Mail.Ru

Команды grep и pipe: мощные инструменты командной строки Linux

В этом видео мы подробно рассмотрим две важнейшие команды для работы с командной строкой Linux: мощный инструмент фильтрации текста grep и оператор pipe для создания конвейеров команд.

Вы узнаете, как эффективно использовать регулярные выражения для поиска информации в файлах, освоите основные опции grep (включая игнорирование регистра, рекурсивный поиск и инвертированный вывод), а также научитесь создавать эффективные комбинации команд с помощью пайпа. Эти навыки значительно упростят администрирование систем и работу с системными логами.

Запись видеоурока на RuTuBe

Запись видеоурока во ВКонтакте

Запись видеоурока на YouTuBe



Назначение команды grep в администрировании Linux

grep (global regular expression print) - вывод глобального регулярного выражения. Суть этой команды заключается в том, чтобы выполнять поиск по необходимым нам данным.

Допустим, мы хотим посмотреть в журнале работы сервера все записи, в которых те или иные операции были выполнены неудачно. Для этого выполним следующее

cd /var/log

 - переходим в каталог, где хранятся журналы

grep 'failed' syslog

 - искать слово failed в файле системного журнала syslog

grep -i (ignore-case) - игнорирование регистра, т.е. не важно, где встречаются большие и маленькие буквы

grep -i 'failed' syslog

 - искать слова игнорируя регистр, т.е. не важно большие или маленькие буквы

grep -i 'fAiLeD' syslog

 - тоже самое

grep -r (recursive) - рекурсивный поиск, т.е. во всех папках и подпапках

grep -ir 'failed'

 - добавляем ключ -r и убираем имя файла, таким образом команда будет искать слово failed любого регистра во всех файлах и папках нашего текущего положения.

Как вы видите, довольно много записей у нас появилось. Сначала идет название файла, а потом текст строки, в которой упоминается наше слово.

Хорошо, давайте попробуем вытащить не все записи, а просто список файлов, в которых упоминается это слово?

grep -l (list) - выводит имя каждого файла, в котором совпадают данные. Я сам для себя сделал ассоциацию со словом list (список) хотя нигде в официальной документации этого не нашел. Но, по сути, она как команда ls, выводит список содержимого, так что, почему бы и нет.

grep -irl 'failed'

 - получаем список файлов в которых есть слово failed

Еще один часто используемый ключ это v

grep -v (invert) - инвертированный вывод. Почему-то назвали v, по-видимому, так как ключ i уже занят. Ну, будем считать что они взяли его из середины слова J Да, попадаются иногда ключи, которые не вписывают в общую логику именования ключей.

Данный ключ выводим все, где нет, того, что мы указали.

grep -v 'failed' syslog

 - получаем вывод всех строк, в которых это слово не присутствует.

Мы поможем вам легко получить базовые навыки работы с Linux, без лишней теории и воды. Убедитесь, что осваивать новое может быть просто!

Получите бесплатный доступ к первым модулям курса.

Назначение команды pipe в администрировании Linux

С командой grep разобрались, однако, намного чаще она используется в связке с другими командами, а делать связку помогает команда pipe которая обозначается значком вертикальной черты.

|

| (pipe) - пайп (трубопровод, конвейер)

В чем же суть её работы, она позволяет передавать данные из одной команды, в другую

ls -la | grep log

 - мы получаем вывод строк, в которых присутствуют символы log

ls -la

 - тут выводится полный список, потому от передается в программу grep и она отфильтровывает список по нужному условию

ls -la | grep ^d

 - данная команда выводит только список директорий. Значке вверх означает, с каких символов должна начинаться строка, а буква d означает в записи, что это директория.

ls -la | grep -v ^d

 - вывести все, кроме папок

Кстати, данным методом тоже удобно искать ранее введенные команды, если вы их вводили давно:

history | grep cd

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

Резюме: Подведем итоги работы с командами grep и pipe

В данном уроке мы изучили команды:

grep (global regular expression print) - вывод глобального регулярного выражения

grep -i (ignore-case) - игнорирование регистра

grep -r (recursive) - рекурсивный поиск

grep -l (list) - выводит имя каждого файла

grep -v (invert) - инвертированный вывод

| (pipe) - пайп (трубопровод, конвейер) который позволяет передавать данные из одной команды в другую.