As ever, I continue to climb learning curve, and am happy to report      that the vertigo and nose-bleeds have lessened, although the view      from up here is excellent :-)
      
      So today's new challenge ? To make more progress with the history      feature of the Bourne Again Shell ( bash ) on various Linux      distributions, including Red Hat Enterprise Linux (RHEL) and Ubuntu.
      
      The history command is awesome - it keeps a track of all the      commands that one types whilst using the shell, and I find it an      excellent way of keeping track of what I've been up to, especially      when writing documentation ( and blog posts ! ).
      
      In the past, I've always used a command such as: -
      
      $ history | grep awk
      
      or: -
      
      $ history | grep -i startserver
      
      which is useful, but can often give me a huge great listing of      commands, still requiring me to use copy/paste to get the command      back into a state where I can re-submit it.
      
      So, today, I Google'd and, as ever, found the answer in a matter of      picoseconds.
      
      This article: -
      
      Using        Bash's History Effectively
      
      gave me the solution: -
      
      ...
      Before you begin typing your command, type ctrl-r. This will put        you into history search mode (actually, reverse incremental        history search mode).
      
      Now when you begin typing, the most recent command matching        what you've typed so far will appear on the line with a cursor at        the start of the match. (Try playing around with this feature;        there are a few interesting behaviors in there.)
      
      When you've found what you're looking for, you have a couple        of options. Just pressing Enter will immediately recall and        execute the command. ctrl-j or Escape will retrieve the command,        but allow you to continue editing. If you can't find what you're        looking for or if you just change your mind, hit ctrl-g or ctrl-c        to cancel. 
      ...
      
      Lo and behold, I can hit [Ctrl][R] whilst within Bash      and then start to type the first few characters of the command for      which I'm looking e.g. apt which gives me this: -
      
      (reverse-i-search)`ap': sudo apt-get install java6
      
      If I then go ahead and press [Enter], my command - sudo        apt-get install java6 is executed.
      
      The other thing that this article showed me is that, if I'm looking      at a whole list of historical commands: -
      
      ...
      1264  sudo umount /mnt
      1265  sudo palimpsest
      1266  exit
      1267  cd /media/DaveHay/Software/WAS7Fixes/
      1268  ls | grep 21
      1269  ls -al | grep 21
      1270  chmod 777 7.0.0-WS-WAS-LinuxX64-FP0000021.pak
      1271  sudo chmod 777 7.0.0-WS-WAS-LinuxX64-FP0000021.pak
      1272  exit
      1273  cd /media/DaveHay/Software/WAS7Fixes/
      1274  ls * | grep 21
      1275  exit
      1276  history | grep apt
      1277  sudo apt-get install java6
      1278  clear
      1279  history
      ...
      
      I can simply type: -
      
      !1265
      
      and press [Enter]  to execute the command ( sudo        palimpsest ) to launch Disk Utility as root.
      
      Nice, eh ?
    
 
No comments:
Post a Comment