0
点赞
收藏
分享

微信扫一扫

【Linux】一步一步学Linux——history命令(213)


00. 目录


文章目录


  • ​​00. 目录​​
  • ​​01. 命令概述​​
  • ​​02. 命令格式​​
  • ​​03. 常用选项​​
  • ​​04. 参考示例​​
  • ​​05. 总结​​
  • ​​06. 附录​​


01. 命令概述

history命令​用于显示用户以前执行过的历史命令,并且能对历史命令进行追加和删除等操作。

该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号​​!​​​执行指定序号的历史命令。例如,要执行第2个历史命令,则输入​​!2​​。

历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量​​HISTSIZE​​进行控制。

02. 命令格式

格式: history [选项] [参数]

03. 常用选项

-a  将当前shell会话的历史命令追加到命令历史文件中,命令历史文件是保存历史命令的配置文件
-c 清空当前历史命令列表
-d 删除历史命令列表中指定序号的命令
-n 从命令历史文件中读取本次Shell会话开始时没有读取的历史命令
-r 读取命令历史文件到当前的Shell历史命令内存缓冲区
-s 将指定的命令作为单独的条目加入命令历史内存缓冲区。
在执行添加之前先删除命令历史内存缓冲区中最后一条命令
-w 把当前的shell历史命令内存缓冲区的内容写入命令历史文件

04. 参考示例

4.1 查看历史命令

[deng@localhost ~]$ history 
[deng@localhost ~]$

4.2 显示最近的5条命令

[deng@localhost ~]$ history 5
816 man history
817 help history
818 history
819 history
820 history 5
[deng@localhost ~]$

4.3 将当前历史写入到历史文件中

[deng@localhost ~]$ history -w
[deng@localhost ~]$

将当前历史写入到历史文件中并追加到历史列表中。

4.4 读取历史文件并将内容追加到历史列表中

[deng@localhost ~]$ history -r
[deng@localhost ~]$

4.5 将当前Shell会话的历史命令追加到命令历史文件中

[deng@localhost ~]$ history -a
[deng@localhost ~]$

4.6 删除所有条目从而清空历史列表

[deng@localhost ~]$ history -c
[deng@localhost ~]$ history
646 history
[deng@localhost ~]$

4.7 执行历史列表中646条命令

[deng@localhost ~]$ history 
646 history
[deng@localhost ~]$ !646
history
646 history
[deng@localhost ~]$

4.8 执行最近一条历史命令

[deng@localhost ~]$ !!
history
646 history
647 history
648 ! -1
649 history
[deng@localhost ~]$

4.9 常用设置

$ export HISTCONTROL=ignoredups               # 消除命令历史中的连续重复条目

$ export HISTSIZE=0 # 禁用history命令

$ export HISTCONTROL=erasedups # 在整个历史中去除重复命令

$ export HISTFILESIZE=1000000 # 设置历史文件大小

$ export HISTTIMEFORMAT='%F %T' # 设置时间戳,执行后生效

$ export HISTTIMEFORMAT="%F %T `whoami`" # 显示执行用户,对管理员很有用

$ export HISTIGNORE=“pwd:ls:” # 忽略特殊命令,只忽略ls并不忽略ls -lart

$ export HISTCONTROL=ignorespace # 忽略某条特定命令

$ export HISTFILE=/root/history.txt # 设置历史文件的存储目录

4.10 常用参数

$ !!          # 前一条命令;
$ !:0     # 不带参数的前一条命令名;
$ !^     # 前一条命令的第一个参数;
$ !:n     # 前一条命令的第n个参数;
$ !$     # 前一条命令的最后一个参数;例如 $ mkdir test; cd !$
$ !* # 前一条命令的所有参数,命令名除外;
$ !n     # 第n条命令;
$ !-n     # 倒数第n条命令;
$ !str    # 最近一条以str开头的命令;
$ !?str    # 最近一条包含str的命令;
$ ^a^b   # 将上一条命令名中的a替换为b;
$ !:gs/a/b  # 将上一条命令的所有a替换为b(包含命令名和参数)。
$ !:3 # 第三个参数数
$ !:2-4 # 第2到4个参数
$ !:-3 # 从第0个到第三个参数
$ !* # 第一个到最后一个参数
$ !:2* # 第2个到最后一个
$ !:2- # 从第2个开始,但不要结尾参数

05. 总结

【Linux】一步一步学Linux——history命令(213)_history

06. 附录

参考:​​【Linux】一步一步学Linux系列教程汇总​​



举报

相关推荐

0 条评论