bish/README.md

89 lines
3.2 KiB
Markdown

If you use more than 3 lines of code from the internet, cite them in a comment.
It's cause for an 'f' otherwise!!!!
THIS IS OUT OF 20 POINTS!!!! No one can get more than 20 points.
If you work in pairs, then I'll give each person 2/3 of the total points. So
if a team gets 30 (and each person gets 15), I'll give each student 20.
If you work in threes, then I'll give each person 1/2 of the total points. So
if a team gets 40 (and each person gets 13.3333), I'll give each student 20.
The Shell Assignment (total 42 points)
+ 1 ~~Can run an executable~~
+ `/bin/ls`
+ 1 ~~You search the path for the executable~~
+ `ls`
+ 1 ~~Can do file input redirection "<"~~
+ `ls > fred`
+ 1 ~~Can do file output redirection ">"~~
+ `ls < fred`
+ 2 ~~Can do command piping "|"~~
+ `ls | wc`
+ 1 ~~Can do lots of pipes~~
+ `ls | grep fred | wc`
+ 1 ~~Can do at least one combination of these things~~
+ `ls | wc > fred`
+ 4 ~~Can do any combination of three of <, >, and |~~
+ `cat < filename | sort > sortedFile.txt`
+ 2 Can set enviornment variables
+ `PATH=:/bin:/sbin:/usr/sbin:/usr/bin`
+ 2 ~~Expands enviornment variables on the command line~~
+ `ls $HOME`
+ 2 ~~Does filename expansion "glob" (Hint: Use the built in glob.)~~
+ `ls a*b`
+ 1 ~~Knows how to change directory~~
+ `cd /fred`
+ 1 Bang last command
+ `!l` runs ls
+ 1 Bang # command
+ `!4` runs 4th command from history
+ 1 ~~Queue commands~~
+ `make ; make install`
+ 1 ~~Can have lots of semicolons~~
+ `ls; sleep 3; rm fred`
+ 2 Change Prompt
+ `PS1="what is you command?"`
+ 3 Can run commands in the background.
+ `processImage &`
+ 1 Concatenate commands with &. Only runs next command if the previous
comand returned success.
+ `cd /home/rappleto & rm fred.txt`
+ 1 ~~Catch Keyboard interrupt~~
+ `ctrl + c` = back to prompt
+ 1 ~~Replace "~" with the home directory~~
+ `rm ~/junkfile`
+ 1 ~~Control-L clears the screen~~
+ `ctrl-l` = clear screen
+ 3 When they misspell a command, offer a suggestion
+ (user) `lss`
+ (shell) Did you mean `ls`?
+ 2 Can run commands from a file
+ `. scriptFile.txt`
+ 2 ~~Tab Completion~~ and ~~Arrow History~~
+ 1 ~~Saves and reloads history to a file~~
+ 2 Automatically runs a file called .myshell when it starts
+ 2 Only runs execuatables from an approved list
+ -2 Commands cannot have arguments (i.e. ls -l does not work).
25 pts
/20
Some cases to consider
+ A person tries to run a non-executable.
+ A person tries to read or write to a non-existent file.
+ A person tries to read or write to a file they do not have permissions on.
+ A person tries a non-sensical command. (i.e. `ls > foo > fee < doo < dee`)
+ A person tries to pipe to a non-command (i.e. `ls | /tmp/foo.txt`)
+ A person tries to pipe from a non-command (i.e. `/tmp/foo | ls`)
+ A person tries to expand a non-variable (i.e. `ls $DOES_NOT_EXIST`)
+ A regular expression matches no files.
+ A regular expression matches one file.
+ A regular expression matches lots of files.
+ A person tries to change directory to something that does not exist.
These programs are due Friday before finals week. It will take a totally excellent excuse to move this at all.