Spesso accedo a server diversi dalla finestra del mio terminale os x.
Vorrei assegnare una combinazione di colori per host diversi in modo che le finestre dei miei terminali siano più facili da distinguere. Questo può essere fatto automaticamente?
Spesso accedo a server diversi dalla finestra del mio terminale os x.
Vorrei assegnare una combinazione di colori per host diversi in modo che le finestre dei miei terminali siano più facili da distinguere. Questo può essere fatto automaticamente?
Risposte:
Ecco una soluzione completa. Tieni un elenco degli indirizzi IP e / o domini dei tuoi server e dei colori che desideri per loro in ~ / .server_colors:
192.168.122.102, sabbie rosse 192.168.122.103, Ocean www.foo.com, Erba foo.com, Erba
Quindi aggiungi questa riga a ~ / .profile per dirottare il comando ssh:
alias ssh = "~ / bin / safe_ssh $ 1"
Quindi confronta qualsiasi cosa dopo la @ nel tuo obiettivo ssh con il tuo elenco. Se c'è una corrispondenza, esegui un AppleScript per cambiare lo schermo con il colore corrispondente. Ecco ~ / bin / safe_ssh:
#! / Bin / bash ip = `echo $ 1 | taglia -d "@" -f2` match = `cat ~ / .server_colors | grep $ ip | wc -l` if [$ match -gt 0] poi color = `cat ~ / .server_colors | grep $ ip | cut -f2 -d "," ` osascript ~ / bin / change_terminal_color.scpt "$ color" 2> / dev / null fi / usr / bin / ssh $ 1
E infine, ecco ~ / bin / change_terminal_color.scpt
in fuga argv dire all'applicazione "Terminale" di impostare le impostazioni correnti della scheda selezionata della finestra 1 su (prima impostazione impostata il cui nome è (elemento 1 di argv)) fine corsa
Ho preso la maggior parte di questo codice da questo post sul blog .
Sì.
O usi ad esempio "schermo" e lo personalizzi: http://www.slac.stanford.edu/comp/unix/package/epics/extensions/iocConsole/screen.1.html
Oppure riesci a farlo sul tuo client SSH, se possibile.
Puoi anche provare questo: http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/
La soluzione di @muirbot funziona davvero bene per me. Ho apportato alcuni piccoli miglioramenti a questo. Lo aggiungerò sotto il suo post una volta che avrò abbastanza reputazione.
Sostituisci la linea
ip =echo $1 | cut -d"@" -f2
con ip =echo $@ | grep -Eio [[:alnum:]_.-]+@[[:alnum:]_.-]+ | cut -d@ -f2
Questa modifica consente di fornire argomenti aggiuntivi al comando ssh come "ssh -p 1111 userName @ host"
L'espressione regolare consente semplici indirizzi ipv4 e nomi di dominio.
Per supportare ulteriormente più argomenti, modificare l'ultima riga in
/ usr / bin / ssh $ @
Stavo solo cercando la stessa cosa e ho trovato questo articolo:
http://akrabat.com/php/osx-terminal-colours/
Usa uno script php per cambiare i colori del terminale con applecript. È possibile impostare mappature di colori diversi per ciascun server. Funziona benissimo per me, anche se senti il bisogno di riscrivere il materiale php in rubino :)
fk
Uso uno script che avvia SSH in xterm windows con diversi colori bg / fg. Seleziona i colori in base all'hash del nome host da un intervallo di colori in modo che non sia necessaria alcuna configurazione.
Lo script è scritto in Ruby: https://github.com/mickeyil/ssx
Se stai usando iTerm2, crea un file chiamato ~/bin/ssh-host-color.sh
con i contenuti da 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 $@
E aggiungi la seguente riga al tuo ~/.aliases.sh
file:
alias ssh="~/bin/ssh-host-color.sh $@"