如何在 Linux 中有效地使用 history 命令

Linux Story

纯正开源之美 有趣、有料、有意思

译者:Sunling

GNOME.Asia 2017 峰会优秀志愿者!

许多Linux服务器的管理员需要花费大量时间在命令行上,因此查看 history 命令对他们来说是必不可少的。

以 BASH(Bourne Again SHell)为代表的用于与操作系统交互的默认命令行 Shell 在大多数主要的Linux发行版中被使用。

什么是 history 命令

history 命令被用于列出以前输入的命令和Bash日志。

这个日志被称为 “history” ,它能够使我们快速查看以前在系统上执行的内容。

BASH 将关闭终端会话时所运行的所有命令并写入你的历史记录文件。

当你同时运行两个会话的时候,history 命令将单独显示当前的会话记录,而不会显示其他的历史会话记录。

如何查阅历史命令

单独运行 history 命令,无需其他选项就可以查阅先前运行的命令。如果你有大量的历史记录,则无法正确地看到这些记录。在这些情况下,你必须使用诸如 less , more 等的文件视图命令。

如何查阅最后的“ n ”命令

默认情况下,history 命令显示我们执行的最后1000条命令。如果你只想列出“ n ”个命令,请使用以下命令。例如,显示最近的10个历史记录,请运行以下命令。

history n

如何运行先前执行的命令

使用 UP 和 DOWN 方向键来回滚动用于浏览以前输入的命令。

按 Enter 键执行它们或使用 Left 和 Right 键编辑命令。

重复上一个命令

重复执行你的最后一条命令,请运行以下命令。

!! – Double exclamation point

使用它的编号重复执行先前的命令

使用它的编号重复执行之前的命令。这将会很快地运行先前执行的命令,而不需要再次输入长长的命令。

搜索并运行先前执行的命令

History 命令提供了各种搜索选项,这将允许我们搜索并运行先前执行的命令。

运行在字符串开始处匹配的命令

运行匹配给定字符串的命令

为了能够执行这个操作,这里作者调取了最后30个历史日志来进一步说明。

如果你想运行在字符串开始处匹配的命令,请使用以下格式,它将运行以 doc 字符串开头的最新命令。

以作者的情况为例,它将运行位于756行的 docker run 命令。

docker run

如果你想运行匹配给定字符串的命令,请使用以下格式,以作者的情况为例,它将运行以位于754行的 docker ps 命令。

docker ps

如何替换字符串并运行先前执行的命令

如果你想用新字符串重复上一个命令,只需要将 string1 替换为 string2 即可。(相当于使用以下命令)

请使用以下格式。首先在下面的例子中,作者以及运行了 Fedora docker image,然后用 CentOS 而不是 Fedora 替换字符串。

如果你想运行先前使用的新字符串执行的任何具体命令,请使用以下任何一种命令格式。

以作者的情况为例。位于821行的 history 命令是 fedora docker 的容器。要想运行 centos 容器,只需将字母替换成 centos 。

使用 grep 命令列出匹配字符串

如果你已经在 docker 运行了很多命令,那么使用 grep 和 docker 命令可以很容易地显示匹配的命令列表。

如何在历史命令中显示日期和时间

默认情况下,history 命令只显示用户执行的命令,不显示日期和时间,但会记录运行命令的时间。

如果你想在 history 命令中输出添加日期和时间,请导航至以下的链接。

Suggested Read :How To Display Date And Time In History Command

如何使用 YUM 命令来回滚更新

Yum( Yellowdog Update Modified )是 CentOS 和 Red Hat 系统的 RPM 软件包管理工具。Yum 的 history 命令允许管理员将系统回滚到先前的状态,但由于一些限制,回滚在所有的情况下都不起作用,或者 yum 命令可能不会执行任何操作,同时也可能移除您所不期望的包。

Suggested Read :How To Use YUM History Command To Rollback An Updates

如何查看其他用户的历史记录

使用以下命令查看其他用户记录。

如何通过 BASH History 进行搜索

我们可以通过敲击 CTRL-R 键使用关键字搜索先前执行的命令(这将会在历史记录中向后搜索并且优先显示最近的结果)。再次按 CTRL-R 查看下一个结果。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180409B08GFK00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券