當登入伺服器時,我希望在 bash 提示字元上顯示時間,這樣當我檢查之前所做的事情時,我可以看到我是在什麼時間做的。我認為在嘗試調試時這是一個特別有用的功能。
它可以看起來像這樣:
[root@server 11:46:02 ~]# ls
file1 file2
[root@server 11:47:50 ~]# whoami
root
我發現我可以用以下方法做到這一點ssh
:
ssh root@server -t "export PS1='[\u@\h $(date +%H:%M:%S) \W]\$ '; exec bash"
ssh root@server -t "export PS1='[\u@\h \t \W]\$ '; exec bash"
但顯然,每次我輸入新內容時,日期都不會更新。
我根本不知道如何從 PuTTY 中執行此操作 - 我看到“連接”->“數據”中有一個設置可以將環境變量發送到伺服器,但這不起作用。
請注意,我不想更改伺服器端的任何內容(沒有 sshd 更改、沒有 bashrc 或設定檔更改):)
答案1
我無法幫助您使用 putty,但請注意 bash 有當前時間的程式碼,因此您可以替換$(date +%H:%M:%S)
為\t
.
答案2
儘管我實際上還沒有找到 PuTTY 的答案,但我找到了一個更好的替代方案:
1.安裝西格文(並享受更好的生產力)
2. 將 Cygwin 捷徑加入我的 PATH 中,以便我可以執行 WIN+R 並輸入 cyg 開啟終端
3. 在 Cygwin ~/.bashrc 中加入此函數:
ssh () { /usr/bin/ssh "$@" -t "export PS1='[\t \u@\h \W]\$ '; exec bash"; }
重新開啟 Cygwin 或source ~/.bashrc
和ssh user@server
提示就是我想要的*:
[12:03:08 user@server ~]$
*它適用於 CentOS 或 AWS Linux。不適用於 Ubuntu,因為它覆蓋了 $PS1。
免責聲明:卡在 Windows 上,無法安裝 Ubuntu 或雙重啟動。虛擬機器不是一個選項。 /哭
答案3
對於 Ubuntu 來說不是那麼侵入性的變體(只是在遠端 .bashrc 中啟用顏色提示):
ssh user@server -t "sed -i 's/#force_color_prompt=yes/force_color_prompt=yes/g' .bashrc;exec bash"