我广泛使用 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}" )