bash - history -c 不会将 $HISTCMD 重置为 1
问题描述
TL;DR:如果您的历史记录开始截断(例如,您的历史记录HISTSIZE
为 400,但您输入的命令太多以至于历史记录编号为 500),则重置历史记录history -c
将清除HISTSIZE
或减少历史记录中的行数,并从中减去那么多行您的历史编号,但不会将其重置为 0(在示例中,它将重置为 100)。如何将历史编号完全重置为 0?
我知道这属于 Unix 和 Linux。我在8 月 16 日把它贴在那里,没有人能够回答,所以我把它贴在这里,希望其他人,查尔斯或 chepner 可以提供帮助。
Bash 4.2(以及 4.4)。我希望我的历史编号低于 4 位数。相关的 bashrc 部分:
HISTSIZE=99
HISTFILESIZE=100
#ignores back-to-back duplicate commands, not those that start with a space
HISTCONTROL=ignoredups
#ignore commands fewer than 5 characters long because we can type those
HISTIGNORE="?:??:???:????:?????:history"
history
在 PS1 中或在 PS1中看到的历史编号\!
显然会超出这些值。我希望能够在历史编号超过 1,000 时将其重置为 ~100。
history -c
清除终端历史记录,但这只会将历史记录数减少它清除的命令数量,例如:
j:~$ history | wc -l
99
j:~$ echo $HISTFILESIZE
100
j:~$ echo $HISTCMD
1203
j:~$ history -c
j:~$ echo $HISTCMD
1106
那么...如何将历史编号降低到较小的数字,例如$HIST(FILE)SIZE
. 这是在 tmux 会话中,但我认为这无关紧要。
没有一个解决方案提供了工作。这是他们所做的set -x
:
解决方案
推荐阅读
- pyspark - 从数据块 DBFS 中删除记录
- firebase - 无效参数:在 URI 文件中未指定主机:///
- git - 每次提交后保持工作树/分支与 master 同步
- c# - 在 if-else 子句中跳过公共交通状态
- ecmascript-6 - 并行调用多个异步函数,但在一个特定的异步完成后继续
- python - 使用 Django 运行 collectstatic 时出错
- c++ - 在 main() 中打印双向链表的行为与使用外部函数打印它的行为不同
- javascript - 如果 JS 中有两个或多个相等的值,我需要返回一个工作日数组
- c++ - vcpkg 如何处理依赖于其他库的特定版本的库?
- android - ImageView 不在 MaterialCardView 的边界内