From 3213871afc36e3e710138eb9635f88793c28b573 Mon Sep 17 00:00:00 2001 From: Andrey Sikorin Date: Wed, 6 Jul 2022 17:45:37 +0300 Subject: [PATCH] Update project README.md --- README.md | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b93623e..4c6d208 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,83 @@ -# karashi -Kara is basic Linux shell, indeed +
+

+ Kara is basic Linux shell, indeed + + ![image](https://user-images.githubusercontent.com/107575122/174137564-0a3d5380-5e23-4aa7-a26f-6466ac3aaa30.png) +
+ +## About The Project + +The main purpose of this project is a curiosity in system programming. I was using such shell giants as zsh and fish +with abnormal amount of features. So I decided to deep dive on this topic. As the result Kara was born, minimalistic +usable Linux shell. + +### Implemented Features + +- execution of different programs +- two builtin commands: cd, exit +- redirecting keyboard signals such as ^C to current execution processes instead of shell +- I/O redirecting via <, > and 2> for programs +- piping via | symbol +- expansion ~ to home directory path +- reading environment variables with $ symbol (echo $USER will print current user instead of + $USER) +- commands history and input processing with emacs bindings are implemented with GNU readline library + +## Getting Started + +Kara is Linux shell, and I didn't try to run in on macOS or FreeBSD, but you free to do it and leave messages in the +issues section. + +### Dependencies + +Kara depends on the GNU readline library. I suspect that any version is fine. Also, you'll need git, gcc and make, +which are preinstalled on most Linux distributions. + +**Ubuntu:** + +``` shell +sudo apt install libreadline-dev +``` + +**Fedora:** + +``` shell +sudo dnf install readline readline-devel +``` + +**Arch:** + +``` shell +sudo pacman -S readline +``` + +### Installing + +``` shell +git clone https://github.com/amaom1/karashi.git +cd karashi +make && sudo make install +``` + +### Uninstalling + +In karashi directory enter that command: + +``` shell +sudo make uninstall +``` + +Now Kara is not installed in your $PATH and you free to delete repository too. + +### Tests + +Kara provides some kind of overview of what it is capable of. To run it just enter that command after building project: + +``` shell +make test +``` + +### Documentation + +Kara provides auto-generated documentation via Doxygen. If you are interested in the project structure but don't want +to view the source code, you can check out the documentation on the [GitHub pages](https://amateomi.github.io/karashi/html/index.html).