<<<<<<< HEAD
_____ _ _ _____ ____ _ _____ _____ ____ ___ _____
|_ _| | | | ____| / ___| / \|_ _| ____/ ___| / _ \| ___|
| | | |_| | _| | | _ / _ \ | | | _| \___ \ | | | | |_
| | | _ | |___ | |_| |/ ___ \| | | |___ ___) | | |_| | _|
|_| |_| |_|_____| \____/_/ \_\_| |_____|____/ \___/|_|
____ _ _ _____ _ _
/ ___|| | | | ____| | | |
\___ \| |_| | _| | | | |
___) | _ | |___| |___| |___
|____/|_| |_|_____|_____|_____|
The gates of shell is a Holberton School project in the first trimester, helps student to understand the advanced concepts behind the shell program include process, system call, bit manipulation, file managment, error handling ...
- Who designed and implemented the original Unix operating system
- Who wrote the first version of the UNIX shell
- Who invented the B programming language (the direct predecessor to the C programming language)
- Who is Ken Thompson
- How does a shell work
- What is a pid and a ppid
- How to manipulate the environment of the current process
- What is the difference between a function and a system call
- How to create processes
- What are the three prototypes of
main
- How does the shell use the
PATH
to find the programs - How to execute another program with the
execve
system call - How to suspend the execution of a process until one of its children terminates
- What is
EOF
/ “end-of-file”?
- Display a prompt and wait for the user to type a command. A command line always ends with a new line.
- If an executable cannot be found, print an error message and display the prompt again.
- Handle errors.
- Hndling the “end of file” condition (Ctrl+D)
- Hanling the command line with arguments
- Handle the PATH
- Support the exit features and the exit status
- Handle the Ctrl-C to not terminate the shell
- Handling the command seperator
;
- Handling
&&
and||
logical operators - Handle variable replacements
$?
and$$
- Handle the comments
#
- Support the history feature
- Support the file input
- The exit builtin
exit [STATUS]
- The change directory
cd [DIRECTORY] | [OPTION]
- Display the environnment variables
env
- Initialize a new environnment variables or created if not match
setenv [VARIABLE] [VALUE]
- Remove an environnment variable
unsetenv [VARIABLE]
- Support the aliases
alias [name [='value'] ...]
- Display help
help [BUILTIN]
- Display history
history
<<<<<<< HEAD Farid Hashimzada - Software developer - Linkedin /
Rashad Malikov - Software developer & linux system developer - [Linkedin](https://www.linkedin.com/in/Rashad Malikov/)
Simple Shell school project.