Skip to content

A unix shell to provide a user interface to access the operating system services. This shell uses exec(), and fork(), to create and communicate between different spawned processes.

Notifications You must be signed in to change notification settings

rudy-patel/unixShell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unix Shell

A unix shell to provide a user interface to access the operating system services. This was made to learn about systems programming, multiple processes, resource management and process communication.

See the project in action here!

Built-in Commands

jobs : displays the status of all running processes spawned by the shell

exit : ends the execution of the shell, after waiting for all processes to finish

kill <int> : kill process with the specificied pid

resume <int> : resume the execution of a suspended process

sleep <int> : sleep for seconds

suspend <int> : suspend the execution of the specified process

wait <int> : wait until the specified process has completed execution

Command Syntax

If none of the built-in commands are to be executed, the shell will execute any regular shell command!

<cmd> <args>* : spawns a process to execute the command <cmd> with 0 or more arguments <args>

Special Arguments

& : If used, must be the last argument and suggests that the user wants to run this command in the background

< filename : a file name to be used for input

> filename : a file name to be used for output

Building the Shell

To build the project, navigate to the source directory in your terminal shell, and use the following command:

make && ./unixShell

About

A unix shell to provide a user interface to access the operating system services. This shell uses exec(), and fork(), to create and communicate between different spawned processes.

Topics

Resources

Stars

Watchers

Forks