Ser*_*nyy 12
该history在建bash允许当用于指定文件名-anrw的标志,并-a从标志说明help history状态:
将此会话的历史行附加到历史文件中
因此,我们可以这样做:
~$ history -a this_session.history
~$ cat ./this_session.history
history mysession.history
cat mysession.history
clear
history -a this_session.history
Run Code Online (Sandbox Code Playgroud)
对于记录,-w(write history to file 选项) 将整个历史写入指定的文件,因此-a(append) 这里是首选。
还有其他手动方式。特别是ksh没有-a标志作为bash做,但什么ksh 和mksh做的有是HISTFILE环境变量(和bash有,也因为bash包含大量的ksh功能); 顺便说一下,这个变量默认没有设置(至少mksh在 Ubuntu 上没有设置)。因此,为了将当前会话输出到其他文件,我们调用HISTFILEprepended to command 这在 shell 语法中意味着使用您指定的附加环境变量运行命令。像这样:
bash-4.4$ HISTFILE='mykshfile.hist' ksh
$ echo 'Hello'
Hello
$ echo 'World'
World
$
bash-4.4$ cat ./mykshfile.hist
?echo 'Hello'
echo 'World'
Run Code Online (Sandbox Code Playgroud)
您还可以从中看到ksh,它及其相关的 shell 输出带有特殊字符的历史记录,而不是像这样输出纯文本bash。因此,您可能希望使用ksh.
至于 Ubuntu 上的POSIX /bin/shshell,即 Debian Almquist Shell 或 Dash,存在fc内置的. 然而,在Ubuntu破折号编译没有LIB-编辑,这是由Ubuntu的开发性能方面的原因有意识的选择,所以fc和需要行编辑其他模式 不箱子的工作了(除非重新编译dash自己和安装lib-edit)。
Shell中立的方法是使用现有工具记录您的会话 或编写您自己的函数以基于每个命令进行记录。
| 归档时间: |
|
| 查看次数: |
1375 次 |
| 最近记录: |