如何在 tcsh 中更方便地保存 shell 历史记录?

如何在 tcsh 中更方便地保存 shell 历史记录?

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

相关内容