Skip to content

It is an imitation of the Unix shell built in the C language

Notifications You must be signed in to change notification settings

MinaSamirSaad/simple_shell

Repository files navigation

Our Own Version Of Simple Shell

It is a clone of the Unix shell built in C language it is a great project from the ALX internship.

Allowed functions and system calls

  • access (man 2 access)
  • chdir (man 2 chdir)
  • close (man 2 close)
  • closedir (man 3 closedir)
  • execve (man 2 execve)
  • exit (man 3 exit)
  • _exit (man 2 _exit)
  • fflush (man 3 fflush)
  • fork (man 2 fork)
  • free (man 3 free)
  • getcwd (man 3 getcwd)
  • getline (man 3 getline)
  • getpid (man 2 getpid)
  • isatty (man 3 isatty)
  • kill (man 2 kill)
  • malloc (man 3 malloc)
  • open (man 2 open)
  • opendir (man 3 opendir)
  • perror (man 3 perror)
  • read (man 2 read)
  • readdir (man 3 readdir)
  • signal (man 2 signal)
  • stat (__xstat) (man 2 stat)
  • lstat (__lxstat) (man 2 lstat)
  • fstat (__fxstat) (man 2 fstat)
  • strtok (man 3 strtok)
  • wait (man 2 wait)
  • waitpid (man 2 waitpid)
  • wait3 (man 2 wait3)
  • wait4 (man 2 wait4)
  • write (man 2 write)

Features

  • can work in interactive mode and non-interactive mode (pipe)
  • Handling the command lines with arguments
  • Handling the PATH
  • Implement the exit built-in, that exits the shell and handles the exit with arguments also
  • Implement the env built-in, that prints the current environment
  • Implement the setenv and unsetenv builtin commands
  • Implement the builtin command cd
  • Handling the comments (#)

Run the project

Clone the project

  git clone https://github.com/MinaSamirSaad/simple_shell.git

Go to the project directory

  cd simple_shell

Compilation

gcc -Wall -Werror -Wextra -pedantic -std=gnu89 *.c -o shell

Start the app

./shell

Screenshots

App Screenshot

Authors