в этой лекции я покажу вам, как искать строковый шаблон в текстовом файле, это
особенно полезно, потому что конфигурация Linux и файлы журнала имеют текстовый тип и являются обычным явлением
для поиска определенного сообщения опции или ошибки, которые мы разговор о команде grep
grep - один из самых полезных комментариев Linux, даже несмотря на то, что он был создан Кеном Томпсоном,
одним из пионеров информатики, является частной утилитой более 45 лет назад
комментарий grep ищет в текстовом файле или выводе другого команда для шаблона, на который ссылается, является
регулярным выражением и выводит все строки, содержащие шаблон для поиска шаблона
в файле, который вы пишете grep, необязательно, некоторые желаемые параметры шаблон для поиска и имя
файла является правильным абсолютным или относительный путь, который я ищу в файле конфигурации
клиента ssh для строки, пользователь захватывает строку, шаблон и файл и т. д. ssh ssh underline config,
и он отображает все строки, содержащие строку user
th Есть две строки, если шаблон содержит пробелы, вы должны заключить его в кавычки,
например grep, между двойными кавычками, скажем, командная строка и файл в том же файле,
и он нашел строки, содержащие шаблон, чтобы игнорировать регистр букв, используйте параметр минус i
возьмите ssh, написанный заглавными буквами, и файл,
и он не нашел то, что сейчас, я буду искать его, игнорируя регистр,
поэтому я добавляю опцию минус i, минус i исходит из нечувствительности,
и он нашел много строк
для печати номера строк, на которых был найден шаблон, с минусом,
так что минус n, и он также распечатал номер строки,
конечно, вы можете сгруппировать несколько вариантов, как это
то же самое для поиска всех работ, используйте параметр w, например, скажем grep body и т. д.,
и вы видите, что grep ищет любую последовательность символов, а не только целые работы,
и он нашел строку, содержащую строку никто, сейчас я редактирую параметр минус w,
и он искал все работы и ничего не нашел перевернуть смысл слова hing, поэтому для
выбора строк без смешивания используйте параметр minus v v исходит из инверсии, поэтому grep kernel slash var log
d message он нашел много строк, содержащих строковое ядро, и теперь я инвертирую совпадение,
и он нашел все строки которые не содержат строковое ядро, если вы хотите искать строку
в двоичном файле, как если бы это был текстовый файл, используйте минус параметр grep root
slash var log auth.log, и он говорит двоичный файл имя файла
maxis на самом деле это файл данных, особый вид текстового файла
для поиска строки в файле структуры, я должен добавить минус параметр,
и он нашел все строки, содержащие корень строки, если вы хотите найти
строку в каталог, он вернет ошибку.Я ищу ip-адрес интерфейса lubeck
в slashetc, поэтому grep адрес ap интерфейса lubeck
127.0.0.1 и косая черта и т. д. в каталоге, и он говорит, что косая черта и т. д. - это каталог, что я могу сделать,
это сказать greb для перейти рекурсивно с косой чертой dc и найти образец в каждом t ext
в этом каталоге и подкаталогах alex, я буду использовать опцию минус заглавная r,
и он отобразит все файлы, содержащие эту строку, которая является ip-адресом интерфейса lubeck,
конечно, у grep нет разрешений на чтение всех файлов, но я могу кстати, запустите команду как root
, если вы хотите подавить сообщения об ошибках о
несуществующих или нечитаемых файлах, добавьте опцию minus s, например,
если вы просто хотите увидеть количество совпадений, используйте опцию minus c, которую я ищу
ошибка строка в файле журнала, так Grep минус с ошибки первого шаблона я ищу и
журнала системного журнала файл уаг и нашел девять, так что максимумы девять строк, которые содержат ошибки
строки, конечно, я мог бы получить тот же результат с помощью канал и команда wc minus cell,
поэтому grep error файл,
это строки, и я перенаправлю вывод на wc minus l
теперь есть 10 строк, в этот файл была записана новая строка,
команда grep может использоваться для поиска в вывод другой команды
также в следующем e xample я покажу кольцевой буфер ядра с помощью команды d message,
а затем буду искать возможные сообщения об ошибках сообщение это кольцевой буфер ядра
он распечатывает кольцевой буфер ядра это журналы ядра в оперативной памяти, большинство из которых создается
устройством драйверов, поэтому я фильтрую строки, содержащие ошибку строки,
пробел и ошибку канала сообщений, и есть одна строка,
если вы хотите увидеть контекст, а это означает, что несколько строк до и после совпадения я могу запустить захват
минус, скажем, три и минус b четыре,
он распечатал четыре строки до совпадения и три строки после него. Это то, что делают параметры минус a
и минус b, вы также можете использовать минус c из контекста
и числа, и он распечатает такое же количество строк перед и после совпадения я
хочу видеть три строки до и после повреждения, поэтому минус c три три строки до
и три строки после другого распространенного примера - это проверить, какая программа прослушивает определенный порт,
чтобы отобразить все порты, запустите netstat с s Некоторые параметры запускают тестовый маршрут, поэтому sudo netstat minus tuban,
и он отображает все открытые порты, и, чтобы проверить, есть ли что-то, что прослушивает
порт 53, отфильтруйте вывод с помощью rep, как этот захват канала 53,
и есть некоторые процессы, которые прослушивают этот порт, давайте проверим если порт 80 открыт
и процесс не прослушивает порт 80.
давайте посмотрим последний пример ls минус r и f косая черта tc я рекурсивно перечисляю каталог etc, используя
опцию minus capital f, которая добавляет символ в конец файла в зависимости от его типа
это вывод, это исполняемый файл, это сим-ссылка, и это каталоги,
вывод которых будет передан в grep, который исключит
строки, содержащие косую черту, это каталоги, поэтому используйте прямую косую черту
и минус v чтобы инвертировать максимальное значение, я хочу исключить каталоги, в выходных данных нет каталога,
тогда я исключу пустые строки, чтобы сделать это, я буду использовать что-то особенное, называемое
регулярным выражением, поэтому захват канала минус v я исключаю th е пустые строки,
и теперь они являются исполнителями для пустой строки морковь и доллар морковь означает
начало строки, а доллар означает конец строки, так что на самом деле я исключаю строки
, у которых есть символ между началом и концом нет пустых строк,
давайте посмотрим, сколько их я отправлю вывод на wc минус l,
и есть этот номер, я могу игнорировать
эти ошибки, связанные с отказом в разрешении, или я могу запустить команду как root
и, наконец, отсортировать файлы по имени, я запускаю сортировку команда на выводе конвейера sort минус r
минус r будет выполнять обратную сортировку
без wc минус l, как это,
и вывод был отсортирован по имени в обратном алфавитном порядке, чтобы лучше видеть,
я могу перенаправить все на less
без параметра минус r, который он будет сортировать вывод в возрастающем алфавитном порядке
все файлы, которые начинаются с a, затем файлы, начинающиеся с bc,
и так далее, и я могу перенаправить весь вывод в файл, а также
посмотреть, как я использую несколько разных команд и каналов для получения данных i хочу, чтобы это все не спеши г хорошо понять, как работает grep, это один из самых полезных комментариев Linux