![如何在 tcsh 中更方便地保存 shell 历史记录?](https://linux22.com/image/1313860/%E5%A6%82%E4%BD%95%E5%9C%A8%20tcsh%20%E4%B8%AD%E6%9B%B4%E6%96%B9%E4%BE%BF%E5%9C%B0%E4%BF%9D%E5%AD%98%20shell%20%E5%8E%86%E5%8F%B2%E8%AE%B0%E5%BD%95%EF%BC%9F.png)
我广泛使用 tcsh,并且对它的历史有几个疑问:
- 有没有办法可以分别保存不同 shell 选项卡的命令?
- 有没有办法通过会话保存命令(例如:ssh otheruser@othercomputer)?
- 我可以将日期添加到 shell 历史记录中吗?(我知道这可以在 bash 中完成)
答案1
没有内置方法来单独或按会话保存命令历史记录。您必须根据每个实例设置“histfile”变量。这意味着您需要在您的环境中存在一些独特的东西,这些东西在获取 .tcshrc 文件时就已经存在了,或者在您的 .tcshrc 的最顶部添加代码来查找一些独特的值,这些值可能来自 tty 命令。
请注意,只在交互式 shell 中执行此操作,这样就不会不必要地减慢速度或使生成您可能意想不到的新 tcsh shell 的其他事情变得复杂。例如,如果您使用 vim 并执行任何 shell 命令,则 tty 命令将不起作用。
我通常使用 prompt3 方法...
if ( $?prompt3 ) then
#
# interactive-only things...
#
endif
对于单独的历史,可能能够摆脱类似以下的情况:
set mytty = ( `tty` )
set histfile = ( ".history.${mytty}" )