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

$(date +%H:%M:%S)퍼티에 관해서 는 도움을 드릴 수 없지만 bash에는 현재 시간에 대한 코드가 있으므로 \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 ~/.bashrc프롬프트 ssh user@server가 내가 원하는 방식입니다 *:
[12:03:08 user@server ~]$

*CentOS 또는 AWS Linux에서 작동합니다. $PS1을 재정의하기 때문에 Ubuntu에서는 작동하지 않습니다.

면책조항: Windows에서 멈춰 Ubuntu를 설치하거나 이중 부팅을 할 수 없습니다. VM은 옵션이 아닙니다. /울다

답변3

Ubuntu에 그다지 방해가 되지 않는 변형입니다(원격 .bashrc에서 색상 프롬프트를 활성화합니다).

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

관련 정보