호스트 이름을 기준으로 터미널 배경을 변경할 수 있습니까?


17

호스트 이름을 기준으로 터미널 배경색을 변경하고 싶습니다. 이것에 대한 나의 추론은 주로 내가 어떤 서버에 있는지 상기시켜주는 여분의 방법이 있기 때문에 어리석은 일을하지 않습니다.

로컬 컴퓨터에 있으면 표준 가지 배경을 사용하고 프로덕션 웹 서버 또는 지정할 수있는 다른 호스트로 ssh하면 빨간색으로 변경되도록 할 수 있습니까?


한 가지 아이디어는 터미널 설정을 처리하는 환경 변수의 변경 사항을 스크립트로 작성하는 것입니다. 일반적으로 ssh를 수행 할 각 위치에 대한 스크립트를 작성하고 해당 스크립트의 설정 변경 사항을 포함 시키십시오. 다음은 도움이 될 수있는 안내서입니다. cyberciti.biz/faq/…- 이 방법으로 연결 만 할뿐 아니라 특정 세션에 맞게 터미널을 사용자 정의합니다.
MaQleod

1
우분투 사이트에 같은 질문이 있습니다 : askubuntu.com/questions/13705/… 마음, 당신을 비난하지 않습니다, 나는 처음에 그것을 찾지 못했습니다 :)
Stefano

답변:


9

별명을 사용할 때마다 ssh / config의 localcommand 옵션을 사용하여 명령을 실행할 수 있습니다. 나는 사용한다

host hostname
    user myusername
    localcommand xtermcontrol --bg '#abc'

이것은 xtermcontrol과 xterm 인 용어에 따라 다릅니다. 다른 용어에 대한 다른 앱이있을 수 있습니다.

이 방법의 유일한 문제점은 ssh를 호출 할 때 발생한다는 것입니다. 색상 변경을 취소 할 것은 없습니다. ssh 주위에 함수를 배치 하여이 작업을 수행했지만 단점도 있습니다.

function ssh() {
  FG=$(xtermcontrol --get-fg)
  BG=$(xtermcontrol --get-bg)
  $(which ssh) "$@"
  xtermcontrol --fg="$FG"
  xtermcontrol --bg="$BG"
}

7

어떤 기능이 있다는 것 같지 않습니다 gnome-terminal하는 기존 창에 새 탭을 추가 명령 줄에서이. 그러나 원하는 것을 달성하기위한 몇 가지 옵션이 있습니다.

명령 별 프로파일

gnome-terminalSSH로 연결할 각 호스트에 대한 새 프로파일을 작성하십시오 . 정기적으로 연결하는 호스트가 몇 개인 경우 가장 간단한 호스트 일 수 있습니다. 각 프로파일은 서로 다른 제목, 전경색, 배경색, 사용자 정의 명령 및 기타 설정을 가질 수 있습니다. 그런 다음 File -> Open Tab선택한 프로필로 새 탭을 열 수 있습니다 .

재사용 가능한 프로파일

gnome-terminal다른 SSH 호스트에 연결할 때마다 새 창을 여는 데 사용할 새 프로필을 만듭니다 ( Stefano가 지적한 이 AskUbuntu 답변 을 바탕으로 ). 많은 다른 호스트에 자주 연결하면 효과적입니다. 이렇게하면 배경 / 배경색만으로 다른 호스트에 연결된 다른 창 을 구별 할 수 없지만 창마다 제목이 다릅니다.gnome-terminal

  1. gnome-terminal프로파일을 File -> New Profile기반으로 새 프로파일 ( )을 작성하고 Default"RemoteHost"라고 부릅니다 (명령을 쉽게하기 위해 "RemoteHost"에 공백이 없음).
  2. 언더 Title and Command탭을 변경 :
    1. Initial title: "원격 호스트"로
    2. When terminal commands set their own titles:Replace initial title
  3. 언더 Colors탭을 변경 :
    1. 체크 해제 Use colors from system theme
    2. Build-in schemes:Custom
    3. Text color:그리고 Background color:당신의 선택의 색깔에. (와 같은 ls) 일부 명령 은 출력에 색상을 사용하므로 출력을 읽기 어려운 색상을 선택하고 싶지는 않습니다.
  4. Close버튼을 클릭 하여 새 프로필을 저장하십시오.
  5. 이제 gnome-terminal명령을 사용하여 각 원격 SSH 호스트에 대한 새 창을 열 수 있습니다 gnome-terminal --window-with-profile=RemoteHost -t "Some Remote SSH Host" -x ssh user@somehost. 이 -t옵션은 gnome-terminal창 제목을 설정 -x하고이 옵션은 터미널의 나머지 명령 줄을 실행합니다. alias전체 키 입력을 단축 할 수도 있습니다.

명령 줄

+ + 키보드 단축키를 사용하여 현재 창 에서 새 탭을 열려면 and 명령 (우분투에는 기본적으로 설치되지 않았으므로 먼저 설치해야 할 수도 있음)을 사용 하는 다음 스크립트 로이 블로그 항목 을 찾았 습니다. . 특정 프로파일로 새 탭을 열고 일부 명령을 실행하도록 수정할 수 있습니다.xdotoolwmctrlgnome-terminal CtrlShifttgnome-terminal

#!/bin/bash
# Path: /usr/local/bin/gnome-terminal
if [ "x$*" != "x" ]; then
  /usr/bin/gnome-terminal "$@"
else
  pgrep -u "$USER" gnome-terminal | grep -qv "$$"
  if [ "$?" == "0" ]; then
    WID=`xdotool search --class "gnome-terminal" | head -1`
    xdotool windowfocus $WID
    xdotool key ctrl+shift+t
    wmctrl -i -a $WID
  else
    /usr/bin/gnome-terminal
  fi
fi

다른

창의력을 발휘하고 다른 것을 시도해 볼 수 있습니다.

수퍼 유저 답변은 기본적으로 약간의 "script-fu"곡예사를 gnome-terminal사용하여 새 창을 여는 데 사용되는 임시 프로필 을 만듭니다 . 사용하기 위해 수정 될 수 있습니다.

StackOverflow Q & A 및 "script-fu"곡예사 gnome-terminal를 사용하여 원격 호스트에 SSH 할 때마다 제목 을 동적으로 변경할 수 있습니다. 배경 / 전경색 변경만큼 눈에 띄지는 않지만 항상 표준 Terminal타이틀 보다 낫습니다 .


6

각 ssh 세션마다 새로운 gnome-terminal 창을 사용하려는 경우 Gnome에서 작동합니다.

  1. "원격"이라는 새 프로필 (배경색이 다른)을 만듭니다.

  2. 에 다음을 삽입 .bash_aliases하거나.bashrc

    ### add to .bash_aliases, for differentiating between local and remote hosts 
    sshhelper() {
       gnome-terminal --window-with-profile=Remote -x bash -c "ssh $1";
    }
    alias sshc=sshhelper
    

이제 "원격"프로필 sshc remote-machine새로운 그놈 터미널 세션을 엽니 다 . 이것은 로컬 프로파일과 원격 프로파일을 구별합니다.

여러 개의 프로필 / 호스트를 수용하려면 여러 개의 프로필을 만들고 대신 다음과 같이 배치하십시오 .bash_aliases.

### add to .bash_aliases, for differentiating between multiple remote hosts
sshhelper() {
    HOST=`echo $1 | cut -d'@' -f2`

    case $HOST in
        Production )  PROFILE="Red" ;;
        Test )        PROFILE="Green" ;;
        # ... if you have more cases ...
        *)           PROFILE="Default" ;;
    esac

    gnome-terminal --window-with-profile=$PROFILE -x bash -c "ssh $1";
}

# alias ssh=sshhelper    # this will "override" the ssh command, but may break other stuff!
alias sshc=sshhelper

이제 sshc Production"Red"프로파일을 사용하여 새 세션 창을 sshc Test열고 "Green"프로파일을 사용하여 새 세션 창을 열고 다른 호스트는 "Default"프로파일을 사용합니다.


2

여기에서 스택 *** 사이트에서 모든 정보를 수집하는 것은 민트 메이트 + 메이트 터미널에 대해 가장 간단한 해결책입니다 (그놈과 동일).

  1. 메이트 터미널에서 배경이 다른 두 번째 프로파일을 정의합니다.
  2. 기본 키가 작동하는지 확인 Alt + PageDown / Alt + PageUp은 프로필과 배경도 변경해야합니다.
  3. sudo apt get install xdotool

이제 각 ssh 세션이 설정된 후 프로파일을 변경할 수 있도록 / etc / ssh / ssh_config를 수정할 수 있습니다.

Host *
  PermitLocalCommand yes
  LocalCommand xdotool key Alt+Page_Down

이제 터미널에 각 ssh 연결이 설정되면 프로파일이 변경되고 원하지 않는 SQL 업데이트를 프로덕션 데이터베이스에 다시 넣지 않습니다. :)

그러나 ssh 연결이 닫힌 후 기본 프로필로 다시 쉽게 전환 할 수있는 방법은 없습니다. 그러나 이것은 나에게 충분 해 보이며 더 많은 정보를 찾기 위해 파고 들지 않았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.