Skip to content

This project involves creating a simple UNIX command line interpreter. It covers topics such as process creation, system calls, and basic shell functionality.

Notifications You must be signed in to change notification settings

Achrafsadeq/simple_shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

0x16. C - Simple Shell

Description

This project involves creating a simple UNIX command line interpreter. It covers topics such as process creation, system calls, and basic shell functionality.

Requirements

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

Tasks

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

Mission Director

This operation is sanctioned by the ALX Software Engineering Program, under the command of Julien Barbier.

Developers

Codenames: Achraf Sadeq & Elhoucine Smaili

Acknowledgments

This project is part of the ALX Software Engineering Program curriculum.

About

This project involves creating a simple UNIX command line interpreter. It covers topics such as process creation, system calls, and basic shell functionality.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages