关键词:
文章目录
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命令就... 查看详情