nexish is a simple, experimental shell created as a learning project in Rust.
This project is designed primarily for learning and experimentation with:
- Rust's standard library (
std::fs,std::process, etc.) - Command-line argument parsing (manual and with crates like
clap) - File system interaction
- Basic shell design and command implementation
- Basic shell prompt and command loop
- Built-in commands:
ls,cd,pwd,mkdir,touch,rmdir, and more - Manual flag parsing (with plans for
clapintegration) - Directory listing and navigation
- Minimalist and focused on understanding, not production
You need Rust installed.
Some parts of nexish use special Unicode symbols and icons (such as device logos) from Nerd Fonts.
For the best experience, configure your terminal to use a Nerd Font. Otherwise, some symbols may appear as squares or question marks.
- How to use Nerd Fonts:
- Download a patched font from Nerd Fonts.
- Set your terminal emulator to use this font (check your terminal's settings/preferences).
- If you do not use a Nerd Font: The shell will still work, but icons/logos may not display properly.
You have three options: via Cargo, via prebuilt script, or manual install.
If you have Rust installed, you can install directly from crates.io:
cargo install nexishThis is the most "Rusty" and portable way.
It automatically downloads, compiles, and installs the latest version to your $HOME/.cargo/bin.
If you want even faster installs with prebuilt binaries, check out cargo-binstall:
cargo binstall nexishAlternative: Installs the latest release binary to your system PATH.
curl -sSfL https://raw.githubusercontent.com/santoshxshrestha/nexish/main/scripts/install.sh | bash- This script will:
- Build
nexishin release mode (if Rust is present). - Copy the binary to
/usr/local/bin. - Make it executable.
- Build
Tip: You may need to enter your password for
sudoprivileges.
If you prefer full control or want to customize the build:
-
Clone the repository:
git clone https://github.com/santoshxshrestha/nexish.git cd nexish -
Build the Release Binary:
cargo build --release
This places the binary at
target/release/nexish. -
Copy to a PATH directory (e.g.,
/usr/local/bin):sudo cp target/release/nexish /usr/local/bin/nexish
-
(Optional) Ensure executable permission:
sudo chmod +x /usr/local/bin/nexish
-
Run from anywhere:
nexish
You can uninstall using the provided script or manually:
curl -sSfL https://raw.githubusercontent.com/santoshxshrestha/nexish/main/scripts/uninstall.sh | bashRemove the binary from your PATH:
sudo rm /usr/local/bin/nexishor
sudo rm /usr/bin/nexishIf you also want to remove your cloned repository:
rm -rf ~/nexishIf installed with Cargo:
cargo uninstall nexishAfter installation, start the shell by typing:
nexishYou can use commands like:
ls
cd
pwd
ls -a
mkdir
touch
rmdir
- Learning project: Not all edge cases are handled.
- Not intended for production use.
- Suggestions and contributions are welcome as part of the learning process.
Made as a Rust learning exercise. Enjoy exploring!