So ändern Sie die Terminalfarben beim Herstellen einer Verbindung zu SSH-Hosts
Sie möchten also die Terminalfarben ändern und sie beim Beenden zurücksetzen? Es ist möglich!
Danke an .ssh/config, alias und setterm.
4 answers
.bash_aliases
function ssh_alias() {
ssh "$@";
setterm -default -clear rest;
}
alias ssh=ssh_alias
/etc/ssh/ssh_config
# Make sure you have this line there:
PermitLocalCommand yes
.ssh/config
Host your.production.host
User root
LocalCommand setterm -term linux -back red -fore white -clear rest
Jetzt können Sie in bash:
some command
# all in default colors
ssh your.production.host
# colors changed
# ....
exit
# colors changed back! yeea!
HINWEIS: If -clear rest
gibt Ihnen ein Fehler setterm: argument error: 'rest'
- try -clear reset
statt.
Alternative zu setterm
Wenn Sie gnome-terminal oder ein anderes xterm verwenden und frustriert über die begrenzten Farboptionen von setterm
sind und/oder Ihre setterm
- Änderungen durch Farbcodes in Ihrer Eingabeaufforderung ($PS1
) überschrieben werden, möchten Sie möglicherweise xtermcontrol
anstelle von setterm
oben, wie in diese Antwort gezeigt.
Zum Beispiel macht xtermcontrol --bg '#600'
den Terminalhintergrund dunkelrot. Möglicherweise müssen Sie xtermcontrol
installieren, bevor Sie es verwenden, z. B. sudo apt install xtermcontrol
auf Debian-basierten Systemen.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-09-23 20:48:49
(lesen Sie zuerst die Antwort von gaRex)
Setterm hat die Argumente in den letzten Versionen geändert:
.bash_aliases
function ssh_alias() {
ssh $@;
setterm --default --clear all;
}
alias ssh=ssh_alias
.ssh/config
Host myproject.pro
HostName myproject.com
User root
IdentityFile ~/.ssh/myproject
LocalCommand setterm --term linux --background white --foreground black --clear all
Sie können immer noch verwenden:
--clear rest
Sie können neu laden .bash_aliases-Datei mit:
exec bash
Mehr Infos:
man setterm
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-03-26 22:01:45
Auf Apple Mac / OSX ist setterm
nicht verfügbar, aber Sie können osascript
verwenden.
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
über "kennt" (z. B. Ocean); und kann anstelle von setterm
in den obigen Antworten aufgerufen werden. Denken Sie daran, es auch zum ~/.bash_aliases
hinzuzufügen, damit das Terminal beim Beenden des ssh
session.
Beachten Sie, dass das Standardprofil bash
unter OSX nicht .bash_aliases
, sodass Sie Ihrem ~/.bash_profile
möglicherweise Folgendes hinzufügen müssen:
if [ -f ~/.bash_aliases ]; then
source ~/.bash_aliases
fi
Weitere Informationen zum Ändern der Terminalfarben in OSX finden Sie unter this SO answer.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-05-04 13:36:43
Ich brauchte dies, wenn ich mich mit meinen eigenen Computern verbinde. Was ich getan habe, war so einfach wie das Hinzufügen dieses Snippets zu meinem .bash_profile
(das sich in meinen Dotfiles befindet, sodass es sowieso auf den meisten meiner Computer landet):
[ -n "$SSH_CONNECTION" ] && echo -e "\033]11;#336699\a"
Sie können die 336699
für jede gewünschte Hex-Farbe ändern.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-08-12 01:21:20