简介

在 Linux 操作系统中,history 命令是一个非常常用的命令。它可以让用户查看他们在终端中运行过的所有命令,这些命令会按照时间顺序排列.

history 命令的基本用法

history 命令的基本用法非常简单。只需要在终端中输入 history 命令,就可以查看之前所有执行过的命令。这些命令会按照时间顺序排列,最新的命令会显示在最上面。下面是一个示例:

$ history
1  ls
2  cd Documents/
3  vim report.txt
4  cat report.txt
5  exit
6  history

在上面的示例中,我们执行了一些常见的命令,如 ls、cd、vim 和 cat。最后,我们还执行了一次 history 命令,以便查看之前执行过的所有命令。

history 命令的参数

history命令有许多选项,下面介绍其中一些常用的选项:

-c:清空历史命令记录。

-a:将当前会话中执行的命令追加到历史命令记录中。

-w:将历史命令记录写入历史命令文件(默认为~/.bash_history)。

-r:读取历史命令文件中的命令记录,并将其添加到当前命令历史记录中。

-n:显示最近的N条历史命令。

-p:显示以指定字符串开头的历史命令。

-s:将指定的字符串添加到命令历史记录中。

history 命令的技巧

除了基本用法和参数之外,history 命令还有一些技巧,这些技巧可以帮助我们更好地使用该命令。

使用 !!

使用 !! 可以快速执行上一条命令。这对于需要频繁重复执行某个命令的情况非常有用。

$ ls
Documents/ Downloads/ Pictures/ Music/ Videos/
$ cd Downloads/
$ pwd
/home/user/Downloads
$ !!
cd Downloads/
$ pwd
/home/user/Downloads

在上面的示例中,我们首先执行了 ls 命令,然后切换到 Downloads 目录并查看当前目录路径。然后,我们使用 !! 快速执行了上一条命令(即 cd Downloads/)。最后,我们再次查看当前目录路径,并确认已经成功切换到 Downloads 目录。

使用 !n

使用 !n 可以快速执行历史记录中编号为 n 的命令。例如,如果您想要重新执行编号为 3 的命令,则可以输入 !3。

$ !3
vim report.txt

在上面的示例中,我们重新执行了编号为 3 的命令(即 vim report.txt)。

使用 Ctrl + R

使用 Ctrl + R 可以快速搜索历史记录中包含特定字符串的命令。例如,如果您想要查找包含字符串“vim”的命令,则可以按下 Ctrl + R 并输入“vim”。

(reverse-i-search)`vim': vim report.txt

在上面的示例中,我们按下了 Ctrl + R 并输入了“vim”。然后,我们看到了包含字符串“vim”的最后一个命令(即 vim report.txt)。如果您想要查找更早的命令,则可以按下 Ctrl + R 继续搜索。

删除命令

可以直接打开文件进行删除:

历史记录文件名为.bash_history;我是在root文件下
vim .bash_history
然后通过vim命令删除,好比100dd,删除光标下的100行,然后保存

如果你不想将当前会话中的命令记录保存到历史记录文件中,可以使用以下命令来禁用历史记录记录:

unset HISTFILE

这个命令会将HISTFILE环境变量设置为空值,这样当前会话中的命令记录就不会被保存到历史记录文件中。请注意,这不会删除已经保存在历史记录文件中的命令记录。

如果你只是想在当前会话中禁用历史记录记录,但是希望以后的会话中继续保存历史记录,请使用以下命令:

set +o history

这个命令会将history选项设置为关闭状态,这样当前会话中的命令记录就不会被保存到历史记录文件中。请注意,这不会删除已经保存在历史记录文件中的命令记录。如果你想重新启用历史记录记录,请使用以下命令:

set -o history

history命令多窗口同步

我们通常会打开多个远程命令行窗口连接到一台主机进行操作,这样更方便,假设我通过ssh远程工具,打开了两个远程窗口,窗A、窗B

加入我们一开始在窗A执行了一些命令,然后切换到窗B,在窗B中又执行了一些不同的命令。

那么这时候我们在窗B中使用history命令查看历史命令,会发现窗A中执行过的命令并没有在窗B中的history中显示。

我们可以通过如下方法,将窗A中的命令历史同步到窗B中

1、在窗A中执行history -a将内存中的命令写入到历史文件中

2、在窗B中执行history -n ,从历史文件中将新增历史命令加载到窗B的内存历史列表中

3、在窗B中执行history命令,已经可以看到窗A中执行过的命令

结论

您已经了解了如何使用 history 命令来查看之前执行过的所有命令。此外,您还学习了一些常见的参数和技巧,这些参数和技巧可以帮助您更好地使用该命令。