Linux Command Shell

Since we work in operating system everyday but we don’t know how the internal operating system functions work and how the operating system communicate with the hardware. So to understand the internal working activities and operating system functions, we have decided to build an operating system command shell like Linux. And we believe that this project will help us to enrich our knowledge regarding the internal activities and functions of the operating system.

Ideas: We will build a Linux command shell which will directly operate with the Linux operating systems. The command shell will do some tasks like core Linux operating systems such as create new files, change the directory path, modify the file, change the directory path, some advanced files functionalities, some environmental variable activities, some process working configuration and some networking identification commands. This command shell will also implement the system call methodology to communicate with the hardware systems.

Features:

Basic Linux commands ❖ Lists all files and directories in the present working directory (ls) ❖ To change to a particular directory (cd) ❖ Creates a new file (cat>filename) ❖ Reads the file content (cat filename) ❖ Renames the file to a new filename (mv filename; new_file_name) ❖ Deletes a file (rm filename) ❖ Gives a list of all past commands typed in the current terminal session (history) ❖ Deletes a directory (rmdir) ❖ Renames a directory (mv)

Environment Variables command ❖ To display value of a variable (echo $VARIABLE) ❖ Displays all environment variables (env) ❖ Create a new variable (VARIABLE_NAME = variable_value)

Process command ❖ Details on all Active Processes (top) ❖ Gives the Process ID (PID) of a process (pidof) ❖ Gives the status of a particular process (ps PID)

Networking command: ❖ Shows the IP address details of the system (IPCONFIG) ❖ Shows the hostname details of the system (HOSTNAME) ❖ Shows system info software and hardware (SYSTEMINFO)

Development Tools: ♦ Language: C programming ♦ Operating system: Linux ♦ Version control: Git ♦ Project management: Trello