This project involves creating a simple UNIX command line interpreter. It covers topics such as process creation, system calls, and basic shell functionality.
Category | Details |
---|---|
Editors | vi, vim, emacs |
Compilation | Ubuntu 20.04 LTS using gcc, with options -Wall -Werror -Wextra -pedantic -std=gnu89 |
File Endings | All files should end with a new line |
README | A README.md file at the root of the project folder is mandatory |
Coding Style | Betty style, checked using betty-style.pl and betty-doc.pl |
Memory Leaks | Your shell should not have any memory leaks |
Functions per File | No more than 5 |
Header Files | All header files should be include guarded |
System Calls | Use system calls only when necessary |
Task | Description | File |
---|---|---|
0. Betty would be proud | Write a beautiful code that passes the Betty checks | simple_shell |
1. Simple shell 0.1 | Write a UNIX command line interpreter with basic functionality | simple_shell |
2. Simple shell 0.2 | Extend simple_shell to handle command lines with arguments | simple_shell |
3. Simple shell 0.3 | Extend simple_shell to handle the PATH and avoid unnecessary forks | simple_shell |
4. Simple shell 0.4 | Implement the exit built-in to exit the shell | simple_shell |
5. Simple shell 1.0 | Implement the env built-in to print the current environment | simple_shell |
6. Simple shell 0.1.1 | Write your own getline function with optimized buffering | simple_shell |
7. Simple shell 0.2.1 | Handle comments (lines starting with #) | simple_shell |
8. Simple shell 0.4.1 | Implement the alias built-in to handle aliasing commands | simple_shell |
9. Simple shell 1.1 | Implement a history built-in to display command history | simple_shell |
10. Simple shell 1.2 | Implement the cd built-in to change directories | simple_shell |
11. Simple shell 1.3 | Handle the wildcard character '*' for pattern matching | simple_shell |
12. Simple shell 1.4 | Implement a simple help built-in that displays information about commands | simple_shell |
13. Simple shell 1.5 | Implement the setenv and unsetenv built-ins to modify the environment | simple_shell |
14. Simple shell 1.6 | Extend your shell to handle command chaining using '&&' ... | simple_shell |
15. Simple shell 1.7 | Extend your shell to handle redirections ('<', '>', and '>>') | simple_shell |
16. Advanced Task: Signals | Handle signals (e.g., Ctrl+C) gracefully within your shell | simple_shell |
This operation is sanctioned by the ALX Software Engineering Program, under the command of Julien Barbier.
Codenames: Achraf Sadeq & Elhoucine Smaili
This project is part of the ALX Software Engineering Program curriculum.