⚙️ Implementation of shell zsh. iTerm taken as an example of a terminal.
Critical Thinking, Problem Solving, Analysis, Reasoning & Argumentation, Creativity, Agility & Adaptability, Responsibility, Self-Management, Communication, Teamwork, UNIX, Git, Algorithms, C, Procedural Programming, Leadership
- Download/Clone the source code
cd
into the root directory- Run
make
- The default prompt looks like u$h> followed by the space character.
- The shell deals only with one line user input. In other cases, appropriate descriptive error message is displayed.
- The shell implements builtin commands without flags: export, unset, fg, exit .
- The shell also implements the following builtin commands with flags:
- env with -i, -P, -u;
- cd with -s, -P and - argument;
- pwd with -L, -P;
- which with -a, -s;
- echo with -n, -e, -E;
- The shell calls the builtin command instead of binary program if there is the name match between them.
- The shell correctly manages errors like other shells do.
- The shell manages user environment correctly.
- The shell runs programs located in the directories listed in the PATH variable.
- The shell manages signals CTRL+D , CTRL+C and CTRL+Z .
- The shell implements command separator ; .
- These characters are escaped to be used literally: space , ' , " , $ , ( , ) , ,`,{,}.
- The shell manages these expansions correctly:
- tilde expansion ~ with the following tilde-prefixes: ~ , ~/dir_name , ~username/dir_name , ~+/dir_name , ~-/dir_name ;
- the basic form of parameter expansion ${parameter} ;
- command substitution
command
and $(command) .