A program that simulates behavior of Linux shell zsh.
Developed as study assignment in the Ucode school.
The program is a Unix shell that can be used as an interactive login shell and as a command
interpreter for shell scripting. Ush has comand line editing, builtin spelling correction,
programmable command completion, shell functions (with autoloading), a history mechanism,
and a host of other features.
1. Execution of external commands (bin files).
2. Execution of builtins.
3. Meta-circular interpreter.
4. Interpretation of complex grammar of input line including command
separator ( ; ), pipeline ( | ), command substitution, redirections.
5. Expansions of tilda (~).
6. Variables (
7. Escape working accordingly in no quote, quote, double quote expressions.
8. Ctrl+C, Ctrl+D, Ctrl+Z.
9. Command history.
10. Backspace key while inputting line.\
1. git clone https://github.com/vladyslav-n/ush.git
2. make
3. ./ush
Builtin | Description |
---|---|
cd | Change the working directory |
pwd | Wites the full pathname of the current working directory |
chdir | Change the working directory |
unset | Remove variable or function names from enviroment |
export | Set the export attribute for variables to enviroment |
fg | Run jobs in the foreground |
jobs | Print currently running jobs and their status |
which | Locate a command and display its pathname or alias |
echo | Write arguments to standard output |
env | Set the environment for command invocation |
exit | Cause the shell to exit |
true | Stop shell with exit status 0 |
false | Stop shell with non-zero exit status |