pee*_*eep 6 linux ssh terminal
我需要列出在“ssh 会话”中执行的所有命令。我使用多个 ssh 会话登录到远程服务器。因此,当我从一个会话注销时,我需要获取在该会话中执行的命令。
有什么选择吗?
如果您在远程服务器上运行 bash,它会为您保留历史记录,您可以使用该history
命令检索该历史记录。
如果编辑 ~/.bash_profile 以包含以下行:
export HISTTIMEFORMAT="%h/%d -- %H:%M:%S "
Run Code Online (Sandbox Code Playgroud)
您的历史记录也将有时间戳(以便更轻松地确定您在当前会话中运行的内容以及古代历史记录)。
当 bash 关闭时,它将运行您的~/.bash_logut
脚本。如果您制作此脚本的最后一行:
history
Run Code Online (Sandbox Code Playgroud)
当您关闭连接时,您对您脱口而出的最后一件事将是您的历史记录 - 不幸的是,不仅来自当前会话,而且时间戳应该可以帮助您确定哪些命令来自当前会话,哪些命令是旧的.
如果您不介意在会话之间丢失远程机器上的历史记录,您可以添加
unset HISTFILE
Run Code Online (Sandbox Code Playgroud)
到您的登录脚本。当未设置 HISTFILE 时,bash 不会将历史记录保存到文件中。这意味着history
在注销时运行的 只能向您显示当前会话。
小智 0
使用 PuTTY(或其他 ssh 客户端),您可以将其配置为“保存”所有会话信息。
在腻子中:
Session --> Login --> Session Login --> All session output
Run Code Online (Sandbox Code Playgroud)
另一种选择可能是执行命令
# history >> history.log
Run Code Online (Sandbox Code Playgroud)
在离开 ssh 会话并下载history.log
文件之前
这将列出最后执行的命令。
您甚至可以让历史记录知道要记住多少命令
# vi ~/.bash_profile
HISTSIZE=450
HISTFILESIZE=450
Run Code Online (Sandbox Code Playgroud)
希望有帮助
归档时间: |
|
查看次数: |
22970 次 |
最近记录: |