A unix shell written in rust

Overview

rust-shell

a unix shell written in rust

screenshot of rust-shell

Features

Main features

  • has .rc file (in ~/.rstshrc)
  • has syntax highlighting
  • fish-like autosuggestion
  • emacs editing mode ,like what bash has (using rustyline)

Supported built-ins

  • has source builtin, so you can run a file for set of commands.
  • support export and alias - even with spaces (alias ls = ls --color=auto or export PATH =$PATH:$HOME/.cargo/bin/), see more examples in the examples folder

Supported syntaxes

  • support pipelines (with space on both sides) (like cat file | grep finder)
  • support bash comments

Prompt

  • support PS1 variable - with escapes and even with some commands : for example, you can use the starship prompt with export PS1="$(starship prompt --status=$exit_status)" - to make that the default, write it to ~/.rstshrc
  • every time command exit with no-success, the > at the end of the prompt will be red in the default prompt, instead of green (the color present in the $PS1 as $red_or_green, and the last exit status present as $exit_status)
  • live pwd in prompt (like, when using cd folder, the prompt will be updated to ~/folder).

install

download the executable from github-releases (created by the github action automatically ), then run it through the command line, (for linux, you need to chmod +x it first)

Contribute:

  1. install rustup and cargo
  2. Clone this repo (git clone https://github.com/matan-h/rust-shell.git)
  3. run it with cargo run
You might also like...
fcp is a significantly faster alternative to the classic Unix cp(1) command
fcp is a significantly faster alternative to the classic Unix cp(1) command

A significantly faster alternative to the classic Unix cp(1) command, copying large files and directories in a fraction of the time.

A tool for automating terminal applications in Unix.

expectrl A tool for automating terminal applications in Unix. Using the library you can: Spawn process Control process Expect/Verify responces It was

A small unix and windows lib to search for executables in PATH folders.

A small unix and windows lib to search for executables in path folders.

Modern file system navigation tool on Unix
Modern file system navigation tool on Unix

monat -- Modern file system Navigator 简体中文 Introduction monat is a Unix shell auxiliary command focusing on the navigation of the file system, especia

FreeDesktop-compliant trasher for Unix

to-trash 🚮 to-trash (tt for short) is a fast, small, and hopefully FreeDesktop-compliant file trasher for Linux. Compliance tt aims to have complianc

xcp is a (partial) clone of the Unix cp command. It is not intended as a full replacement

xcp is a (partial) clone of the Unix cp command. It is not intended as a full replacement, but as a companion utility with some more user-friendly feedback and some optimisations that make sense under certain tasks (see below).

Superviseur - A simple process supervisor for UNIX-like systems
Superviseur - A simple process supervisor for UNIX-like systems

A simple process supervisor for UNIX-like systems. Currently supports non-containerized services. Containerized services and wasm services will be supported in the future.

Convert a unix timestamp (seconds) to a struct {year, month, day, hour, minute, second, weekday}.

uts2ts uts2ts is a simple function that does only one thing: It converts a unix timestamp to something slightly more useful. ;-) So why then? Well, it

A lightweight terminal tool to manage processes in Unix machines.

TTV v0.0.1 TTV (term-task-viewer) is a lightweight tool to view and manage active processes in Unix machines. It provides an easy interface with vim-l

Owner
matan h
Creating cool python libraries
matan h
Safe Unix shell-like parameter expansion/variable substitution via cross-platform CLI or Rust API

Safe Unix shell-like parameter expansion/variable substitution for those who need a more powerful alternative to envsubst but don't want to resort to

Isak Wertwein 4 Oct 4, 2022
skyWM is an extensible tiling window manager written in Rust. skyWM has a clear and distinct focus adhering to the KISS and Unix philosophy.

Please note: skyWM is currently in heavy development and is not usable as of yet. Documentation and versions will change quickly. skyWM skyWM is an ex

MrBeeBenson 74 Dec 28, 2022
a cute shell thingy that written in rust

a cute shell thingy that written in rust

奥田 龍馬 12 Dec 29, 2021
Toy Shell Written in Rust

This is a simple toy shell written in Rust language with porpose of learning system programmim, and in a specific theme, process management.

Júlio César de Brito Gardona 4 May 22, 2022
A Rust curses library, supports Unix platforms and Windows

pancurses pancurses is a curses library for Rust that supports both Linux and Windows by abstracting away the backend that it uses (ncurses-rs and pdc

Ilkka Halila 360 Jan 7, 2023
Just a UNIX's cat copy, but less bloated and in Rust.

RAT The opposite of UNIX's cat, less bloated, and in Rust. About the project The idea of this CLI is "A CLI program that is basically UNIX's cat comma

Renan Fernandes 2 Mar 5, 2022
Library for Unix users and groups in Rust.

uzers-rs Adoption and continuation of the unmaintained ogham/rust-users crate. Big shout-out to its creator Benjamin Sago. This is a library for acces

null 8 Aug 25, 2023
Library for Unix users and groups in Rust.

uzers-rs Adoption and continuation of the unmaintained ogham/rust-users crate. Big shout-out to its creator Benjamin Sago. This is a library for acces

null 8 Sep 18, 2023
Reviving the Research Edition Unix speak command

This repository contains the source code of Unix speak program that appeared in the Third (1973) to Sixth (1975) Research Unix editions, slightly adjusted to run on a modern computer. Details on the code's provenance and the methods employed for reviving it can be found in this blog post.

Diomidis Spinellis 31 Jul 27, 2022
Spawn multiple concurrent unix terminals in Discord

Using this bot can be exceedingly dangerous since you're basically granting people direct access to your shell.

Simon Larsson 11 Jun 1, 2021