将命令输出保存到Bash历史记录

4
有没有方法来黑进bash,拦截并保存它执行的每个命令的输出结果?

如何使用bash | tee bash.out? - Vaughn Cato
它会使您的历史记录快速变得冗余。 - ДМИТРИЙ МАЛИКОВ
这对于学校的安全课程可能会很有趣。 - Ярослав Рахматуллин
最终我使用了黑客技巧修改了我的.emacs_bash文件,以便每次启动shell时运行脚本。看起来每周增长约1GB,足够低以保留所有历史记录。 - Yaroslav Bulatov
2个回答

1

0

我仔细考虑了一下,最简单的形式就是这样:

$ cat clone 
#! /bin/bash
bash -i |tee >(cat >>/tmp/bash.log.$$)
# $ vim clone 
# Vim: Warning: Output is not to a terminal

$ ./clone  
$ du -sb /tmp/bash.log.9609 
29  /tmp/bash.log.9609
109 /tmp/bash.log.9609
161 /tmp/bash.log.9609
213 /tmp/bash.log.9609

为什么要使用 tee >(cat >>/tmp/bash.log.$$)tee -a /tmp/bash.log.$$ 不是也能达到同样的效果吗? - holgero

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接