A korn shell for Linux created by Joshua Nassar and Alex Smith.
The main method is inside of the yacc file, as well as some functions. Most of the functions are in a file called user_created_commands.c. The linked list data structure is contained within data_structures.c.
-
File Name Completion
-
Using 3 or more pipes ending in an alias and trying to output to file For example:
alias a ls alias b wc a | b | b > out.txt
-
Wildcard matching using more than one * or ? in a word
-
Input Types
-word
-white space
-metacharacters
-
Built-in Commands
-setenv variable word
-printenv
-unsetenv variable
-alias name word
-bye
-
Other Commands
-I/O redirection
-Piping
-Redirection of standard error
-Commands checking either PATH or current directory if prefaced by /
-Running programs in the background with &
-
Aliases
-alias
-alias name word
*alias expansion on first word of a command *nested aliases *detects infinte alias expansion-unalias name
-
Environment Variable Expansion ${variable}
-substitutes value of variable
-
Wildcard Matching
-works with one of * or ? at any point in word
-
Tilde Expansion
-
~name
-
~ not followed by a user name
-
- output when redirecting input into the shell is out of order. All the prompts are printed after execution.