1

При входе на сервер я хотел бы, чтобы в моем приглашении 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 или изменения профиля) :)

2 ответа2

3

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

0

Несмотря на то, что я не нашел ответа для 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 или двойной загрузки. ВМ не вариант. /Плач

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .