Spell (Unix)

spell is the standard English language spell checker for Unix, Plan 9, and Unix-like operating systems.

Appearing in Version 6 Unix, spell was originally written by Stephen C. Johnson of Bell Labs in 1975. Douglas McIlroy later improved its accuracy, performance, and memory use, and described his work and spell in general in his 1982 paper "Development of a Spelling list".

Spell has a simple command-line interface: It goes over all the words in a given text file, and prints a sorted list of unique misspelled words in that file. It does not provide any interface for looking for those words in the file, or helping to correct the mistakes. In 1983, a different spell-checker, ispell (the interactive spell-checker), was ported to Unix. ispell had a user interface for showing the spelling mistakes in context and suggesting how to correct them. Since then, the original Spell tool has been mostly considered obsolete.

Another reason Spell is considered obsolete is that it only supports the English language. Modern spell-checkers for Unix and Linux systems, such as aspell, MySpell and hunspell, support a multitude of different languages and character sets. The Single Unix Specification has officially declared Spell a "legacy application", stating that this was done "because there is no known technology that can be used to make it recognise general language for user-specified input without providing a complete dictionary along with the input file." Nevertheless, the Single Unix Specification does not standardize any other spell-checking utility to take Spell's place.

Because of Spell's problems and the superiority of its alternatives, a free software version of McIlroy's spell has never been written. Instead, in 1996 Thomas Morgan of GNU wrote a simple wrapper to ispell (which was already popular at the time) to replicate spell's original behaviour. Many Linux distributions include this GNU spell, or an even simpler shell script; For example, the "spell" command in Fedora Linux simply runs aspell, as: