Cicada Unix Shell

Travis Build Status Latest Version

Cicada is a simple, semi-toy Unix shell written in Rust. And I use it as my default login shell.

Documents

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 630464 Mar 23 07:57 /bin/sh

run multiple commands (with logical)

``` $ echo foo; echo bar foo bar

$ echo foo && echo bar foo bar

$ echo foo || echo bar foo ```

shell expansions

``` $ echo sp{el,il,al}l spell spill spall

$ echo $SHELL /usr/local/bin/cicada

$ echo * Cargo.lock Cargo.toml LICENSE Makefile README.md src target ```

do math arithmetic directly in the shell!

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

Install Cicada

Note: Rust environment is needed for installation.

You can try cicada out without installing it by checking out the repository and run cargo run in its root directory.

$ git clone https://github.com/mitnk/cicada $ cd cicada $ cargo run

install from code repository

If you've checked out the cicada repository, you can do this:

$ make install

This will install cicada under your /usr/local/bin. Use sudo if needed.

install via cargo crates

$ cargo install -f cicada

This will install cicada into ~/.cargo/bin/.

Set cicada as your login shell

Appending /usr/local/bin/cicada into your /etc/shells, then run $ chsh -s /usr/local/bin/cicada

To do list

Won't do list