Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master

This branch is even with danielb2:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
lib
.gitignore
CHANGELOG
README.rdoc
Rakefile
rubsh.gemspec

README.rdoc

Rubsh

Rubsh was created to be a native shell for ruby users. A irb which can also be used as a normal shell without the akwardness of some of the features of bash and other shells, and with the power of ruby.

Installation

sudo gem source -a http://gemcutter.org
sudo gem install rubsh

Run rubsh on the commandline. Type help for a quick overview of usage.

Features

  • readline support

  • tab completion

  • aliases

  • commandline history

Usage

aliases

ralias aliases a command.

Example:

ralias 'ls ls -Gh'

Currently an alias will not be parsed to include other aliases. i.e. doing ralias 'ls ls -Gh' followed by ralias 'll ls -l' will not get you 'ls -lGh'

.rubsh/rc.rb

Define your own functions, aliases etc in the rc file. It's included to the environment.

Shortcuts

While normal commands as 'ls' etc work transparantly, you can also do things like:

'*'.ls

shortcut for Dir.glob(…)

'*'.ls.du

Does du on all the results

It also takes arguments:

'*'.ls.du(:sh)

is equivalent to du -sh *

Prompt

use ENV['PR1'] to set your prompt. see 'help prompt' for options from within the shell.

%h  - hostname
%u  - the username of the current user
%w  - the current working directory, with $HOME abbreviated with a tilde
%W  - the basename of the current working directory, with $HOME abbreviated
with a tilde
%Cb - blue color
%Cc - cyan color
%Cg - green color
%CC - color reset
%t  - the current time in 24-hour HH:MM:SS format
%%  - literal %
%$  - if the effective UID is 0, a #, otherwise a $

Example: ENV['PR1'] = "[%u@%h]--(%t)\n\r[%w]%$ "

Commandline functions

Commandline functions must currently be defined as one-liners. They also take an argument, which is what was typed to invoke the command.

def test(*a); p a;end
$ test foo #=> ["test foo"]
Something went wrong with that request. Please try again.