Этот курс поможет вам разобраться, как работает командная оболочка изнутри, и создать собственный Shell, способный выполнять команды, обрабатывать аргументы и строить цепочки конвейеров любой длины. Вы шаг за шагом научитесь разбирать ввод пользователя с помощью PEG‑парсеров (библиотека Parslet) и превращать его в исполняемые процессы.
Что вы создадите в ходе курса
К концу обучения у вас будет минималистичная, но функциональная командная оболочка в духе Bourne Shell, Bash или zsh. Она будет поддерживать:
Выполнение команд с произвольным числом аргументов.
Корректное цитирование аргументов (одинарные и двойные кавычки).
Построение конвейеров: вывод одной команды поступает на вход следующей.
Ключевые темы, которые вы изучите
Разбор командной строки
Вы узнаете, что такое PEG‑грамматики, почему парсеры на их основе удобны в разработке DSL и как с их помощью корректно разбирать команды Shell.
Использование Parslet
На практике разберёте, как строить грамматику, обрабатывать пробелы, кавычки, пайпы и формировать абстрактное синтаксическое дерево (AST).
Построение и выполнение процессов
После получения AST вы научитесь преобразовывать его в набор системных вызовов, необходимых для запуска программы.
Работа с конвейерами
Большая часть сложности Shell — в обработке пайпов. Вы реализуете цепочки процессов, в которых вывод одного становится входом другого.
Зачем этот курс
Создание собственного Shell — отличный способ глубже понять устройство операционных систем, процессы, файловые дескрипторы и межпроцессное взаимодействие. Такой проект развивает навыки низкоуровневой разработки и улучшает понимание инструментов, которыми вы пользуетесь ежедневно.
Кому подходит
Разработчикам, которые хотят понять, как работают Bash и другие оболочки.
Тем, кто хочет освоить парсинг и PEG‑грамматики.
Студентам и инженерам, изучающим внутренние механизмы UNIX.
Итог
Вы не просто разберётесь в принципах работы Shell — вы построите свой, шаг за шагом, начиная от синтаксиса и заканчивая запуском процессов и обработкой конвейеров.
Destroy All Software — это интересный и уже классический образовательный проект, в котором собраны лаконичные и содержательные видео по веб-разработке и смежным IT-направлениям. Несмотря на возраст, материалы остаются актуальными благодаря фокусу на фундаментальных принципах разработки, а не на быстро устаревающих технологиях.В рамках проекта рассматриваются реальные задачи программирования: работа с кодом, автоматизация, тестирование, архитектур