Minimal Shell by Spock (Oscar Portela Arjona)
---------------------------------------------
Hi, welcome to the info file of the minimal shell (msh), a little
linux shell designed for those of you who don't need most of the high level
functions of the actual shells and want to save some memory.
Actually this stuff is mostly tested, but if somehow it burns out
your computer, eats your dog, escapes away with your girlfriend or anything
else not very pleasant, I'm not responsible at all. ;-)
You can use it freely and even modify and distribute as long as you
mention me both in the code and in the documentation (something like "based
on the Minimal Shell by Spock (Oscar Portela Arjona)" will be right). Also,
if you make modifications to it and obtain an even more little program,
please send me it by e-mail.
As you can imagine, there are lots of things this shell can't
manage, but, as far as I know (and I know it pretty well ;-) it's abilities
cover:
- Execution of programs (I have thinking of wiping out this for saving
even more space ;-)
- Background execution.
- Input, output and error redirection from/to files.
- IPC (Interprocess comunication) using pipes.
- Internal commands (well, it only supports the "cd" and "exit" commands
but... who needs anything else? ;-)
- Printing of the current working directory in the prompt.
The sintax is pretty similar to other shells one: you write the
command you want to execute using blank spaces to separe the diferent
options you want to pass to the command and the '|' character to separe the
different commands to be interconnected by pipes. Also you can use the '<',
'>' and '>&' strings followed by a file name to redirect inputs or outputs
and '&' to force background execution.
As a tradeoff for the size saving, you will never get a 'sintax
error' when using this shell. Instead, the command line you entered will be
"fixed" to a correct one:
- Any redundant '|', '<' or '>' will be treated as not present.
Examples: "ls || grep m | | >>>>> t" -> "ls | grep m > t"
"cat < my | more "cat | more < myinput"
- The '&' character will change to the next descriptor redirection if
entered after a '<' or '>' and activate the background execution
otherwise.
Examples: "cat & "cat & < in > out >& err"
"cat "cat out err & < in"
- The 'cd' command will accept only the first parameter it receives, and
will change to the HOME directory if there is no parameter at all.
Example: "cd here andhere andheretoo" -> "cd here"
- The exit command will ignore any parameter.
Well, I think that's all, if you have any question, comment, or just
wanna an autograph you can contact me at any of these e-mail adresses:
- spockid@geocities.com
- portela@bbvnet.com
- e970361@zipi.fi.upm.es
I hope you will enjoy this little contribution.
Spock (Oscar Portela Arjona)
Coder of the Infinite Darkness Demogroup
Infinite Darkness Web: http://www.geocities.com/SiliconValley/Peaks/7116/