-
Notifications
You must be signed in to change notification settings - Fork 0
This is Linux Shell Clone written in C language.It supports all the system commands in both foreground and background mode.Many builtin commands are implemented like ls,echo,pwd,cd,pinfo.It redirection and piping also.
Sumaid/shell
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Interactive User Defined Shell
Instructions:
1)run make all and then ./shell
2)"exit" to terminate shell program
1)Shell Prompt with username and Operating system name appears.Current directory also appears.
First time when shell is invoked,that directory is considered root or "~",and hence any inner directories follow pattern from here.
2)pwd
- Shows currect working directory with respect to root directory of system(not shell)
3)echo
INPUT OUTPUT
echo argument -> argument
echo arg1 arg2 -> arg1 arg2
echo "arg1 arg2" -> arg1 arg2
echo 'arg1 arg2' -> arg1 arg2
4)ls
INPUT OUTPUT
ls -> (Regular ls output)
ls file1 file2 file3.... -> (ls output on each file-any number of arguments)
ls dir file file2 -> (ls output within dir and on each file)
ls -[al] -> (Works on individual file also)
(Hidden files appear only with -a flag)
(Output looks exactly like original shell, with symmetry in file sizes also)
ls ~
ls ~/path...
5)
cd directory name
cd ./../~
cd ~/path...
(works beyond ~ directory also)
6)pinfo command (user defined)
pinfo : prints the process related info of your shell program.
Ex: <Name@UBUNTU:~> pinfo
pid -- 231
Process Status -- {R/S/S+/Z} memory
- 67854 {Virtual Memory}
- Executable Path -- ~/a.out
-pinfo <pid> : prints the process info about given pid.
Ex: <Name@UBUNTU:~>pinfo 7777
pid -- 7777
Process Status -- {R/S/S+/Z} memory
- 123123 {Virtual Memory}
- Executable Path — /usr/bin/gcc
7)Background processes: Any command invoked with "&" is treated as background
command. This implies that this shell will spawn that process and doesn't wait for
the process to exit. It will keep taking user commands
If the background process exits then the shell displays the appropriate
message to the user.
eg.
emacs with pid 456 exited normally
To run a command in background:
command &
8)Semi colon seperated commands work
9)BONUS Remindme:
remindme [time] "[message]"
10)BONUS clock:
clock -t [gap] -n [duration]
Redirection:
1) > is for redirecting output to a file(replacing)
2) >> is for redirecting output to a file(appending)
3) file name within double quotes is accepted
4) ls > "file name" or ls>"file name" or ls >"adsads" all cases work
5) wc -l < filename > outputfile or wc -l > outputfile < filename (for input + output redirection)About
This is Linux Shell Clone written in C language.It supports all the system commands in both foreground and background mode.Many builtin commands are implemented like ls,echo,pwd,cd,pinfo.It redirection and piping also.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published