A modern Unix shell written in Rust with async/await support using Tokio.
Here are the features I'm confident are fully implemented and stable:
- Command execution - Run any external command
- Pipelines - Chain commands with
|(e.g.,ls | grep foo | wc -l) - I/O Redirections -
>,>>,<,2>,&> - Background jobs - Run commands in background with
& - Command chaining -
;,&&,||operators - Glob expansion -
*,?,[...]patterns
cd,pwd,echo,exitexport,unset(environment variables)alias,unalias(command aliases)jobs,fg,bg,kill(job control)help
- Syntax highlighting - Real-time colorization as you type
- Autosuggestions - Ghost text from command history
- Tab completion - Commands, files, and paths
- Command history - Saved to
~/.ash_history - Configuration file -
~/.ashrc.toml
# Run some commands
ls -la | grep ".rs"
echo "Hello, World!" > hello.txt
cat hello.txt
# Try background jobs
sleep 5 &
jobs
fg %1
# Set up aliases
alias ll="ls -la"
ll
# Variable expansion
export NAME="Ash"
echo "Hello, $NAME"- Unix-like OS (Linux, macOS, BSD, or WSL)
- Rust 1.70+ with Cargo
# Clone the repository
git clone https://github.com/yourusername/ash.git
cd ash
# Quick install
./install.sh# Option 1: Copy to ~/.local/bin
mkdir -p ~/.local/bin
cp target/release/ash ~/.local/bin/
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
# Option 2: Use cargo install
cargo install --path .cp ashrc.toml.example ~/.ashrc.toml
# Edit ~/.ashrc.toml to customize settingsMIT