- Prompt without line edition.
- Builtins
cd,echo,exit,env,setenv,unsetenvwith there options. - Executing simple commands with there parameters using
PATH. - Support for redirection
>,>>,<and|. - Logical operand
&&and||. - Separator
;.
- Inhibitors
",'and\. - Advanced redirections: aggregation of file output and heredoc
<<. - Globbing:
*,?,[],{}, etc. - Backquotes `.
- Subshell with operand
(). - Local variable and builtin
unsetandexport. - History with builtin
historyand!with options. - Advanced line edition.
- File descriptors and builtin
readwith options. - Dynamical autocompletion.
- Job Control and builtins
job,fg,bgand operand&. - Shell Scripting: bang (!), variable assignements, brace group, if, while, until, for and functions
- Advanced dollar expansion
$(..),$((..)),$[..] - Tilde expansion
~,~<username>,~-,~+ - Range expansion
{<START>..<END>}and{<START>..<END>..<INCREMENT>} - Advanced redirections operator
&>,&>>,<>,<<<and|& - Aliases, builtin alias
alias [-p] [name[=value] …]and expansion - Builtin env advanced options
-u nameand[name=value] - Inline variables
[name=value] binary [arguments...] - Binary hashtable
- Rights in the PATH
Usage: ./42sh [option] [script-file] [script arguments...]
ush options:
--help: this *useful* help message!
ush keymap:
<ctrl+A|home>: Go to begin of line.
<ctrl+E|end>: Go to end of line.
<ctrl+V>: Enter visual mode.
<ctrl+Y>: Yank in visual mode.
<ctrl+P>: Paste.
<ctrl+D>: Exit or delete in visual mode.
<ctrl+C>: Cancel line edition.
<ctrl+L>: Clear the screen.
<shift+[left|right]>: Move per word.
<shift+[up|down]>: Move per line.
<up>: Go up in the history.
<down>: Go down in the history.
!!: Retype the last command.
!n: Retype the n command from the begin of history.
!-n: Retype the -n command from the last command.
!name: Search for a command beginning with name.