Skip to content

Latest commit

 

History

History
executable file
·
25 lines (22 loc) · 783 Bytes

File metadata and controls

executable file
·
25 lines (22 loc) · 783 Bytes

MyShell

Wrote my own shell implementation for my CS252 Systems Programming course.

##Part 1: Lex and Yacc Create a scanner and parser for the shell

##Part 2: Executing commands

  • Simple command process creation and execution using fork() and execvp()
  • I/O File redirection
  • Pipes

##Part 3: Ctrl-C, Wildcards, Zombie Elimination, etc.

  • Ctrl-C (Using SIGINT to kill the running command)
  • Builtin Commands: setenv, unsetenv, printenv, cd, jobs
  • Wildcarding
  • Subshells
  • Zombie Elimination
  • Allow Quotes in Commands
  • Escape characters
  • Environment variable expansion
  • Tilde expansion
  • isatty()
  • Implement a line editor (up, down, left, and right arrow keys, delete (ctrl-D), backspace, home key (ctrl-A), end key (ctrl-E)
  • Variable prompt
  • Robustness