https://github.com/stenwire/unix_shell_clone
https://github.com/stenwire/unix_shell_clone
Last synced: 25 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/stenwire/unix_shell_clone
- Owner: stenwire
- Created: 2022-05-05T17:48:20.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2023-09-23T13:30:44.000Z (almost 3 years ago)
- Last Synced: 2026-06-24T09:33:20.743Z (25 days ago)
- Language: C
- Size: 626 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
An Implementation of a Unix Shell

## Goal of Project
Th goal of this project is to implement a simple Unix shell -- What is a Unix shell? A Unix shell is a command-line interpreter or shell that provides a command-line user interface for Unix-like operating systems. The shell is both an interactive command language and a scripting language and is used by the operating system to control the execution of the system using shell scripts.
Users typically interact with a Unix shell using a terminal emulator; however, direct operation via serial hardware connections or Secure Shell is common for server systems. All Unix shells provide filename wildcarding, piping, here documents, command substitution, variables, and control structures for condition-testing and iteration.[source: Wikipedia]
## Navigate README
* [Content of Repo](#navigate-repo)
* [General Information](#goal-of-project)
* [Technologies Used](#technologies-used)
* [Features](#features)
* [Setup](#how-to-setup)
* [Usage](#example-of-usage)
* [Author](#authors)
* [License](#license-&&-contribution)
## Navigate Repo
* [Man Page](https://github.com/stenwire/simple_shell/blob/master/man_1_simple_shell.man)
* [Checkout shell/linux memes](https://github.com/stenwire/simple_shell/tree/master/media/memes)
* [Header file](https://github.com/stenwire/simple_shell/blob/master/shell.h)
* [New environment file](https://github.com/stenwire/simple_shell/blob/master/new_environment.c)
* [File containing string functions](https://github.com/stenwire/simple_shell/blob/master/string_functions.c)
*
## Features
From the project instruction, we were asked to replicate some builtins you woul find in a normal unix shell, along with that we were also tasked with some features of the normal unix shell. Some of these builtins and features we weere able to replicate are highlighted in the table below and vice versa.
Features
Implemented
1
handles command line arguments
YES
2
implements builtins
YES
3
uses the PATH
YES
4
uses exit status
YES
5
shell continues upon Crtl+C (^C)
YES
6
custom strtok function
YES
7
handles comments (#)
YES
8
handles ";"
YES
BUILTINS
Implemented
1
exit
YES
2
env
YES
3
setenv
YES
4
unsetenv
YES
5
help
YES
## Example of usage

## How to Setup
```
-----> Requirement
* Any Ubuntu distribution
* GCC installed (gcc 9.3.0)
----->
```
Follow below steps to setup locally:
* clone repo: ```git clone https://github.com/stenwire/simple_shell.git```
* change into repo: ```cd simple_shell```
* verify all files
* Compile: ```gcc -Wall -Werror -Wextra -pedantic *.c -o hsh```
* Run the shell in interactive mode: ```./hsh``` or run the shell in non-interactive mode: ```echo "" | ./hsh ```
## Authors
Stephen Nwankwo
HARUNA BERIKISU
## License && Contribution
This project will bee made open source and can be freely contributed to from/after 19-05-2022, please checkout [Contribution guildline](https://github.com/stenwire/simple_shell.git/contributing.md)