Skip to content

jcgonzalezb/simple_shell

Repository files navigation

SIMPLE SHELL

Terminal

Table of Contents
  1. Shell description
  2. Usage
  3. The interactive mode
  4. Contributing
  5. Contact
  6. Authors

Shell description

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

How it works?

Shell

Requirements

A Unix computer operating system

Prerequisites

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
  1. Clone the repo
     git clone https://github.com/jcgonzalezb/simple_shell.git
  2. Compilation
     gcc -Wall -pedantic -Werror Wextra *.c -o hsh

Usage

The command interpreter can be use in two ways.

The interactive mode :

Execute normaly and it would be show to prompt, feel free to enter your comand.

   ./hsh

modo interactivo

and always can quit safe, with comand exit or pushin in the keyboard crtl+d.

exit

Non interactive-mode

You can pass the argument with echo option

 echo "ls" | ./hsh

non interactive

Contributing

Create a new branch with the name of your feature or fix and make a pull request to develop branch explaining your work.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Contact

Juan Camilo Gonzalez - @Juankter - jcgonzalezb@gmail.com

Pablo Osorio - @Pabllitoosorio - 3387@holbertonschool.com

Project Link: (https://github.com/jcgonzalezb/simple_shell)

AUTHORS

Juan Camilo Gonzales

Pablo Garcia Osorio

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •