/rshell

Shell -- UCR Spring 2015 CS100

Primary LanguageC++MIT LicenseMIT

#RSHELL

Shell Terminal replicating the bash terminal for UCR CS100 Software Construction course

##Install To install and run the most current version of rshell, enter the following into a terminal:

1. git clone http://www.github.com/markasfour/rshell.git

2. cd rshell

3. git checkout hw3

4. make

5. bin/rshell

##Program Features Rshell runs all bash commands

Rshell supports the use of command connectors such as ;, &&, and ||

Rshell supports left to right connector logic sequencing (i.e. ls && pwd || exit would result in ls being evaluated first, pwd being evaluated next, and exit being evaluated last)

Rshell provides proper error messages for use of improper syntax and invalid commands

Rshell allows for the use of commenting through the use of #

Rshell trims excess spaces in the command line

Rshell has a custom exit command allowing the user to exit by running exit

Rshell displays the the user name and the host name in the ready prompt

Rshell supports input and output redirection with < as input, > as output (destructive), and >> as output (additive)

Rshell supports output redirectoin with custom file descriptors such as using 2> or 2>>

Rshell supports piping with the | symbol

Rshell supports linkages of input and output redirection with piping

Rshell supports the cd command

Rshell prints out the current working directory in the ready prompt (~ is short for the home folder)

Rshell supports the ^C signal to terminate a process without exiting Rshell

Rshell can run all commands given a path

##Dependencies The boost library is required to run the tokenizing method in Rshell

##Bugs and Limitations Host name is limited to 64 characters

Commands such as cd are not supported in this make of Rshell

Colors for files, directories, etc. are not supported in this make of Rshell

Text navigation (such as arrow keys) is not supported by this make of Rshell

Up arrow key does not run the previous command

echo "hello world" will include the quotation marks

String literal arguments are not supported by input redirection

Instances of when input or output redirection symbols are used before a filename or cammand is not supported

Rshell will terminate in instances of failed system calls

cd commands must come after all connectors in a command line or with no connectors at all

#LS

Terminal command that lists files and directories that can have -a, -l, and -R flags.

##Install To install and run ls, enter the following into a terminal:

1. git clone http://www.github.com/markasfour/rshell.git

2. cd rshell

3. git checkout hw1

4. make

5. bin/ls

##Program Features ls can display all files and directories.

File and directory arguments can be passed in with optional flag arguments.

ls can display hidden files and directories with the -a flag.

ls can display information about files and directories with the -l flag.

ls can be used recursively with the -R flag.

Flags can be mixed and matched such as -a -l or -al.

Flags can be used multiple times for the same effect (-a is the same as -aaaa).

Output is color coded to indicate hidden files with a grey background, directories with blue text, and executables with green text.

Output is formatted into equal column widths.

Output is formatted in alphabetical order from left to right.

##Bugs and Limitations Terminal width is assumed to be 80 characters wide.

Unlike the actual ls program, only the -a, -l, and -R flags can be used.

Passing in an improper flag will terminate the program.

Issue with UCR's hammer server causes the error do_ypcall: clnt_call: RPC: Unable to send; errno = Operation not permitted on random occassions.

Multiple - in a parameter will be ignored (--a will work the same as -a)

The grey background for hidden files extends the full width of its column.