有选择地删除 Windows 终端的命令历史记录

有选择地删除 Windows 终端的命令历史记录

我想有选择地删除 Windows 终端中的部分历史记录。历史记录是指过去在 Windows 终端中输入的命令。

如何才能做到这一点?

我正在使用 Windows 10,Windows Terminal 1.8.1521。

答案1

Windows 终端中的命令历史记录由您在其中使用的 shell 应用程序管理。

你没有提到你正在使用哪个 shell,但这里有几种可能性:

  • 如果您在 shell 中使用 WSL bash,则history -c清除当前 shell 实例的历史记录。删除该文件~/.bash_history将清除节省history -d <offset>先前会话的历史记录。您可以使用(history单独使用以查看偏移量)选择性地从当前会话中删除条目。

  • 如果你在 WSL 中使用 shell fish,则history clear两者都会清除当前 shell 历史记录删除过去的历史记录。 history delete ...可用于删除特定条目。请参阅man history下文fish了解更多信息。

  • 如果你使用 WSL zsh,这似乎有点复杂——我只会提供一个链接到单独的答案就此而言。

  • 如果您使用的是 PowerShell,则Clear-History可能会在特定会话中清除它。但是,如果您使用的是psreadline模块(这是大多数最新 PowerShell 版本的默认模块),则可能需要按Alt+ F7。要清除永久历史记录文件,您需要使用 找到它,Get-PSReadlineOption | select -expand historysavepath然后删除该文件。

  • 如果您正在使用CMDshell(“旧”的 Windows/DOS 兼容 shell),则Alt+F7将清除整个历史记录。CMD 不会永久存储历史记录文件,因此可能不需要删除任何项目。

    但是,如果您无论如何都想清理单个条目,您可以使用 打开历史记录弹出窗口,使用/F7选择一个项目,然后按将其删除。UpDownDelete

请注意,这一切都是指命令历史。Windows Terminal 中还有回滚缓冲区的概念。在 PowerShell 和大多数 WSL/Linux shell 中,该clear命令将清除该缓冲区。

相关内容