Skip to content

KennedyRyan-code/simple_shell

Repository files navigation

C - Simple Shell

General

  • 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”?
  1. Betty would be proud
  • Write a beautiful code that passes the Betty checks.
  1. Simple shell 0.1

Write a UNIX command line interpreter.

Usage: simple_shell Your Shell should:

  • Display a prompt and wait for the user to type a command. A command line always ends with a new line.
  • The prompt is displayed again each time a command has been executed.
  • The command lines are simple, no semicolons, no pipes, no redirections or any other advanced features.
  • The command lines are made only of one word. No arguments will be passed to programs.
  • If an executable cannot be found, print an error message and display the prompt again.
  • Handle errors.
  • You have to handle the “end of file” condition (Ctrl+D).
  1. Simple shell 0.2

Simple shell 0.1 +

  • Handle command lines with arguments
  1. Simple shell 0.3

Simple shell 0.2 +

Handle the PATH

  • fork must not be called if the command doesn’t exist
  1. Simple shell 0.4

Simple shell 0.3 +

  • Implement the exit built-in, that exits the shell Usage: exit
  • You don’t have to handle any argument to the built-in exit

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •