有没有办法计算当前用户的 session 持续时间或 session 时长?
我知道使用 last
命令我们可以获得用户的登录和空闲时间,但是是否有直接命令或任何数学可以计算从现在到用户有时间已登录。
还有如何在提示中添加此 session 持续时间信息。我知道使用 export PS1
可以实现,但是要输入的参数是什么?
感谢任何帮助。谢谢。
最佳答案
在 Bash 中执行此操作的最简单方法是将其添加到您的 .bashrc 中:
PS1="\$SECONDS $PS1"
假设您还没有对 PS1 做任何奇特的事情,比如使用 PROMPT_COMMAND
或其他任何方式对其进行动态设置。您需要在 $SECONDS
之前加上反斜杠,以确保每次都对其进行评估。 (您也可以使用单引号,但也可能没有必要每次都计算 $PS1
。)
这只是给你一个简单的数字,代表 session 已经存在的秒数。对于更高级的格式,您将需要付出更多的努力。例如:
PROMPT_COMMAND='SESSIONTIME=$(printf "%02d:%02d:%02d" $(($SECONDS / 3600)) $(($SECONDS / 60 % 60)) $(($SECONDS % 60)))'
PS1="\$SESSIONTIME $PS1"
其他 shell 可能有 SECONDS
,但它们不会有 PROMPT_COMMAND
;例如,在 zsh 中,您可以通过定义一个 precmd
函数来完成同样的事情。阅读文档。
关于Linux - 计算 session 持续时间并将其添加到您的提示中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15364808/