Skip to content

minishell-2024/minishell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

144 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🐚 Minishell

πŸ” Dive into the Fundamentals of Shell Programming

Minishell is a simplified 🐧 Unix shell, implemented in C, designed for πŸŽ“ students to deepen their understanding of command-line operations and shell development. It emphasizes core Unix principles, providing hands-on experience in building a functional shell.

✨ Features

  • πŸ–₯️ Interactive Command Prompt: Execute commands like in a typical shell.
  • πŸ”‘ Built-in Commands: Includes essential commands such as echo, cd, pwd, export, unset, env, and exit.
  • πŸ”„ Redirection & Piping: Manage input/output with redirections (<, > >>, <<) and pipe commands (|).
  • 🌿 Environment Variable Handling: Define, modify, and use environment variables effectively.
  • ⚠️ Signal Handling: Properly handle signals like ctrl-C (interrupt), ctrl-D (EOF), and ctrl-\.
  • πŸ•°οΈ Command History: Access and reuse previously executed commands.

❓ Why Minishell?

Minishell provides a practical way for πŸŽ“ students to learn the mechanics of a 🐧 Unix shell. It covers essential concepts such as βš™οΈ process management, πŸ—‚οΈ file descriptor handling, ⚠️ signal management, and πŸ“ user input parsing. These are fundamental topics in understanding system-level programming. This project gives students the opportunity to apply theoretical knowledge in a 🌍 real-world scenario, solidifying their understanding of C and Unix programming.

πŸš€ Getting Started

To get started with Minishell, clone the πŸ“‚ repository and compile the code using the following commands:

git clone git@github.com:minishell-2024/minishell.git
cd minishell
make
./minishell

πŸ“œ Project Background

Minishell is part of the 42 School curriculum, focusing on reimplementing essential features of Unix-like shells to build proficiency in system programming and the C language. The project encourages πŸŽ“ students to learn by doing, gaining a deep understanding of every layer of shell functionality.

Contributions are encouraged to further improve Minishell or expand its features.

πŸ“„ License

This project is developed for educational purposes as part of the 42 School curriculum.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •