Ich habe seit einiger Zeit keine .screenrc-Datei mehr bearbeitet / erstellt, aber Folgendes verwende ich derzeit:
# Turn off the screen startup message
startup_message off
# Define format of bottom navigation/status/date/etc. line
hardstatus alwayslastline "%{yk}[ %H ] %-Lw%50>%{gk}(%{-}%n-%t%{gk})%{-}%+Lw%< %=%{yk}[ %c %d.%m.%Y ]"
# Increase scrollback buffer to 30000 lines
defscrollback 30000
Ich kann mich ehrlich gesagt nicht daran erinnern, wofür alles in meiner Hardstatus-Zeile steht, aber ich möchte herausfinden, wie ich die Farbe des Hostnamens basierend auf dem angemeldeten Benutzer ändern kann. Ist dies überhaupt möglich? Im Moment ist der Hostname gelb, wenn ich unter einem beliebigen Benutzer angemeldet bin. aber ich möchte, dass es rot ist, wenn ich root bin. Kann dies in meiner .bashrc-Datei geändert werden? Ich habe dies in meiner .bashrc, um neue Bildschirmfensternamen in den Hostnamen des Servers zu ändern, mit dem ich verbunden bin:
# Set screen window title
case "$TERM" in
screen)
PROMPT_COMMAND='echo -ne "\033k$HOSTNAME\033\\"'
;;
esac
Vielen Dank für jede Hilfe!
BEARBEITEN
Ich habe versucht, dies zu meiner .bashrc-Datei hinzuzufügen, aber es setzt nur den ANSI-Code vor den Hostnamen in meinem Bildschirm hardstatus:
case "$TERM" in
screen)
if (( $UID == 0 )); then
PROMPT_COMMAND='echo -ne "\033k$FRED$HOSTNAME$RS\033\\"'
else
PROMPT_COMMAND='echo -ne "\033k$HOSTNAME\033\\"'
fi
;;
esac
BEARBEITEN 2
Ich habe auch die tatsächlichen ANSI-Farbcodes (z. B. :) \[\033[31m\]
und die Bildschirm-Escape-Codes (z. B. :) %kr
zu der obigen Anweisung in meinem hinzugefügt .bashrc
, aber keiner hat funktioniert.
BEARBEITEN 3
Wenn ich dies als Eingabeaufforderungsbefehlszeile verwende, wird der Hostname vor meiner PS1 rot angezeigt:
PROMPT_COMMAND='echo -ne "\033[31m$HOSTNAME\033\\"'
Wenn ich die folgende Eingabeaufforderung verwende, ändert sich der Fenstername in den Hostnamen (JA!). Die Farbe bleibt jedoch die Standardeinstellung (NEIN!):
PROMPT_COMMAND='echo -ne "\033[31m\033k$HOSTNAME\033\\"'
Ich habe auch versucht, \033[31m
(und nur [31m
) durch die Bildschirmfarbe (% kr) zu ersetzen , aber das hat auch nicht funktioniert.
quelle
Antworten:
Schauen Sie sich diese U & L-Fragen und Antworten an.
Speziell diese Antwort: https://unix.stackexchange.com/a/16433/7453 .
Die allgemeine Idee ist, dass Sie 2 verschiedene
screenrc
Dateien mit den Farben verwalten und basierend auf Ihrer$USER
in Ihrerbashrc
Datei die UmgebungsvariableSCREENRC
auf die für einen bestimmten Benutzer verweisen .quelle
.screenrc
Dateien gleichzeitig funktionieren. Wenn ich beispielsweise den Bildschirm als ich selbst öffne, umsudo -s
auf einem anderen Computer innerhalb dieser Bildschirmsitzung zu rooten, bleiben meine anderen Bildschirmfenster gelb und der Name (Hostname) des Fensters, für das ich gerade root geworden bin, rot?.screenrc
. Mit zwei separaten Bildschirminstanzen wäre es ganz einfach, nur zwei separate Konfigurationen.