4.7. Typing Shortcuts

If you've been following along this tutorial at the terminal, you may
be tired of typing the same things over and over again. It can be
particularly annoying when you make a mistake and have to start over
again. Here is where the shell really makes life easier. It doesn't
make Unix as simple as a point-and-click interface, but it can help
you work really fast in a command environment.

This section discusses
command-line editing. The tips here work if your shell is
bash, ksh, tcsh, or zsh. Command-line editing treats the last fifty or so
lines you typed as a buffer in an editor. You can move around these
lines and change them the way you'd edit a document. Every time you
press the Return key, the shell executes the current line.

4.7.1. Word Completion

First, let's try something simple that can save you a lot of time.
Type the following, without pressing the Return key:

$ cd /usr/inc

Now press the Tab key. The shell will add lude to complete the
name of the directory /usr/include. Now you can press the
Return key, and the command will execute.

The criteria for specifying a filename is "minimal completion."
Type just enough characters to distinguish a name from all the others
in that directory. The shell can find the name and complete it--up
to and including a slash, if the name is a directory.

You can use completion on commands too. For instance, if you type:

$ ema

and press the Tab key, the shell will add the cs to make emacs (unless some other command in your path begins with ema).

What if there are multiple files that match what you've typed? If
they all start with the same characters, the shell completes the word
up to the point where names differ. Beyond that, most shells
do nothing. bash has a neat enhancement: if you
press the Tab key twice, it displays all the possible completions.
For instance, if you enter:

$ cd /usr/l

and press the Tab key twice, bash prints something like:

lib local

4.7.2. Moving Around Among Commands

Press the up arrow, and the command you typed previously appears. The
up arrow takes you back through the command history, while the down
arrow takes you forward. If you want to change a character on the
current line, use the left or right arrow keys.

As an example, suppose you tried to execute:

$ mroe .bashrc
bash: mroe: command not found

Of course, you typed mroe instead of more. To correct the
command, call it back by pressing the up arrow. Then press the left
arrow until the cursor lies over the o in mroe. You could use the
Backspace key to remove the o and r and retype them
correctly. But here's an even neater shortcut: just press Ctrl-T.
It will reverse o and r, and you can then press the Return
key to execute the command.

Many other key combinations exist for command-line editing. But the basics shown
here will help you quite a bit. If you learn the Emacs editor, you
will find that most keys work the same way in the shell.
And if you're a vi fan, you can set up your shell so that it
uses vi key bindings instead of Emacs bindings. To
do this in
bash, ksh, or zsh, enter the command: