在终端提示中添加时间戳?

在终端提示中添加时间戳?

我想知道是否可以在终端提示中添加时间戳,如果可以,我该如何实现?

答案1

将这一行添加到文件~/.bashrc

export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\ "

因此输出将是这样的:

[07:00:31] user@name:~$

答案2

我的解决方案是使用https://web.archive.org/web/20230223161706/https://bashrcgenerator.com/生成此 PS1 行并输入.bashrc

export PS1="\t [\u@\h \W]\\$ \[$(tput sgr0)\]"

看起来会像这样:

13:05:54 [chad@work-laptop:~/Downloads]$ ls -al

对我来说,使用PROMPT_COMMAND会弄乱历史记录。当在历史记录中循环出现更长的行时,它会将提示的末尾截断为与添加到前面的时间戳相同的字符数。

例如:

13:14:38 [chad@work-laptop:~/Doexport PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\\] "

此行无法编辑,因为它没有在正确的位置显示字符,就像您没有在看起来正在键入的地方键入内容一样。

PROMPT_COMMAND我猜想它可以通过使用那部分来完成\[$(tput sgr0)\],但 PS1 可以工作。

答案3

除了将日期添加到提示本身之外,您还可以添加日期就在之前通过在提示符处放置以下行顶部你的.bashrc。要让它工作,你还需要安装cowsay。这是一种显示日期的有趣方式,同时保持短的迅速的:

cowsay "Welcome $USER! It's now $(date '+%A %B %d %Y %r')"

在其当前形式下,它可以在任何人的系统上运行而无需修改,因为它从当前环境中读取$USER和变量。date

在此处输入图片描述

答案4

在命令提示符中显示时间戳的最简单的语法可能是:

    PS1='\D{%F} \t $...'

在哪里

\D{format}日期格式(请参阅man bashPROMPTING 部分)是否为

%F完整日期;与 %Y-%m-%d 相同(请参阅man date格式部分),以及

\t是 24 小时 HH:MM:SS 格式的当前时间(请参阅man bashPROMPTING 部分)

nano ~/.bashrc

对 PS1 变量进行如上所示更改

source ~/.bashrc

相关内容