How to use the history command in linux

Source: Internet
Author: User
History commands are frequently used in linux system management. it is a command with high usage. This topic describes the 15 Usage examples of the history Command.

1. use HISTTIMEFORMAT to display the timestamp
After you execute the history command from the command line, only the serial number of the executed command and the command itself are displayed. To view the timestamp of the command history, run the following command:


Copy codeThe code is as follows:
# Export HISTTIMEFORMAT = '% F % t'
# History | more
1 2008-08-05 19:02:39 service network restart
2 19:02:39 exit
3 2008-08-05 19:02:39 id
4 2008-08-05 19:02:39 cat/etc/redhat-release

Note: This function can only be used when the environment variable HISTTIMEFORMAT is set, and then the newly executed bash commands will be tagged with the correct timestamp. All commands earlier than this will display the time for setting the HISTTIMEFORMAT variable.

2. use Ctrl + R to search for history
Ctrl + R is a frequently used shortcut key. This shortcut allows you to search for command history, which is useful when you want to execute a command repeatedly. After finding the command, you can usually press the Enter key to execute the command. If you want to adjust the command and then execute it, you can click the left or right arrow keys.


Copy codeThe code is as follows:
# [Press Ctrl + R from the command prompt, which will display the reverse-I-search prompt]
(Reverse-I-search) 'Red': cat/etc/redhat-release
[Note: Press enter when you see your command, which will execute the command from the history]
# Cat/etc/redhat-release
Fedora release 9 (Sulphur)

3. Repeat the previous command quickly.
You can run the previous command again in four ways:
Use the up arrow key and press enter to execute.
Press !! And press enter to execute.
Enter! -1 and press enter to execute.
Press Ctrl + P and press enter.

4. execute a specified command from the Command History
In the following example, if you want to repeat 4th commands, you can execute them! 4:


Copy codeThe code is as follows:
# History | more
1 service network restart
2 exit
3 id
4 cat/etc/redhat-release
#! 4
Cat/etc/redhat-release
Fedora release 9 (Sulphur)

5. run previous commands by specifying keywords
In the example below, enter! Ps and press Enter. the following command is executed to start with ps:
 


Copy codeThe code is as follows:
#! Ps
Ps aux | grep yp
Root 16947 0.0 0.1 36516 1264? Sl ypbind
Root 17503 0.0 0.0 4124 740 pts/0 S + grep yp

6. use HISTSIZE to control the total number of historical Command Records
Append the following two lines to the. bash_profile file and log on to the bash shell again. The number of command history records will change to 450:


Copy codeThe code is as follows:
# Vi ~ /. Bash_profile
History size = 450
HISTFILESIZE = 450

7. use HISTFILE to change the name of a historical file
By default, the command history is stored in ~ /. Bash_history file. Add the following content to the. bash_profile file and log on to the bash shell again. the. commandline_warrior command history will be stored:
 

Copy codeThe code is as follows:
# Vi ~ /. Bash_profile
HISTFILE =/root/. commandline_warrior

8. use HISTCONTROL to remove consecutive duplicate entries from the Command History
In the following example, the pwd command is executed three times in a row. After history is executed, you will see three duplicate entries. To remove these duplicate entries, you can set HISTCONTROL to ignoredups:


Copy codeThe code is as follows:
# Pwd
# Pwd
# Pwd
# History | tail-4
44 pwd
45 pwd
46 pwd [Note that there are three pwd commands in history, after executing pwd 3 times as shown above]
47 history | tail-4
# Export HISTCONTROL = ignoredups
# Pwd
# Pwd
# Pwd
# History | tail-3
56 export HISTCONTROL = ignoredups
57 pwd [Note that there is only one pwd command in the history, even after executing pwd 3 times as shown above]
58 history | tail-4

9. use HISTCONTROL to clear duplicate entries in the history of the entire command
In the previous example, ignoredups can only remove consecutive duplicate entries. To clear duplicate entries in the history of the entire command, you can set HISTCONTROL to erasedups:
 

Copy codeThe code is as follows:
# Export HISTCONTROL = erasedups
# Pwd
# Service httpd stop
# History | tail-3
38 pwd
39 service httpd stop
40 history | tail-3
# Ls-ltr
# Service httpd stop
# History | tail-6
35 export HISTCONTROL = erasedups
36 pwd
37 history | tail-3
38 ls-ltr
39 service httpd stop
[Note that the previous service httpd stop after pwd got erased]
40 history | tail-6

10. use HISTCONTROL to force history not to remember specific commands
Set HISTCONTROL to ignorespace and enter a space before the command you do not want to remember:
 

Copy codeThe code is as follows:
# Export HISTCONTROL = ignorespace
# Ls-ltr
# Pwd
# Service httpd stop [Note that there is a space at the beginning of service, to ignore this command from history]
# History | tail-3
67 ls-ltr
68 pwd
69 history | tail-3

11. use the-c option to clear all command history
To clear all command history, run the following command:
 

Copy codeThe code is as follows:
# History-c

12. command replacement

In the following example ,!! : $ Get the parameters of the previous command for the current command:
 

Copy codeThe code is as follows:
# Ls anaconda-ks.cfg
Anaconda-ks.cfg
# Vi !! : $
Vi anaconda-ks.cfg

Supplement: use! $ Can achieve the same effect, and is simpler.
In the following example ,! ^ Obtain the first parameter from the previous command:


Copy codeThe code is as follows:
# Cp anaconda-ks.cfg anaconda-ks.cfg.bak
Anaconda-ks.cfg
# Vi-5! ^
Vi anaconda-ks.cfg

13. replace the specified parameter with a specific command.
In the example below ,! Cp: 2 search for a command starting with cp from the Command History and obtain its second parameter:
 

Copy codeThe code is as follows:
# Cp ~ /Longname.txt/really/a/very/long/path/long-filename.txt
# Ls-l! Cp: 2
Ls-l/really/a/very/long/path/long-filename.txt

In the following example ,! Cp: $ get the last parameter of the cp command:
 

Copy codeThe code is as follows:
# Ls-l! Cp: $
Ls-l/really/a/very/long/path/long-filename.txt

14. disable history with HISTSIZE
If you want to disable history, you can set HISTSIZE to 0:
 

Copy codeThe code is as follows:
# Export HISTSIZE = 0
# History
# [Note that history did not display anything]

15. use HISTIGNORE to ignore specific commands in history
In the following example, commands such as pwd, ls, and ls-ltr are ignored:
 

Copy codeThe code is as follows:
# Export HISTIGNORE = "pwd: ls-ltr :"
# Pwd
# Ls
# Ls-ltr
# Service httpd stop
# History | tail-3
79 export HISTIGNORE = "pwd: ls-ltr :"
80 service httpd stop
81 history
[Note that history did not record pwd, ls and ls-ltr]

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.