Темы повторения — по слайду «Lecture 3»
Презентация сессии выносит на повторение пять тем лекции 3. Ниже — выжимка по каждой со ссылками на полные разборы в теории занятия 04.
1. Стандартные потоки ввода/вывода
- У каждой запущенной программы есть три канала: stdin — стандартный ввод (по умолчанию клавиатура), stdout — стандартный вывод (по умолчанию экран), stderr — поток ошибок (тоже экран, но отдельный канал).
- У потоков есть номера — дескрипторы: stdin = 0, stdout = 1, stderr = 2. Именно поэтому конструкция «ошибки туда же, куда вывод» пишется как
2>&1. - Ключевая мысль: программа не знает, куда на самом деле идёт её вывод — на экран, в файл или в другую программу. Этим управляет оболочка.
2. Обработка команд в Linux
- Между нажатием Enter и результатом оболочка проходит цепочку шагов: разбирает строку на команду, ключи и аргументы → ищет исполняемый файл по каталогам из переменной
PATH→ запускает новый процесс → процесс печатает результат в stdout. - Где лежит команда, подскажет
which: например,which date. Подробный шестишаговый разбор жизни командыdate— в теории занятия 04.
3. Перенаправление (Redirection)
команда > файл— записать stdout в файл, перезаписав его содержимое целиком.команда >> файл— дозаписать stdout в конец файла, не трогая старое содержимое.команда < файл— подать файл на stdin команды вместо клавиатуры.команда > файл 2>&1— собрать в файл и обычный вывод, и сообщения об ошибках.- Если файла-приёмника нет, перенаправление создаст его само; если есть —
>сотрёт старое содержимое без предупреждения.
4. Потоки данных между процессами
- Вывод одной программы может стать вводом другой — данные текут между процессами, не касаясь экрана и диска.
- Это и есть «философия Unix» в действии: маленькие команды, каждая делает одно дело, а сила — в их соединении.
5. Piping: команды cat, wc, head, tail
- Оператор
|(pipe, вертикальная черта) соединяет stdout команды слева со stdin команды справа:cat /etc/group | wc -l. - Звеньев в конвейере может быть сколько угодно — ограничение здравым смыслом, а не синтаксисом:
cat файл | head -10 | tail -3. - Помощники:
cat— вывести файл;wc— посчитать строки (-l), слова (-w), байты (-c);head— первые строки;tail— последние строки (количество задаёт ключ-n);echo— напечатать строку (и через>/>>— записать её в файл). - Важно: по конвейеру дальше передаётся только stdout — stderr летит мимо pipe прямо на экран.
Как устроена сама сессия
Формат по презентации: преподаватель проходит по темам недели, затем — экспресс-опрос (вопросы без вариантов ответа, отвечать вслух), затем разбор домашнего задания 3 с эталонным решением и слайдом «Часто встречающиеся ошибки», и наконец задание для закрепления из 10 шагов, которое выполняется тут же в терминале. Все вопросы и задания собраны на странице «Задания», ответы и разборы — в «Решениях», ошибки со слайда — в «Ошибках».