Командная строка и Shell как системообразующие
- SGID directory traversal (долг за прошлый раз)
 
Информационная подсистема:
- Man (UNIX-style) 
- 9 разделов
 - Перекрестные ссылки из текста
 - Структура страницы
 - Важность see also
 - Apropos, whatis
 
 - Info (GNU style)
 - /usr/share/doc/*
 
Интерфейс командной строки
- Human readable
 - Human writeable
 - ЧМС, обратная связь, диалог
 - Совмещение/разделение потока данных и потока управления
 - UNIX-like: много утилит на все случаи жизни 
- системные вызовы
 - подзадачи администратора
 - пользовательские подзадачи
 
 
Командная оболочка (shell):
- ИКС
 - ЯПВУ
 - Оболочка вокруг утилит
 
Похоже, компонентная структура UNIX вообще, и уж точно каналы — заслуга начальника лаборатории Дугласа МакИлроя
Почему это гениально:
- пользователь управляет системой вручную
 а когда это ему надоест, напишет сценарий на shell, в котором будет использовать те же команды
- более того, именно такие сценарии и составляют программную начинку системы
 
Почему это удобно:
- Команды как операторы 
- вызов по имени
 - Условный оператор и цикл вокруг exit status (0 — истина, код ошибки — ложь) 
например, команда [
 - Много команд для обработки текстов (sort, tac, cut, МНОГО, sed, awk)
 
 - Параметры командной строки
 Каналы: cal | wc
Перенаправление В/В cmd > out, cmd < in, cmd 2> errout и т. п.
Подстановка вывода RES = $(command)
- фоновые процессы
 - что там ещё?
 
Что умеют современные оболочки:
- ИКС: 
- alias
 - pattern generation
 - completion 
- в т. ч. с запуском дополнительных команд (напр., zftp)
 
 - переключение между фоновыми процессами
 - удобная подсказка
 - арифметика
 - ...
 
 - ЯП: 
- массивы
 - страшные подстановки и фильтрованные шаблоны
 - ...
 
 - Оболочка: 
- множественный В/В
 - ...
 
 
Пример: загрузка GNU/Linux системы
- Досистемная загрузка 
- Boot ROM
 - Boot block
 - Boot prog
 - Ядро 
- Linux: +initrd
 
 
 - Системная загрузка 
- Ядро: опрос устройств
 - монтирование ФС (/etc/fstab)
 - запуск init
 - init: стартовые сценарии 
TODO .d-схема
 - консоль/DM
 
 
Финал: принципы 4U:
- распределения ресурсов (физиологических, эмоциональных, умственных),
 - информационной открытости (для себя, для эффективности взаимодействия, для свободы ориентации),
 - умопостижимости контекста (human-readable, human-writeable, "7 +/- 2"),
 - оравданой ответственности (захотел -- получил, достаточность знаний).
 
