나는 그놈 터미널(또는 xterms!)의 마지막 종료 코드를 녹색/빨간색으로 묻는 메시지를 설정하는 방법을 알고 있습니다.
vi .bashrc
export PROMPT_COMMAND='PS1="`
if [[ \$? = "0" ]];
then echo "\\[\\033[0;32m\\]";
else echo "\\[\\033[0;31m\\]";
fi`[\u@\h \w]\[\e[m\] "'
export PS1
사진 속에:
하지만 원격 서버에 로그인하면 이러한 색상 설정이 작동하지 않습니다!
원격 터미널에서 작동하도록 어떻게 설정합니까? 안타깝게도 위 줄을 원격 서버에 추가할 수 없습니다 .bashrc
.
답변1
원격 셸에 표시되는 프롬프트를 변경하려고 합니다. 물론 이를 위해서는 원격 셸의 구성 파일인 .bashrc
.
파일을 변경하고 싶지 않고 실제로 해당 공유 계정을 사용해야 하고(공유 계정에 대한 필수 불만 사항 삽입) SSH를 통해 로그인하는 경우 (ab) 다음을 command=
사용할 수 있습니다.~/.ssh/authorized_keys
문서. 명령 옵션이 포함된 키 입력은 지정된 명령 실행에만 적용됩니다. 그러나 Authorized_keys 파일의 명령 런타임 환경 변수는 SSH_ORIGINAL_COMMAND
사용자 지정 명령으로 설정됩니다(대화형 세션의 경우 비어 있음). 따라서 다음과 같은 것을 사용할 수 있습니다 ~/.ssh/authorized_keys
.
command="HOME=$HOME/.HOME.lance;
if [ -n \"$SSH_ORIGINAL_COMMAND\" ]; then
eval \"$SSH_ORIGINAL_COMMAND\";
else exec \"$SHELL\"; fi" ssh-rsa AAAA…== [email protected]
쉽게 읽을 수 있도록 위에 줄 바꿈을 추가했지만 실제로는 모두 authorized_keys
파일에서 한 줄에 있어야 합니다.
그런 다음 즐겨찾는 구성 파일을 해당 .HOME.lance
디렉터리에 저장하세요.
가끔 사용하려면 명시적으로 구성 파일을 얻거나 쉘 명령을 실행할 수 있습니다. -t
대화형 명령을 실행하려면 터미널을 갖는 옵션을 전달하십시오.
ssh shared-account@server "LS_COLORS='$LS_COLORS' ls --color"
ssh -t shared-account@server '. ~/.profile.drew; exec zsh'
원격 컴퓨터의 파일을 편집하거나 복사하려는 경우 네트워크 파일 시스템을 사용할 수 있습니다.SSHFS(UNIX 클라이언트의 경우) 또는도보 여행가(Emacs의 경우) 로컬 환경에서 편안하게 작업할 수 있습니다.
답변2
원격 시스템에 로그인하면 새 쉘이 생성됩니다. 특히 원격 시스템의 셸입니다. 다른 컴퓨터에서 선호하는 셸 기본 설정을 유지하려면 해당 컴퓨터에서도 기본 설정을 지정해야 합니다. 이는 원격 사이트의 .bashrc 파일에 명령 셸 프롬프트를 설정해야 함을 의미합니다. 이렇게 디자인되었습니다.
참고로, 원격 컴퓨터에 로그인하면 원격 컴퓨터는 귀하의 터미널이 귀하의 터미널보다 성능이 떨어진다고 생각할 수 있습니다. PS1이 올바르게 설정되어 있으면 새 컴퓨터를 설정할 때 TERM 변수를 설정해 보십시오. 원격 시스템은 일반적으로 모든 원격 로그인에 대해 매우 어리석은 터미널을 가정하지만 실제로는 괜찮은 터미널을 지원하며 합리적인 설정을 사용하도록 가짜로 만들 수 있지만 이 환경 변수를 xterm-color와 같은 가능한 것으로 강제할 수 있습니다.