Skip to content

sarahayman22/Minishell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minishell

  • A simple shell implementation in C, developed as part of the 42 school curriculum. This project aims to replicate key functionalities of a real Unix shell.
  • Understand and implement command parsing and execution.
  • Learn process creation and communication (fork, execve, pipes).
  • Manage environment variables.
  • Handle input/output redirection and heredocs.
  • Implement signal handling (Ctrl+C, Ctrl+).
  • Follow bash-like behavior as closely as possible.

  • Features
  • Built-in commands: cd, echo, pwd, export, unset, env, exit
  • Execution of external programs using $PATH
  • Pipes (|) between commands
  • Redirections:
  • Input <
  • Output >
  • Append >>
  • Heredoc <<
  • Environment variables handling
  • Signal handling (Ctrl+C, Ctrl+)
  • Error handling and exit codes

  • Skills Learned:
  • Low-level system programming in C
  • Process management
  • Terminal behavior
  • Signal handling
  • Parsing and tokenization
  • Managing memory (malloc/free)
  • Norminette and code discipline

About

A simple Unix shell built from scratch in C, replicating basic Bash features for educational purposes.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors