Mic*_*ant 6 bash command-history
我喜欢我的 bash 历史。有时我发出了很长的命令,我真的依赖我的 bash 历史来快速恢复它们。我增加了我的历史记录大小:
HISTSIZE=100000
HISTFILESIZE=200000
Run Code Online (Sandbox Code Playgroud)
在我的 .bashrc 中
我也有别名:
alias h='history | tail'
alias hg='history | grep'
Run Code Online (Sandbox Code Playgroud)
这让我可以做h
,hg some_text
这真的很方便
我的问题是:我可以将此历史文件移动到新机器上吗?例如我的机器最近崩溃了,我不得不重建它。我是否会遇到任何问题,将不同的 .history 文件放入其中,可能会替换已经存在的文件。我是否需要确保替换它,或者我实际上可以将两个历史文件附加在一起而没有问题?
是的。您可以将旧的历史文件复制到新安装。您也可以将其与旧/新合并。
HISTTIMEFORMAT
设置历史文件只保存命令。如果设置了它,则每个命令都有一个以哈希开头的时间戳:
#1122334455
command1
#1122334459
command2
Run Code Online (Sandbox Code Playgroud)但是请注意,如果您发出例如:
$ echo 'foo
> bar
> baz' >> some_file
Run Code Online (Sandbox Code Playgroud)
它将被保存为:
#1122334459
echo 'foo
bar
baz' >> some_file
Run Code Online (Sandbox Code Playgroud)
但是history
要显示:
4 CMD_TIME echo 'foo
5 CUR_TIME bar
6 CUR_TIME baz' >> some_file
Run Code Online (Sandbox Code Playgroud)
命令如:
$ foo | \
bar | \
baz
Run Code Online (Sandbox Code Playgroud)
如果您设置shopt -s cmdhist
.
我使用各种但经常是这样的:
HISTSIZE=500000
HISTFILESIZE=500000
# Ignore dupes and space commands
HISTCONTROL=ignoreboth
# Save and show timestamps
HISTTIMEFORMAT='%F %T '
# append to the history file, don't overwrite it
shopt -s histappend
# Save and reload the history after each command finishes
# This one I have a function to turn on/off. Effect is that commands are
# accessible in all terminals after execution.
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
Run Code Online (Sandbox Code Playgroud)
我还定期备份历史文件,并有一些脚本和别名来搜索历史——甚至可以追溯到很多年前。有时我记得我做了一些类似于我 1.5 年前现在正在做的事情,并且可以快速查找历史。
至于时间戳,我使用了两种变体。history
通过临时设置HISTTIMEFORMAT
为“”显示带有时间戳和另一个没有显示的节目。
如果时间戳缺少当前时间(大约),则使用。如果存在时间戳,则历史按时间排序。
因此:
.bash_history
(时间戳简化)
#timestamp 000012
some command
#timestamp 000002
some other command
$ history
1 13 aug 2013 10:44 some other command
2 13 aug 2013 12:13 some command
Run Code Online (Sandbox Code Playgroud)
然而,相信排序的历史文件更有效是合理的(bash 不必进行任何改组)。
至于查找Ctrl-R通常很有用。对于其他事情,请查看例如操作历史的命令、事件指示符、一些杂项命令等。
归档时间: |
|
查看次数: |
2158 次 |
最近记录: |