Skip to content
/ cicada Public

An old-school bash-like Unix shell written in Rust

License

Notifications You must be signed in to change notification settings

mitnk/cicada

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f9e5ef0 · Apr 13, 2025
Oct 26, 2024
Sep 29, 2024
Aug 12, 2023
Apr 10, 2025
Oct 26, 2024
Sep 28, 2024
Sep 28, 2024
Nov 22, 2022
Apr 10, 2025
Apr 13, 2025
Apr 13, 2025
Apr 11, 2017
Aug 12, 2023
Dec 5, 2022

Repository files navigation

Cicada Unix Shell

Latest Version

Cicada is a simple Unix shell written in Rust.

Documents

Try out cicada with Docker

$ docker run --rm -it mitnk/cicada
(in-cicada) $ cinfo

Features

Run programs and pipelines

$ ls | head -n3
Desktop
Documents
Downloads

$ echo foo,bar | awk -F "," '{print $2, $1}'
bar foo

With redirections

$ ls file-not-exist 2>&1 | wc > e.txt
$ cat e.txt
       1       7      46

Command substitution

$ ls -l `which sh`
-r-xr-xr-x  1 root  wheel  618512 Oct 26  2017 /bin/sh

$ echo "Time is $(date)."
Time is Sun Sep  2 12:04:13 CST 2018.

Run multiple commands (with logical)

$ echo foo; echo bar
foo
bar

$ echo foo && echo bar
foo
bar

$ echo foo || echo bar
foo

Math arithmetic directly in the shell!

$ 1 + 2 * 3 - 4
3
$ (1 + 2) * (3 - 4) / 8.0
-0.375
$ 2 ^ 31
2147483648

Cicada is also a library (BETA)

Read APIs here: https://docs.rs/cicada/.