Linux历史初学者命令教程(8个示例)
如果您的工作涉及在Linux命令行上运行工具和脚本,我相信每天都会运行很多命令。 那些刚接触命令行的人应该知道存在一个工具 - 称为历史记录 - 它为您提供了之前执行过的命令列表。
在本教程中,我们将使用一些易于理解的示例讨论历史命令的基础知识。 但在我们这样做之前,值得一提的是这里的所有例子都是在Ubuntu 16.04LTS机器上测试过的。
Linux历史命令
如果您知道如何有效地利用命令行历史记录,则可以每天节省大量时间。 以下是一些Q&A风格的示例,可以让您了解如何使用历史命令为您带来好处。
Q1。 历史命令如何工作?
基本用法很简单 - 只需执行'history'命令即可。
history
因此,您可以看到先前运行的命令显示在输出中。 请注意,我使用' more '命令确保输出显示在第一页暂停('history'的完整输出通常很长)。
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命令生成的输出中搜索特定关键字或命令。 但是,还存在一种更快的方法:反向搜索。
这很简单 - 你要做的就是在命令行上按CTRL + R,你会看到你的提示变成这样的:
现在输入您要搜索的关键字,您将在右侧看到历史记录中的匹配建议。 例如,我输入'man'(没有引号),我得到的第一个结果是'man apropos'。
如果这不是您想要的,您可以再次按CTRL + R获得下一个匹配结果。 所以在我的情况下,我得到的下一个结果是“男人找到搜索”。
你可以继续这样搜索。 获得所需结果后,只需按右箭头键,即可在提示符下输入整个命令。
所以现在你可以运行这个命令,或者以你想要的任何方式使用它。
Q6。 如何运行上一个命令?
有两种简单的方法可以运行上次执行的命令:按CTRL + P,或运行以下命令:
!!
不相信(特别是第二种方式)? 尝试一下。
如果要求是快速执行倒数第二个命令,您可以通过以下方式执行此操作:
!-1
等等等等。
Q7。 如何使历史记录忽略输出中的重复条目?
这可以通过将HISTCONTROL变量设置为'ignoreboth'和'erasedups'来完成。 您可以通过以下方式执行此操作:
echo HISTCONTROL=ignoreboth:erasedups
现在,当您运行history命令时,输出将不包含重复项。
Q8。 如何清除历史?
如果要清除现有历史记录以便重新启动,请使用-c命令行选项。
history -c
结论
您可能会同意历史是您应该了解的非常重要的命令。 在本教程中,我们讨论了几个重要的提示/技巧,以充分利用此工具。 一旦练习了这些,请访问该工具的手册页以获取更多信息。