weholei
Anmeldungsdatum: 7. Februar 2019
Beiträge: 858
Wohnort: Mittelfranken
|
Hallo Ich post mal hier, wenn unpassend, bitte verschieben. Ich möchte fragen, ob sich jemand so etwas eingerichtet hat und die entsprechende Zeile der .bashrc mit mir teilt. ich richte gerade einen "Server" ein der einen anderen ablösen soll und habe etliche "ssh Fenster" offen für log. Eine Zeitlang möchte ich sie parallel betreiben. Da wäre es natürlich hilfreich, wenn man den "Login Namen" und den "Rechnernamen" farbig absetzen könnte, damit man nicht auf falschen Rechner Befehle aufführt und sich wundert wenn sich im log nicht tut. Das im wiki genannte Beispiel ist mir etwas zu bunt 😉 - und den code check ich nicht ☹ Vielen Dank
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4436
|
Ich hab früher mal damit rumgespielt, fand die Infos nachvollziehbar: https://wiki.archlinux.org/title/Bash/Prompt_customization Man kann ja auch rumprobieren, bis es passt.
|
juribel
Anmeldungsdatum: 20. April 2014
Beiträge: 1251
|
Dafür kannst du auf jedem Server eine individuelle printf-Zeile in die .bash_aliases oder .profile einbauen. Dies setzt die Hintergrundfarbe des Terminals, z. B. printf "\e]11;#202040\a" Dieses #202040 sind drei hexadezimale Werte für R, G und B, (00 bis FF), die du individuell anpassen kannst.
|
weholei
(Themenstarter)
Anmeldungsdatum: 7. Februar 2019
Beiträge: 858
Wohnort: Mittelfranken
|
verdooft schrieb:
https://wiki.archlinux.org/title/Bash/Prompt_customization
Danke über eine alternative zum wiki Für jemand, der gut englisch kann, sicher eine Fundgrube.
Man kann ja auch rumprobieren, bis es passt.
das wollte ich mit meiner Frage eigentlich abkürzen. juribel schrieb: Dafür kannst du auf jedem Server eine individuelle printf-Zeile in die .bash_aliases oder .profile einbauen. Dies setzt die Hintergrundfarbe des Terminals, z. B. printf "\e]11;#202040\a" Dieses #202040 sind drei hexadezimale Werte für R, G und B, (00 bis FF), die du individuell anpassen kannst.
Danke für den Tip. Das ist zwar nicht, was ich gesucht habe, aber durchaus geeignet, Terminals auseinander zuhalten. für's erste eine brauchbare Alternative
|
juribel
Anmeldungsdatum: 20. April 2014
Beiträge: 1251
|
Ich hab nochmal in meinen Unterlagen nachgesehen und Folgendes gefunden (als Beispiel) PS1="${debian_chroot:+($debian_chroot)}\[\e[38;5;226m\]\u@\h:\[\e[38;5;51m\]\w\[\e[38;5;154m\]\n$>\[\e[0m\]" Damit stellst du den Befehlsprompt ein. Das ist vielleicht das, wonach du suchst. Es funktioniert unter Xubuntu und debian mit Xfce, und ist wahrscheinlich universell. Erklärung: Es werden die Farbcodes aus der ANSI-Farbtabelle verwendet. In diesem Fall werden Benutzer und Hostname in gelb (226), der Name des aktuellen Ordners in türkis (51) und das Prompt-Zeichen in grün (154) angezeigt; am Schluss werden die Attribute zurückgesetzt, so dass die eingegebenen Befehle in weiss erscheinen. Die Farb-Sequenzen müssen in eckigen Klammern geschrieben, die wiederum mit einem Backslash \ maskiert werden müssen. (Frag mich jetzt nicht, was debian_chroot bedeutet, das kann man vielleicht weglassen. Das Ganze hab ich hier gefunden: //tldp.org/HOWTO/Bash-Prompt-HOWTO/: NACHTRAG: Ich hab es gerade ausprobiert, die Sachen mit debian_chroot kannst du weglassen. Der Befehl funktioniert übrigens auch so "on the fly". Zum Ausprobieren musst du ihn nirgends eintragen, sondern gibst ihn einfach so im Terminal ein: PS1="\[\e[38;5;226m\]\u@\h:\[\e[38;5;51m\]\w\[\e[38;5;196m\]\n$>\[\e[0m\]" (hier jetzt mit einem roten Prompt-Zeichen, Farbcode 196). Wenn du das Ganze einzeilig haben willst, lässt du das \n (ziemlich am Ende vor dem Prompt-Zeichen "$>") weg.
|
weholei
(Themenstarter)
Anmeldungsdatum: 7. Februar 2019
Beiträge: 858
Wohnort: Mittelfranken
|
Danke für Deine Mühe, Promt unter dem Verzeichnis - was nicht alles gibt ;-
)
Die Alternative ist auch ausbaufähig, weil dann lange Befehle, z.b von rsync noch in die Zeile passen root@raspi-u4:/home/testuser
$>mkdir noch-laengeres-verzeichnis2
root@raspi-u4:/home/testuser/langes-verzeichnis-1
$>cd noch-laengeres-verzeichnis2/
root@raspi-u4:/home/testuser/langes-verzeichnis-1/noch-laengeres-verzeichnis2
$>
das sind momentan meine einträge # bash und prompt gruen
# PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
# user rot und alles sehr bunt
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]\$ \[\033[00m\]'
#
# PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;34m\]\h \[\033[01;33m\]\w \[\033[01;33m\]\$ \[\033[00m\]'
# von juribel
# PS1="${debian_chroot:+($debian_chroot)}\[\e[38;5;226m\]\u@\h:\[\e[38;5;51m\]\w\[\e[38;5;154m\]\n$>\[\e[0m\]"
Jetzt habe ich eine Basis zum herumprobieren, im Moment favorisiere ich eine Kombination aus user rot für die .bashrc von root und dein erster Vorschlag damit ich sofort sehe, auf welchen Rechner ich bin.
|
juribel
Anmeldungsdatum: 20. April 2014
Beiträge: 1251
|
Vielleicht hast du es übersehen, ich hatte noch einen Nachtrag geschrieben, nämlich dass die debian_chroot Sachen entfallen können, und noch ein Beispiel dazugelegt. Bei mir hab ich das sogar so gemacht, dass ich mir eine Funktion geschrieben habe, die den Rechnernamen abfragt und den Prompt entsprechend setzt. So muss ich nicht auf den einzelnen Rechnern unterschiedliche Prompt-Versionen vorhalten. Dies hab ich nicht für die Prompts gemacht, sondern für meinen ersten Vorschlag mit den Bildschirm-Hintergrundfarben.
Deine Farbsequenzen wie "\033[01;31m" sind auf nur wenige Farben beschränkt, dürften aber wohl für deine Zwecke ausreichen. Die "mittellange Form", die ich verwende, kann 256 Farben adressieren.
|
weholei
(Themenstarter)
Anmeldungsdatum: 7. Februar 2019
Beiträge: 858
Wohnort: Mittelfranken
|
Danke für Deine Hilfe Deinen Nachtrag habe ich tatsächlich übersehen Im Moment muss ich das ganze erst mal sacken lassen und mich etwas einarbeiten und probieren Ich würde mich aber sehr freuen, wenn du mir bei weiteren Fragen nochmal hilft.
|
juribel
Anmeldungsdatum: 20. April 2014
Beiträge: 1251
|
Gerne. Ich hab mich mit dem Thema "Farben im Terminal" seinerzeit sehr eingehend beschäftigt.
|
weholei
(Themenstarter)
Anmeldungsdatum: 7. Februar 2019
Beiträge: 858
Wohnort: Mittelfranken
|
Hi Juribel Ich bin gerade dabei etwas rum zuprobieren. Irgendwie scheint dein Link nicht zu funktionieren Könntest du das bitte überprüfen?
|
juribel
Anmeldungsdatum: 20. April 2014
Beiträge: 1251
|
|
weholei
(Themenstarter)
Anmeldungsdatum: 7. Februar 2019
Beiträge: 858
Wohnort: Mittelfranken
|
Dank Juribel und dem wiki war ich erfolgreich. Vor allen der Tip, den ganzen sumsens mit dem chroot wegzulassen, hat es erheblich erleichtert. Ich poste mal das Ergebnis, falls jemand anders auch Bedarf hat. ... am ehesten wohl ich selbst, wenn das Wissen dazu bei einer neuen Installation verschollen ist 😉 PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\] " # alles grün Dann durch tip von Juribel user@host getrennt PS1="\[\033[01;32m\]\u @\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\] " bischen mit Zahlen probiert, alles rot PS1="\[\033[01;31m\]\u\[\033[0;31m\]@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\] " # alles rot der Rest war einfach PS1="\[\033[01;31m\]\u\[\033[0;32m\]@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\] " # user rot @host grün, prompt blau
PS1="\[\033[01;31m\]\u\[\033[0;32m\]@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\] " user rot @host grün, prompt blau
Die unterstrichenen Zahlen sind zu verändern. ps: das mit der Hintergrundfarbe des Terminals ändern, habe ich nicht weiter verfolgt, weil die Farbe auch nach den ausloggen bleibt und ich dann erst das Terminal schließen müsste.
Oder gibt es da noch einen Befehl ?
|
juribel
Anmeldungsdatum: 20. April 2014
Beiträge: 1251
|
Moin, wenn du auf jedem beteiligten Rechner, auch auf demjenigen, auf dem du ssh aufrufst, so ein Skript für die Hintergrundfarbe hast, kannst du einfach mit && den eigenen individuellen Befehl hinten anhängen. Ich habe in meiner .bash_aliases eine Funktion geschrieben, und ein kompletter Befehl sähe dann so aus:
ssh <Rechnername> -l <Benutzername> && setbg
Die Funktion "setbg" fragt dabei den Namen des Hosts ab und richtet die Hintergrundfarbe entsprechend ein:
function setbg () {
# Diese Funktion setzt die Hintergrundfarbe des Terminals je nach Host-Name
[[ ${HOSTNAME,,} =~ thinkpad-p50 ]] && printf "\e]11;#202040\a"
[[ ${HOSTNAME,,} =~ thinkpad-x240 ]] && printf "\e]11;#202a20\a"
[[ ${HOSTNAME,,} =~ acer-d255 ]] && printf "\e]11;#2a2a10\a"
}
|
weholei
(Themenstarter)
Anmeldungsdatum: 7. Februar 2019
Beiträge: 858
Wohnort: Mittelfranken
|
Hallo Juribel Nachdem ich schon ein Erfolgserlebnis hatte, musste ich deinen letzten Tip natürlich probieren. Allerdings, ein Erfolg will sich nicht so recht einstellen. Ich rekapituliere: Die Funktion habe ich in der .bash_aliases der beteiligten Rechner eingefügt und die Rechnernamen angepasst. . .bashrc (.bashrc neu eingelesen) testuser@ubu-20-home:~$ ssh -p xxx raspi-u4 -l testuser && setbg
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-1043-raspi armv7l)
.
.
testuser@raspi-u4:~ $
die Hintergrundfarbe bleibt unverändert wo liege ich falsch? Dass ich keinen Standartport verwende, sollte keine Rolle spielen, oder?
|
juribel
Anmeldungsdatum: 20. April 2014
Beiträge: 1251
|
Sollte eigentlich gehen 😉 Aber du hast doch wohl die Host-Namen an deine Rechner angepasst ?? Und was passiert, wenn du nach der ssh-Anmeldung auf einem anderen Rechner versuchsweise anstatt die Funktion aufzurufen, einfach den printf-Befehl so, ohne Skript, eingibst?
|