Due: Monday, April 19, 2020, at 11:59pm
In this assignment you'll gain some more experience with shell commands and with writing short shell scripts.
General hint: Before trying to write and debug a script, it's very helpful to first work out the necessary commands by experimenting in a shell window. Similarly, you can test one statement in your script at a time in your shell. Also, look at man pages and other descriptions of commands. Sometimes options are available that allow a single command to do something you want instead of having to use several commands or writing loops or complex control structures in a script.
Note: In each of the files you submit for HW2 you should include, at the top of the file, a comment that contains your name, HW2, Problem #, and the date. There are four parts to this homework, so you should submit four files.
LuxSit (and nothing more) is printed on
standard out, and nothing is printed on standard error when the
command is entered. You can precede your commands with other
commands (e.g., to create a file, run other commands, etc.) and/or
pass options or arguments to your commands. Solve this problem for
each of the listed commands individually.echo, cat, ls, grep, !!In a text file called
challenge1 describe your
solutions, including each of the five commands you use and a very brief
explanation of it, including information about any additional commands
or operations that were done before executing that command.
And, yes, "nothing more" in
the output means "nothing
more".private such that
when you run private foo, the entire subtree of the
file-system starting at foo (so just foo
if it is a file, but foo and all of its files and
subdirectories recursively if it is a directory) has its
permissions changed as follows:
defprivate such that
entering source defprivate would
make private available in the current shell
(i.e., source defprivate makes the private
command available for use in the current shell,
but does not actually execute it immediately). The alias should also
work on multiple arguments.g=u.combine that takes 2
or more arguments, call them f1, f2, ...,
fn. Script combine should work as follows:stderr and exit
with a return code of 1.f1 already exists, print
"Error: first file exists" on stderr and
exit with a return code of 1.f2, ...,
fn and copy them to f1. Do not print
any error messages from this (for example if some file does
not exist or is a directory). Instead, any such error messages
should be written to f1. Exit
with a return code of 0 after copying the intput files.
/dev/stdout
or /dev/stderr. These are not portable across *nix
systems. Although they are found on most versions of Linux the
problem can be solved without them.cat, shift, $@, -lt, -a.spellcheck
that works as follows:[ ! -f $1 ]), spellcheck prints an appropriate error message to stderr and exits with a return code of 1.grep to compare that word to the dictionary (which is assumed to exist at /usr/share/dict/words). If the word is not found in the dictionary it should be added to the end of a file called <FILE>.spelling. You may consider any word not found in the dictionary to be mispelled, including acronyms or numbers. You may add repeated words to the word list in the initial step../spellcheck linus.txt will create a file called linus.txt.spelling, which contains a list of words such a 'Linux' and 'Torvalds'. You will need to make some decisions about details in this implementation. For example, punctuation, numbers, and captilization may be handled different ways. You should document major decisions in comments, but, grading will not penalize reasonable variations here.
spellcheck with all the extra credit complete:
./spellcheck replacing linus.txt.spelling file ./spellcheck found 32 spelling errors, output to file linus.txt.spelling 13 of the words are uniqueHints:
bash on either of our
reference systems (klaatu or the current CSE Linux virtual
machine).Please submit your files to the Canvas HW2 Assignment. There will be four files total. You should combine your files into an archive (see the tar command) and turn that in as a single file.
The drop box will allow you to turn in your homework up to four days late, but remember that you will be penalized 20% for each additional day you take. If you wish to use a late day please note this in a comment on your Canvas assignment submission.