Skip to content
This repository was archived by the owner on May 11, 2025. It is now read-only.
/ 42_minishell Public archive
forked from dimadem/minishell

Linux bash shell developed *entirely in C*.

romanmikh/42_minishell

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Norminette workflow Compilation workflow Valgrind workflow

42 Minishell Project 🐚

Minishell is our minimalist bash shell implementation coded entirely in C.

Description

  • Command execution, redirections (> >> << <), and pipes (|)
  • Environment & Local Variables
  • cd, echo, env, export, pwd, unset, and exit
  • Graceful Signal Handling: Ctrl+C, Ctrl+\, and Ctrl+D
  • Error Handling
  • Robust Memory Management

Installation and Usage

  1. SSH:

    git clone git@github.com:dimadem/minishell.git minishell
    cd minishell
    sudo apt update
    sudo apt install libreadline-dev
    make
    ./minishell
    
  2. Valgrind output saved in valgrind_out.txt after:

    ulimit -n 1024 # necessary once only, to address 'file descriptor too high' error
    make valgrind
  3. Please see documentation for this project under https://dimadem.github.io/minishell/

  4. The project uses an Abstract Syntax Tree (AST) to recursively enforce the correct order of execution for commands. This ensures proper parsing and execution logic, even for complex pipelines and redirections.

Documentation

Full code map (functions boxed in red bifurcate beyond what is showin this map):

function_map

Releases

No releases published

Packages

No packages published

Languages

  • C 94.8%
  • Makefile 5.2%