我对bash历史有疑问。
假设我用history | grep forever
称呼历史记录。
然后,所有以前包含永久命令的命令都会显示相应的数字。
如果我现在执行其中一个命令及其相应的编号(例如!2121
),则会调用与历史记录不同的命令,而不是与该编号关联的命令。我做错了什么?
如果我在没有按照预期的方式执行bang-execution的情况下调用历史记录。
THX
可怕的例子:
...
1742 forever stop 0
1743 forever -o out.log -e err.log start -c nodemon hotnews.js
1784 forever list
1814 forever list
2496 forever -o out.log -e err.log start -c nodemon hotnews.js
2498 forever -o out.log -e err.log start -c nodemon hotnews.js
2957 forever -o out.log -e err.log start -c nodemon hotnews.js
3292 forever -o out.log -e err.log start -c nodemon hotnews.js
3452 forever -o out.log -e err.log start -c nodemon hotnews.js
3603 forever -o out.log -e err.log start -c nodemon hotnews.js
3614 history | grep forever
[~]$ !1784
npm uninstall express-flash
npm WARN uninstall not installed in /home/development/node_modules: "express-flash"
[~]$
编辑:
我记得我在.bashrc中更改了我的历史记录属性:
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
export HISTCONTROL=ignoreboth:erasedups
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
export HISTSIZE=100000
export HISTFILESIZE=100000
# ignoriert einfache Befehle wie cd
export HISTIGNORE='cd:ls:bg:fg:history'
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
这些条目是否有些错误?
答案 0 :(得分:0)
你可能有一些空白行或其他愚蠢的东西.bash_history。 尝试找类似的东西:
history | tr -d '[:blank:]' > foo
cat -n .bash_history | tr -d '[:blank:] > bar
diff foo bar