Регулярные выражения grep, egrep, sed в Linux

В Linux все рассматривается как файлы, включая устройства (/dev) и процессы (/proc).

Оглавление

1. Описание программ grep

2. Вызов программы grep

3. Справка по команде grep

4 Опции grep

4.1 Общая информация о программе

4.2 Выбор типа регулярного выражения

4.3 Управление работой регулярных выражений

4.4 Управление выводом

4.5 Управление префиксом выходной строки

4.6 Управление контекстными строками

4.7 Выбор файлов и директорий

4.8 Остальные опции

5. Регулярные выражения

5.1 Фундаментальная структура

5.2 Классы символов и Выражения в квадратных скобках

5.3 Анкоры

5.4 Символы с обратным слешем и Специальные выражения

5.5 Повторения

5.6 Объединение регулярных выражений

5.7 Альтернативы в регулярных выражениях

5.8 Приоритет

5.9 Обратные ссылки и Подвыражения

Базовые и расширенные регулярные выражения

6. Переменные окружения grep

7. Статус выхода

8. Примеры использования grep

9. Известные баги grep

Опции

-0- Использует во входном потоке символ-разделитель NULL («\0») вместо «пробела» и «перевода строки», хорошо сочетается с опцией -print0 команды find

-l [число] -Выполнять команду для каждой группы из заданного числа непустых строк аргументов, прочитанных со стандартного ввода. Последний вызов команды может быть с меньшим числом строк аргументов. Считается, что строка заканчивается первым встретившимся символом перевода строки, если только перед ним не стоит пробел или символ табуляции; пробел/табуляция в конце сигнализируют о том, что следующая непустая строка является продолжением данной. Если число опущено, оно считается равным 1. Опция -l включает опцию -x.

-I [зам_цеп] Режим вставки: команда выполняется для каждой строки стандартного ввода, причём вся строка рассматривается как один аргумент и подставляется в начальные_аргументы вместо каждого вхождения цепочки символов зам_цеп. Допускается не более 5 начальных_аргументов, содержащих одно или несколько вхождений зам_цеп. Пробелы и табуляции в начале вводимых строк отбрасываются. Сформированные аргументы не могут быть длиннее 255 символов. Если цепочка зам_цеп не задана, она полагается равной { }. Опция -I включает опцию -x.

Читайте также:  Как создать загрузочный USB для Windows 10 в Linux

-n [число] Выполнить команду, используя максимально возможное количество аргументов, прочитанных со стандартного ввода, но не более заданного числа. Будет использовано меньше аргументов. Если их общая длина превышает размер (см. ниже опцию -s). Или если для последнего вызова их осталось меньше, чем заданное число. Если указана также опция -x, каждая группа из указанного числа аргументов должны укладываться в ограничение размера, иначе выполнение xargs прекращается.

-t Режим трассировки: команда и каждый построенный список аргументов перед выполнением выводится в стандартный поток ошибок.

-p Режим с приглашением: xargs перед каждым вызовом команды запрашивает подтверждение. Включается режим трассировки (-t), за счет чего печатается вызов команды, который должен быть выполнен, а за ним — приглашение ?…. Ответ y (за которым может идти что угодно) приводит к выполнению команды; при каком-либо другом ответе, включая возврат каретки, данный вызов команды игнорируется.

-x Завершить выполнение, если очередной список аргументов оказался длиннее, чем размер (в символах). Опция -x включается опциями -i и -l. Если ни одна из опций -i, -l или -n не указана, общая длина всех аргументов должна укладываться в ограничение размера.

-s [размер] Максимальный общий размер (в символах) каждого списка аргументов установить равным заданному размеру. Размер должен быть положительным числом, не превосходящим 470 (подразумеваемое значение). При выборе размера следует учитывать, что к каждому аргументу добавляется по одному символу; кроме того, запоминается число символов в имени команды.

-e [лконф_цеп] Цепочка символов лконф_цеп считается признаком логического конца файла. Если опция -e не указана, признаком конца считается подчеркивание (_). Опция -e без лконф_цеп аннулирует возможность устанавливать логический конец файла (подчеркивание при этом рассматривается как обычный символ). Команда xargs читает стандартный ввод до тех пор, пока не дойдет до конца файла или не встретит цепочку лконф_цеп.

Читайте также:  Настройка сети в Linux, диагностика и мониторинг

Команды для управления пользователями

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

  • useradd — создает новую учетную запись. Например, мы хотим добавить пользователя с именем Timeweb. Для этого вводим: useradd Timeweb. Но свежесозданному аккаунту нужен не только логин, но и пароль. С помощью опций можно задать дополнительные характеристики новому пользователю.
  • passwd — задает пароль для учетной записи, работает вкупе с предыдущей командой. То есть сразу после создания аккаунта, пишем: passwd Timeweb (в вашем случае может быть любой другой пользователь). После этого система попросит придумать и указать пароль для новой учетной записи. По ходу набора пароля в терминале не будут отображаться даже звездочки, но он все равно учитывает каждую нажатую клавишу. Продолжайте набирать пароль вслепую.
  • userdel — удаляет выбранную учетную запись. Синтаксис простейший:

userdel имя учетной записи, которую нужно стереть

Использование sed в Linux

sed (от англ. Stream EDitor) — потоковый текстовый редактор (а также язычок программирования), использующий различные предопределённые текстовые преобразования к последовательному потоку текстовых этих. Sed можно утилизировать как grep, выводя строки по шаблону базового регулярного выражения:

sed -n /Hello/p ./

Может быть использовать его для удаления строк (удаление всех пустых строк):

sed /^$/d ./

Основным инструментом работы с sed является выражение типа:

sed s/искомое_выражение/чем_заменить/имя_файла

Так, образчик, если выполнить команду:

sed s/int/long/ ./

Выше рассмотрены различия меж «grep», «egrep» и «fgrep». Невзирая на различия в наборе используемых регулярных представлений и скорости выполнения, параметры командной строчки остаются одинаковыми для всех трех версий grep.

Читайте также:  Использование команды Basename в Bash Scripts

renice — изменение приоритета выполнения уже запущенного процесса

Команда renice изменяет значение параметра nice любого запущенного процесса. Значение nice определяет приоритет, с которым работает процесс. Значение -19 соответствует самому высокому приоритету, а значение 19 — самому низкому. Значение — используется по умолчанию.

Команде renice в качестве параметра нужен ID процесса. Следующая команда установит для процесса gedit минимальный приоритет:

Для того, чтоб узнать идентификатр процесса, можно воспользваться утилитой pgrep.

Если вы хотите повысить приоритет процессу — вам понадобятся полномочия суперпользователя.

Back to top

Команды для управления сетью

В стандартный функционал «Терминала» входит и просмотр данных по параметрам сети, скорости и качестве передачи данных.

  1. ip – команда для работы с сетью, благодаря наличию множества опций она многофункциональна. К примеру, добавив функцию address show, можно посмотреть информацию о сетевых адресах, а с route управлять маршрутизацией.
  2. ping – помогает определить качество подключения к сети или наличие его как такового. 
  3. nethogs – выводит данные о количестве израсходованного трафика. 
  4. traceroute – команда, аналогичная ping, но дополнительно дающая информацию о полном маршруте передачи пакетов, скорости доставки на каждом узле и так далее.
  5. mtr – мощная утилита для диагностики сети, совмещающая функционал команд ping и traceroute.