教程

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

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

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

什么是 history 命令

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

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

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

~/.bash_history

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

如何查阅历史命令

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

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

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

history n

如何运行先前执行的命令

  • 使用 UPDOWN 方向键来回滚动用于浏览以前输入的命令。
  • Enter 键执行它们或使用 LeftRight 键编辑命令。

重复上一个命令

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

!! - Double exclamation point

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

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

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

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

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

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

  • 如果你想运行在字符串开始处匹配的命令,请使用以下格式,它将运行以 doc 字符串开头的最新命令。
    以作者的情况为例,它将运行位于756行的 docker run 命令。

    docker run

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

    docker ps

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

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

> !!:s/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

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

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

>  # more /home/$USER/.bash_history

#如何通过 BASH History 进行搜索

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

>   # (reverse-i-search)'dock': docker run -ti centos /bin/bash

本文由 LinuxStory 志愿者 Sunling 翻译,更多详情请查看原文。
原文链接:https://www.2daygeek.com/how-to-use-history-command-effectively-in-linux/
本文链接:https://linuxstory.org/how-to-use-histo…ctively-in-linux/
转载请注明来自 LinuxStory ,否则必究相关责任!

对这篇文章感觉如何?

太棒了
2
不错
0
爱死了
0
不太好
0
感觉很糟
0

You may also like

Leave a reply

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

More in:教程

教程

你最喜欢的Linux终端技巧是什么?

你最喜欢的提高生产力的终端技巧是什么呢?或许,只是一个简单的为一长串字符或者你常用的命令所取的别名( _alias_ )。或许,它是一些很短的脚本来自动处理那些你工作中无聊的东西的。或许,是一些终端复用的软件,比如 _screen_ 或者 _tmux_ 。再或者是你记忆的一些快捷键。最终,这上面的所有东西让你变得更像一个命令行的大佬。
Shell

Linux 下扩展交换空间

一般来说,当应用程序使用大量物理内存(RAM)并且不够用时操作系统会开始使用交换空间(Swap Space)。这种情况下,操作系统会把不活动的物理页面置换到交换空间。释放出来的空闲内存可以继续被其他应用程序使用。等到物理内存使用量降下来后,交换的内存区域又会换回到物理内存中。系统管理员应该确保系统交换空间足够,保证操作系统在内存不够用时始终能够通过置换页面的方式获取可用的物理内存。接下来,我们就来介绍如何创建、扩展和删除交换空间。