A simplified version of bash using C!
If you need a graphical tutorial for installation, click here!
The purpose of this project is to provide a basic understanding of how a shell works, how processes and subprocesses comunicate with the OS System and how commands are executed by a shell. Some commands are still emulating the behaviour of UNIX commands such as cd and umask. Probably they will be changed in a future release.
To download this project, you can either clone the repository using git clone command to get a copy of the project:
git clone https://github.com/gu4re/CSH.git "your-folder-destination"
Note: after cloning the repo make sure to evently use 'git pull' command to get future versions of the project in your local folder:
git pull
Or, you can download the repository as a ZIP file by clicking on the green "Code" button at the top of the repository and selecting Download ZIP.
It is important to note that when compiling the code using gcc or any other compatible C compiler, the appropriate library for your system architecture must be included. This library can be found in the _libraries directory of this repo (either "libparser_x86.a" or "libparser_x64.a"). Note that there is currently no library available for ARM architecture.
Example with gcc compiler using csh_en.c file in a x64 architecture. Make sure you execute this command at main-branch level i.e as the side photo:
cd "your-folder-destination"
gcc "_code/csh_en.c" "_libraries/libparser_x64.a" -o "name-of-executable" -Wall -Wextra -Wshadow
# Comment: "name-of-executable" can be anything, usually used the same name as the source file e.g "csh_en"
After compiling the code, gcc will create an executable file in the current directory. To run and test CSH, just use in terminal the run "./" expression:
./csh_en
# Comment: Following the sample above
Any issue can be reported here including as header "CSH ISSUE" and I will try to solve it as soon as posible!
This project is licensed under the open source Apache License 2.0. Please make sure that you comply with the terms of this license when using the code in this repository.