如何为同一用户的不同会话拥有单独的命令历史记录?

Hem*_*ant 8 command-line ksh tcsh command-history

我在一些 Unix 服务器上遇到了这个问题。当我为同一用户打开不同的会话时,所有会话都共享命令历史记录。如果我误按Ctrl-Pup arrow只是按 Enter,则会产生问题。有一次,我rm -rf *幸运地最终运行了我在没有权限删除文件的目录中。

如何为同一用户的不同会话拥有单独的命令历史记录?大多数时候我使用 ksh 和 tcsh shell。

Ger*_*ert 11

您可以添加HISTFILE=~/.hist$$到您的.profile. 这应该为每个会话生成一个唯一的文件。

你最终会得到很多,.hist*所以我建议你偶尔删除它们。


the*_*ive 8

来自ksh 常见问题解答

一季度。如何为 shell 获取单独的历史文件?

A1. ksh 为使用相同历史文件名的所有 shell 使用共享历史文件。这意味着在一个窗口中输入的命令将被其他窗口中的 shell 看到。要获得单独的窗口,需要在创建第一个历史命令之前将 HISTFILE 变量设置为不同的名称。