I created it for personal usage, but decided to upload it into public repo in case if anybody would be interested in it.
Work is still in porgress, buf when you will see a "finished" topic assigned to it, feel free to contribute.
- Command input with
leftandrightarrow,homeandendkeys navigation andbackspace,deletesupport - Running commands in separate process and termination them with
ctrl+c cd,exitandexecbuiltin commands- Files and commands from
PATHautocompletion onTabkeypress - History of commands and navigation or search through it with
up/downkeys - Username, ip address and current path in prompt before each command input
- Show previous command return status in prompt and invert it with
!, separated with space, specified before it - Running multiple commands separated by
;,&&or|| - Expand
*wildcards - Commands I/O redirection with
|pipes and>,<,>>,<>file input/output - Save history into file and access recent command in another instance of shell
$ENVIRONMENT_VARIABLESexpansion- Own
execvpeimplimentation asmexecvpewith commands getting from$PATH - Setting environment variables with
exportand locally before command
cd: changes current working directory to the one specified by user. If no arguments provided, shows error.exec: executes entered command and exitsexport: sets environment variableexit: exits shell
Ctrl+Zrunning programm withfd$()subcommands