Установить пользовательскую командную строку bash через ssh или putty

Установить пользовательскую командную строку bash через ssh или putty

При входе на серверы я хотел бы, чтобы время отображалось в командной строке 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 - я вижу, что в Connections -> Data есть настройка для отправки переменных среды на сервер, но это не работает.

Обратите внимание, что я не хочу ничего менять на стороне сервера (никаких изменений в sshd, bashrc или профиле) :)

решение1

Я не могу помочь вам с putty, но учтите, что в bash есть код для текущего времени, поэтому вы можете заменить $(date +%H:%M:%S)его на \t.

решение2

Хотя я на самом деле не нашел ответа для PuTTY, я нашеллучшеальтернатива:
1. установитьCygwin(и наслаждайтесь большей производительностью)
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 или двойную загрузку. Виртуальная машина не вариант. /Cry

решение3

Не такой навязчивый вариант для Ubuntu (просто включает цветную подсказку в удаленном .bashrc):

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

Связанный контент