В рамках проекта "Minishell" была разработана собственная версия командной оболочки Unix shell на языке программирования C. Целью данного проекта является детальное изучение работы ядра системы Unix и важной его составляющей - создания и синхронизации процессов.
Итоговая терминальная программа способна анализировать полученные команды (с помощью парсинга входных данных), запускать исполняемые файлы (как с аргументами, так и без них) и выполнять некоторые собственные builtin функции. В свою очередь, выполнение команды внутри разработанной оболочки подразумевает создание нового процесса, состояние которого отслеживается непосредственно его родительским процессом.
git clone https://github.com/Dronoti/minishell.git minishell && cd minishell && make && make clean && ./minishell
Программа поддерживает запуск исполняемых файлов и такие встроенные функции как echo
, cd
, pwd
, export
, unset
, env
, exit
, а также работу с редиректами, пайпами, сигналами, переменными окружения и т.д.
Подробная функциональность программы, ограничения и требования к ее реализации описаны в задании.