![So ändern Sie die Terminalfarben beim Herstellen einer Verbindung mit SSH-Hosts](https://rvso.com/image/1365838/So%20%C3%A4ndern%20Sie%20die%20Terminalfarben%20beim%20Herstellen%20einer%20Verbindung%20mit%20SSH-Hosts.png)
Sie möchten also die Terminalfarben ändern und beim Beenden zurücksetzen?
Dies ist möglich dank .ssh/config
, alias
, undsetterm
Antwort1
.bash_aliases
:function ssh_alias() { ssh "$@"; setterm -default -clear rest; # If `-clear rest` gives error `setterm: argument error: 'rest'`, try `-clear reset` instead } alias ssh=ssh_alias
/etc/ssh/ssh_config
:# Ensure this line exists: PermitLocalCommand yes
.ssh/config
:Host your.production.host User root LocalCommand setterm -term linux -back red -fore white -clear rest
In Bash können Sie jetzt:
some command
# all in default colors:
ssh your.production.host
# colors changed:
# ....
exit
# colors changed back! yeea!
Als Alternative setterm
:
gnome-terminal
Wenn Sie oder ein anderes verwenden xterm
und über die eingeschränkte Farbauswahl von frustriert sind setterm
und/oder Ihre setterm
Änderungen durch Farbcodes in Ihrer Eingabeaufforderung [ $PS1
] überschrieben werden, können Sie anstelle von setterm
verwenden xtermcontrol
, wie in gezeigt.diese Antwort.
- Beispielsweise
xtermcontrol --bg '#600'
wird der Terminalhintergrund dunkelrot, obwohl Sie ihn möglicherweise installieren müssen,xtermcontrol
bevor Sie ihn verwenden können(zBsudo apt install xtermcontrol
auf Debian-basierten Systemen)
Antwort2
(Lesen Sie gaRex'sAntwortErste)
setterm
hat die Argumente in den letzten Versionen geändert:(Mehr Info: man setterm
)
.bash_aliases
:
Sie können weiterhin nutzenfunction ssh_alias() { ssh $@; setterm --default --clear all; } alias ssh=ssh_alias
--clear rest
und aufladen.bash_aliases
überexec bash
.ssh/config
:Host myproject.pro HostName myproject.com User root IdentityFile ~/.ssh/myproject LocalCommand setterm --term linux --background white --foreground black --clear all
Antwort3
Ich brauchte dies, wenn ich eine Verbindung zu meinen eigenen Computern herstellte. Ich habe einfach diesen Code-Schnipsel zu meinem hinzugefügt .bash_profile
(der sich in meinen Dotfiles befindet und daher sowieso auf den meisten meiner Computer landet):
[ -n "$SSH_CONNECTION" ] && echo -e "\033]11;#336699\a"
336699
Sie können es in jede gewünschte Hex-Farbe ändern .
Antwort4
Unter Apple Mac/OSX ist es nicht verfügbar, Sie können es aber mit einem kleinen Shell-Skript setterm
verwenden :osascript
#!/bin/sh
DEFAULT_SCHEME=Basic
SCHEME=${1:-$DEFAULT_SCHEME}
SAFE_SCHEME=\"${SCHEME//\"/}\" # sanitize user input
/usr/bin/osascript <<EOF
tell application "Terminal"
set current settings of window 1 to settings set $SAFE_SCHEME
end tell
EOF
- Dies nimmt ein einzelnes Argument entgegen, das einem der Farbschemata entspricht,
terminal
die(zB Ozean)und kann anstelle vonsetterm
in den obigen Antworten aufgerufen werden. Denken Sie daran, es auch zu hinzuzufügen,~/.bash_aliases
damit das Terminal zum ursprünglichen Farbschema zurückkehrt, wenn Sie diessh
Sitzung beenden.
Das Standardprofil bash
unter OSX unterstützt keine Quelle .bash_aliases
, daher müssen Sie möglicherweise Folgendes hinzufügen ~/.bash_profile
:
if [ -f ~/.bash_aliases ]; then
source ~/.bash_aliases
fi
- Weitere Informationen zum Ändern der Terminalfarben in OSX finden Sie unterdiese SO-Antwort.