如何在 Linux 中使用 history 命令
创始人
2024-03-01 23:19:45
0

用强大的 history 命令使你的命令行提示符更有效率。

随着我在终端中花费越来越多的时间,我感觉就像在不断地寻找新的命令,以使我的日常任务更加高效。GNU 的 history 命令是一个真正改变我日常工作的命令。

GNU history 命令保存了从该终端会话运行的所有其他命令的列表,然后允许你重放或者重用这些命令,而不用重新输入它们。如果你是一个老玩家,你知道 history 的力量,但对于我们这些半吊子或新手系统管理员来说, history 是一个立竿见影的生产力增益。

历史 101

要查看命令历史,请在 Linux 中打开终端程序,然后输入:

$ history

这是我得到的响应:

1  clear
2  ls -al
3  sudo dnf update -y
4  history

history 命令显示自开始会话后输入的命令列表。 history 有趣的地方是你可以使用以下命令重放任意一个命令:

$ !3

提示符中的 !3 告诉 shell 重新运行历史列表中第 3 个命令。我还可以输入以下命令来使用:

linuser@my_linux_box: !sudo 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)`':

现在你可以开始输入一个命令,并且会显示匹配的命令,按回车键执行。

更改已执行的命令

history 还允许你使用不同的语法重新运行命令。例如,如果我想改变我以前的命令 history | grep dnfhistory | grep ssh,我可以在提示符下执行以下命令:

$ ^dnf^ssh^

history 将重新运行该命令,但用 ssh 替换 dnf,并执行它。

删除历史

有时你想要删除一些或全部的历史记录。如果要删除特定命令,请输入 history -d <行号>。要清空历史记录,请执行 history -c

历史文件存储在一个你可以修改的文件中。bash shell 用户可以在他们的家目录下找到 .bash_history

下一步

你可以使用 history 做许多其他事情:

  • 将历史缓冲区设置为一定数量
  • 记录历史中每行的日期和时间
  • 防止某些命令被记录在历史记录中

有关 history 命令的更多信息和其他有趣的事情,请参考 GNU Bash 手册


via: https://opensource.com/article/18/6/history-command

作者:Steve Morris 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

过度依赖AI弊端显现!麻省...
6月,人工智能(AI)的进化呈现越来越专业化细分的新趋势,在天气预...
2025-07-01 13:41:20
钟华论:锻造民族复兴的中流...
1921—2025,历史长河奔涌不息,奋斗征程波澜壮阔。一艘小小红...
2025-07-01 11:40:53
原创 ...
据直新闻报道,俄罗斯总统助理尤里·乌沙科夫表示:俄罗斯总统普京将会...
2025-06-29 20:41:22
北大举办“AI时代的历史教...
6月23日上午,“AI时代的历史教育”高峰论坛在北京大学中关新园科...
2025-06-24 18:12:31
台风“蝴蝶”路径诡异?历史...
今年第1号台风“蝴蝶”于6月13日23时前后在海南省东方市八所镇登...
2025-06-14 23:12:29
历史与AI的距离|当AI“...
人工智能的浪潮正以前所未有的速度和深度影响着我们生活的方方面面,从...
2025-06-10 12:40:23

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
从 Yum 更新中排除特定/某... 作为系统更新的一部分,你也许需要在基于 Red Hat 系统中由于应用依赖排除一些软件包。如果是,如...