Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, July 27, 2022



spell, hashmake, spellin, hashcheck - report spelling errors


spell [-bilvx] [+ local_file
] [file] ...
/usr/lib/spell/spellin n
/usr/lib/spell/hashcheck spelling_list


The spell command collects words from the named files and looks them up in a spelling list. Words that neither occur among nor are derivable (by applying certain inflections, prefixes, or suffixes) from words in the spelling list are written to the standard output.

If there are no file arguments, words to check are collected from the standard input. spell ignores most troff, tbl(1), and eqn constructs. Copies of all output words are accumulated in the history file (spellhist), and a stop list filters out misspellings (for example, their=thy−y+ier) that would otherwise pass.

By default, spell (like deroff(1)) follows chains of included files (.so and .nx troff requests), unless the names of such included files begin with /usr/lib.

The standard spelling list is based on many sources, and while more haphazard than an ordinary dictionary, is also more effective in respect to proper names and popular technical words. Coverage of the specialized vocabularies of biology, medicine and chemistry is light.

Three programs help maintain and check the hash lists used by spell:


Reads a list of words from the standard input and writes the corresponding nine-digit hash code on the standard output.


Reads n hash codes from the standard input and writes a compressed spelling list on the standard output.


Reads a compressed spelling_list and re-creates the nine-digit hash codes for all the words in it. It writes these codes on the standard output.


The following options are supported:


Check British spelling. Besides preferring centre, colour, programme, speciality , travelled, and so forth, this option insists upon −ise in words like standardise.


Cause deroff(1) to ignore .so and .nx commands. If deroff(1) is not present on the system, then this option is ignored.


Follow the chains of all included files.


Print all words not literally in the spelling list, as well as plausible derivations from the words in the spelling list.


Print every plausible stem, one per line, with = preceding each word.


Specify a set of words that are correct spellings (in addition to spell's own spelling list) for each job. local_file is the name of a user-provided file that contains a sorted list of words, one per line. Words found in local_file are removed from spell's output. Use sort(1) to order local_file in ASCII collating sequence. If this ordering is not followed, some entries in local_file might be ignored.


The following operands are supported:


A path name of a text file to check for spelling errors. If no files are named, words are collected from the standard input.

Environment Variables

See environ(7) for descriptions of the following environment variables that affect the execution of spell: LC_CTYPE, LC_MESSAGES, and NLSPATH.

Exit Status

The following exit values are returned:


Successful completion.


An error occurred.



hashed spelling lists, American & British


hashed stop list


history file


default dictionary


See attributes(7) for descriptions of the following attributes:


See Also

deroff(1), sort(1), tbl(1), attributes(7), environ(7)


spell works only on English words defined in the U.S. ASCII codeset.


The spelling list's coverage is uneven. New installations might wish to monitor the output for several months to gather local additions.

British spelling was done by an American.

Misspelled words can be monitored by default. To do so, set the H_SPELL environment variable to the name of a file which is writable to the spell process. If H_SPELL is not set, $HOME/.spellhist is used as the history file. If no monitoring is desired, one can create the appropriate spell history file with write permission disabled.