在命令提示前的终端中,如何显示正在运行的时钟

分享于 

3分钟阅读

ubuntu

  繁體

问题

我更喜欢使用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秒屏幕录像:

    running clock in terminal before the command prompt


  • 答案2

    如果要在终端中显示运行时间,可以使用以下命令,它将在终端的右上角显示时间。

    
     while sleep 1;do tput sc;tput cup 0 $(($(tput cols)-11));echo -e"e[31m`date +%r`e[39m";tput rc;done &
    
    
    
    

    enter image description here

    但是请注意,使用该命令显示时间有时会遮挡终端中的文本,小心使用该命令。

    另一种方法是在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
    
    
    
    


    COM  COMM  Comma  显示  TERM  终端  
    相关文章