diff --git a/README.md b/README.md index c2eeba1..02807c5 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,41 @@ -# MINISHELL -## Bash alternative -## Description +# Minishell -Minishell is a computer project that involves creating a minimalistic shell (or command interpreter) in the C language. A shell is a program that allows the user to interact with the operating system by entering commands from a terminal. +Minishell is a 42 School project that involves creating a minimalistic shell in C language. The shell should be able to handle basic commands, manage environment variables and implement several built-in functions. -The goal of the Minishell project is to understand how a shell works, particularly how it interprets the commands entered by the user, executes them, and displays the results. The project is usually proposed to computer science students as part of a university curriculum or online training. +## Features -The Minishell project must implement a set of basic commands such as cd (to change directory), echo (to display text), pwd (to display the current directory), and system commands such as ls, cat, grep, etc. The shell must also handle environment variables, processes, and signals. +- Prompt management (display, editing, history) +- Command execution (with or without arguments) +- Basic shell operations (pipes, redirections) +- Environment variables management (listing, setting, unsetting) +- Built-in functions management (echo, cd, env, exit, export, pwd, unset) -The development of the Minishell project is typically done in several stages: first, the user commands must be parsed and transformed into a data structure usable by the program. Next, the different basic commands must be implemented, followed by the system commands. Finally, environment variables, processes, and signals must be managed. +## Getting started -The Minishell project allows students to become familiar with system programming in C, concepts such as processes, signals, environment variables, and interaction with the operating system. It is also an excellent way to deepen programming knowledge and develop problem-solving skills. +1. Clone this repository: `git clone https://github.com//minishell.git` +2. `cd` into the cloned directory: `cd minishell` +3. Run the `make` command to compile the program: `make` +4. Start the shell by running the executable: `./minishell` -## Team -camille@chauvet.pro -xamora@42l.fr +## Usage -## Requirement -- clang -- readline +Once the shell is started, you can enter commands as you would with any other shell. The following are some examples of commands that can be executed: -## Subject -![Subject (EN)](./subject.pdf) +- Display the working directory: `pwd` +- List files in the current directory: `ls` +- Change directory: `cd ` +- Print the value of an environment variable: `echo $` +- Set an environment variable: `export =` +- Unset an environment variable: `unset ` +- Display a list of environment variables: `env` +- Exit the shell: `exit` + +## Resources + +- ![The project subject](./subject.pdf) +- The C library documentation for the standard library functions used in the program +- bash man + +## Authors + +This project was created by Camille CHAUVET. If you have any questions or suggestions, feel free to contact me. \ No newline at end of file