linux命令history作用,Linux命令:history命令历史的管理及用法

bash可以保存的过去曾经执行过的命令。当某个用户登录到shell中,会读取该用户家目录中的~/.bash_history文件,并将历史命令列表保存到内存中。当用户退出当前shell时,会将内存中的历史命令列表覆盖至~/.bash_history文件。

我们可以通过# histroy 来查看历史命令。history是bash的内部命令。通过# help history获取帮助。

一、history的常见选项

# history

。。。 # 省略前面994 manpoweroff995 poweroff --reboot996 manpoweroff997 manshutdown998 shutdown +2 "Goodbye SB"

999 shutdown -c1000 man rm

1001 info rm

1002 manhistory1003enable1004 enable | grephistory1005help history1006history1007 history -d 1000

1008history1009 echo$HISTORYSIZE1010 history

# history -c        清空命令历史记录

# history -d N      N为整数,删除历史中序号是N的命令

# history N         N为整数,显示最近N条历史

# history -a        追加本次回话新执行的命令历史列表至~/.bash_history文件

# history -r        读历史文件附加到历史列表

# history -w        保存历史列表到指定的历史文件

# history -n        读历史文件中未读过的行到历史列表

# history -p        展开历史参数成多行,但不存在历史列表中

# history -s        展开历史参数成一行,附加在历史列表后

二、调用命令历史的方法

1、重复前一个命令,有4种方法

使用方向键↑选中命令,按↑↓调整,并回车执行

输入!! 并回车执行

输入!-1 并回车执行

按Ctrl + p,调出命令,并回车执行

2、 !:0 执行前一条命令(去除参数)

3、 Ctrl + n显示当前历史中的下一条!命令,但不执行

4、 Ctrl + j执行当前命令

5、 !n 执行history命令输出对应序号为n的命令

6、 !-n执行history历史中倒数第n个命令

7、 !string 重复前一个以“string”字符串开头的命令

8、 !?string 重复前一个包含string字符串的命令

9、 !string:p   仅打印命令历史,而不执行

10、 !$:p 打印输出!$(上一条命令的最后一个参数)的内容

11、 !*:p 打印输出!*(上一条命令的所有参数)的内容

12、 ^string 删除上一条命令中的第一个string

13、 ^string1^string2将上一条命令中的第一个string1替换为string2

14、 !:gs/string1/srting2 将上一条命令中所有的string1都替换为string2

15、使用方向键↑↓键来上下浏览从前输入的命令

16、Crtl + r来在命令历史中搜索命令

进入(reverse-i-search)`':模式

17、 Crtl + g 从历史搜索模式退出

18、 重新调用前一个命令中最后一个参数,3种方法

!$

Esc . (点击Esc键后松开,然后点击.键)

Alt+. (按住Alt键的同时点击.键),在一些终端软件中屏蔽了Alt功能键,需要开启

19、command !^      利用上一个命令的第一个参数做cmd的参数

command !$      利用上一个命令的最后一个参数做cmd的参数

command !*      利用上一个命令的全部参数做cmd的参数

command !:n     利用上一个命令的第n个参数做cmd的参数

command !n:^    调用第n条命令的第一个参数

command !n:$    调用第n条命令的最后一个参数

command !n:m    调用第n条命令的第m个参数

command !n:*    调用第n条命令的所有参数

command !srting:^   从命令历史中搜索string开头的命令,并获取它的第一个参数

command !srting:$   从命令历史中搜索string开头的命令,并获取它的最后一个参数

command !srting:n   从命令历史中搜索string开头的命令,并获取它的第n个参数

command !srting:*   从命令历史中搜索string开头的命令,并获取它的所有参数

三、命令历史相关的环境变量

HISTSIZE:命令历史中可以保存的命令的个数,默认值为1000

HISTFILE:命令历史保存在哪个文件,默认为当前用户家目录中的.bash_history文件

HISTFILESIZE:命令历史文件可以保存的命令的个数,默认值为1000

HISTIGNORE='command1:command2:...',让历史命令不记录执行过的命令,默认为NULL

举例:HISTIGNORE='ls'  #让历史文件不记录ls命令,但是如果ls命令后接任何参数(包括空格)都会记录起来。所以要完全不记录任何与ls相关的命令,需要赋值为'ls *',即 HISTIGNORE='ls *'

HISTTIMEFORMAT="%F %T-->"   执行history 命令显示的时候,带有此格式时间。

让~/.bash_history带有相对时间如:#1560378603

HISTCONTROL=[ignoredups|ignoredups|ignoreboth|erasedups],控制命令历史的生成

ignoredups:忽略记录重复的命令:连续相同的命令为重复命令(默认的变量值)

ignorespace:不记录以空白字符开头的命令

ignoreboth:相当于上面两个参数ignoredups,ignorespace的组合

erasedups:  删除重复命令

注意:修改环境变量建议在/etc/profile.d/中创建***.sh文件,便于日后的查看和管理

你可能感兴趣的:(linux命令history作用,Linux命令:history命令历史的管理及用法)