Enhanced Command-Not-Found Hook in Ubuntu 9.10
One of the less prominent Ubuntu features that has received an overhaul for Karmic is the command-not-found handle, which helps users find the program they’re looking for when they type an unrecognized command in the terminal. Following is a brief outline of improvements made to this tiny utility, and why they matter.
In previous versions of Ubuntu, the command-not-found handle hooked into the bash shell to suggest which packages to install when a user tried to run a binary that existed in the official Ubuntu repositories but was not installed on the local system.
In Karmic, this functionality has been enhanced in two ways. First, users are now instructed not only as to which package they need to install, but also which repository to find it in. Here’s an example:
The program 'aircrack-ng' is currently not installed. You can install it by typing:
sudo apt-get install aircrack-ng
You will have to enable the component called 'universe'
bash: aircrack-ng: command not found
It would be nice if the output were a little clearer about what a “component” is and how to enable it, but this is still helpful.
The second neat addition to the utility is an ability to catch typos, e.g.:
No command 'gdit' found, did you mean:
Command 'edit' from package 'mime-support' (main)
Command 'gdis' from package 'gdis' (universe)
Command 'git' from package 'git-core' (main)
Command 'gedit' from package 'gedit' (main)
bash: gdit: command not found
Why it matters
The command-not-found feature is hardly a make-or-break component of the operating system. But as I wrote a few months ago, it’s little touches like these that make Ubuntu and its derivatives stand out for their ease of use and work in catering to Linux neophytes.
The enhancements to this tiny utility in Ubuntu 9.10 go even further in helping users feel comfortable while exploring the command line. By itself, the command-not-found handle is not going to revolutionize anyone’s Ubuntu experience. But small features like this highlight Ubuntu’s focus on usability in a software ecosystem where geeky developers are too often out of touch with mainstream users, and assure non-geeks that Ubuntu can work for them, too.