Często loguję się na różne serwery z okna terminala os x.
Chciałbym przypisać schemat kolorów dla różnych hostów, aby moje okna terminali były łatwiejsze do odróżnienia. Czy można to zrobić automatycznie?
Często loguję się na różne serwery z okna terminala os x.
Chciałbym przypisać schemat kolorów dla różnych hostów, aby moje okna terminali były łatwiejsze do odróżnienia. Czy można to zrobić automatycznie?
Odpowiedzi:
Oto kompletne rozwiązanie. Zachowaj listę adresów IP serwerów i / lub domen oraz kolory, które chcesz dla nich w ~ / .server_colors:
192.168.122.102, Czerwone Piaski 192.168.122.103, Ocean www.foo.com, Grass foo.com, Grass
Następnie dodaj ten wiersz do ~ / .profile, aby przejąć polecenie ssh:
alias ssh = "~ / bin / safe_ssh $ 1"
Następnie porównaj cokolwiek po @ w twoim celu ssh z twoją listą. W przypadku dopasowania uruchom skrypt AppleScript, aby zmienić ekran na odpowiedni kolor. Oto ~ / bin / safe_ssh:
#! / bin / bash ip = `echo $ 1 | cut -d "@" -f2` match = `cat ~ / .server_colors | grep $ ip | wc -l` jeśli [$ dopasowanie -gt 0] następnie color = `cat ~ / .server_colours | grep $ ip | cut -f2 -d "," ' osascript ~ / bin / change_terminal_color.scpt "$ color" 2> / dev / null fi / usr / bin / ssh $ 1
I na koniec, oto ~ / bin / change_terminal_color.scpt
w biegu argv powiedz aplikacji „Terminal”, aby ustawiła bieżące ustawienia wybranej zakładki okna 1 na (pierwszy zestaw ustawień, którego nazwa to (pozycja 1 argv)) koniec biegu
Większość tego kodu wziąłem z tego postu na blogu .
Tak.
Możesz użyć np. „Ekranu” i dostosować go: http://www.slac.stanford.edu/comp/unix/package/epics/extensions/iocConsole/screen.1.html
Lub jeśli to możliwe, możesz to zrobić na kliencie SSH.
Możesz także spróbować: http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/
Rozwiązanie @muirbot działa dla mnie naprawdę dobrze. Wprowadziłem kilka drobnych usprawnień. Dodam go poniżej jego posta, gdy będę miał wystarczająco dużo reputacji.
Zamień linię
ip =echo $1 | cut -d"@" -f2
z ip =echo $@ | grep -Eio [[:alnum:]_.-]+@[[:alnum:]_.-]+ | cut -d@ -f2
Ta zmiana pozwala na podanie dodatkowych argumentów do polecenia ssh, takich jak „ssh -p 1111 nazwa_użytkownika @ host”
Wyrażenie regularne pozwala na proste adresy IPv4 i nazwy domen.
Aby dalej obsługiwać wiele argumentów, zmień ostatni wiersz na
/ usr / bin / ssh $ @
Właśnie szukałem tego samego i znalazłem ten artykuł:
http://akrabat.com/php/osx-terminal-colours/
Używa skryptu php do zmiany kolorów terminala przez applecript. Możesz skonfigurować mapowania w różnych kolorach dla każdego serwera. Działa świetnie dla mnie, choć czuję potrzebę przepisania php na ruby :)
fk
Używam skryptu, który uruchamia SSH w oknach xterm z różnymi kolorami bg / fg. Wybiera kolory na podstawie skrótu nazwy hosta z zakresu kolorów, dzięki czemu nie jest wymagana konfiguracja.
Skrypt jest napisany w języku Ruby: https://github.com/mickeyil/ssx
Jeśli używasz iTerm2, utwórz plik o nazwie ~/bin/ssh-host-color.sh
z zawartością z https://gist.github.com/jbochi/31f118b8ae2882a2c90fa46c46509b57 :
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 $@
I dodaj następujący wiersz do swojego ~/.aliases.sh
pliku:
alias ssh="~/bin/ssh-host-color.sh $@"