A basic shell. Written in C
MIT License
A shell implemented in C. Written as a part of Operating Systems (CS39002) coursework.
The following functions have been written explicitly in C.
cd - Change directory
pwd - Present Working directory
mkdir - Make a directory (Alerts if already exists)
rmdir - Remove the directory (Alerts if no such file or directory)
ls - List contents of pwd
cp - Copy contents of file1 to file2; only if file1 was more recently modified. Create file2 if not present already.
exit - Exit the shell ; also works for z
Supports running the execuables (predominanatly, ./a.out and scripting commands, like touch, cat, python notif.py )
Any path added to your $PATH
folder will work. [Refer to function runprocess in shell.c]
Support background execution such as python notif.py &
- returns its PID.
Input from and output to files, such as ./d < in.txt
and ./inc > in.txt
supported. (Both can work simultaneously.)
Support piping upto 2 levels - such as ./inc | ./d
and ./inc | ./d | ./t
Output :
The test cases are present in tests folder.
run.c
creates a child process to execute shell.c
in a gnome-terminal, suited for debuggging. In case the terminal session is to be viewed in the continuing session, execution is as :
gcc
and grep
don't work for some freaking reason. Most of the other commands like cat, touc, gedit, atom work but these 2 seem to hold a grudge against me.
support piping with system calls.