Skip to content

PedroZappa/42_minishell

Repository files navigation

minishell

As beautiful as a shell


Table o'Contents

About 📌

Minishell is a project that aims to create a simple UNIX command-line shell. This project introduces students to the world of shells by implementing a mini version of bash.

Features

  • Parse and execute basic shell commands;
  • Search & launch the right executable from absolute or relative path;
  • Command history;
  • Handle built-in commands (cd, echo, pwd, export, unset, env, exit);
  • Support for pipes (|) and redirections (<, >, >>, <<);
  • Environment variable
    • export variables;
    • unset variables;
    • expand environment variables;
  • Signal handling (Ctrl-C, Ctrl-D, Ctrl-\\);

Usage 🏁

Clone the repository and cd into it:

git clone https://github.com/PedroZappa/42_minishell.git 42_minishell

Build the program:

cd 42_minishell
make

Run the program:

./minishell

Tests & Debug 🧪

Run the following command and look at the Test Rules 🧪 & Debug Rules  to get a comprehensive list of all available test/debug commands:

make help

Note

If you use tmux you are in for treat 😏


References 📚

Shell/Bash

Termios

Readline

Heredoc

License 📖

This work is published under the terms of 42 Unlicense.

(get to top)