[ChipChat Tech. Group - 32-bit OS/2 text paging software and Sound Cards. (click here).] [The one place to go in Europe for all OS/2 Warp software. (click here).]

YAOS 1.8.1- by Chris Wenham

Summary: The little one that could. Although a tiny program that depends on the existing OS/2 shell, YAOS adds a slew of conveniences.

While the three other command-line shells reviewed in this issue are large and complex, there is one that's small and implements most of the popular features that make command-line life so much more easy. It's called YAOS, and it stands for "Yet Another OS/2 Shell", as a meek admission from its author that maybe there are enough already. But funny enough, this one is actually quite likeable.

Installation and Documentation

YAOS takes up little more than 300K of your disk space. To install you merely unzip it into the directory of your choice and run the supplied Rexx script which adds an icon to your desktop. Since YAOS runs on top of OS/2's CMD.EXE command processor, you cannot add it to your config.sys as your default shell.

The formal documentation is simple and short, being nothing more than a text file listing the features and a quick description of how to use them. But the program itself has a built-in help system, accessed by typing '?' on the command line.

Making CMD a little bit easier

The primary purpose of YAOS seems to be simply to make OS/2's built-in command line just a little bit more comfortable to use. The most convenient feature it adds, and the one I installed YAOS for myself, was Tab filename completion. What this means is that you can type the first few characters of a file or directory path, hit the TAB key on your keyboard, and see YAOS fill out the rest with what it thinks is the likely match.

So for example, say you had a directory called "C:\Experiments\". To navigate to it in YAOS you'd type:

Where <TAB> is when you hit the Tab key. YAOS would fill out the remaining "eriments\" for you. In the case where there are two directories with the same beginning (for example, "C:\Experiments" and "C:\Exploration") YAOS can deal with the conflict in one of two ways. First it can display a pop-up list of possible directories and let you pick which one you want by using the arrow keys. Or you can keep pressing the Tab key to cycle through the possibilities right there on the command line until you find what you want. Personally, I prefer the latter method of cycling.

As most of the other shell replacements do, YAOS handles aliases -- or the assigning of complex instructions to simpler names -- as well as filetype assignments, so that when you type the name of a file on the command line, YAOS will open it with the program you've assigned its type to. For this feature, YAOS uses the extension of the file (the '.txt' in 'readme.txt' for example) to determine its type, and not what you might have assigned it from the Workplace Shell.

Different sets of aliases and file type assignments can be stored in files and loaded either as YAOS itself starts, or from any time you're at its command line.

Changing directories is greatly improved in YAOS. With a built-in directory scanning utility, the first time you use the YCD command or try to "CD" to a directory not in the immediate path ("CD" becomes an alias for YAOS's YCD utility whenever a regular "CD" fails) , YAOS will scan your hard drive's directory tree and store the results in a file. From that point onwards, you can "CD" to any directory on the hard drive just by giving its name instead of its full path, no matter how deeply nested it is. If there are multiple directories of the same name, or the name you typed doesn't match up with anything it knows of, YAOS will present to you a pop-up list (.GIF, 12K) of alternatives to pick from.

Another quickie that's highly useful; typing "CD-" will zap you back to the last directory you were in before changing. This doesn't necessarily mean the parent directory of the one you're currently in though, so if you leaped across the directory tree using the enhanced "CD" described above, "CD-" will pull you right back to where you came from.

Borrowing From Unix

YAOS borrows a little bit of functionality and "style" from the Unix shells that have served as the base for so many other clone shells. Typing '!!' on the command line will run the last executed instruction (so if you'd just typed "DIR" at the command line, typing '!!' afterwards would run "DIR" again) and typing '!' followed by a number would execute the command that number of places back in the command history - so '!3' would run the third command in the command history.

This command recall is fairly flexible too. Type "!d" and it will execute the last command that began with the letter 'd'. And if you type '!d file.ext' it will execute the last command that began with 'd', also appending 'file.txt' to it as well.

Of course, if you ever wanted to see the history of previous commands, you just have to press Alt-H, and a pop-up window (.GIF, 9K) will appear, navigable with the cursor keys.

Speaking of cursor keys and Unix, YAOS supports EMACS-like key combinations for cursor control. Ctrl-v and Alt-v are Page Up and Page Down respectively, Ctrl-p and Ctrl-n are previous and next line, and Ctrl-k is delete to end of line. Other key combinations are supported too, listed in the YAOS documentation.


YAOS is not as powerful as the other shells discussed in this issue. It doesn't have its own batch language (arguably redundant with the presence of Rexx), it can't run on its own without CMD.EXE, but for all its shortcomings it does have the right stuff to make it very welcome on the machine of the casual command line user. And given its tiny size, it won't hurt much to add it to your collection even if you seldom need use the command line at all.

* * *

YAOS 1.8.1

by LEE, Cjin Pheow
download from the OS/2 Supersite (ZIP, 136k)
Registration: Free

Chris Wenham is the Senior Editor of OS/2 e-Zine! -- a promotion from Assistant Editor which means his parking spot will now be wide enough to keep his bicycle and a trailer.

Copyright © 1998 - Falcon Networking ISSN 1203-5696