如何从终端删除已保存的命令?


16

众所周知,Mac OS X在终端本身中存储了从终端运行的所有命令,但是,我想从终端中删除(例如)最后3个命令。我怎样才能做到这一点?

Answers:


12

Mac OS不会在任何地方存储任何内容。

bash在终端中运行的shell确实存储了命令历史记录。

终端命令历史记录存储在用户目录中的隐藏文件中,该文件名为 .bash_history

这意味着文件是: /Users/{username}/.bash_history

您必须启用“显示系统文件”才能看到它(从finder的“查看”菜单中)。

该文件只是您在shell中键入的所有内容的文本列表。您可以在TextEdit或您选择的编辑器中打开它。


Terminal.app进行更改之前,您可能应该关闭刷新所有最近的更改到文件中,否则它可能会从Terminal.app内存中的版本中被覆盖。


2
命令不是动态存储的,而是仅在shell退出或提示退出时存储(例如history -ahistory -w)。通常,文件中还没有最后一个命令。
Matteo

糟糕,我的意思是说您可能应该在编辑此文件之前关闭terminal.app的所有实例。固定。
假名称

19

它不是Mac OS功能,而是外壳程序功能。假设您正在使用bash(默认设置):

  • 命令历史记录存储在内存中,并保存在文件中(通常为~/.bash_history
  • 您可以使用以下history命令列出和编辑历史记录

使用man bash(在本SHELL BUILTIN COMMANDS节中),您将找到不同选项的描述。

您可以:

  • 列出历史记录条目

    $ history
  • 删除整个历史

    $ history -c
  • 删除给定的条目

    $ history -d offset

这两个答案都是正确的,我选择了最早的一个..谢谢您兄弟..
2011年

它说,在执行历史记录-c时fc: event not found: -c。然后,我手动打开文件,删除了内容。Closed and reopened the terminal历史不存在。
好奇的

2

对于Mac Terminal用户

使用以下命令删除bash命令历史记录 $ echo '' > ~/.bash_history

对于Mac zsh用户

使用以下命令删除zsh命令历史记录 $ echo ''> ~/.zsh_hostory


请注意,这将删除整个历史记录,而不仅仅是最后三行。
约翰N

0

除了“文本编辑”之外,如果您是老学校,请使用“ vi”编辑文件并删除令人反感的命令。相似的命令行编辑器是 emacs (与OS X共享编辑快捷方式)nano (简化了导航和直观的帮助,帮助您无需参考表即可保存和退出编辑器)


1
可以通过接受的答案中的“您可以在TextEdit 或您选择的编辑器中打开它”来解决。
约翰N

我们希望答案独立存在。现在,它不仅仅是评论,还是答案,您可以至少添加要编辑的文件名吗?
nohillside
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.