Skip to content

adrianodds/mini_shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This project was created as part of the 42 curriculum by adduarte.

Minishell

Description

Minishell is a minimal Unix shell implementation written in C, inspired by core Bash behavior. The main goal of this project is to practice fundamental operating system and low-level programming concepts such as:

  • process creation and management (fork, execve/execvp, wait);
  • redirections and pipes;
  • input parsing with quote handling and variable expansion;
  • environment management (envp);
  • interactive signal handling.

In short, this project reproduces the core shell cycle: read, parse, and execute commands, with support for builtins and external commands.

Instructions

Build

From the repository root, run:

make

Useful maintenance commands:

make clean
make fclean
make re

Run

After building:

./minishell

Usage Examples

echo "hello"
export USER_TEST=42
echo $USER_TEST
ls -la | grep minishell
cat < infile > outfile

Resources

Technical References

AI Usage in This Project

AI was used as a support tool for specific engineering and documentation tasks, without replacing conceptual understanding:

  • reviewing and reorganizing code structure (module separation);
  • assisting with refactors to improve readability and maintainability;
  • helping validate compile issues and diagnose regressions;
  • supporting the writing and formatting of this README.md.

Project Structure

.
├── include/
├── src/
│   ├── core/
│   ├── parsing/
│   ├── execution/
│   ├── builtins/
│   ├── env/
│   ├── utils/
│   └── libft/
├── minishell.h
└── Makefile

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors