问题
我更喜欢使用terminal,我在寻找一种在终端中查看时间的方法,
如果这是终端中的命令提示符:
saurav@saurav-P4I45Gx-PE:~$
然后我想将clock(time):
saurav@saurav-P4I45Gx-PE[06:27:01]:~$
或者
saurav@(06:27:01):~$
有什么方法可以做到?
答案1
如果要尝试,请使用以下步骤:
使用以下命令安装Z shell:
sudo apt-get install zsh
首次运行zsh
时,在询问时选择0
。
编辑~/.zshrc
文件,并添加以下行:
setopt PROMPT_SUBST
PROMPT='%B%F{red}%n@%m%f%F{yellow}[%D{%L:%M:%S}]%f:%F{blue}${${(%):-%~}}%f$ %b'
TMOUT=1
TRAPALRM() {
zle reset-prompt
}
保存该文件后关闭它。
在终端中,当你仍然使用zsh,运行source ~/.zshrc
或简单地运行zsh
来重置提示,现在你的提示应该是:
saurav@saurav-P4I45Gx-PE[1:25:21]:~$
一些颜色。
如果愿意,运行chsh -s /bin/zsh
将当前shell更改为/bin/zsh
(此更改生效需要re-login )。
如果要从zsh shell退出,请运行exit
。
以下是终端上的15秒屏幕录像:
答案2
如果要在终端中显示运行时间,可以使用以下命令,它将在终端的右上角显示时间。
while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-11));echo -e"e[31m`date +%r`e[39m";tput rc;done &
但是请注意,使用该命令显示时间有时会遮挡终端中的文本,小心使用该命令。
另一种方法是在PS1中使用控制字符
[guru@guru-pc ~]$ PS1='[u@h T w]$'
[guru@guru-pc 11:06:16 ~]$
但在这个方法中,你的时间只有在按下enter后才会刷新。
答案3
如果你想显示时钟,只需使用date
:
while :; do date +%r; sleep 1 ; done
它会每秒钟显示一次,直到你用CtrlC停止它,如果你想要它位于同一行(上面的每秒钟打印一行)上,请执行以下步骤:
while :; do printf '%sr'"$(date +%r)"; sleep 1 ; done
相关文章