为 Zsh 上的每一行添加时间戳
Posted
技术标签:
【中文标题】为 Zsh 上的每一行添加时间戳【英文标题】:Adding timestamp to each line on Zsh 【发布时间】:2017-02-25 20:35:30 【问题描述】:我刚刚安装了 Sierra,想将 zsh 与 oh-my-zsh 和 power shell 一起使用...
我最终得到了这样的终端:
但我想为每个输出添加一个时间戳。东西链接:
[14:23] acytryn ~ Projects %
有没有办法用 zsh 做到这一点?
【问题讨论】:
【参考方案1】:我发现在不完全覆盖现有提示的情况下实际将时间预先添加到现有提示中更具非破坏性。这使它可以与任何现有主题一起使用,而不会影响其样式。
将此添加到您的 .zshrc
文件的末尾。您可以键入命令nano ~/.zshrc
使用nano
对其进行编辑:
PROMPT='%$fg[yellow]%[%D%f/%m/%y %D%L:%M:%S] '$PROMPT
我使用云主题,所以这给了我:
它保留当前主题。您还可以通过更改颜色甚至格式来为时间戳添加一些样式。
确保通过键入以下内容重新加载您的 .zshrc
文件:
. ~/.zshrc
或
source ~/.zshrc
【讨论】:
如何把这个放在屏幕的右边? @ZulhilmiZainudin 从这篇文章看来,这可能是一项相当大的工作:superuser.com/questions/187455/right-align-part-of-prompt。您可以从那里的答案中尝试一些东西,看看它是否适合您。不过我还没有尝试过 太棒了。按预期工作。谢谢。 如果你只想要一个 24 小时的时间戳,你可以使用这个PROMPT='%$fg[yellow]%[%D%T] '$PROMPT
稍微简化一下:可以去掉中间的 %D
部分。所以你会有PROMPT='%$fg[yellow]%[%D%f/%m/%y %L:%M:%S] '$PROMPT
。这种方式对我有用。【参考方案2】:
如果你想要它在右侧:
RPROMPT="[%D%f/%m/%y | %D%L:%M:%S]"
https://gist.github.com/zulhfreelancer/9c410cad5efa9c5f7c74cd0849765865
【讨论】:
【参考方案3】:将此添加到 ~/.zsh
文件的底部:
PROMPT='[%T] %n ~ %d %%'
【讨论】:
我没有 .zsh 文件...应该在 .zshrc 上吗? (反正也没用) 当你说“它还是没用”时,什么没用?把它放在 .zshrc 中,甚至在你的 zsh shell 中输入“PROMPT='[%T] %n ~ %d %%'
”来试试?
我添加到 .zshrc 文件的最后一个文件,运行 source ~/.zshrc
但没有任何改变。我正在使用 powerline-shell,我不知道这是否会以某种方式干扰。此外,直接将其粘贴到提示中没有输出
powerline-shell 使用precmd
函数在显示之前动态设置PROMPT
的值。您需要按照github.com/banga/powerline-shell 的说明修改您的提示。【参考方案4】:
是的。
只需打开您的 ~/.zshrc
并在其末尾添加这一行(例如,在终端中使用 nano ~/.zshrc
命令):
PROMPT='%$fg[yellow]%[%*] '$PROMPT
你会得到这样的:
您可以更改[%*]
部分以获得其他格式:
%D The date in yy-mm-dd format.
%T Current time of day, in 24-hour format.
%t %@ Current time of day, in 12-hour, am/pm format.
%* Current time of day in 24-hour format, with seconds.
%w The date in day-dd format.
%W The date in mm/dd/yy format.
【讨论】:
以上是关于为 Zsh 上的每一行添加时间戳的主要内容,如果未能解决你的问题,请参考以下文章
从 Windows cmd 向 telnet 会话日志的每一行添加时间戳
使用 Pandas 的两个时间戳之间的每小时时间序列(以分钟为单位)
遍历 Float 时间戳的 Pandas DataFrame 并转换为日期时间