Bash Shell中的“history”的使用技巧信安世纪(SecDriver)

Posted 爱信安世纪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bash Shell中的“history”的使用技巧信安世纪(SecDriver)相关的知识,希望对你有一定的参考价值。

我们在日常工作中经常使用历史命令来检查命令的历史记录,或获取用户执行的命令信息。在这篇文章中,我们将看到如何有效地使用history命令来提取用户在Bash shell中执行的命令。这可能对审计目的有用,或者在什么日期和时间找出执行什么命令。

默认情况下,执行history命令时不会看到日期和时间戳。但是,bash shell提供了用于编辑用户命令历史记录的CLI工具。让我们看看一些方便的技巧。

1.在Linux中列出最后/所有执行的命令

从终端执行简单的历史命令将向您显示最后执行的命令与行号的完整列表。



2.列出所有使用日期和时间戳的命令

如何根据命令查找日期和时间戳?使用带有变量的“export”命令将在命令执行时显示具有相应时间戳的history命令。


Bash Shell中的“history”的使用技巧【信安世纪(SecDriver)】


HISTTIMEFORMAT变量的含义

  • %F Equivalent to (%Y  - %m  - %d

  • %T Replaced by the time(%H:%M:%S)

  • 过滤历史记录中的命令

正如我们可以看到相同的命令是在上面的输出重复次数。如何在历史记录中过滤简单的或非破坏性的命令?通过在HISTIGNORE ='ls -l:pwd:date:'中指定使用以下' export '命令不会被系统保存,并且不会在history命令中显示。


Bash Shell中的“history”的使用技巧【信安世纪(SecDriver)】


4.忽略历史中的重复命令

使用以下命令可以帮助我们忽略用户创建的重复命令条目。如果用户在Bash提示符中多次执行相同的命令,则历史记录中只会显示单个条目。


Bash Shell中的“history”的使用技巧【信安世纪(SecDriver)】


5.取消设置export命令

取消设置导出命令。任何命令通过export命令导出,执行unset export命令。


Bash Shell中的“history”的使用技巧【信安世纪(SecDriver)】


6.永久保存export命令

在.bash_profile中进行如下输入以永久保存导出命令。


Bash Shell中的“history”的使用技巧【信安世纪(SecDriver)】


7.列出特定用户执行的命令

如何查看特定用户执行的命令历史。Bash将历史记录保存在'~/.bash_history'文件中。我们可以查看或打开文件来查看命令历史。


Bash Shell中的“history”的使用技巧【信安世纪(SecDriver)】


8.禁用存储命令历史记录

由于组织的安全策略,某些组织不会保留命令的历史记录。在这种情况下,我们可以编辑用户的.bash_profile文件(它是隐藏文件),并输入如下。


Bash Shell中的“history”的使用技巧【信安世纪(SecDriver)】


使用以下命令保存文件和加载更改。


Bash Shell中的“history”的使用技巧【信安世纪(SecDriver)】


注意:如果您不希望系统记住您键入的命令,只需执行以下命令即可暂停或停止录制历史记录。


Bash Shell中的“history”的使用技巧【信安世纪(SecDriver)】


提示:使用超级用户搜索' HISTSIZE '并在' / etc /profile'文件中编辑。文件的更改将在全局影响。

9.删除或清除命令历史记录

使用向上和向下箭头,我们可以看到以前使用过的命令,这可能是有帮助的,或者可能会使你愤怒。使用' -c '选项从bash历史列表中删除或清除所有条目。


Bash Shell中的“history”的使用技巧【信安世纪(SecDriver)】


10.使用Grep命令在历史记录中搜索命令

'grep'从' .bash_history ' 搜索命令,如下所示。例如,以下命令将从历史列表中搜索并找到“ pwd ”命令。


Bash Shell中的“history”的使用技巧【信安世纪(SecDriver)】


11.搜索最后执行的命令

使用“Ctrl + r”命令搜索以前执行的命令。找到您要查找的命令后,按“ Enter ”执行相同的操作,按“ esc”取消。


Bash Shell中的“history”的使用技巧【信安世纪(SecDriver)】


12.重新执行历史纪录中的命令

重新执行一个以前使用过的特定命令。结合Bang(!)和阿拉伯数字(例如!8)命令将执行您已执行的history中序号为8命令。


Bash Shell中的“history”的使用技巧【信安世纪(SecDriver)】


13.重新执行历史纪录中的具体命令

重新执行以前使用过的命令(例如netstat -np | grep 22),通过' !“和一些特定命令的前几位字母(例如!net)就可以了。



以上是关于Bash Shell中的“history”的使用技巧信安世纪(SecDriver)的主要内容,如果未能解决你的问题,请参考以下文章

第9章 Shell基础_Bash基本功能

shell:bash基本特性

Shell中Bash的基本功能

Bash基础特性-命令历史

[技术文章]Linux命令 第17节 history 显示shell命令历史

Linux命令:history命令历史的管理及用