Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kuninoto/42_minishell
Small implementation of a shell, truly hell
https://github.com/kuninoto/42_minishell
42 42-minishell 42-school 42born2code 42cursus 42minishell 42porto 42portugal 42projects 42school ecole42 minishell minishell-42 minishell42 school42 unix
Last synced: 23 days ago
JSON representation
Small implementation of a shell, truly hell
- Host: GitHub
- URL: https://github.com/kuninoto/42_minishell
- Owner: Kuninoto
- Created: 2022-12-10T01:25:12.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2023-02-22T22:36:45.000Z (almost 2 years ago)
- Last Synced: 2024-11-11T17:29:58.369Z (3 months ago)
- Topics: 42, 42-minishell, 42-school, 42born2code, 42cursus, 42minishell, 42porto, 42portugal, 42projects, 42school, ecole42, minishell, minishell-42, minishell42, school42, unix
- Language: C
- Homepage:
- Size: 1.79 MB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# minishell (42Porto - 42Cursus)
#### Project done in collaboration with [ramos21rodrigo](https://github.com/ramos21rodrigo)
## Grade: 101/100
### Demonstration:
![](./extras/showcase.gif)### Installing and running the project:
1- Installing minishell dependencies:sudo apt-get install make libreadline-dev
2- Clone this repository:git clone https://github.com/Kuninoto/42_minishell
3- Navigate to _lvl_3_minishell_ and run `make`cd 42_minishell/lvl_3_minishell
make
4- `make clean` so that you don't keep those object files that you won't need anymoremake clean
5- Run minishell./minishell
### Subject: [minishell en_subject](./extras/en.subject_minishell.pdf)
#### Makefile Available Targets:
`make` or `make all` - compiles minishell
`make clean` - wipes all object files
`make fclean` - deletes minishell and all object files
`make re` - fclean + all## Useful links
Understanding Bash/Shell behavior:
- https://indradhanush.github.io/blog/writing-a-unix-shell-part-1/
- https://indradhanush.github.io/blog/writing-a-unix-shell-part-2/
- https://indradhanush.github.io/blog/writing-a-unix-shell-part-3/
- https://www.gnu.org/software/bash/manual/html_node/Redirections.html
- https://www.youtube.com/watch?v=ubt-UjcQUYg
- https://www.youtube.com/watch?v=ZjzMdsTWF0U
- https://www.youtube.com/watch?v=k6TTj4C0LF0
- https://www.tutorialspoint.com/unix_system_calls/execve.htm
- https://www.geeksforgeeks.org/signals-and-traps-in-unix/
- https://www.tutorialspoint.com/unix/unix-signals-traps.htm
- https://unix.stackexchange.com/questions/362559/list-of-terminal-generated-signals-eg-ctrl-c-sigint#362566
- https://www.computerhope.com/jargon/r/relapath.htm
- https://www.techopedia.com/definition/5817/absolute-path
- https://www.ibm.com/docs/en/informix-servers/12.10?topic=products-term-environment-variable-unix
- https://kinsta.com/knowledgebase/what-is-an-environment-variable/
- https://linuxconfig.org/term-environment-variable-not-set-solution
- https://www.cs.purdue.edu/homes/grr/SystemsProgrammingBook/Book/Chapter5-WritingYourOwnShell.pdf
- http://www.cems.uwe.ac.uk/~irjohnso/coursenotes/lrc/system/shell/index.html
- https://www.rozmichelle.com/pipes-forks-dups/
- https://velog.io/@sham/minishell%EA%B3%BC-readline
- https://github.com/Swoorup/myshParsing:
- https://youtu.be/bxpc9Pp5pZM
- https://youtu.be/r6vNthpQtSI
- https://www.youtube.com/watch?v=dDtZLm7HIJs
- https://www.youtube.com/watch?v=SToUyjAsaFk
- https://github.com/mit-pdos/xv6-public/blob/master/sh.c
- https://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.htmlAST:
- https://en.wikipedia.org/wiki/Abstract_syntax_tree
- https://stackoverflow.com/questions/1721553/how-to-construct-an-abstract-syntax-tree
- https://www.twilio.com/blog/abstract-syntax-treesParsing/AST/Interpreter:
- https://github.com/Swoorup/mysh## Disclaimer
> At [42School](https://en.wikipedia.org/wiki/42_(school)), almost every project must be written in accordance to the [Norm](./extras/en_norm.pdf), the schools' coding standard. As a result, the implementation of certain parts may appear strange and for sure had room for improvement.---
Made by Nuno Carvalho (Kuninoto) | [email protected]