Skip to content

peterle95/minishell

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minishell

Minishell 42 project badge

Project Description

minishell is a simple Unix shell implementation designed to provide a lightweight and customizable command-line interface. It aims to replicate the basic functionalities of a shell, allowing users to execute commands, manage processes, and handle input/output redirection.

Features

  • Command Execution: Execute built-in and external commands.
  • Environment Variable Management: Set, get, and delete environment variables.
  • Input/Output Redirection: Support for input and output redirection using <, >, and |.
  • Signal Handling: Custom signal handling for a better user experience, including handling of Ctrl+C and Ctrl+D.
  • Command History: Maintain a history of executed commands for easy access and re-execution.
  • Error Handling: Robust error messages for common issues like command not found, syntax errors, and memory allocation failures.

Installation

To install minishell, clone the repository and compile the project using the provided Makefile:

git clone https://github.com/peterle95/minishell.git
cd minishell
make

Usage

After compiling, you can run the shell by executing the following command in your terminal:

./minishell

You can then start entering commands as you would in a typical Unix shell.


Made by pmolzer and dmusulas: pmolzer@student.42berlin.de | LinkedIn: pmolzer

About

This repository is a 42-school project: a small Unix shell implemented in C that parses commands, handles builtins, pipes, redirections and basic signal management. The stack is plain C with POSIX system calls (fork/execve/pipe/dup2/wait, signal handling), standard libc, and GNU Make for building.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors