Woo Shell
=========
This is an alpha version with limited functionality and robustness.
Features:
- 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
Limitations:
- No console input (commands can not get input from the
console/terminal)
- No termcaps stuff
This installation includes a number of GNU tools from the GnuWin32
project (http://gnuwin32.sourceforge.net).
=========
= USAGE =
=========
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
TERMINAL
========
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.
COMMAND LINE EDITING
====================
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
line)
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.
BUILT IN COMMANDS
=================
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
=============
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:
coreutils-5.3.0
cygutils-1.2.8
diffutils-2.8.7-1
findutils-4.2.20-2
grep-2.5.1a
gzip-1.3.5
less-382-2
libiconv-1.8-1
libintl-0.11.5-2
sed-4.1.4
tar-1.13-1
zip-2.31
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
Fixes:
- 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.
|
|