如何在Linux中使用history命令
随着我在终端会话中花费越来越多的时间,感觉就像我一直在寻找使我的日常任务更加高效的新命令一样。 GNU history
命令确实改变了我的工作日。
GNU history
命令保留了从该终端会话运行的所有其他命令的列表,然后允许您重播或重用这些命令,而不必重新键入它们。 如果您是经验丰富的终端用户,您将了解history
的力量,但是对于我们涉水者或新的sysadmin人士而言, history
可立即提高生产力。
首先, history
命令实际上不是命令。 您可以通过在系统上查找命令来亲自查看:
$ which history
which: no history in ( / usr / local / bin: / usr / bin: / bin: / usr / games: / usr / local / sbin )
您的计算机找不到
history命令,因为它是Shell的内置关键字。 由于已将其写入您正在使用的shell中,因此历史记录的行为方式可能会有所不同,具体取决于您是否使用Bash ,tcsh, Zsh ,dash, fish ,ksh等。 本文基于历史记录的Bash实现,因此某些功能可能无法在其他Shell中使用。 但是,大多数基本功能是相同的。
历史101
要查看运行中的history
,请在Linux安装上打开一个终端程序,然后键入:
$ history
这是我得到的答复:
1 clear
2 ls -al
3 sudo dnf update -y
4 history
history
命令显示了自启动会话以来输入的命令列表。 history
的喜悦在于,现在您可以使用以下命令来重播其中的任何一个:
$ !3
提示符处的!3
命令告诉外壳程序在历史记录列表的第3行重新运行该命令。 我还可以通过输入以下命令来访问该命令:
$ ! sudo dnf
这会提示history
以搜索与您提供的模式匹配的最后一个命令(在本例中,该模式为dnf )并运行它。
搜索历史
您还可以使用history
通过键入!!
来重新运行最后输入的命令!!
。 通过将其与grep
配对,可以搜索与文本模式匹配的命令,或者将其与tail
一起使用,可以找到执行的最后几个命令。 例如:
$ history | grep dnf
3 sudo dnf update -y
5 history | grep dnf
$ history | tail -n 3
4 history
5 history | grep dnf
6 history | tail -n 3
获得此搜索功能的另一种方法是键入
Ctrl-R来调用命令历史记录的递归搜索。 输入此内容后,提示将变为:
(reverse-i-search)`':
现在您可以开始键入命令,然后按Return或Enter将显示匹配的命令供您执行。
更改执行的命令
您还可以使用history
以不同的语法重新运行命令。 您可以使用history
修改历史history
。 例如,如果我想更改以前的命令history | grep dnf
history | grep dnf
的history | grep ssh
history | grep ssh
,我可以在提示符下执行以下操作:
$ ^dnf^ssh^
该命令将重新运行,但dnf
被ssh
取代。 换句话说,将运行以下命令:
$ history | grep ssh
删除历史
您可能有时需要删除历史记录文件中的部分或全部命令。 如果要删除特定命令,请输入history -d <line number>
。 要清除历史记录文件的全部内容,请执行history -c
。
历史记录文件存储在您也可以修改的文件中。 Bash Shell用户在其主目录中以.bash_history
找到它。
下一步
您还可以对history
进行其他操作:
- 将历史记录缓冲区的大小设置为一定数量的命令
- 记录历史中每一行的日期和时间
- 防止某些命令记录在历史记录中
有关history
命令以及您可以使用它进行的其他有趣操作的更多信息,请查看Seth Kenlon的有关分析历史的文章, 历史搜索修饰符和GNU Bash手册 。
本文最初于2018年6月发布,并已由编辑者进行了附加信息更新。
翻译自: https://opensource.com/article/18/6/history-command
如何在Linux中使用history命令相关推荐
- linux系统export,Linux入门进阶 - 如何在Linux中使用export命令
原标题:Linux入门进阶 - 如何在Linux中使用export命令 来自: Linux迷 链接:https://www.linuxmi.com/linux-export.html Linux ex ...
- Linux中的history命令
通过history命令可以查看我们在系统中输入过的命令 history命令的一些常用参数 -c 清空内存中命令历史 -d # 删除指定的历史命令,比如 history -d 100 ,就是删除第1 ...
- linux如何export文件夹,学习如何在Linux中使用export命令
Linux export命令会标记哪些值需要传递给一组子进程.这是bash shell提供的一个简单但有用的特性.它允许管理员在不中断当前会话的情况下传递环境的配置参数.这就是为什么在终端会话重新启动 ...
- Linux入门进阶 - 如何在Linux中使用export命令
Linux export命令会标记哪些值需要传递给一组子进程.这是bash shell提供的一个简单但有用的特性.它允许管理员在不中断当前会话的情况下传递环境的配置参数.这就是为什么在终端会话重新启动 ...
- 如何在Linux中使用ulimit命令
The ulimit command in Linux is an extremely useful command for system admins who manage multi-user s ...
- linux xargs命令_如何在Linux中使用xargs命令?
linux xargs命令 The xargs command allows us to pass the output of one command as the input for another ...
- linux chown命令 例子,如何在Linux中使用chown命令[基本示例]
Linux中的chown命令允许您更改文件和目录的所有权. 下面是一张快速记忆的图片: 使用chown命令,可以更改文件或目录的用户和组所有权. Linux中的chown命令示例 以下是chown命令 ...
- linux可以修改日期格式吗,如何在Linux中使用date命令修改日期时间
Linux中可使用date命令查看修改日期及时间,本例中以CentOS6为例说明. 1.直接输入"date"可查看当前系统日期及时间(普通用户即可执行此命令). 2.输入" ...
- 如何在Linux中使用netstat命令
The term "netstat" stands for Network Statistics. In layman's terms, netstat command displ ...
最新文章
- 编程是一种对你的身体健康十分有害的工作
- JavaScript String支持的辅助format函数+【分页1】
- Spring4 MVC文件下载实例
- 使用input type=file 上传文件时需注意
- 配置MaxCompute任务消费监控告警,避免资源过度消费
- 2021年上半年直播电商行业洞察
- (AirWatch 系列之一)企业移动计算的集大成者--Airwatch简介
- php对象方法调用静态方法,php面向对象之静态方法使用
- pytorch维度变换
- 本地升级MySQL数据库版本为8.0.23,使用SQLyog(小海豚)无法进行连接
- Atom 备份神器 —— Sync Settings
- PDE12 wave equation: charactistics
- T3139 栈练习3 codevs
- 概率论与数理统计——Chapter0
- Java计算点的质心_java-矩阵的质心
- linux 脚本里切换用户密码,shell,切换用户,执行指定,脚本
- vue print 解决打印每页都有表头
- icpc西部区域赛_江西软件大学夺得第八届高校联赛西部大区总冠军
- nginx反向代理文件下载失败
- Raspberry Pi 支持开源脑机接口
热门文章
- 问题:使用jdk11 报错:java.lang.TypeNotPresentException: Type javax.xml.bind.JAXBContext not present
- 浅析Condition与等待通知机制
- 事务的4大特性及实现原理
- “智慧感控”理念革新医疗管理
- 05Vue.js快速入门-Vue实例详解与生命周期
- Java多线程:线程池
- 文本框仅可接收decimal
- java 多态,接口,抽象类的认识
- Swift 的变化:从 2.2 到 3.0 会带来什么
- Struts2 第9part 通过实现ModelDriven来接收参数