Skip to content

This project is about creating a shell, where our shell will do some basic operations such as changing directories, handle pipes, redicertions and some other commands.

Notifications You must be signed in to change notification settings

AlmarzooqiH/Minishell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minishell

This project is about creating a shell, where our shell will do some basic operations such as changing directories, handling pipes, redirections, and some other commands.

We called our shell Martho because it comes from our intra names, hamalmar and mthodi where we took Mar from hamal(Mar) and Tho from m(Tho)di.

Special thanks to ii-mnwr for being my project partner.

Features

  • Basic Shell Operations: Execute commands like ls, echo, pwd, etc.
  • Change Directories: Use cd to navigate through the file system.
  • Pipes: Handle pipes (|) to connect multiple commands.
  • Redirections: Support input (<), output (>), append (>>) and heredoc (<<) redirections.
  • Built-in Commands: Implement built-in commands like cd, echo, pwd, export, unset, env, and exit.
  • Environment Variables: Manage and expand environment variables.
  • Signal Handling: Properly handle signals like Ctrl+C, Ctrl+D and Ctrl+\.

Screenshots

Minishell Screenshot

Getting Started

To get started with Minishell, follow these steps:

  1. Clone the repository:

    git clone https://github.com/AlmarzooqiH/Minishell.git
    cd Minishell
  2. Compile the project:

    make
  3. Run the shell:

    ./minishell

Usage

Here are some examples of how to use Minishell:

  • Basic Commands:

    Martho shell# ls -la
    Martho shell# echo "Hello, World!"
  • Change Directory:

    Martho shell# cd /path/to/directory
  • Pipes:

    Martho shell# ls -la | grep minishell
  • Redirections:

    Martho shell# echo "Hello, World!" > output.txt
    Martho shell# cat < input.txt

About

This project is about creating a shell, where our shell will do some basic operations such as changing directories, handle pipes, redicertions and some other commands.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •