Skip to content

Rashadmlkv/holbertonschool-simple_shell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

<<<<<<< HEAD


                       _____ _   _ _____    ____    _  _____ _____ ____     ___  _____ 
                      |_   _| | | | ____|  / ___|  / \|_   _| ____/ ___|   / _ \|  ___|
                        | | | |_| |  _|   | |  _  / _ \ | | |  _| \___ \  | | | | |_   
                        | | |  _  | |___  | |_| |/ ___ \| | | |___ ___) | | |_| |  _|  
                        |_| |_| |_|_____|  \____/_/   \_\_| |_____|____/   \___/|_|    

                                       ____  _   _ _____ _     _     
                                      / ___|| | | | ____| |   | |    
                                      \___ \| |_| |  _| | |   | |    
                                       ___) |  _  | |___| |___| |___ 
                                      |____/|_| |_|_____|_____|_____|
                                                                      

HSH: The Holberton Shell

The gates of shell is a Holberton School project in the first trimester, helps student to understand the advanced concepts behind the shell program include process, system call, bit manipulation, file managment, error handling ...

Genreral

  • Who designed and implemented the original Unix operating system
  • Who wrote the first version of the UNIX shell
  • Who invented the B programming language (the direct predecessor to the C programming language)
  • Who is Ken Thompson
  • How does a shell work
  • What is a pid and a ppid
  • How to manipulate the environment of the current process
  • What is the difference between a function and a system call
  • How to create processes
  • What are the three prototypes of main
  • 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
  • What is EOF / “end-of-file”?

Features

  • Display a prompt and wait for the user to type a command. A command line always ends with a new line.
  • If an executable cannot be found, print an error message and display the prompt again.
  • Handle errors.
  • Hndling the “end of file” condition (Ctrl+D)
  • Hanling the command line with arguments
  • Handle the PATH
  • Support the exit features and the exit status
  • Handle the Ctrl-C to not terminate the shell
  • Handling the command seperator ;
  • Handling && and || logical operators
  • Handle variable replacements $? and $$
  • Handle the comments #
  • Support the history feature
  • Support the file input

Builtins

  • The exit builtin exit [STATUS]
  • The change directory cd [DIRECTORY] | [OPTION]
  • Display the environnment variables env
  • Initialize a new environnment variables or created if not match setenv [VARIABLE] [VALUE]
  • Remove an environnment variable unsetenv [VARIABLE]
  • Support the aliases alias [name [='value'] ...]
  • Display help help [BUILTIN]
  • Display history history

Authors

<<<<<<< HEAD Farid Hashimzada - Software developer - Linkedin /

Rashad Malikov - Software developer & linux system developer - [Linkedin](https://www.linkedin.com/in/Rashad Malikov/)

Simple Shell school project.

About

Simple command line interpreter

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages