打印和查询命令历史以查找特定的过去命令

目录:

Anonim

如果您试图记住通过终端执行的确切命令,但不能完全想出它,您可以查询命令行历史记录以发现已运行或执行的旧命令在过去。

这个查找和检索先前在命令行中执行的命令的技巧适用于 Mac OS、Mac OS X 以及 linux 和其他 unix 操作系统。任何具有标准历史命令的东西都可以使用这个技巧来检索以前的命令,使其成为系统管理员和命令行用户的宝贵工具。

如何从Mac OS 的命令历史记录中查找特定命令

要跟踪特定命令的命令历史记录,您需要打开终端应用程序,然后使用以下语法:

"

history |grep搜索字符串"

这将在您的命令历史记录中查找“搜索字符串”,并且仅打印回包含搜索文本的实例。

如果您不熟悉终端并且想知道为什么这可能有用,让我们举个例子。

示例:搜索过去的“默认”命令这是一个实际示例:我试图回忆起默认写入命令的确切语法我最近使用的。默认命令通常是一长串文本,用于修改 Mac OS X 或某些应用程序的行为,因为它们的长度和晦涩难懂,至少可以说,试图记住其中的一个是很有挑战性的。

我没有点击向上箭头滚动浏览过去的执行,而是使用以下命令将我的命令历史记录缩小到只有“默认写入”的东西:

"

历史 | grep 默认写"

这会通过 grep 传递广泛的“历史”命令的结果,以仅查找在命令字符串中包含“defaults write”的实例,您将看到类似于以下内容的结果列表:

"

$ history |grep defaults write 44 defaults write com.apple.iTunes full-window -1 51 defaults write com.apple.iTunes invertStoreLinks -bool YES 421 defaults write com.apple.FaceTime AutoAcceptInvitesFrom -array-add [email protected] 426 默认写入 com.twitter.twitter-mac ESCClosesComposeWindow -bool true 427 默认写入 com.twitter.twitter-mac ESCClosesComposeWindow -bool false 428 默认写入 com.apple。应用商店 ShowDebugMenu -bool true "

现在您不再搜索整个历史列表,而是缩小了结果范围。

优化命令历史搜索细节

您可以根据需要将历史搜索设置为特定或不特定。例如,如果我知道我正在寻找的与 com.apple.iTunes 相关的默认命令,我可以使用以下命令进一步优化我的搜索:

"

history |grep 默认写入com.apple.iTunes"

Which会返回类似的东西:

44 默认写入com.apple.iTunes 全窗口-1 51 默认写入com.apple.iTunes invertStoreLinks -bool YES

自己试试吧。您可以使用通过终端输入的任何命令执行此操作,因为所有最近执行的命令都存储在您的历史记录中。 defaults 命令是特定于 Mac OS X 的,但 history 和 grep 是 unix 世界通用的工具,因此如果您曾经使用过 linux 机器或其他设备,则可以使用相同的技术。

如果您喜欢了解 Mac OS X 的基础知识,请查看我们的命令行提示。

打印和查询命令历史以查找特定的过去命令