Tuesday, May 23, 2017

5 Ways To Repeat Your Last Command In Linux

5 Ways To Repeat Your Last Command In Linux

A note of caution: When you try the following methods, the previously executed commands will run immediately. Just make sure your last command wasn’t any harmful like formatting or deleting a drive, file or any important data.

Repeat Your Last Command In Linux

Let us run some commands first.
ls -l
pwd
date
uname -r

As you all might already know, we can execute the last command by simply pressing the up arrow and hit ENTER key. This is the most common way used by many users to execute the previous command. This method will work on all SHELL, regardless of the Linux operating system you use.
However, like I said already, there are few other methods to do this.
Now, let me show you how to execute the last command with some practical examples.

Method 1:
To execute any last executed command, just type double exclamation marks, and hit ENTER:
!!

This will execute the last command. Sample output would be:
uname -r
4.10.13-1-ARCH

Add “sudo” in-front of “!!” to execute the last command as root user like below.
sudo !!

Also, this command will execute the previous command:
su -c "!!"

Sample output:
su -c "uname -r"
Password: 
4.10.13-1-ARCH

Cool, isn’t it? You don’t need to type the last command completely. It could be useful  when you’ve already executed a very long command, and don’t want to re-type the same command fully.

Method 2:
You might have run so many commands, and want to repeat a specific command. What will you do? Simple! You can do this by typing a specific word of the previous command.

To repeat previous command that starts with a specific word/letter, for example un, just type:
!un

The above command will execute last command that starts with the letters “un”.
Sample output for the above command would be:
!un
uname -r
4.10.13-1-ARCH

As you see in the above example, you don’t need to type the whole command (i.e uname -r). Instead, just type few letters of a command, and any previous command that contains words will run.
Also, If you know the full command name, just type it like below:
!uname
It will execute the last command.

Method 3:
Another way to do this is by searching your command line history using CTRL+R. Press CTRL+R key to search through the command line history. I personally prefer this method. It searches history interactively which I think feels safer than executing blindly from it.
Look at the following example. In the following example, I searched for “un”, which displayed the last command “uname -r” in the history that contained the word “un”. Then, I hit ENTER to execute it.
 
(reverse-i-search)`un': uname -r

Just in case, you want to edit/modify the last command before executing it, just press the left arrow key, then edit the last command and hit ENTER to execute it.

Method 4:
Here is yet another way to run the previous command.
 
!-1

Sample output:
uname -r
4.10.13-1-ARCH
Similarly, !-2 will run the second last command, !-3 will run the third last command, and so on.

Method 5: 
I don’t want to type any command manually. Is there any way to repeat a last command by simply pressing a particular key(s) in my Keyboard? Yes, of course!

Press CTRL+P to switch to the last command, and then press CTRL+O to execute it. This will do the wonder. No configuration needed! You can use CTRL+O as many times as you want to keep re-executing the last commands.

And, that’s all. You know now how to repeat your last command without typing it in the Terminal. If you want to view the output of your last command without having to retype the last command, these methods will help.

 

No comments: