README.rdoc

October 30, 2009 · View on GitHub

= 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 HOMEabbreviatedwithatildeHOME 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"]