Skip to content

ahsu013/rshell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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. 
		

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published