Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mvpee/42-minishell
This project is about creating a simple shell. Yes, your own little bash. You will learn a lot about processes and file descriptors.
https://github.com/mvpee/42-minishell
19 42 bash minishell pipe pipeline pipex processing redirection shell
Last synced: 29 days ago
JSON representation
This project is about creating a simple shell. Yes, your own little bash. You will learn a lot about processes and file descriptors.
- Host: GitHub
- URL: https://github.com/mvpee/42-minishell
- Owner: MVPee
- Created: 2024-01-13T20:34:49.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-04-12T23:33:43.000Z (9 months ago)
- Last Synced: 2024-04-13T10:07:29.154Z (9 months ago)
- Topics: 19, 42, bash, minishell, pipe, pipeline, pipex, processing, redirection, shell
- Language: C
- Homepage:
- Size: 493 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
:shipit: 42-minishell
About
ยท
Running
ยท
Features# ๐ก About
>As beautiful as a shellThis project is about creating a simple shell. Yes, your own little bash. You will learn a lot about processes and file descriptors.
## ๐ Running
>You need to install readline
```
sudo apt-get update
sudo apt-get install libreadline-dev
```
```bash
make run
```
It will automatically compile the project and run it.
```bash
./minishell
```
Will launch the previously compiled project with `make` and run it.------------
## ๐ Features
- **History**
-- Working history- **`\`**
-- Supports escaping characters with backslashes for proper command interpretation- **`'` `"`**
-- Supports proper parsing of single and double quotes for string handling- **Redirections**
-- Supports input (`<`), here-doc (`<<`), output (`>`), and append (`>>`) redirections- **Environnemts variables**
-- Supports retrieving, setting, and expanding environment variables- **`$?`**
-- Displays the exit status of the last executed command- **Signals**
-- Handles signals like CTRL-C (`interrupt`), CTRL-D (`EOF`), and CTRL-\ (`quit`)- **Builtins**
-- `echo` with -n option
-- `cd` with relative, absolute, and `- ($OLDPWD)` paths
-- `pwd`
-- `export`
-- `unset`
-- `env`
-- `exit`- **Others**
-- *`$SHLEVEL`*
Increments `SHLVL` by one. Sets it to one if `SHLVL` is invalid (not between 1 and 999)
-- *`$PWD`*
Updates `PWD` to reflect the current directory after a `cd` command or if no `PWD` is present in the environment
-- *`$OLDPWD`*
Updates `OLDPWD` after a `cd` command or if no `OLDPWD` is present in the environment
-- *Prompt*
A beautiful, colorful prompt that displays the current `PWD` at the beginning
---
This group project was done by [MVPee](https://github.com/MVPee) and [Nour Echaara](https://github.com/noureh10)