Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MiniShell - Unix-like Command Interpreter

Упрощенная реализация командной оболочки на C с поддержкой конвейеров и перенаправления.

Описание:

MiniShell - это консольная оболочка, поддерживающая выполнение команд, конвейеры (pipes), перенаправление вывода и фоновые задачи.

Технологии:

Язык: C (C99)
API: POSIX (fork, exec, pipe, dup2, waitpid)
Сборка: GCC/Clang

Возможности:

Выполнение внешних команд через execvp
Конвейеры команд (cmd1 | cmd2 | cmd3)
Перенаправление вывода (>, >>)
Фоновое выполнение задач (&)
Встроенные команды: cd, exit
Корректная обработка exit codes
Поддержка && и || (опционально)

Быстрый старт

Сборка:

gcc -Wall -Wextra -Werror -o shell solution.c parser.c

Запуск:

./shell

Примеры использования:

ls -la | grep .c
echo "hello" > file.txt
cat file.txt
ps aux | grep init &

Архитектура:

Parser: Разбор командной строки (токенизация, кавычки, экранирование)
Executor: Создание процессов, настройка pipe и редиректов
Built-in commands: Обработка специальных команд внутри shell

Особенности:

Неблокирующий ввод-вывод
Корректная обработка сигналов
Отсутствие zombie-процессов
Поддержка аргументов без пробелов (echo "test">file)

Включают тесты на:

Простые команды
Конвейеры
Перенаправление
Фоновые задачи
Встроенные команды

About

Упрощенная реализация командной оболочки на C с поддержкой конвейеров и перенаправления

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages