# **42zsh** --- 42sh school project. Mandatory part: - Prompt without line edition. - Builtins `cd`, `echo`, `exit`, `env`, `setenv`, `unsetenv` with there options. - Executing simple commands with there parameters using `PATH`. - Support for redirection `>`, `>>`, `<`and `|`. - Logical operand `&&`and `||`. - Separator `;`. Optional feature (five of theses are mandatory to validate the project): - Inhibitors `"`, `'`and `\`. - Advanced redirections: aggregation of file output and heredoc `<<`. - Globbing: `*`, `?`, `[]`, `{}`, etc. - Backquotes \`. - Subshell with operand `()`. - Local variable and builtin `unset` and `export`. - History with builtin `history`and `!` with options. - Advanced line edition. - File descriptors and builtin `read` with options. - Dynamical autocompletion. Optional feature highly appreciated: - Job Control and builtins `job`, `fg`, `bg`and operand `&`. - Shell Scripting.

Shell / Subshell

Line Edition

Keys|Functions| :-:|:-- Opt+C
Opt+X
Opt+V|Copy
Cut
Paste Opt+<
Opt+>|Move per words. Opt+^
Opt+v|Move per line. Ctrl+L|Clear screen. Ctrl+C|Terminate/Kill current foreground process. Ctrl+Z|Suspend/Stop current foreground process.

History

Keys|Functions| :-:|:-- ^
v|Browse the history. Ctrl+R|Research function. `!!`|Retype the last command. `!n`|Retype the `n`(numerical value) command from the begin of history. `!-n`|Retype the `-n`(numerical value) command from the last command. `!name`|Search for a command beginning with `name`. `!?name`|Search for a command which contain `name`.

Autocompletion

Globbing

Hash Table

Builtin Read

Job Control

Scripting