Ben*_*ird 12 bash command-history
通过向上按,我可以查看以前输入的命令。我注意到,如果我修改其中一个,就会改变历史。例如,如果我输入:
echo a
echo b
echo c
[up][up][backspace]d[ctrl+c]
Run Code Online (Sandbox Code Playgroud)
历史现在显示第二个命令是echo d,不是echo b。如何保持echo b历史第一?
例如,假设我运行了一个非常长的命令,有很多选项。然后我想再次运行它,稍作改动,所以我回顾历史以找到它,进行更改,但后来意识到实际上我不需要重新运行它,只是想到了另一个选择来代替。然后,我想回去提醒自己我运行的命令是什么 - 但是等等,历史现在显示错误的东西!
这种情况很少出现,但一旦出现,我就觉得很烦人。有没有办法自动保留原始历史记录?
尝试放入你的 ~/.inputrc
set revert-all-at-newline on
Run Code Online (Sandbox Code Playgroud)
在某些情况下,您可以在默认值 (Off) 中找到它。
它应该readline在accept-line执行时返回之前强制撤消对历史行的所有更改。(更多信息在man bash)。
编辑:
CTRL+c并且set revert-all-at-newline on从bash-4.3.30.
# GNU bash, version 4.3.30(1)-release
# Emacs-mode
echo c
[up][backspace]d[Ctrl+c][up] # you should see echo c
Run Code Online (Sandbox Code Playgroud)
但:
echo c
[up][backspace]d[down][Ctrl+r]echo[Ctrl+j][Ctrl+c][up] # you should see echo d
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2084 次 |
| 最近记录: |