Tuesday 1 November 2011

Bash Command Line History Tricks

Linux LogoThis week in a training course I was using a Red Hat based Linux that had the up arrow assigned to taking a snapshot of the screen. Since I like to use the up and down arrows to navigate command lines in the Bash shell this was a bit of a bummer. However, I vaguely remembered some alternatives. Here is what I find.



EMACS Commands

By default Bash supports the use of EMACs commands to navigate through your command line history. You can move backward through the command history using Ctl-p and move forward through it with Ctl-n. Pretty much replaces the arrows.



In addition, I found out you can use Ctl-r to search through the history. After typing Ctl-r, enter the letters you are searching for and the command that best matches, is displayed. You can also modify the matched command line.



History Commands

In addition to EMACs, there are a number of commands that work with the command line history. You can use !! to run the previous command and !3 to run the command on line 3 of the history list.



I also figured out if you echo the command, (e.g., echo !5) you can use Ctl-p to go back and edit the line.



Movement Commands

Ctl-p - Display previous command line

Ctl-n - Display next command line

Ctl-a - Move to the start of the line

Ctl-e - Move to the end of the line





Search Command Lines

Ctl-r - Searches backward through the history for the letters you type

Just start typing the text you are searching for. The closest match will be displayed. The matched command line can be edited and modified.



History Command



history - Display the command history

!! - Repeat the last command

!# - Repeat the line number in the history

echo !! - Echo the previous command to standard out


No comments:

Post a Comment