[UNИХ] Программное обеспечение GNU/Linux - 06 - Регулярные выражения (2017-11-08)


uneex.org
Регулярные выражения — uneex.org/LecturesCMC/LinuxSoftware2017/06_Regexp

Принцип: сопоставление строки шаблону

Шаблоны (например, в flename generation) и их недостатки.

Язык: *? [a-z] [^a-z]
⇒ целое число? :(
… (ещё антипримеры?)
Задание и принцип работы РВ

⇒ Более общий механизм? (Хомский: формальный грамматики)

автоматные (регулярные) грамматики — имеют (относительно) низкую вычислительную сложность сопоставления
Примеры:

grep,
поиск с заменой: sed, нумерация и подстановка карманов
Синтаксис:

«просто_символ» → просто символ
"." → один любой символ
"[символы]" или "[диапазон-символов]" или "[и то и то]" → один символ из диапазона
(повторитель) «атомарное_РВ*» → строка, сопоставимая атомарному_РВ, повторенному 0 или более раз (в частности, пустая)
«РВ1РВ2…РВN» → строка, которую можно разбить на последовательные части, сопоставимые РВ1…РВN соответственно
Принцип однозначности: самое левое сопоставление — самое длинное
(группа) "(РВ1РВ2…РВN)" → атомарное регулярное выражение (можно помечать повторителем)
группа == карман (так вышло)
(позиционирование) "^" и "$" → начало и конец строки (не сопоставляются символам строки, только отмечают позицию)
Регулярные выражения и конечные автоматы

NFA — «поиск с возвратом»
«A.*B.*A»? wAtBlABlAs по правилу «самый левый самый длинный»
DFA — «сопоставление»
«A*AB? AAB
A:
A ← „A*“ или
A ← „A*A“, потому что ← „A*“ и для третьего символа РВ A ← „A“, т. е.
AA:
AA ← „A*“
AA ≠ „A*AB“, потому что для четвёртого символа РВ A ≠ „B“
AA ← „A*A“, где A ← „A*“ и A ← „A“
AAB:
AAB ≠ „A*A“, потому что B ≠ „A“
уже ≠
AAB ← „A*AB“, потому что AA ← „A*A“ и B ← „B“
Расширенные РВ

Альтернатива „РВ1|РВ2“ → строка, сопоставимая или с РВ1 или с РВ2
Повторители » " (1 и более раз) и "?" (0 или 1 раз)
Повторитель «количество}» и "{[миниум],[максимум]}"
Классы эквивалентности в диапазонах
Эквивалентность базовым РВ

Утилиты: tr, grep / egrep / fgrep, awk, less, vi / vim, …

Flavours

Закавычивание с помощью \
Именование карманов
Незапоминаемые группы
Базовые или расширенные
Полезности: индикаторы начал/концов слов и т. п.
многострочные РВ

Нерегулярные выражения

Perl/PCRE, Python, иное

обратные ссылки на группы (есть в egrep: cal | egrep ([0-9])4.*\1)
нежадные повторители (опасность полного перебора).
пред- и пост-просмотр

LPIC 105.2 часть третья: Условные выражения и подстановка команд


Разбираем синтаксис простого скрипта, в частности конструкцию if — then — else — fi. Кроме того обсуждаем возможность отправки почты при помощи скриптов, и выясняем как выполнить подстановку команд (чтобы результат последовательности команд давал значение переменной)

Основы Linux: пользователи и вход в систему


Основы Linux
* что такое UNIX?
* user space, kernel space, system calls, POSIX, IEEE 1003.x, SUS
* какой еще такой UNICS?

Учетные записи пользователей Linux
* UID и GID
* Домашний (начальный) каталог
* Начальный командный интерпретатор
* Суперпользователь
* Группировка пользователей: первичная и дополнительные группы

Вход в систему
* терминалы
* командная строка
* терминальные команды

Об этом и о многом другом см. books.google.ru/books?isbn=5977535805

Firewall в Mikrotik: разбираем, как обеспечивать безопасность сети


Firewall дает огромные возможности по управлению сетевым трафиком, проходящим через Mikrotik. Вы, как администратор сети, должны суметь разделить все потоки трафика. дать каждому из них свои права, а весь лишний трафик — заблокировать.
Firewall в Mikrotik по большей части позаимствован из IPTables из Linux.
На вебинаре мы подробно разберем все вкладки меню IP-Firewall, назначения всех параметров и пунктов.

Презентация
www.slideshare.net/mikrotik-training/firewall-mikrotik-78884293

Консультации и помощь по MikroTik в нашем Telegram-канале: teleg.run/miktrain

Органайзер размером с кредитку и его друзья


Здравствуйте, друзья! В одной из прошлых посылок ко мне приехал электронный органайзер REX-3 — и вы просили о нём рассказать. Но в этом ролике мы поговорим не только о нём, но и вообще об электронных органайзерах, об истории их появления и развития.

Группа ВК: vk.com/old_devices