【Linux基础编程】history命令

01.目录

02.命令介绍

history命令用于显示用户以前执行过的历史命令,并且能对历史命令进行追加和删除等操作。
这也是初学者用得比较频繁的命令之一,因为刚开始涉及的很多命令记不清楚,这个时候history命令就能起到很好的效果。

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

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

03.命令格式

history的通用格式如下:

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

04.常用选项

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

05.参考示例

5.1 查看历史命令
[deng@localhost ~]$ history 
[deng@localhost ~]$
5.2 查看指定条数的命令(最近)
//这里查看最近5条命令
[deng@localhost ~]$ history 5
  816  man history
  817  help history
  818  history
  819  history 
  820  history 5
[deng@localhost ~]$ 
5.3 将当前历史写入历史文件中
[deng@localhost ~]$ history -w
[deng@localhost ~]$ 

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

5.4 读取历史文件并并将内容追加到历史列表中
[deng@localhost ~]$ history -r
[deng@localhost ~]$ 
5.5 将当前Shell会话的历史命令追加到命令历史文件中
[deng@localhost ~]$ history -a
[deng@localhost ~]$ 
5.6 删除所有条目从而清空历史列表
[deng@localhost ~]$ history -c
[deng@localhost ~]$ history 
  646  history 
[deng@localhost ~]$ 
5.7 执行历史列表中646条命令
[deng@localhost ~]$ history 
  646  history 
[deng@localhost ~]$ !646
history 
  646  history 
[deng@localhost ~]$ 
5.8 执行最近一条历史命令
[deng@localhost ~]$ !!
history
  646  history 
  647  history
  648  ! -1
  649  history
[deng@localhost ~]$ 
5.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           # 设置历史文件的存储目录
5.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           # 第24个参数
$ !:-3            # 从第0个到第三个参数
$ !*              # 第一个到最后一个参数
$ !:2*            # 第2个到最后一个
$ !:2-            # 从第2个开始,但不要结尾参数

06.总结

history命令要说的很少,就非常简单的一个命令,下面列出一张图,说明一下history命令。
在这里插入图片描述
版权声明:转载请注明出处,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cain Xcy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值