grep
was from the ed command, g/re/p or Globally search for Regular Expression and Print.
yacc
, of course, was Yet Another Compiler Compiler.
perl
was Practical Extraction and Report Language (see also the comments).
roff
was a simple contraction of 'runoff' (a similar system that existed on other non-Unix machines); troff
was 'typsetting roff' or thereabouts; I guess that nroff
was 'non-typesetting roff'; tbl
is a simple contraction of 'table'; eqn
is a simple contraction of 'equation'; grap
is a simple contraction of 'graph'(and why it was felt necessary to drop the 'h' remains a mystery to me); pic
is probably just a simple contraction of 'picture'; refer
is a simple contraction of 'references'; and chem
is a simple contraction of 'chemistry' (or 'chemical', or ...).
Ideally, the name was short, (almost) pronounceable, and (if you knew the secret) at least semi-mnemonic. That still applies today, to some extent. Names of programs are chosen on any basis the author cares to use.
Directly answering the question - what command is missing (and has a whimsical name)...
$ dribbler -h
Usage: dribbler [-hV][-s sleep][-f file][-m message][-o openstr]
-V Print version information and exit
-f file Write to named file
-h Print this help message and exit
-m message Write message on each line of output
-o openstr Flags passed to fopen()
-s sleep Sleep for given interval between writes
It is an unenthusiastic counterpart to yes
. Whereas yes
writes stuff as fast as it can to the output pipe, by contrast, dribbler
sends a dribble of information, enough to keep a process on the receiving end a little bit active, but not enough to inundate the system.
Another command of which I'm fond is bombard
:
bombard - bombard a program under test with signals
bombard [-s sig][-rvV][-t mintime][-T maxtime][-i iterations] -- cmd [args ...]
Bombard runs the test program designated by `cmd [args ...]' and subjects it to one or more signals. It can be used to do stochastic testing of the signal handling characteristics of a program.
The '-s' option specifies which signal is sent; the default is SIGINT. The '-V' option prints the program version number and exits. The '-r' option repeatedly sends the signal. The '-i' option specifies how many times the signal is to be repeated; the default is 1000 if '-r' is specified and '-i' is not. If the '-r' option is not specified, the flag has no effect. The '-v' option prints verbose information on the result of each run of the test program. The '-t' option specifies the minimum delay (in seconds) before signalling; the default is 0. The '-T' option specifies the maximum delay (in seconds) before signalling. The '--
' separator is strongly recommended to separate the controls for bombard itself from the command and its arguments.
If only '-t' is specified, then bombard sleeps for the specified time and then sends signals to the process. If both '-t' and '-T' are specified, then bombard sleeps for a random amount of time in the specified range and then sends signals to the process.
Obviously, all the timing is subject to the idiosyncracies of the kernel scheduling algorithm.