#Rshell Project Program Overview rshell: This is a basic shell program that uses execv to call commands.
ls: this implements the ls command where rshell is the root folder. It only takes in flags -a, -l, and -R. Any other flag will be treated as if it were an invalid flag.
cp: Copies files and compares the runtime of different methods of copying.
How to Use rshell: Treat this shell as if it were bash. However, there are some limitations to this program, which are discussed below. In order to exit the program, simply type in "exit".
ls: Treat this program as if it were the ls command. In the rshell directory, call bin/ls and type in extra arguments after.
Installation Guide
- Clone this repository using, http://github.com/churslic/rshell.git . Or else download the zip on the same webpage.
- Type in
make. All executables will be put in a bin folder. Alternatively, you may type make and then the executable you wish to use.
Bugs/Limitations/Issues
rshell:
- Connectors: For example, typing in
ls#pwdinto bash would not execute, but in this program, it will ignore#pwdand executels. This program will also not allow connectors to be the last argument typed in. For examplels; pwd;orls ||are not allowed. - Exit: Normally
exit | cat file1would actually print out the content offile1, but in this shell, any timeexitis the very first command, everything after it is ignored and the program will terminate. - Input/Output redirection: Multiple input calls OR multiple output calls will be treated as errors. For example,
cat < file1 < file2orcat file1 > file2 > file3will be treated as an error. - cd:
cdwithout any arguments will not change the directory to the home directory.cd dirNameat the beginning of any command will ignore everything after it. This is true for most cases in the actual bash shell, but this does not always happen, so therefore this is listed as an issue here.
ls:
- The formatting is done rather basically. It's default output is to print out with only 5 columns of minimum 14 width. If the file name were to exceed this length, then the output will look crazy.