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.
- execution of different programs
- two builtin commands:
cd,exit - redirecting keyboard signals such as
^Cto current execution processes instead of shell - I/O redirecting via
<,>and2>for programs - piping via
|symbol - expansion
~to home directory path - reading environment variables with
$symbol (echo $USERwill print current user instead of $USER) - commands history and input processing with emacs bindings are implemented with GNU readline library
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.
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:
sudo apt install libreadline-devFedora:
sudo dnf install readline readline-develArch:
sudo pacman -S readlinegit clone https://github.com/amaom1/karashi.git
cd karashi
make && sudo make installIn karashi directory enter that command:
sudo make uninstallNow Kara is not installed in your $PATH and you free to delete repository too.
Kara provides some kind of overview of what it is capable of. To run it just enter that command after building project:
make testKara 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.
