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 раз)
Повторитель «количество}» и "{[миниум],[максимум]}"
Классы эквивалентности в диапазонах
Эквивалентность базовым РВ
Закавычивание с помощью \
Именование карманов
Незапоминаемые группы
Базовые или расширенные
Полезности: индикаторы начал/концов слов и т. п.
многострочные РВ
…
Нерегулярные выражения
Perl/PCRE, Python, иное
обратные ссылки на группы (есть в egrep: cal | egrep ([0-9])4.*\1)
нежадные повторители (опасность полного перебора).
пред- и пост-просмотр
Разбираемся в том что такое X11 и оконная подсистема, принципы клиент-серверной технологии X-window, конфигурационный файл и его особенности в Ubuntu
Также упоминаем X-font сервер и команды xwininfo, xdpyinfo
Разбираем синтаксис простого скрипта, в частности конструкцию if — then — else — fi. Кроме того обсуждаем возможность отправки почты при помощи скриптов, и выясняем как выполнить подстановку команд (чтобы результат последовательности команд давал значение переменной)
Основы Linux
* что такое UNIX?
* user space, kernel space, system calls, POSIX, IEEE 1003.x, SUS
* какой еще такой UNICS?
Учетные записи пользователей Linux
* UID и GID
* Домашний (начальный) каталог
* Начальный командный интерпретатор
* Суперпользователь
* Группировка пользователей: первичная и дополнительные группы
Вход в систему
* терминалы
* командная строка
* терминальные команды
Было ли вам когда-нибудь трудно что-либо найти или понять, где установлены программы в Linux? Вот объяснение, для чего все эти папки и что в них находится!
Поддержать меня на Patreon: www.patreon.com/doriandotslash
Music by MrGamer (@AndreasRohdin): soundcloud.com/gamermachine
systemd is, to put it mildly, controversial. As a FreeBSD developer I decided I wanted to know why.
I delved into the history of bootstrap systems, and even the history of UNIX and other contemporary operating systems, to try and work out why something like systemd was seem as necessary, if not desirable. I also tried to work out why so many people found it so upsetting, annoying, or otherwise rage-inducing.
Join me on a journey through the bootstrap process, the history of init, the reasons why change can be scary, and the discovery of a part of your OS you may not even know existed.
linux.conf.au is a conference about the Linux operating system, and all aspects of the thriving ecosystem of Free and Open Source Software that has grown up around it. Run since 1999, in a different Australian or New Zealand city each year, by a team of local volunteers, LCA invites more than 500 people to learn from the people who shape the future of Open Source. For more information on the conference see linux.conf.au/