我想知道是否可以在终端提示中添加时间戳,如果可以,我该如何实现?
答案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 bash
PROMPTING 部分)是否为
%F
完整日期;与 %Y-%m-%d 相同(请参阅man date
格式部分),以及
\t
是 24 小时 HH:MM:SS 格式的当前时间(请参阅man bash
PROMPTING 部分)
nano ~/.bashrc
对 PS1 变量进行如上所示更改
source ~/.bashrc