Table of Contents
The objective of this project is to create from scratch a simple UNIX command interpreter with limited functionality but applying the core concepts of a more robust shell. In simple words, the shell is a program that takes commands from the keyboard and gives them to the operating system to perform. It incorporates many features and generally executes other commands.
How does a shell work.
What is a PID and a ppid, and how to use them.
How to manipulate the environment of the current process.
What is the difference between a function and a system call.
How to create processes.
How does the shell use the PATH to find the programs.
How to execute another program with the execve system call.
How to suspend the execution of a process until one of its children terminates
A Unix computer operating system
Installed gcc (GNU Compiler Collection) version 4.8.4 or newer.
- visit link for more information
https://linuxize.com/post/how-to-install-gcc-compiler-on-ubuntu-18-04
- Clone the repo
git clone https://github.com/jcgonzalezb/simple_shell.git
- Compilation
gcc -Wall -pedantic -Werror Wextra *.c -o hsh
The command interpreter can be use in two ways.
Execute normaly and it would be show to prompt, feel free to enter your comand.
./hsh
and always can quit safe, with comand exit or pushin in the keyboard crtl+d.
You can pass the argument with echo option
echo "ls" | ./hsh
Create a new branch with the name of your feature or fix and make a pull request to develop branch explaining your work.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Juan Camilo Gonzalez - @Juankter - jcgonzalezb@gmail.com
Pablo Osorio - @Pabllitoosorio - 3387@holbertonschool.com
Project Link: (https://github.com/jcgonzalezb/simple_shell)
Juan Camilo Gonzales
Pablo Garcia Osorio