Linux history 新手命令教程(8例)Linux history 新手命令教程(8例)Linux history 新手命令教程(8例)Linux history 新手命令教程(8例)
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Linux history 新手命令教程(8例)

在此页

  1. Linux历史命令
  2. Q1。历史命令如何工作?
  3. Q2。如何让历史也显示日期和时间?
  4. Q3。如何让历史停止记录命令?
  5. Q4。如何让历史记录不记录单个命令?
  6. Q5。如何进行快速历史搜索?
  7. Q6。如何运行之前的命令?
  8. Q7。如何使历史忽略输出中的重复条目?
  9. Q8。如何清除历史记录?
  10. 结论

如果您的工作涉及在 Linux 命令行上运行工具和脚本,我相信您每天都会运行很多命令。那些刚接触命令行的人应该知道有一个工具 - 称为历史记录 - 可以为您提供您之前执行过的命令列表。

在本教程中,我们将使用一些易于理解的示例来讨论 history 命令的基础知识。但在我们这样做之前,值得一提的是这里的所有示例都已经在 Ubuntu 16.04LTS 机器上进行了测试。

Linux历史命令

如果您知道如何有效地利用您的命令行历史记录,您每天可以节省大量时间。以下是一些 Q&A 风格的示例,它们应该可以让您了解如何使用 history 命令为您带来好处。

Q1。历史命令如何工作?

基本用法很简单——只需执行 history 命令。

history

所以你可以看到你之前运行的命令显示在输出中。请注意,我使用了 more 命令来确保输出显示在第一页暂停(完整的历史输出通常很长)。

Q2。如何让历史也显示日期和时间?

如果您希望 history 命令显示每个命令的执行日期和时间,您可以通过以下方式导出 HISTTIMEFORMAT 变量来实现:

export HISTTIMEFORMAT="%F %T: "

就是这样。现在当你运行 history 命令时,你会在输出中看到日期和时间信息。

如果您看到所有命令的日期和时间都相同,则以下解释应该可以清楚地说明这一点:

If you set the HISTTIMEFORMAT in bash your new entries get stored in the history file with a 
timestamp, older commands that don't have a timestamp (those before you ever set HISTTIMEFORMAT
will display one and the same date-time-stamp (I assume the one from the first entry found with a
real timestamp).

This problem should solve itself after your complete history has been updated in a few days.

You can look in ~/.bash_history to see what is the first line that has a date-time-stamp.
Those are lines starting with a # followed by a (currently) 10 digit number.

Q3.如何让历史停止记录命令?

如果出现您不希望系统保存您的命令历史记录的情况,那么您可以使用 HISTSIZE 变量来执行此操作。只需将其以零作为值导出,就可以了。

请参阅以下示例:

所以你可以看到,现在运行 history 命令没有产生任何结果。

请注意,还有一个 HISTFILESIZE 变量。这是两者之间的区别:

HISTSIZE is the number of lines or commands that are stored in memory in a history list while your 
bash session is ongoing.

HISTFILESIZE is the number of lines or commands that (a) are allowed in the history file at startup
time of a session, and (b) are stored in the history file at the end of your bash session for use in
future sessions.

Q4.如何让历史记录不记录单个命令?

这可以通过将 HISTCONTROL 变量设置为 ignorespace 来完成。您可以通过以下方式执行此操作:

export HISTCONTROL=ignorespace

现在,每当您运行不想被记录在历史记录中的命令时,只需在前导空格处执行即可。

Q5.如何进行快速历史搜索?

当然,您可以使用 grep 命令在 history 命令产生的输出中搜索特定关键字或命令。然而,还有一种更快的方法:reverse-i-search。

这很简单——你所要做的就是在命令行上按 CTRL+R,你会看到你的提示变成这样的:

现在输入您要搜索的关键字,您会在右侧看到来自历史记录的匹配建议。例如,我输入 man(不带引号),得到的第一个结果是 man apropos。

如果这不是您要查找的内容,您可以通过再次按 CTRL+R 获得下一个匹配结果。因此,就我而言,我得到的下一个结果是 man find search。

你可以继续这样搜索。一旦你得到你想要的结果,只需按右箭头键,你就会在你的提示符下得到整个命令。

所以现在您可以运行此命令,或以任何您想要的方式使用它。

Q6.如何运行之前的命令?

有两种简单的方法可以运行上次执行的命令:按 CTRL+P,或运行以下命令:

!!

不相信(尤其是第二种方式)?试试吧。

如果要求快速执行倒数第二个命令,您可以通过以下方式执行:

!-1

等等等等。

Q7.如何使历史忽略输出中的重复条目?

这可以通过将 HISTCONTROL 变量设置为 ignoreboth 和 erasedups 来完成。您可以通过以下方式进行:

echo HISTCONTROL=ignoreboth:erasedups

现在,当您运行 history 命令时,输出将不会包含重复项。

Q8.如何清除历史记录?

如果要清除现有历史记录以便重新开始,请使用 -c 命令行选项。

history -c

结论

您可能会同意 history 是您应该了解的非常重要的命令。在本教程中,我们讨论了几个重要的提示/技巧,以充分利用此工具。练习完这些后,请前往工具手册页了解更多信息。

©2015-2025 艾丽卡 support@alaica.com