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.
sudo gem source -a http://gemcutter.org sudo gem install rubsh
Run rubsh on the commandline. Type help for a quick overview of usage.
-
readline support
-
tab completion
-
aliases
-
commandline history
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’
Define your own functions, aliases etc in the rc file. It’s included to the environment.
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 *
use ENV 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 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"]