linux命令(227)——history命令(builtin)(代码片段)

恋喵大鲤鱼 恋喵大鲤鱼     2023-01-06     572

关键词:

文章目录

1.命令简介

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

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

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

2.命令格式

history [n]
history -c
history -d offset
history -anrw [filename]
history -p arg [arg ...]
history -s arg [arg ...]

3.选项说明

-a
	将当前 Shell 会话的历史命令追加到命令历史文件中,命令历史文件是保存历史命令的配置文件。
-c
	清空当前历史命令列表。
-d <offset>
	删除历史命令列表中指定序号的命令。
-n
	从命令历史文件中读取本次 Shell 会话开始时没有读取的历史命令。
-r
	读取命令历史文件到当前的 Shell 历史命令内存缓冲区。
-s <arg> [<arg> ...]
	将指定的命令作为单独的条目加入命令历史内存缓冲区。
-p <arg> [<arg> ...]
	对指定参数执行历史替换,并在标准输出中显示结果。不将结果存储在历史记录列表中。每个参数必须被引用以禁用正常的历史扩展。
-w
	把当前的 Shell 历史命令内存缓冲区的内容写入命令历史文件。

4.常用示例

(1)查看历史命令。

history
1  2022-10-16 21:54:59 whoami
2  2022-10-16 21:55:15 lsb_release
3  2022-10-16 21:55:40 cat /etc/*release
4  2022-10-16 21:56:02 cat /etc/centos-release
...

(2)显示最近 N 条命令。

history 5
2465  2022-12-19 18:55:43 history | wc -l
2466  2022-12-19 18:55:55 echo $HISTSIZE
2467  2022-12-19 19:08:21 history
2468  2022-12-19 19:08:27 history | less
2469  2022-12-19 19:10:27 history 5

(3)将当前 Shell 历史命令写入到历史文件中。

history -w

(4)读取命令历史文件到当前的 Shell 历史命令内存缓冲区。

history -r

(5)删除所有条目从而清空历史列表。

history -c

(6)执行历史列表中指定下标的命令。

history
    1  2022-12-19 19:23:26 history 5
    2  2022-12-19 19:23:34 history 5
    3  2022-12-19 19:25:02 history
    4  2022-12-19 19:25:08 ls
    5  2022-12-19 19:25:12 history

!4
ls
centos7.sh  cosfs.sh  cpp  dnspod.sh  go  install_panel.sh  install.sh  LATEST.tar.gz  libsodium-stable  test  txcdn.sh

(7)执行最近一条历史命令。

!!

5.拓展知识

5.1 常用设置

对 history 设置与相关环境变量有关。

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.2 常用参数

!!          # 前一条命令;
!: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个开始,但不要结尾参数

参考文献

history(1) - Linux manual page - linux.org
【Linux】一步一步学Linux——history命令(213)_沧海一笑博客

linux运维12:history命令详解(代码片段)

   history命令来自于英文单词历史,其功能是用于显示与管理历史命令记录。Linux系统默认会记录用户所执行过的所有命令,可以使用history命令查阅它们,也可以对其记录进行修改和删除操作。1.用法语法:history... 查看详情

linux怎么执行history命令

参考技术Alinux怎么执行history命令调用linuxhistory,你需要使用!历史编码用法:1.你在shell中输入history或者你查找特定的历史记录history|grep'关键词'2.查看你要重复执行的命令,记下它前面的编码。例如350ps-aux|more3.!350调用ps-aux... 查看详情

linux命令下,删除历史命令,例如history-c。最后查记录会有history-c这条命令,该如何删除最后一条命令

linux下:有history这调命令,表示显示出所有操作过的命令。现在想要删除history记录。但是例如history-c会删除所有的操作命令,但是会遗留下history-c这条命令,该如何删除?history-c多安几次[root@redhatscript]#history-c[root@redhatscript]#hist... 查看详情

history版本号怎么查看

1.查看history版本号的方法是存在的。2.因为在Linux系统中,history命令是用来查看用户在终端中执行的命令历史记录的。而在执行每一个命令时,系统都会将该命令的版本号记录在历史记录中。3.要查看history版本号,可以在终端中... 查看详情

linux基础linux多个会话同时执行命令后history记录不全的解决方案

基本认识linux默认配置是当打开一个shell终端后,执行的所有命令均不会写入到~/.bash_history文件中,只有当前用户退出后才会写入,这期间发生的所有命令其它终端是感知不到的。问题场景那么问题来了,假若之前history命令记录... 查看详情

如何清除linux的history命令历史记录

清除linux的history命令历史记录只需要一个步骤,如下:-c参数命令:将目前的shell中的所有history内容全部消除,下图是执行效果,执行history-c命令后,之前的所有的记录都可以清除。输入以上命令即可删除linux的history命令历史记... 查看详情

linux下history那个命令所记录的命令是不是会自动清除

linux下history那个命令所记录的命令是否会自动清除?我的history命令昨天还1000条今天就100条了奇怪?NoEveR527-江湖新秀四级你好,现在问题是:我原来的历史命令绝对1000多条,现在就100条了,很奇怪!他自动覆盖会取消原来的吗... 查看详情

linux随笔-linux多个会话同时执行命令后history记录不全的解决方案转发

基本认识linux默认配置是当打开一个shell终端后,执行的所有命令均不会写入到~/.bash_history文件中,只有当前用户退出后才会写入,这期间发生的所有命令其它终端是感知不到的。问题场景那么问题来了,假若之前history命令记录... 查看详情

linux如何屏蔽history命令

项目做安全加固,需要屏蔽linux命令以及不能用上下键查看记录,求指导哥们,我知道在用户的家目录下,有个隐藏文件叫.bash_history,里面就是你所谓的执行命令的记录,你可以写一个脚本每次logout的时候删除这个文件,这样下... 查看详情

请问linux的history指令如何显示全部的历史记录

用history查看了历史指令,但是从下往上只能显示出1000-531条,请问如何显示再之前的指令(也就是531条-1条)方法步骤如下:1、首先打开linux客户端。2、使用鼠标点击连接linux按钮。3、在弹出的界面内输入用户名,主机ip地址。4... 查看详情

linux命令历史

参考技术A一、如何查看Linux中各个用户的历史操作命令查看命令历史用history命令,历史命令只有在注销的时候,才会被更新到~/.bash_history这个系统历史命令记录文件中;当你下次以bash登录Linux的时候,系统会主动由当前用户的~/... 查看详情

linux下history命令用法

如果你经常使用Linux命令行,那么使用history(历史)命令可以有效地提升你的效率。本文将通过实例的方式向你介绍history命令的15个用法。使用HISTTIMEFORMAT显示时间戳当你从命令行执行history命令后,通常只会显示已执行命令的序... 查看详情

linux系统history命令小技巧(代码片段)

背景Linux系统中的history命令可以查看在系统中执行过哪些命令,在系统被***后,可以查看系统中执行过哪命令,有助于分析相关问题。知识点在Linux系统执行history#history命令711alias712history713ls~/.bash_history714history系统中使用过的命... 查看详情

linux命令:history(代码片段)

显示历史(执行过的)命令。 history[n]history-chistory-doffsethistory-anrw[filename]history-parg[arg...]history-sarg[arg...]不带任何参数显示所有执行过的命令。一个命令一行,每行前有行号。带*,表示曾被修改过。 n ,显示最后(最... 查看详情

如何查看linux上的历史执行命令

1>History命令语法:[test@linux]#history[n][test@linux]#history[-c][test@linux]#history[-raw]histfiles参数:n:数字,要列出最近的n笔命令列表-c:将目前的shell中的所有history内容全部消除-参考技术Ahistory命令。 参考技术B1>History命令语法:[test@l... 查看详情

linux怎么清除history记录

1、history-a将当前shell会话的历史命令追加到命令历史文件中,命令历史文件是保存历史命令的配置文件。2、history -c清空当前历史命令列表。3、history -d删除历史命令列表中指定序号的命令。4、history -n从命令历史文件... 查看详情

linux运维12:history命令详解(代码片段)

 系列专题:Linux运维入门教程    history命令来自于英文单词历史,其功能是用于显示与管理历史命令记录。Linux系统默认会记录用户所执行过的所有命令,可以使用history命令查阅它们,也可以对其记录进行修改... 查看详情

linux命令中显示之前操作过的所有命令的命令是啥

1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。2、在linux命令行下输入shell指令:history。3、最后,按下回车键执行shell指令,此时会看到所有使用过的命令都被逆序打印了出来。参考技术A用history命令就... 查看详情