-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
71 lines (54 loc) · 3.19 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
SHEL && custom ls command
Project source can be downloaded from:
https://github.com/ahsu013/rshell.git
Author & Contributor List:
Albert Hsu
File List:
Makefile
LICENSE
/src
rshell0.cpp
ls.cpp
cp.cpp
/tests
exec.script
rshell overview
rshell is a simple custom shell. It a more limitated version of BASH shell. It execute commands by calling execvp command in /bin.
Knonw bug and/or limitation:
echo into file does not work
echo with message that has # does not echo anything after #
rshell can not handle differient connectors. It will prompt "Syntax Error if it detects mutliple different connectors
connectors at the end of commands will be ignore
multiple connectors without commands in between will prompt "Syntax Error"
rshell currently can not cycle through past commands.
rshell currently can not auto complete with tab key
special built in "exit" command will exit the custom shell.
Cp overview
Cp is a program that moves the content of a file into another. The default method is to use the max size buffer to copy the content. This is the fastest way to do so. If optional flag "-o" is pass in, it will use all three method and display the wallclock/user timer/system time.
ls overview
ls is custom command and has the same functionality as bash's ls command with some limitation. The accepted flags are -l -r -a -R. User can combine flags to get the wanted result. The default order is alphabetical order
-a: List all hidden files
-r: List files in reverse order
-R: Recursivly call to display all files within folders.
-l: Displays with long formate listing extra information pertaining to the file.
Extra infomations are order:
Total number of files in directory.
The type of file.
User read/write/execute permission.
Group read/write/execute permission.
Other read/write/execute permission.
Number of links.
User name.
Group name.
File size.
Time of last modification.
Name of file.
Rshell with piping and input/output redirectionoverview:
This updated version of rshell has piping and input/output redirection added in. To redirect input use '<' and it will use the filename that comes after '<' as input. For output redirection, filename after '>' or '>' will be use as output file. Using ">>" will apend the output to the existing file. IF the output file does not exists, it will create it with read and write permission. There's an optional flag that comes before '<' or "<<" that will takes in a file descriptor and replaces it with output file. For example grep test.cpp 2> error will output all the error messages into a file name error.
Rshell with Interrupt signal, path finding, and cd cmd
This version will allow interrupt signal to interrupt excev job but not exit the rshell program. This version also manually check search for path to find the command or link. The cd cmd will not work if it has connectors and should not be use with piping anyways.
Known bug and/or limitation:
Has undefine behavior when using the same file as input and output.
Cannot handle here-string (<<<)
It's not meant to handle connectors and piping
Will exit the program if it detects redirection formating erors but not opening file error.