A simplified shell project by Armando Borges & Leonardo Jorge π οΈ
π The existence of shells is deeply connected to the history of computing itself. Back in the early days, developers communicated with computers using 1/0 switches, which was tedious and frustrating.To simplify this interaction, shells were created: programs that interpret commands entered by users, enabling them to perform tasks in a more human-readable way.
With Minishell, you'll travel back in time and explore the challenges faced by developers before graphical interfaces (like Windows) existed. It's a hands-on experience with the foundations of modern computing.
π§°
Minishell is a command-line interface (CLI) inspired by popular shells like Bash, Zsh, and Fish.Hereβs what youβll learn by building or using it:
How a terminal works π₯οΈ How commands are executed ποΈ Environment variables and PATH πΊοΈ Redirections and pipes π System-level programming concepts βοΈ While this is a simplified version of a shell, it covers the essential features and mechanics, giving you a deeper understanding of Unix systems.
β¨
βοΈ
- A Linux-based operating system π§
- Libraries and tools Required by readline library
- The make utility
π
# Clone the repository:
git clone https://github.com/LeonardoDevelopper/minishell
# turn in directory:
cd minishell
# Install dependencies:
sudo apt-get install libreadline-dev make
# Build the project:
make
# Run the shell:
./minishell
π
minishell/
βββ include/ # Header files
βββ libs/ # Static libraries
βββ obj/ # Object files
βββ src/ # Source files
βββ Makefile # Build script
βββ README.md # Project documentation
π§
π§
This project is Linux-only. The binary produced (minishell) is specific to Linux environments.π₯
Armando Borges | Leonardo Jorge |
π License This project is licensed under the global License.