Unix has had several help commands.

Rather famously, Unix originally did not not come with a simple help command for beginners. But this was rectified a long time ago. Ironically, if you lack a help command nowadays on a Unix-imitator, your system is less well off than actual Unix systems of the 1980s were.

The original lack was a hole (much discussed on on-line discussion fora such as BBSes and CompuServe) that was filled not just once, but several times over. The 1982-11-29 InfoWorld re-printed the introductory chapter of a new book on Unix that had discussed the seismic changes that had happened in the Unix world from 1979 to 1981:

Computer manufacturers offering the UNIX system on their systems are adding help features to improve system/user interaction. Many large installations have added prompts and helpful on-screen aids to using the system.

— Rebecca Thomas and Jean Yates (1982). "Introduction". A User Guide to the Unix™ System McGraw-Hill.

Showing that targetted advertising is not a new thing, right below this reprinted text, on page 126, was a boxed advertisement from Design Systems Incorporated of St Louis Missouri for its HELP.COM; a $95.00 HELP command for CP/M systems that was "Menu-Driven For Simplicity", allowed people to define their own add-on help panels for their own applications and systems, and had a complete CP/M tutorial.

The same third-party add-ons happened for Unix. Mortice-Kern provided a help command in its famous MKS Toolkit, originally targetting MS/PC-DR-DOS and some Unices, that would search for doco to print from a helpfile using a helpindex. (Mortice-Kern Systems has long since been subsumed into Parametric Technology Corporation, which is not even called that any more, and the MKS Toolkit nowadays targets Windows. As of 2025, its help command lives on, though.)

But there was even help out-of-the-box on Unix by the late 1980s. AT&T System 5 Release 3.2 itself had a help command that presented a menu-driven help system:

help
help:UNIX System On-line Help

        Choices              description 
                s            starter: general information
                l            locate:find a command with keyword
                u            usage: information about command 
                g            glossary: definition of terms 
                r            redirect to a file or a command 
                q            Quit
       Enter choice

The help data were in a tree of files rooted at /usr/lib/help and could be extended or modified with the use of an /etc/helpadm command. (Yes, Virginia; once upon a time system utilities lived in /etc.) The usage information was not merely a duplicate of what the man command emitted.

This was accompanied by a tutorial program named learn. learn had been written by Brian W. Kernighan and Michael E. Lesk and was already on its second edition by 1979. It ran various scripts in its own script language, covering areas such as file handling, more file handling, the eqn command, the editor, the -ms macros to troff, and C programming. There were some 530 lessons in the second edition.

learn created per-user scratch areas under the learn directory, where users would perform real commands on actual files and data to follow the lesson plans. Its scripting language followed some of the same conventions as the C pre-processor, with directives beginning with the hash character interspersed amongst lesson text and data. (The C tutorial was worked upon by Tom Plum.) Kernighan had written a smaller tutorial for ed, specifically, back in 1974.

A further utility, available by the time of System 5 Release 3.2, was named assist. This was a form-driven interactive utility that showed people how to build command-lines for various tasks, such as copying files with cp for example. A series of prompts for command-line arguments and options would gradually build up the command line at the bottom of the screen. This was configurable with additional forms using an astgen command.

AIX in parallel grew its own help command, rather different to the AT&T Unix one. From version 1.2 to version 7.3, it has remained a simple one page blurb describing various basic tasks (e.g. running passwd) and how to find out more with the man command. This is also what OSF/1 did.

On these systems, the SCCS utility that had once named help in the late 1970s had been renamed to sccshelp. Peter Norton characterized sccshelp as help that was "only for programmers". It provided help specifically for SCCS commands and messages, and it is the only help command that people whose only reference is the Single Unix Specification, and who never touched an actual Unix of the time, will tell one about. (What was standardized was merely what a minimal common subset one could persuade a diverse range of manufacturers to agree on; it was not anywhere near what actually existed. Ironically, user-friendly form-driven/menu-driven interactive interfaces for user help and system administration were areas where manufacturers wanted to outdo one another, not collaborate; so in the 21st century one will never learn about such things from standards doco.) In fact, there were many such area-specific help commands, because not only were there the aforementioned general help, learn, and assist commands covering a range of subjects, interactive applications that had their own command lines, such as mailx and ftp and ex, had their own internal specialized help (or h or ~h or ?) commands too.

The Bourne Again shell has a help command. So too has the Watanabe shell. They may seem sophisticated on the impoverished Unix-clone systems of today. They are but inextensible shadows, limited to shell built-in commands, of the configurable and extensible Unix help systems of yore.

Further reading


© Copyright 2018,2025 Jonathan de Boyne Pollard. "Moral" rights asserted.
Permission is hereby granted to copy and to distribute this web page in its original, unmodified form as long as its last modification datestamp is preserved.