msh is a custom implementation of a Unix-like shell, created as part of the 42 curriculum.
-
Command Execution: Executes absolute, relative, and PATH-resolved commands.
-
Built-in Commands:
-
echo(with-noption) -
cd(with relative and absolute paths) -
pwd -
export -
unset -
env -
exit -
Redirections: Supports
<,>,>>, and<<(heredoc). -
Pipes: Handles pipes (
|) to connect commands. -
Signals: Correctly handles
Ctrl+C,Ctrl+D, andCtrl+\similar tobash. -
Expansion: Handles environment variables (
$) and quotes (single'and double").
gccmake- A Unix-based operating system (Debian/Arch Linux recommended)
- Clone the repository:
git clone https://github.com/Jst3r/msh.git
cd msh
- Compile the project:
make
- Run the shell:
./minishell
Once the shell is running, you can execute commands just like you would in bash:
$ ls -l | grep "c" > output.txt
$ export VAR="Hello World"
$ echo $VAR