karthick87 Asked: 2010-12-03 12:05:28 +0800 CST2010-12-03 12:05:28 +0800 CST 2010-12-03 12:05:28 +0800 CST 如何避免 .bash_history 中的重复条目 772 相同的命令一次又一次地列在我的历史记录中。我怎样才能避免这种情况?我知道这是可能的,HISTCONTROL但我还没有找到正确的方法。 bash history 6 个回答 Voted Best Answer Isaiah 2010-12-03T12:09:15+08:002010-12-03T12:09:15+08:00 从bash手册页: 历史控制 以冒号分隔的值列表,用于控制命令如何保存在历史列表中。如果值列表包括ignorespace,则以空格字符开头的行不会保存在历史列表中。值 ignoredups导致不保存与先前历史条目匹配的行。的值是 and 的ignoreboth简写 。一个值ignorespaceignoredupserasedups导致在保存该行之前从历史列表中删除与当前行匹配的所有先前行。任何不在上述列表中的值都将被忽略。如果 HISTCONTROL 未设置或不包含有效值,则 shell 解析器读取的所有行都保存在历史列表中,受 HISTIGNORE 值的限制。不测试多行复合命令的第二行和后续行,无论 HISTCONTROL 的值如何,都将其添加到历史记录中。 因此,将以下行放入您的~/.bashrc: export HISTCONTROL=ignoreboth:erasedups Oli 2010-12-03T12:10:02+08:002010-12-03T12:10:02+08:00 把它贴在你的~/.bashrc: export HISTCONTROL=ignoredups 您可以改为使用ignoreboth. 这是ignorespaces(以空格开头的命令)和ignoredups(重复)的简写。 我更喜欢ignoredups它自己,因为当我从网站复制命令时,我发现忽略前面有空格的命令的默认行为非常烦人,并且它没有被保存,因为我不小心也复制到了空格中......但是各有各的。 Nour Wolf 2015-09-01T07:44:34+08:002015-09-01T07:44:34+08:00 将其放入~/.bashrc将在不同的会话中应用@alvin 的解决方案 HISTCONTROL=ignoredups:erasedups shopt -s histappend PROMPT_COMMAND="history -n; history -w; history -c; history -r; $PROMPT_COMMAND" 资料来源:Linux:Bash 历史记录:“ignoredups”和“erasedups”设置与跨会话的公共历史记录冲突 jrg 2010-12-03T12:11:24+08:002010-12-03T12:11:24+08:00 将以下内容添加到您的~/.bashrc: export HISTCONTROL=ignoredups 为此,您可以使用以下命令: nano ~/.bashrc withoutasound 2010-12-03T18:29:39+08:002010-12-03T18:29:39+08:00 export HISTCONTROL=erasedups Zombo 2018-02-05T10:42:26+08:002018-02-05T10:42:26+08:00 唯一地记录每个新命令是很棘手的。首先,您需要添加 ~/.profile或类似: HISTCONTROL=erasedups PROMPT_COMMAND='history -w' 然后你需要添加到~/.bash_logout: history -a history -w
从
bash
手册页:因此,将以下行放入您的
~/.bashrc
:export HISTCONTROL=ignoreboth:erasedups
把它贴在你的
~/.bashrc
:您可以改为使用
ignoreboth
. 这是ignorespaces
(以空格开头的命令)和ignoredups
(重复)的简写。我更喜欢
ignoredups
它自己,因为当我从网站复制命令时,我发现忽略前面有空格的命令的默认行为非常烦人,并且它没有被保存,因为我不小心也复制到了空格中......但是各有各的。将其放入
~/.bashrc
将在不同的会话中应用@alvin 的解决方案资料来源:Linux:Bash 历史记录:“ignoredups”和“erasedups”设置与跨会话的公共历史记录冲突
将以下内容添加到您的
~/.bashrc
:为此,您可以使用以下命令:
唯一地记录每个新命令是很棘手的。首先,您需要添加
~/.profile
或类似:然后你需要添加到
~/.bash_logout
: