Is there a typo corrector for bash?

I don't know of a general purpose one, but there is one for directory names:

$ shopt -s cdspell
$ cd /usr/ibn
/usr/bin
$ pwd
/usr/bin
$ cd /usr/shar/doc
/usr/share/doc

This is from the man page for Bash:

If the search is unsuccessful, the shell searches for a defined shell 
function named command_not_found_handle.  If that function exists, it is 
invoked with the original command and the original command's arguments  
as its arguments

It might be possible to use this to do what you want, but the code would be quite a challenge. By the way, Ubuntu, for example, uses this to display packages that contain the command that was not found with installation instructions (apt-get).


Looks like shopt would be a good start.

Also, it appears that zsh has typo correction built in.