https://github.com/brian-xu-vlt/minishell_42
We recreated a shell from scratch, with a minishell tester included, using only our own library (libft) and a limited range of external functions.
https://github.com/brian-xu-vlt/minishell_42
42 42born2code 42projects 42school bash c ecole42 linux minishell minishell-test minishell-tester shell termcaps ubuntu vector xubuntu
Last synced: about 1 month ago
JSON representation
We recreated a shell from scratch, with a minishell tester included, using only our own library (libft) and a limited range of external functions.
- Host: GitHub
- URL: https://github.com/brian-xu-vlt/minishell_42
- Owner: brian-xu-vlt
- Created: 2020-09-02T13:56:09.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-01-04T13:25:59.000Z (over 5 years ago)
- Last Synced: 2025-04-12T20:56:43.035Z (about 1 year ago)
- Topics: 42, 42born2code, 42projects, 42school, bash, c, ecole42, linux, minishell, minishell-test, minishell-tester, shell, termcaps, ubuntu, vector, xubuntu
- Language: C
- Homepage:
- Size: 10.1 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MINISHELL_42
## Team
#### [lfallet](https://github.com/lilafallet)
#### [bvalette](https://github.com/42f)
## Project
We have recreated a shell from scratch, with a minishell tester included, using only our own library (libft) and a limited range of external functions.
Minishell is compatible with macos and linux.
Tester is compatible with linux only, tested on 42's virtual machine.
## Building
``$> git clone https://github.com/42f/MINISHELL_42.git ``
``$> cd MINISHELL_42``
To use Minishell:
``$> make && ./minishell``
To run tester:
``$> make tester``
Includes a home made minishell tester:

## Features
|Features |
|:---------|
|Display prompt|
|Fetch and execute binaries|
|Logic `&&` `\|\|`|
|Single and double quotes management|
|Files redirections `>>` `>` `<` (except file descriptor agregations)|
|Pipes|
|Environment variables|
|Internal variables|
|Expansion|
|`Ctrl + D`|
|`Ctrl + \`|
|`Ctrl + C`|
|Signal catching|
|Builtins |
|:---------|
|echo: with -n option|
|cd with relative and absolute path: with `-` options|
|pwd: no option|
|export: no option|
|env: no option|
|unset: no option|
|set: no option|
|exit: with arguments|
|history: no option|
## Line Edition
|Shortcuts |Description |
|:---------:|:------------------------|
`↑/↓` |Navigate on the command history
`shift + →` |Select while moving right
`shift + ←` |Select while moving left
`shift + ↑` |Copy selection
`ctrl + ↑` |Cut selection
`shift + ↓` |Past clipboard
`home` |Move cursor at the commande line's starting point
`end` |Move cursor at the command line's end
`ctrl + →` |Move one word right
`ctrl + ←` |Move one word left
`shift + home/end` |Select up to the beginning/end of the command line
`shift + ctrl + →/←` |Select one word at a time