arsh/README.org
Aleksandr Lebedev 1101c53bf6 Improved readline function to support <- and ->
- readline function now uses raw terminal input mode (if in
interactive session)
- readline function supports cursor movement to the left and to the
right and inline editing (also unicode support)
2026-04-21 14:44:05 +02:00

21 lines
1 KiB
Org Mode

#+title: arsh - ARchaic SHell
#+options: toc:nil
Simple shell for Unix-like systems written in C, that has a funny name (for germans).
* Features
- Can run commands
- You can pipe stdout of one command to stdin of another (ex. ~cat main.c | wc --lines~)
- Your can redirrect output/input with ~>~, ~>>~, ~<~, ~2>~, ~&>~
- Variables expansion with ~$PATH~ and ~${HOME}~ syntax
- Shows custom prompt, if ~PS1~ env variable is set
- Run subcomands with ~$(hostname)~ or ~`pwd`~ (works with pipes)
- ~cd~ builtin command (~cd~ without arguments moves you to ~$HOME~)
- ~exit~ builtin command
- ~CTRL+C~ stops running command
- Custom ~readline~ function with support for cursor moving (<-, ->) and inline editing
- Run scripts with ~arsh /path/to/script~ or by putting ~#!/usr/bin/env arsh~ at the first line of a script and making it executable
- Run commands with ~arsh -c 'echo $PATH'~ to launch something quickly with ~arsh~.
* Build
To build it, you don't need any external dependencies. Example with ~gcc~:
#+begin_src shell
gcc main.c -O3 -o arsh
#+end_src