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 rest
Sie einen Fehler erhalten, setterm: argument error: 'rest'
versuchen Sie es -clear reset
stattdessen.
setterm
Wenn Sie gnome-terminal oder ein anderes xterm verwenden und durch setterm
die eingeschränkte Farbauswahl frustriert sind und / oder Ihre setterm
Änderungen durch Farbcodes in Ihrer Eingabeaufforderung ( $PS1
) überschrieben werden , möchten Sie möglicherweise xtermcontrol
anstelle von setterm
oben verwenden, wie in gezeigt diese Antwort .
Beispielsweise xtermcontrol --bg '#600'
wird der Terminalhintergrund dunkelrot. Möglicherweise müssen Sie xtermcontrol
vor der Verwendung installieren , z. B. sudo apt install xtermcontrol
auf 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 setterm
nicht 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 setterm
obigen Antworten aufgerufen werden . Denken Sie daran, es auch dem hinzuzufügen ~/.bash_aliases
, damit das Terminal beim Beenden der ssh
Sitzung zum ursprünglichen Farbschema zurückkehrt .
Beachten Sie, dass das Standardprofil bash
unter OSX keine Quelle ist, .bash_aliases
sodass 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 336699
für jede gewünschte Hex-Farbe ändern .