Skip to content

A minimal Unix shell for basic command execution and navigation.

Notifications You must be signed in to change notification settings

mdesmartin/minishell

Repository files navigation

minishell

I have worked on this project with my teammate jmoutous.

minishell is a small-scale command-line interpreter, inspired by the Unix shell, created as part of the 42 school curriculum. It provides a basic set of features commonly found in popular shells such as Bash or Zsh, allowing users to execute various commands and manage processes in a Unix-like environment.

The main goal of minishell is to provide a solid foundation for understanding and implementing fundamental shell functionalities. It offers a simplified shell experience, enabling users to navigate the file system, execute commands with arguments and options, handle environment variables, and perform input/output redirection.

Key Features:

  • Command execution: minishell supports executing both built-in commands (e.g., echo, cd, env) and external commands available in the system.
  • Input/output redirection: Users can redirect the input and output of commands to files, enabling file manipulation and command chaining.
  • Environment variables: minishell allows users to manage environment variables, set new ones, and expand them in command arguments.
  • Signal handling: The shell handles basic signals such as Ctrl+C, allowing users to terminate running processes or perform specific actions.
  • Command line editing: minishell provides line editing capabilities, including history navigation and basic editing features.

This project serves as an excellent opportunity to dive into the inner workings of a shell and gain a deeper understanding of process management, file handling, and system calls. Whether you are a beginner exploring the world of shell programming or an experienced developer honing your system-level skills, minishell offers an educational and hands-on experience.

Note: This project was developed as part of the 42 school curriculum and should be considered a learning exercise rather than a fully-featured production-ready shell.

Usage

git clone

do make

About

A minimal Unix shell for basic command execution and navigation.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published