Narek Tamazyan
Narek TamazyanBackend Software Engineer
Back to projects

Personal project

Minishell

Developed a custom Bash-like command-line interpreter in C, implementing process management, multi-stage pipelines, file descriptor manipulation, and Unix signal handling.

Overview

Minishell is a personal project from my studies at École 42. This custom Bash-like command-line interpreter implements process management, multi-stage pipelines, file descriptor manipulation, and Unix signal handling in C.

The project was built collaboratively in C. The source is available in the minihell repository.

Implementation

The code separates headers, source files, and supporting libraries. A Makefile builds the program, and Readline provides command-line input and history.

Commands are represented as linked structures containing arguments, an executable path, and input and output descriptors. Environment entries are held as key-value pairs. The shell structure brings these pieces together.

I applied low-level system calls and operating system concepts to reproduce core shell execution behavior.

Explore the code

The repository is the best place to follow the implementation. This is a learning project from École 42.