내 로컬 컴퓨터의 터미널 색상을 SSH 연결 중인 컴퓨터의 터미널 색상으로 설정할 수 있나요?

내 로컬 컴퓨터의 터미널 색상을 SSH 연결 중인 컴퓨터의 터미널 색상으로 설정할 수 있나요?

터미널에 있을 때 좋아하는 색 구성표가 있지만 여러 소스(로컬, PuTTY, 넷북 등)에서 작업 중인 컴퓨터에 SSH로 연결하고 항상 동일한 색 구성표를 유지하고 싶습니다. 가능합니까?

저는 특히 이것을 PuTTY와 함께 사용하고 싶습니다. PuTTY 색상을 변경하는 것은 어렵습니다.

답변1

터미널 색상두 단계로 결정합니다.

  • 터미널에서 실행되는 프로그램은 터미널에 특정 색상 번호를 사용하도록 지시합니다.
  • 터미널은 각 색상 번호를 색상 값으로 변환합니다.

Xterm에는이스케이프 시퀀스색상 번호와 연관된 색상 값을 변경합니다. PuTTY가 이 시퀀스를 지원하는지 기억이 나지 않습니다.민트하다.

set_color_value () {
  printf "\\e]4;$1;$2\\a"
}
set_color_value 4 '#6495ed'  # set color 4 (blue) to CornflowerBlue

이러한 설정은 터미널 재설정 후에는 유지되지 않습니다. 커서 구성 변경 시퀀스를 터미널의 재설정 문자열에 추가하면 이러한 어려움을 극복할 수 있습니다.

  • ncurses를 사용하는 terminfo 기반 시스템에서는 터미널의 terminfo 설정을 .terminfo 확장자를 가진 파일에 저장합니다 infocmp >>~/etc/terminfo.txt. rs1(기본 재설정) 순서를 변경하려면 설명을 편집하세요 (예: rs1=\Ec로 교체) rs1=\Ec\E]4;4;#6495ed\E\\. 일부 프로그램과 설정을 변경 rs2(완전 재설정) 해야 할 수도 있습니다. 그런 다음 terminfo 설명을 컴파일합니다 tic ~/etc/terminfo.txt(이 설명은 디렉토리에 기록되거나 $TERMINFO설정 ~/.terminfo되지 않은 경우).
  • termcap 기반 시스템에서는 /etc/termcaptermcap 데이터베이스에서 termcap 설정(일반적으로 )을 가져옵니다. is(기본 재설정) 및 (전체 재설정) 시퀀스를 변경하여 rs설정을 추가합니다(예 : ) :is=\Ec\Ec\E]4;4;#6495ed\E\\:. 환경 변수를 TERMCAP편집된 값(으로 시작하고 끝남 :)으로 설정합니다.

이제 다음과 같은 내용을 다음과 같이 넣을 수 있습니다 ~/.profile.

if [ "$(ps -p $PPID -o comm=)" = sshd ] &&
   [ "$TERM" = "xterm" ]; then
  set_color_value … # set color scheme
  TERMCAP=…  # if necessary
fi

답변2

ssh지금 막 들어가고 있어하나상자 맞나요? PS1원하는 색 구성표를 사용하도록 상자에 변수를 설정하면 어떨까요 ? 16색으로 유지하면 최신 장치에서는 문제가 되지 않습니다 TERM. 대부분은 256색을 지원해야 하지만 대부분은 TERM=xterm-256color기본적으로 그렇게 하지 않으며 일부는 바보입니다(기침나의 고용주기침) TERM영숫자로만 정리되었습니다. 불행하게도 변수에 넣는 내용은 PS사용 중인 셸에 따라 많이 달라집니다.

관련 정보