當前位置: 首頁>>技術教程>>正文


如何在命令提示符前在終端中顯示運行時鍾

,

問題描述

我更喜歡使用終端,並花費大部分時間使用它。我正在尋找一種在終端並行使用時查看時間的方法。時間過後,時間會自動更改。如果它顯示在我的命令提示符下,那就太棒了。

如果這是我在終端中的命令提示符:

saurav@saurav-P4I45Gx-PE:~$

然後我想將時鍾(時間)視為:

saurav@saurav-P4I45Gx-PE[06:27:01]:~$

要麽

saurav@(06:27:01):~$

或其他任何格式。其中06:27:01是時間。我想要的隻是顯示經過幾秒鍾後發生變化的時間。

那麽有什麽辦法可以做到這一點?

最佳回答

我不確定使用默認的bash shell來實現這一目標是如此簡單(但是我並不是說這是不可能的)。您可能需要一個命令/功能,該命令/功能能夠每秒刷新命令提示符,而不會幹擾您在提示符下鍵入的任何內容。

Z shell (zsh)有一個名為zle的內置命令,與reset-prompt參數一起使用時,該命令將強製提示符為re-expanded,然後重新顯示編輯緩衝區。

如果要嘗試,請執行以下步驟:

  1. 使用以下命令安裝Z shell:

    sudo apt-get install zsh
    
  2. 首次運行zsh時,係統提示您選擇0

  3. 編輯~/.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
    }
    

    保存文件並關閉它。

  4. 在終端中,當您仍在使用zsh時,請運行source ~/.zshrc或簡單地zsh來重置提示。現在您的提示應如下所示:

    saurav@saurav-P4I45Gx-PE[1:25:21]:~$
    

    有一些顏色。

  5. 如果喜歡,請運行chsh -s /bin/zsh將當前的 shell 程序更改為/bin/zsh(要使此更改生效,必須使用re-login)。

  6. 如果要從zsh shell退出,請運行exit

這是我的終端上的15秒截屏視頻:

次佳回答

如果要在終端中顯示運行時間,可以使用此命令。它會在終端的右上方顯示時間。

  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鍵後才會刷新。

如果要永久使用上述方法,請在~.bashrc文件中添加上述命令(您喜歡的一個或兩個)。

第三種回答

如果您隻想顯示時鍾,請使用date

while :; do date +%r; sleep 1 ; done

這將每秒顯示一次時間,直到您使用Ctrl C停止為止。如果您希望它在同一行上(上麵的代碼每秒鍾將打印一條新行),請執行以下操作:

while :; do printf '%s\r' "$(date +%r)"; sleep 1 ; done

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/8325.html,未經允許,請勿轉載。