Word Designators
Commands consist of words. A word is a command name, an argument, an operator, or a special character like ; or &. If I type the following command:
% grep "Baton Rouge" addresses|sort>output&the shell breaks the command into words, and numbers them as follows:
0 1 2 3 4 5 6 7 grep "Baton Rouge" addresses | sort > output &
Words are numbered, starting with 0, so the command name is usually word 0, and the first argument is usually word 1.
The history mechanism allows you to reference any word from any command in your history list, using word designators. Most often, however, you'll probably want to repeat words from your previous command, using the designators shown in Table 6-2.
Table 6-2. History Reference Word Designators for Previous Command
Designator | Description |
|---|---|
| Repeat all arguments from previous command |
| Repeat first argument from previous command |
| Repeat last argument from previous command |
!* is useful when you want to run a command on the files you used in your previous command:
%more file1 file2 file3Look at some files %pr !* | lprPrint the same files pr file1 file2 file3 | lpr
Or if you want to rerun a command, with an extra flag between the command name and the arguments:
%grep error file1 file2Search for a word %grep -i !*Do a case-insensitive search instead grep -i error file1 file2
Using !$ to repeat the last argument is useful for doing a series of operations on the same file. To review, edit, print, and mail a file, you might do something like this: ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access