Skip to content

Commit b0ae0a2

Browse files
committed
Construction of readme 1
1 parent 257033d commit b0ae0a2

File tree

6 files changed

+104
-106
lines changed

6 files changed

+104
-106
lines changed

.vscode/c_cpp_properties.json

Lines changed: 0 additions & 18 deletions
This file was deleted.

.vscode/launch.json

Lines changed: 0 additions & 24 deletions
This file was deleted.

.vscode/settings.json

Lines changed: 0 additions & 64 deletions
This file was deleted.

LICENSE

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# **************************************************************************** #
2+
# #
3+
# ::: :::::::: #
4+
# LICENSE :+: :+: :+: #
5+
# +:+ +:+ +:+ #
6+
# By: aconceic <[email protected]> +#+ +:+ +#+ #
7+
# +#+#+#+#+#+ +#+ #
8+
# Created: 2024/02/05 13:34:55 by aconceic #+# #+# #
9+
# Updated: 2024/11/04 17:08:31 by aconceic ### ########.fr #
10+
# #
11+
# **************************************************************************** #
12+
13+
14+
This is a free work delivered for educational purposes during the main course
15+
at 42 <42 Porto>.
16+
17+
Feel free to use it, change it, give advices, send me a pull request or
18+
just slack me if you want to share some thoughts.
19+
20+
In jurisdictions that recognize copyright laws, the author or authors
21+
of this software dedicate any and all copyright interest in the
22+
software to the public domain. We make this dedication for the benefit
23+
of the public at large and to the detriment of our heirs and
24+
successors. We intend this dedication to be an overt act of
25+
relinquishment in perpetuity of all present and future rights to this
26+
software under copyright law.
27+
28+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
29+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
30+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
31+
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
32+
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
33+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
34+
OTHER DEALINGS IN THE SOFTWARE.

README.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,72 @@
11
# 42_minishell
22
Repository of the project minishell from 42 Porto.
3+
4+
<!-- ![Banner](minishell.png "minishell banner") -->
5+
6+
## Table of contents
7+
8+
- [Sources and Acknowledgments](#sources-and-acknowledgments)
9+
- [Introduction](#introduction)
10+
- [Usage](#usage)
11+
- [Example of usage](#example-of-usage)
12+
13+
## Sources and Acknowledgments
14+
I would like to share the key resources that helped me to construct this project. My sincere thanks go out to everyone who has shared their knowledge freely with the community.
15+
16+
- [Minishell: Building a mini-bash](https://m4nnb3ll.medium.com/minishell-building-a-mini-bash-a-42-project-b55a10598218) - By [MannBell](https://m4nnb3ll.medium.com/)
17+
- [Shell Program Explained - Playlist](https://www.youtube.com/watch?v=ubt-UjcQUYg) - By [hhp3](https://www.youtube.com/@hhp3)
18+
- [What Happens When You Type a Command in Your Terminal](https://www.youtube.com/watch?v=2P7fcVHxA9o) - By [warpdotdev](https://www.youtube.com/@warpdotdev)
19+
- [Chapter 5. Writing Your Own Shell](https://www.cs.purdue.edu/homes/grr/SystemsProgrammingBook/Book/Chapter5-WritingYourOwnShell.pdf) - By Gustavo Rodriguez-Rivera and Justin Ennen,Introduction to Systems Programming: a Hands-on Approach (V2015-2-25)
20+
(systemsprogrammingbook.com)
21+
- [Unix terminals and shells](https://www.youtube.com/playlist?list=PLFAC320731F539902) - By [Brian Will](https://www.youtube.com/@briantwill)
22+
- [Bash Reference Manual](https://www.gnu.org/software/bash/manual/bash.html) - By Free Software Foundation, Inc
23+
- [Write a shell in C](https://brennan.io/2015/01/16/write-a-shell-in-c/) - By [Stephen Brennan](https://brennan.io/)
24+
25+
And I would like to thank by peers from 42 Porto, who helped me a lot during all the process of this complex project. Thank you all. Sharing knowledge make us better.
26+
Special thanks to [Isabella Miranda](https://github.com/bellamiranda), my partner throughout this project, who co-constructed this minishell with me.
27+
28+
---
29+
30+
## Introduction
31+
32+
This Project is about to recreate your own implementation of a shell based on bash shell.
33+
[What is a shell](https://www.datacamp.com/blog/what-is-shell?dc_referrer=https%3A%2F%2Fwww.google.com%2F)
34+
35+
We needed to recreate some specifics behaviours of bash shell:
36+
- Display a prompt when waiting for a new command;
37+
- Have a working history.
38+
- Search and launch the right executable (based on the PATH variable or using a
39+
relative or an absolute path).
40+
- Implement redirections:
41+
- Implement pipes (| character) and Pipeline.
42+
- Handle environment variables ($ followed by a sequence of characters) which
43+
should expand to their values.
44+
- Handle $? which should expand to the exit status of the most recently executed
45+
foreground pipeline
46+
- Handle ctrl-C, ctrl-D and ctrl-\ which should behave like in bash.
47+
- Implements some builtins
48+
For the complete list of requiremets and limitations, read the [subject](subject/en.subject.pdf).
49+
50+
---
51+
52+
## Usage
53+
1 - In your terminal, clone the repository from github
54+
```
55+
git clone [email protected]:amauricoder/42_minishell.git
56+
```
57+
58+
2 - In your terminal, use 'make' to compile the project
59+
```
60+
make
61+
```
62+
63+
This will compile an executable program called minishell.
64+
3 - Execute ./minishell without any argument
65+
```
66+
./minishell
67+
```
68+
69+
## Example of Usage
70+
**Click on the image below to watch on Youtube an exaple of usage of this project**
71+
72+
[![Watch the video](minishell.gif)](https://www.youtube.com/watch?v=urz76d7-Gq4)

minishell.gif

155 KB
Loading

0 commit comments

Comments
 (0)