Minishell is a project about creating a simple custom UNIX shell in C, focusing on process control, file descriptor management, and command parsing.
Features · Usage · License · Study Notes
-
Lexical analysis and tokenization of command-line input
-
Parsing and syntax interpretation for complex command structures, using an Abstract Syntax Tree (AST), represented as a binary tree
-
Process creation and management for command execution
-
Environment state management with variable expansion
-
Inter-process communication via pipes
-
Input/output redirection and here-document handling
-
Pattern matching for dynamic filename expansion (wildcards)
-
Conditional and grouped command execution with logical operators
-
Quoting support (single and double) for argument grouping and literal treatment of special characters
-
Signal handling for interactive session control
-
Robust error handling and resource management
-
Clone repository
git clone git@github.com:teresa-chow/42-minishell.git minishell
-
Go inside project directory and run
makecd minishell make -
Execute
minishellprogram./minishell
Test minishell against bash with tmux, while monitoring memleaks
make testCarlos Teixeira @Carlos688940
Teresa Chow (me)
This work is published under the terms of MIT License.
Further reading : Wiki