Simple shell for Unix-like systems written in C
Find a file
2026-04-21 17:40:29 +02:00
.gitignore Initial commit 2026-02-19 14:18:59 +01:00
LICENSE Initial commit 2026-02-19 14:18:59 +01:00
main.c Exit with error if starting as 'arsh file' and file can't be opened 2026-04-21 17:40:29 +02:00
README.org Improved readline function to support <- and -> 2026-04-21 14:44:05 +02:00

arsh - ARchaic SHell

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:

gcc main.c -O3 -o arsh