如何在 Unix 中检查用户命令历史记录?

13 linux unix terminal bash history

我知道 'history' 命令会给我一个我在 Unix 终端中输入的命令的列表。

如何查看当前登录系统的所有用户的命令历史记录?

Ian*_*anH 11

您将获得当前登录用户的列表/var/run/utmp(请参阅 参考资料man 5 utmp)。历史记录存储在 ~/.history 中,或者为 bash 用户存储在 ~/.bash_history 中。其他 shell 可能使用其他历史文件,因此获取真正的所有信息并不容易。

此外,如果用户多次登录,.bash_history 文件并不总是可靠的。

要读取utmp文件,有一个名为 的“前端” who,因此您还可以编写一个 shell 脚本来遍历当前登录的用户。

  • 当前历史记录保存在内存中。历史文件只显示使用 `history -a` 或类似方法或用户退出 shell 时写入的内容。 (2认同)
  • 请注意,此答案中给出的文件名只是默认值。每个用户都可以设置自己的位置(参见 Joy 的回答)。如果用户使用不同的 shell,他们可以想象将他们的历史存储在不同的非默认位置(例如 ~/mybashhist、~/histories/ksh 或其他类似的位置)。另外,请注意,像这样偷看用户数据可能会产生法律影响。 (2认同)