Sie möchten also die Terminalfarben ändern und sie beim Beenden zurücksetzen? Es ist möglich!
Dank .ssh / config, Alias und Setterm.
Sie möchten also die Terminalfarben ändern und sie beim Beenden zurücksetzen? Es ist möglich!
Dank .ssh / config, Alias und Setterm.
Antworten:
function ssh_alias() {
ssh $@;
setterm -default -clear rest;
}
alias ssh=ssh_alias
# Make sure you have this line there:
PermitLocalCommand yes
Host your.production.host
User root
LocalCommand setterm -term linux -back red -fore white -clear rest
some command
# all in default colors
ssh your.production.host
# colors changed
# ....
exit
# colors changed back! yeea!
HINWEIS Wenn -clear restSie einen Fehler erhalten, setterm: argument error: 'rest'versuchen Sie es -clear resetstattdessen.
settermWenn Sie gnome-terminal oder ein anderes xterm verwenden und durch settermdie eingeschränkte Farbauswahl frustriert sind und / oder Ihre settermÄnderungen durch Farbcodes in Ihrer Eingabeaufforderung ( $PS1) überschrieben werden , möchten Sie möglicherweise xtermcontrolanstelle von settermoben verwenden, wie in gezeigt diese Antwort .
Beispielsweise xtermcontrol --bg '#600'wird der Terminalhintergrund dunkelrot. Möglicherweise müssen Sie xtermcontrolvor der Verwendung installieren , z. B. sudo apt install xtermcontrolauf Debian-basierten Systemen.
setterm: argument error: 'rest'Irgendeine Idee warum?
man setterm, dort suchen --clear. In meiner Version existiert es.
(Lesen Sie zuerst die Antwort von gaRex.)
setterm hat die Argumente in den letzten Versionen geändert:
function ssh_alias() {
ssh $@;
setterm --default --clear all;
}
alias ssh=ssh_alias
Host myproject.pro
HostName myproject.com
User root
IdentityFile ~/.ssh/myproject
LocalCommand setterm --term linux --background white --foreground black --clear all
Sie können weiterhin verwenden:
--clear rest
Sie können die .bash_aliases-Datei neu laden mit:
exec bash
Mehr Info:
man setterm
Unter Apple ist Mac / OSX settermnicht verfügbar, aber Sie können verwenden osascript.
Für die obige Anwendung ist es praktisch, dies mit einem kleinen Shell-Skript zu tun:
#!/bin/sh
DEFAULT_SCHEME=Basic
SCHEME=${1:-$DEFAULT_SCHEME}
SAFE_SCHEME=\"${SCHEME//\"/}\" # sanitise user input
/usr/bin/osascript <<EOF
tell application "Terminal"
set current settings of window 1 to settings set $SAFE_SCHEME
end tell
EOF
Dieses Skript verwendet ein einzelnes Argument, das einem der Farbschemata entspricht, die terminal"bekannt" sind (z. B. Ozean) . und kann anstelle der settermobigen Antworten aufgerufen werden . Denken Sie daran, es auch dem hinzuzufügen ~/.bash_aliases, damit das Terminal beim Beenden der sshSitzung zum ursprünglichen Farbschema zurückkehrt .
Beachten Sie, dass das Standardprofil bashunter OSX keine Quelle ist, .bash_aliasessodass Sie möglicherweise Folgendes hinzufügen müssen ~/.bash_profile:
if [ -f ~/.bash_aliases ]; then
source ~/.bash_aliases
fi
Weitere Informationen zum Ändern der Terminalfarben in OSX finden Sie in dieser SO-Antwort .
Ich brauchte dies, wenn ich mich mit meinen eigenen Computern verband. Was ich getan habe, war so einfach wie das Hinzufügen dieses Snippets zu meinem .bash_profile(das sich in meinen Punktedateien befindet, sodass es sowieso auf den meisten meiner Computer landet):
[ -n "$SSH_CONNECTION" ] && echo -e "\033]11;#336699\a"
Sie können die 336699für jede gewünschte Hex-Farbe ändern .