This project is about creating a lightweight version of bash (Born Again Shell).
- prompts user for input
- checks user input for valid commands else returns appropriate errors
- executes commands with options (Ex:
ls -l
) - handles multiple pipes (Ex:
ls | head -2 | wc
) - custom built-ins (cd, pwd, echo, unset, export, env)
- I/O redirections (<, >, <<, >>)
- handles signals (Ctrl-C, Ctrl-D, Ctrl-)
- UNIX programming in general
- bash's behaviour in various situations and how it is implemented
- How to create processes and retrieve valuable informations from them. Like exit codes
- How to create a pipeline that handles I/O redirections
- How to analyze files
- Use the
lsof -c <name_of_your_program>
orps aux | grep program_name
commands to see the current processes of a specific program
- Tutorial - Write a Shell in C by Stephen Brennan
- Let's Build a Command Line Shell in C
- Multipipe_tutor
- Pipe: an Inter-Process Communication Method
- Systems Programming : Chapter 5 : Writing Your Own Shell
- The Shell Command Language
- Bash Reference Manual