Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4483703
  • 博文数量: 192
  • 博客积分: 10014
  • 博客等级: 上将
  • 技术积分: 8232
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-21 00:22
文章分类

全部博文(192)

文章存档

2011年(4)

2009年(14)

2008年(174)

我的朋友

分类: BSD

2008-05-03 12:28:13

1.2.3 Learning from Your Command History

Now that you can move around fairly quickly, let's fine-tune some of these hacks. How many times have you found yourself repeating commands just to alter them slightly? The following scenario is one example.

Remember that document I created? Instead of using the history to bring up my previous command so I could edit it, I might have found it quicker to type this:

% wc !$

  wc mydocs/today/verylongfilename

        19        97        620 mydocs/today/verylongfilename

The !$ tells the shell to take the last parameter from the previous command. Since that command was:

% vi mydocs/today/verylongfilename

it replaced the !$ in my new command with the very long filename from my previous command.

The ! (or bang!) character has several other useful applications for dealing with previously issued commands. Suppose you've been extremely busy and have issued several dozen commands in the last hour or so. You now want to repeat something you did half an hour ago. You could keep tapping your up arrow until you come across the command. But why search yourself when ! can search for you?

For example, if I'd like to repeat the command mailstats, I could give ! enough letters to figure out which command to pick out from my history:

$ !ma

! will pick out the most recently issued command that begins with ma. If I had issued a man command sometime after mailstats command, tcsh would find that instead. This would fix it though:

% !mai

If you're not into trial and error, you can view your history by simply typing:

% history

If you're really lazy, this command will do the same thing:

% h

Each command in this history will have a number. You can specify a command by giving ! the associated number. In this example, I'll ask tcsh to reissue the mailstats command:

% h

  165  16:51  mailstats

  166  16:51  sockstat

  167  16:52  telnet localhost 25

  168  16:54  man sendmail



% !165
阅读(1091) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~