Scarjo is a simple shell created as an end of term project for @holbertonschool.
ScarJo Shell (hsh) is a simple UNIX command line shell and was built as an end of term project for Holberton School. ScarJo includes many basic features present in the bash shell.
To interact with image, click here.
File Functions contained | Description and Return value |
---|---|
_getline.c
|
|
_strtok.c
|
|
array_list.c
|
|
lists.c
|
|
main.c | - |
more_strings.c
|
|
prints.c
|
|
shell.h |
|
strings.c
|
|
built_ins.c
|
|
cmd_line_loop.c int cmd_line_loop(char *buffer, char *line, list_t **env_head) |
|
new_env.c
|
|
run_command.c
|
|
environment.c
|
|
- Allowed editors:
vi
,vim
,emacs
- All your files will be compiled on Ubuntu 14.04 LTS
- Your programs and functions will be compiled with
gcc 4.8.4
(C90
) using the flags-Wall -Werror -Wextra and -pedantic
- All your files should end with a new line
- A
README.md
file, at the root of the folder of the project is mandatory - Your code should use the
Betty
style. It will be checked usingbetty-style.pl
andbetty-doc.pl
- No more than 5 functions per file
- All your header files should be include guarded
- Unless specified otherwise, your program must have the exact same output as
sh
as long as the exact same error output.
Task # | Type | Short description |
---|---|---|
0 | Mandatory | Write a README link Write a man for your shell.link You should have an AUTHORS file at the root of your repository, listing all individuals having contributed content to the repository. Format, see Docker link |
1 | Mandatory | Write a beautiful code that passes the Betty checks |
2 | Mandatory | Write a UNIX command line interpreter. Your Shell should:
|
3 | Advanced | Simple shell 0.1 + |
4 | Mandatory | Simple shell 0.1 + |
5 | Advanced | Simple shell 0.2 + |
6 | Mandatory | Simple shell 0.2 + |
7 | Mandatory | Simple shell 0.3 + |
8 | Advanced | Simple shell 0.4 + |
9 | Advanced | Simple shell 0.4 + |
10 | Mandatory | Simple shell 4.0 + |
11 | Advanced | Implement the setenv and unsetenv builtin commands setenv |
12 | Advanced | Simple shell 1.0 + Implement the builtin command cd: |
13 | Advanced | Simple shell 1.0 + Handle the commands separator ; |
14 | Advanced | Simple shell 1.0 + Handle the && and |
15 | Advanced | Simple shell 1.0 + |
16 | Advanced | Simple shell 1.0 + |
17 | Advanced | Simple shell 1.0 + |
18 | Advanced | Simple shell 1.0 + |
19 | Advanced | Simple shell 1.0 + |
20 | Advanced | Simple shell 0.1 + |
21 | Mandatory | Write a blog post describing step by step what happens when you type ls -l and hit Enter in a shell. Try to explain every step you know of, going in as much details as you can, give examples and draw diagrams when needed. You should merge your previous knowledge of the shell with the specifics of how it works under the hoods (including syscalls). |
22 | Advanced | Build a test suite for your shell. This is a task shared by everyone in the class. Everyone will get the same score for this task. Go team! |
Using ScarJo shell is as easy as 1-2-3! Simply clone this repository onto your local machine, compile with the flags listed below and run!
- Clone
git clone https://github.com/FreeJules/simple_shell.git
- On your machine, navigate (
cd
) to the newly created directory then compile with the following tags.
cd simple_shell
gcc -Wall -Werror -Wextra -pedantic *.c -o hsh
- Run shell
./hsh
- Run commands and enjoy!
- To exit
exit
Once in ScarJo shell you can interact with it in a number of ways.
This project is a closed and contributions are not accepted at this time.
Julija Lee ![]() |
Elaine Yeung ![]() |
- Readme template from GitHub https://guides.github.com/features/wikis/
- Docker generate-authors script https://github.com/docker/docker/blob/master/hack/generate-authors.sh