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