#42SH - 42School's project - 88/100 ###Creating a bash-like shell
-
Compulsory part
- Builtins
cd
echo
exit
env
setenv
unsetenv
- Command line
- Prompt
- Line editing (stdin)
- Executing simple commands
- Binaries
- Builtins
- PATH management
- Redirections
>
>>
<
|
- Logical Operators
&&
||
;
- Error handling
- Commands status
- Segfault-proof
- NO LEAKS
- Builtins
-
Bonus
- Termcaps management
- Signals and EOF
ctrl+C
ctrl+D
- Edit the line where the cursor is located
- Moving the cursor in the terminal
←
→
shift+←
shift+→
home
end
- Multiline edition
shift+↑
shift+↓
- Resize the terminal
- Browse the history and edit the selected line
↑
↓
- Copy / Cut / Paste
ctrl+E
+ctrl+K
/ctrl+H
/ctrl+T
/ctrl+U
/ctrl+P
- Autocompletion
tab
- File descriptor
n>&n
n>&-
(close the file descriptor 'n')
- Inhibitors
"
'
\
- Builtins
history
,read
- events designators
!!
!n
!-n
!string
!?string[?]
!#
^string1^string2^
- Subommands
ls `echo $HOME`
- Subshells
-
env | grep toto && (setenv toto 123 && env | grep toto) && env | grep toto
- Globbing
-
ls */*.[ch]
- Hash table