ssh または putty 経由でカスタム bash プロンプトを設定する

ssh または putty 経由でカスタム bash プロンプトを設定する

サーバーにログオンするときに、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. PATH に Cygwin ショートカットを追加して、WIN+R を実行して cyg と入力し、ターミナルを開くことができるようにします
3. Cygwin ~/.bashrc に次の関数を追加します:

ssh () { /usr/bin/ssh "$@" -t "export PS1='[\t \u@\h \W]\$ '; exec bash"; }

Cygwin を再度開くかsource ~/.bashrcssh user@serverプロンプトを表示すると、次のようになります *:
[12:03:08 user@server ~]$

*CentOS または AWS Linux で動作します。$PS1 を上書きするため、Ubuntu では動作しません。

免責事項: Windows で止まっており、Ubuntu もデュアルブートもインストールできません。VM は選択肢ではありません。/Cry

答え3

Ubuntu 用のそれほど邪魔にならないバリアント (リモート .bashrc でカラー プロンプトを有効にするだけ):

ssh user@server -t "sed -i 's/#force_color_prompt=yes/force_color_prompt=yes/g' .bashrc;exec bash"

関連情報