Skip to content

Latest commit

 

History

167 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

minishell

Minishell is a minimalistic shell implementation created as part of the 42 programming school curriculum. This project aims to provide a deep understanding of Unix shell behavior by building a functional shell from scratch. The shell supports command execution, environment variable management, and pipeline operations, mimicking the behavior of Bash.

This project was developed collaboratively by Tayfunkas and kyla-kang, highlighting the importance of teamwork and shared problem-solving in software development.


🚀 Key Features

  • Command Execution: Execute binary commands from paths defined in the PATH environment variable.
  • Built-in Commands: Implementation of essential shell built-in commands such as echo, cd, pwd, export, unset, env, and exit.
  • Pipelines: Support for command pipelines (|) to connect the output of one command to the input of another.
  • Redirections: Input (<), output (>), and append (>>) redirection capabilities.
  • Signal Handling: Graceful handling of signals like Ctrl+C, Ctrl+D, and Ctrl+\, ensuring a user-friendly experience.
  • Environment Variables: Management and expansion of environment variables.
  • Error Handling: Proper handling and display of error messages to mimic Bash-like behavior.

🎯 Learning Objectives

  • System Programming: Deep dive into system calls such as fork, exec, pipe, and dup2.
  • Process Management: Creating, managing, and synchronizing child processes.
  • Shell Behavior: Understanding and implementing the core functionality of a Unix shell.
  • Team Collaboration: Working effectively with a partner to design, implement, and debug a complex program.

minishell

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages