os x 터미널 창에서 다른 서버에 자주 로그인하고 있습니다.
터미널 창을 쉽게 구분할 수 있도록 다른 호스트에 색 구성표를 할당하고 싶습니다. 이 작업을 자동으로 수행 할 수 있습니까?
os x 터미널 창에서 다른 서버에 자주 로그인하고 있습니다.
터미널 창을 쉽게 구분할 수 있도록 다른 호스트에 색 구성표를 할당하고 싶습니다. 이 작업을 자동으로 수행 할 수 있습니까?
답변:
다음은 완벽한 솔루션입니다. 서버의 IP 주소 및 / 또는 도메인 목록과 원하는 색상을 ~ / .server_colors에 보관하십시오.
192.168.122.102, 레드 샌드 192.168.122.103, 바다 www.foo.com, 잔디 foo.com, 잔디
그런 다음이 줄을 ~ / .profile에 추가하여 ssh 명령을 가로 채십시오.
별칭 ssh = "~ / bin / safe_ssh $ 1"
그런 다음 ssh 대상에서 @ 뒤에 나오는 내용을 목록과 비교하십시오. 일치하는 경우 AppleScript를 실행하여 화면을 해당 색상으로 변경하십시오. ~ / bin / safe_ssh는 다음과 같습니다.
#! / bin / bash ip =`echo $ 1 | 컷 -d "@"-f2` match =`cat ~ / .server_colors | grep $ ip | 화장실 -l` [$ match -gt 0] 인 경우 그때 color =`cat ~ / .server_colors | grep $ ip | 컷 -f2 -d ","` osascript ~ / bin / change_terminal_color.scpt "$ color"2> / dev / null fi / usr / bin / ssh $ 1
마지막으로 ~ / bin / change_terminal_color.scpt가 있습니다.
실행중인 argv 응용 프로그램 "터미널"에 창 1의 선택된 탭의 현재 설정을 (이름이 (arrgv의 항목 1 인 첫 번째 설정)으로 설정) 최종 실행
이 블로그 게시물 에서이 코드의 대부분을 가져 왔습니다 .
예.
예를 들어 "screen"을 사용하고이를 사용자 정의하십시오. http://www.slac.stanford.edu/comp/unix/package/epics/extensions/iocConsole/screen.1.html
또는 가능하면 SSH 클라이언트에서 관리 할 수도 있습니다.
당신은 또한 이것을 시도 할 수 있습니다 : http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/
@muirbot의 솔루션은 정말 잘 작동합니다. 나는 그것에 약간의 개선을했다. 평판이 충분하면 게시물 아래에 추가하겠습니다.
라인 교체
ip =echo $1 | cut -d"@" -f2
와 ip =echo $@ | grep -Eio [[:alnum:]_.-]+@[[:alnum:]_.-]+ | cut -d@ -f2
이 변경으로 "ssh -p 1111 userName @ host"와 같이 ssh 명령에 추가 인수를 제공 할 수 있습니다.
정규식은 간단한 ipv4 주소와 도메인 이름을 허용합니다.
여러 인수를 추가로 지원하려면 마지막 줄을
/ usr / bin / ssh $ @
방금 똑같은 것을 찾고이 기사를 찾았습니다.
http://akrabat.com/php/osx-terminal-colours/
PHP 스크립트를 사용하여 applescript로 터미널 색상을 변경합니다. 각 서버마다 다른 색상의 매핑을 설정할 수 있습니다. PHP 작업을 루비로 다시 작성하려는 충동을 느끼지만 나를 위해 잘 작동합니다 :)
fk
다른 bg / fg 색상의 xterm 창에서 SSH를 시작하는 스크립트를 사용합니다. 색상 범위에서 호스트 이름의 해시를 기반으로 색상을 선택하므로 구성이 필요하지 않습니다.
스크립트는 Ruby로 작성됩니다 : https://github.com/mickeyil/ssx
iTerm2를 사용하는 경우 https://gist.github.com/jbochi/31f118b8ae2882a2c90fa46c46509b57~/bin/ssh-host-color.sh
의 컨텐츠로 이름이 지정된 파일을 작성 하십시오 .
set_term_bgcolor(){
local R=$1
local G=$2
local B=$3
/usr/bin/osascript <<EOF
tell application "iTerm"
tell the current window
tell the current session
set background color to {$(($R*65535/255)), $(($G*65535/255)), $(($B*65535/255))}
end tell
end tell
end tell
EOF
}
if [[ "$@" =~ "production.example.com" ]]; then
set_term_bgcolor 40 0 0
elif [[ "$@" =~ "qa.example.com" ]]; then
set_term_bgcolor 0 40 0
fi
trap "set_term_bgcolor 0 0 0" EXIT
ssh $@
~/.aliases.sh
파일에 다음 줄을 추가 하십시오.
alias ssh="~/bin/ssh-host-color.sh $@"