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

Jan*_*zny 78 bash

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

dev*_*av2 87

将此行添加到~/.bashrc文件中:

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

所以输出将类似于:

[07:00:31] user@name:~$
Run Code Online (Sandbox Code Playgroud)

  • 这与我的终端包装有关,所以我使用了 [here](http://bneijt.nl/blog/post/add-a-timestamp-to-your-bash-prompt/) 详述的方法。它只是将 '\D{%T}' 添加到您的 PS1 (9认同)
  • 对于 ```date``` 命令,您可以将 ```+%H:%M:%S``` 替换为 ```+%T```。 (6认同)
  • @devav2:有没有办法指定时区? (3认同)

dog*_*ato 42

我的解决方案是使用http://bashrcgenerator.com/生成此 PS1 行以放入 .bashrc:

export PS1="\t [\u@\h \W]\\$ \[$(tput sgr0)\]"
Run Code Online (Sandbox Code Playgroud)

哪个看起来像

13:05:54 [chad@work-laptop:~/Downloads]$ ls -al
Run Code Online (Sandbox Code Playgroud)

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

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

并且无法编辑此行,因为它没有在正确的位置显示字符,因为您没有在看起来正在输入的位置进行输入。

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

  • 此处的链接非常适合进一步定制印章。 (2认同)

小智 15

而不是添加日期的提示本身,你可以添加日期之前只是通过将下面一行提示符你的.bashrc。对于它的工作,您还需要安装cowsay. 这是一种在保持简短提示的同时显示日期的有趣方式:

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

在当前形式下,它可以在任何人的系统上工作而无需修改,因为它从当前环境中读取$USERdate变量。

在此处输入图片说明

  • 将它放在提示中的目的是知道上次执行特定命令是什么时候。 (15认同)

Dmi*_*mov 8

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

    PS1='\D{%F} \t $...'
Run Code Online (Sandbox Code Playgroud)

在哪里

\D{format}日期格式(参见man bash提示部分)为

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

\t是 24 小时制 HH:MM:SS 格式的当前时间(请参阅man bash“提示”部分)

nano ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

如上所示更改 PS1 变量

source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)

  • 这是对我有用的答案。许多其他问题似乎会导致问题,即在使用向上键复制、粘贴或选择最近的命令时,光标偶尔会与某些提示字符重叠。 (2认同)

Avl*_*xis 7

由于我没有足够的声望点来为答案添加评论以改进它。似乎我可以添加信息的唯一方法是创建第二个答案。所以,我将重复刚才所说的作为答案并以此为基础。

编辑要为其修改日期戳的用户的 .bashrc 文件。

如果您看到“user@host:~$”,您就在当前用户的主目录中。.bashrc 文件是一个隐藏文件,因为它以点“.”为前缀。要在列表中查看它,您需要使用一个长列表。

您可以使用“ls -a”,然后您应该会看到“.bashrc”文件。

使用文本编辑器编辑文件。例如,“nano .bashrc”、“vim .bashrc”、“vi .bashrc”、“pico .bashrc”或您想使用的任何编辑器。

如果您想为此编写脚本并计划将其添加到许多用户的许多 shell 中,将“echo”命令与附加“>>”运算符结合使用可能会有所帮助。例如,

echo "export PROMPT_COMMAND="echo -n \[\$(date +%H:%M:%S)\]\\"" >> .bashrc
Run Code Online (Sandbox Code Playgroud)

如果您使用该方法,请确保您位于要为其修改它的用户的当前工作目录中。要检查这一点,您可以使用“pwd”或打印工作目录命令。

如果你不喜欢“]”结束括号和用户名之间的额外空间,只需使用这个稍微修改过的正则表达式:

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

如果您直接编辑文件,请使用此选项。