Advanced Ruby Shell (BASH like replacement)
Ruby
Switch branches/tags
Nothing to show
Pull request Compare This branch is 1 commit behind jamez01:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
lib
plugins
Gemfile
Gemfile.lock
README.md
arsh.gemspec

README.md

##Introduction

Arsh is the Advanced Ruby Shell, and intends to be a pure ruby implementation of the Linux shell. Currently, the shell is capable of running ordinary Linux commands as well as arbitrary Ruby code. Tab complete functionality works as well.

##Installation

gem install arsh

If you use RVM, you will need to run the following script to reconfigure it for RVM, otherwise the shell will only work when spawned by a Bash shell.

arsh_configure_for_rvm

Most flavors of linux will require you to edit /etc/shells to add the new shell before it can be used.

Once that is done, modify your user shell to the new shell, logout, and log back in

##Configuring

Most of the Shell can be configured via 2 files. /etc/arshrc for global configuration, and $HOME/.arshrc. Environment variables can be configured there, as well as global variables and other configuration. An example arshrc configuration file would look as follows

    $ps1="(arsh) " + "<% ENV['USER'] %>@<% `hostname`.chomp %>".console_green.console_bold + "<% Dir.pwd %> $ ".console_blue.console_bold
    alias ls=ls --color
    ENV['PATH'] = "/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.3"
    ENV['HIST_COUNT'] = "1000"
    rvm use 1.9.3

The arshrc files are pure ruby, but multiple line evaluation is not currently possible.

Color prompts are done via a monkey patch to the String class so as to not break line breaking.