Woo Shell


Screen shots Documentation

Woo Shell

This is an alpha version with limited functionality and robustness.

 - Execution of shell commands with pipelining and sequencing
 - Execution of command scripts (no conditional statements)
 - File and command name completion (cannot handle spaces)
 - Minimal job control (kill the current process by pressing ctrl-c)
 - Simple terminal with scrolling, resize, and copy/paste

 - No console input (commands can not get input from the
 - No termcaps stuff

This installation includes a number of GNU tools from the GnuWin32
project (http://gnuwin32.sourceforge.net).


USAGE: wsh.exe [--rcfile ][--norc]

The shell will initialize by executing commands from --rcfile 
or from wsh.rc in the startup directory. If --norc is specified the
wsh will not try to load the default resource file.

Command line syntax:

    CommandLine := CommandPipe [ ';' CommandPipe ]*
    CommandPipe := Command [ '|' Command ]*
    Command :=  []*

Stdin and stdout may be redirected from or to a file with < and >.
For instance:

   sort sorted.txt


The screen can be scrolled with the mouse wheel or:

PAGE UP         Scroll up one page
PAGE DOWN       Scroll down one page
CTRL-UP         Scroll up one line
CTRL-DOWN       Scroll down one line

The terminal uses X-style copy and paste. Copy is done simply by
selecting a block of text. Paste is done by pressing the middle-mouse
button or CTRL-C. The normal windows clipboard is used so that text
can be copied to and from other applications.

A note: The gnu commands getclip and putclip combines stdio with the
clipboard nicely. For instance 'ls *.cpp | putclip' copies the list
of cpp files in the current directory to the clipboard.


CTRL-A, HOME    Go to beginning of line
CTRL-E, END     Go to end of line
LEFT/RIGHT      Move cursor left/right
UP/DOWN         Select previous command lines
CTRL-D, DEL     Delete character
BACKSPACE       Move cursor left and delete character
CTRL-K          Kill line after cursor
ENTER           Execute command line

TAB             Complete command or filename
CTRL-D          Show possible completions (when cursor is at end of

Simple wild cards are expanded on the command line. For instance

> echo *.cpp

will print the list of cpp files in the current directory. This only
works for the file name, not the directory path. So the following
command will not work (as you would like it to):

> echo */*.cpp

Wild cards may be escaped with quotes, for instance:

> find -name "*.cpp" -o -name '*.h'

Environment variables are also expanded. Note that UNIX style $ is
used to indicate an environment variable. So it should be $PATH and
NOT the dos style %PATH%. Environment variables are expanded even
within quotes. However the $ sign can be escaped with back slash.


exit            Exit shell
cd, chdir       Change current working directory
set, setenv     Set an environment variable or show all variable.
echo            echo
help            Show this help message
more            Minimal more implementation (text file viewer)
pwd             Print current directory
source          Execute shell commands from a file
which           Show the location of a command


Disk commands are external command line programs that are run from
the shell. The shell will use the PATH environment variable to search
for disk commands. Commands with a .exe, .com, or .bat extension can
be executed directly. All other commands must have an associated
interpreter. The shell look for an interpreter in the
$wsh_associations environment variable and in the normal windows file
associations. (There are some problems with the latter method and the
shell seems to miss some associations).

The $wsh_associations variable should be a ; separated list of file
extensions and associated interpreter. For instance:

set wsh_associations="pl=c:/perl/bin/perl.exe;py=python.exe"

will associate .pl files with the perl interpreter and .py files the
python interpreter.

The shell will try to append .exe, .com, or .bat to the command name
in the search for the executable. So it is possible to write 'ls' for
a command named 'ls.exe'.

This installation includes GnuWin32 (http://gnuwin32.sourceforge.net)
command line programs. The following GnuWin32 packages are installed:


These packages contain the following disk commands:

ascii.exe, banner.exe, basename.exe, cal.exe, cat.exe, chgrp.exe,
chmod.exe, chown.exe, chroot.exe, cksum.exe, cmp.exe, col.exe,
colcrt.exe, colrm.exe, column.exe, comm.exe, conv.exe, cp.exe,
csplit.exe, cut.exe, cygstart.exe, d2u.exe, date.exe, dd.exe,
ddate.exe, df.exe, diff.exe, diff3.exe, dir.exe, dircolors.exe,
dirname.exe, dos2unix.exe, du.exe, dump.exe, echo.exe, env.exe,
expand.exe, expr.exe, factor.exe, false.exe, find.exe, fmt.exe,
fold.exe, gdate.exe, gecho.exe, getclip.exe, getopt.exe,
ginstall.exe, gln.exe, gmkdir.exe, grep.exe, grmdir.exe, gsort.exe,
gunzip.exe, gzip.exe, head.exe, hostid.exe, hostname.exe, iconv.exe,
id.exe, install.exe, join.exe, kill.exe, less.exe, lessecho.exe,
lesskey.exe, link.exe, ln.exe, locate.exe, logname.exe, lpr.exe,
ls.exe, mcookie.exe, md5sum.exe, mkdir.exe, mkfifo.exe, mknod.exe,
mkshortcut.exe, mv.exe, namei.exe, nice.exe, nl.exe, nohup.exe,
od.exe, paste.exe, pathchk.exe, pinky.exe, pr.exe, printenv.exe,
printf.exe, ptx.exe, putclip.exe, pwd.exe, readlink.exe,
readshortcut.exe, realpath.exe, rename.exe, rev.exe, rm.exe,
rmdir.exe, sdiff.exe, sed.exe, seq.exe, setuidgid.exe, sha1sum.exe,
shred.exe, sleep.exe, sort.exe, split.exe, stat.exe, stty.exe,
su.exe, sum.exe, sync.exe, table-from.exe, table-to.exe, tac.exe,
tail.exe, tar.exe, tee.exe, test.exe, touch.exe, tr.exe, true.exe,
tsort.exe, tty.exe, u2d.exe, uname.exe, unexpand.exe, uniq.exe,
unix2dos.exe, unlink.exe, uptime.exe, users.exe, vdir.exe, wc.exe,
who.exe, whoami.exe, xargs.exe, yes.exe, zcat.exe, zip.exe,
zipcloak.exe, zipnote.exe, zipsplit.exe, [.exe

Please note that some of these commands will have limited
functionality or not work at all in wsh because wsh does not provide
a console interface.



Version 0.3

New features:
- Copy and paste
- Support for interpreted commands
- internal command 'which' added
- simple wild card expansion
- back slash escapes
- mouse wheel and single line scrolling
- scary icon
- stdin, stdout redirection
- file associations
- larger buffers - for everything

- Fixed problem with wsh exiting on code EOI.
- CTRL-C now shuts down all child process.
- Fixed problem with quoted arguments.
- bottom line clip issue with maximized windows fixed.
- print stderr after stdout last (still not interleaving)
- parser errors no longer kills the shell
- wsh forgot to close directory handles on file/command name expansion

Version 0.2
- Execution of shell commands with pipelining and sequencing
- Execution of simple command script
- Minimal job control
- Use/modify environment variables

Version 0.01
- Initial version, very limited functionality.


Special thanks to:

SourceForge.net Logo