Ich weiß, wir haben Unmengen solcher Fragen, aber ich fand es einfach nicht so einfach wie meine aktuelle Version. Auch für diejenigen, die meine Antwort mit Details erweitern können, bitte erweitern Sie es. Dann können wir es nach einer detaillierteren Version akzeptieren.
gaRex
Antworten:
20
.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 Wenn -clear restSie einen Fehler erhalten, setterm: argument error: 'rest'versuchen Sie es -clear resetstattdessen.
Als Alternative setterm
Wenn 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.
Wenn ich mich anmelde, erhalte ich die folgende Fehlermeldung: setterm: argument error: 'rest'Irgendeine Idee warum?
Linello
man setterm, dort suchen --clear. In meiner Version existiert es.
gaRex
Kann jemand eine Beschreibung der vorgenommenen Änderungen hinzufügen
Nilesh
4
(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
Dies ist eine 3 Jahre alte Frage und Ihre Antwort ist ähnlich der bereits beantworteten
SeanClt
3
yep ... Ich wollte nur mehr Infos hinzufügen. Könnte eine Antwort auf die Antwort von gaRex sein.
JoniJnm
Ja, ich bin bei und verstehe klar, dass Sie helfen wollen und wir wollen Leute wie Sie
SeanClt
3
Klicken Sie in meiner ersten Antwort auf "Diese Antwort verbessern".
gaRex
0
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):
Antworten:
.bash_aliases
/ etc / ssh / ssh_config
.ssh / config
Jetzt können Sie in Bash:
HINWEIS Wenn
-clear rest
Sie einen Fehler erhalten,setterm: argument error: 'rest'
versuchen Sie es-clear reset
stattdessen.Als Alternative
setterm
Wenn Sie gnome-terminal oder ein anderes xterm verwenden und durch
setterm
die eingeschränkte Farbauswahl frustriert sind und / oder Ihresetterm
Änderungen durch Farbcodes in Ihrer Eingabeaufforderung ($PS1
) überschrieben werden , möchten Sie möglicherweisextermcontrol
anstelle vonsetterm
oben verwenden, wie in gezeigt diese Antwort .Beispielsweise
xtermcontrol --bg '#600'
wird der Terminalhintergrund dunkelrot. Möglicherweise müssen Siextermcontrol
vor der Verwendung installieren , z. B.sudo apt install xtermcontrol
auf Debian-basierten Systemen.quelle
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:
.bash_aliases
.ssh / config
Sie können weiterhin verwenden:
Sie können die .bash_aliases-Datei neu laden mit:
Mehr Info:
quelle
Unter Apple ist Mac / OSX
setterm
nicht verfügbar, aber Sie können verwendenosascript
.Für die obige Anwendung ist es praktisch, dies mit einem kleinen Shell-Skript zu tun:
Dieses Skript verwendet ein einzelnes Argument, das einem der Farbschemata entspricht, die
terminal
"bekannt" sind (z. B. Ozean) . und kann anstelle dersetterm
obigen Antworten aufgerufen werden . Denken Sie daran, es auch dem hinzuzufügen~/.bash_aliases
, damit das Terminal beim Beenden derssh
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
:Weitere Informationen zum Ändern der Terminalfarben in OSX finden Sie in dieser SO-Antwort .
quelle
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):Sie können die
336699
für jede gewünschte Hex-Farbe ändern .quelle