ubuntuusers.de

Shell Prompt in anderer Farbe?

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Fips

Anmeldungsdatum:
14. März 2007

Beiträge: 647

Wohnort: Pottendorf

Hallo,

Wisst Ihr ob das funktioniert, dass der Shell-Prompt in anderer Farbe angezeigt wird als der ausgegebene Text und die Eingabe-Befehle?

z.Bsp.:
user@host:~$ (das in rot) apt-get install xy (das in weiß)
xyxyxyxyxyxyxyxyxy (das in gleicher Farbe wie die Eingabe, also in weiß)

Danke im Voraus!

MFG Fips

comm_a_nder

Avatar von comm_a_nder

Anmeldungsdatum:
5. Februar 2006

Beiträge: 2533

Wohnort: Dresden

e1bart0 Team-Icon

Avatar von e1bart0

Anmeldungsdatum:
12. Mai 2007

Beiträge: 927

Wohnort: München

Fips

(Themenstarter)

Anmeldungsdatum:
14. März 2007

Beiträge: 647

Wohnort: Pottendorf

Danke für eure Antworten!

Ich würde gerne das Beispiel 1 aus dem Bash/Prompt Wiki anwenden:
Bash/Prompt

Nur weiß ich nicht wo ich das, was dort beschrieben ist, in meine Datei ~.bashrc schreiben soll.

Kann ich ausser der grünen Farbe auch eine andere Farbe verwenden?
Weil die Farben die dort angeführt sind, sind Hintergrundfarben, wenn ich das richtig verstanden habe.

Hier ist ein Teil meiner ~.bashrc
Ich habe den Code herauskopiert, da wo überall PS1 vorkommt:

xterm-color)
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    ;;
*)
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    ;;
esac

# Comment in the above and uncomment this below for a color prompt
#PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
    ;;
*)
    ;;
esac

Was bedeudet das Schlüßelwort esac eigentlich?

Danke nochmals für eure Hilfe!

SCHÖNE GRÜßE

adun Team-Icon

Avatar von adun

Anmeldungsdatum:
29. März 2005

Beiträge: 8606

esac schließt case. Liegt daran, dass als POSIX erschaffen wurde LSD gerade "in" war. 😉

tempuser Team-Icon

Ehemalige

Anmeldungsdatum:
5. Februar 2008

Beiträge: 1350

Wohnort: Hamburg

Hallo Fips,

der entsprechende Teil deiner bashrc muss dann wie folgt lauten:

#set a fancy prompt (non-color, unless we know we "want" color)
#case "$TERM" in
#xterm-color)
#    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
#    ;;
#*)
#    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
#    ;;
#esac

# Comment in the above and uncomment this below for a color prompt
#PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

PS1=[BEISPIEL1]

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
    ;;
*)
    ;;
esac

Anstelle von [BEISPIEL1] nimmst du den Teil aus Beispiel1 oder eine andere Möglichkeit, die dir gefällt.

Viele Grüße,
tempuser

panne78h

Anmeldungsdatum:
16. Dezember 2007

Beiträge: Zähle...

Hi @all,

ist zwar kein Antwort-Beitrag, aber weiß vllt. jemand, was das

${debian_chroot:+($debian_chroot)} 

im PS1 zu bedeuten hat?
In Bash/Prompt wird das leider auch nicht erklärt, noch habe ich sonst irgendwo eine Erklärung gefunden bislang...

Schicke Grüße,

d.panne

freanir

Anmeldungsdatum:
9. August 2007

Beiträge: 180

Das zeigt an, in welchem chroot man sich befindet.
Siehe auch chroot.

Das steht aber auch in der .bashrc:

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
         debian_chroot=$(cat /etc/debian_chroot)
fi

Fips

(Themenstarter)

Anmeldungsdatum:
14. März 2007

Beiträge: 647

Wohnort: Pottendorf

Danke für eure Antworten.

Ich werde das mit dem Shell Prompt gleich ausprobieren.

Dann hätte ich noch eine Frage.

Die Konfigurationsdatei .bashrc, in welcher Scriptsprache ist diese geschrieben?
In Shellscripting oder ist das eine Unix interne Konfigurations-Sprache.

Und für was steht das PS1?

@adun

esac schließt case. Liegt daran, dass als POSIX erschaffen wurde LSD gerade "in" war. 😉

Meinst du damit die Droge LSD?
Was ist Posix eigentlich?

Schöne Grüße Fips

freanir

Anmeldungsdatum:
9. August 2007

Beiträge: 180

Fips hat geschrieben:

Die Konfigurationsdatei .bashrc, in welcher Scriptsprache ist diese geschrieben?
In Shellscripting oder ist das eine Unix interne Konfigurations-Sprache.

Wie der Name schon sagt in Bash. 😉

Was ist Posix eigentlich?

Das ist das Portable Operating System Interface und beschreibt die Schnittstellen zwischen Applikationen und dem Betriebssystem.

Fips

(Themenstarter)

Anmeldungsdatum:
14. März 2007

Beiträge: 647

Wohnort: Pottendorf

Danke für eure Antworten, aber eine Frage hätte ich noch.

Ich habe in meine .bashrc Datei jetzt das Beispiel Nummer 1 geschrieben.
Das hat sofort funktioniert nach einem Neustart.

Da ist nur user@host in grüner Farbe geschrieben, ich würde aber gerne eine andere Farbe verwenden.
Im Beispiel steht es aber nur mit einer grünen Farbe beschrieben.

Wisst Ihr ob ich statt der grünen Farbe einfach eine andere Farbe einfügen kann, die im Wiki beschrieben stehen?

Also statt der grünen Farbe: PS1='\[\033[0;32;40m\]\u@\H:\e[0m '[/i] z.Bsp. hellrot: PS1='\[\033[1;31;40m\]\u@\H:\e[0m[/i] ' MFG'

freanir

Anmeldungsdatum:
9. August 2007

Beiträge: 180

Die Farbecodes und weitere Erklärungen zum Prompt findest du hier:
Bash/Prompt

BTW: Ein neues Terminal zu öffnen hätte bereits gereicht. Alternativ hätte man auch im öffnen Terminal folgendes eingeben können:

. ~/.bashrc


GNU/Linux Systeme muss man nur in den seltensten Fällen neu starten. Meist reicht ein Neustart der Anwendung bzw. des Dienstes.

Der_Gestreifte

Avatar von Der_Gestreifte

Anmeldungsdatum:
21. Juni 2007

Beiträge: 1261

Wohnort: Nürnberg

BTW: Ein neues Terminal zu öffnen hätte bereits gereicht. Alternativ hätte man auch im öffnen Terminal folgendes eingeben können:

. ~/.bashrc

Und wenn Du noch bequemer rumprobieren willst kannst Du das auch an der Kommandozeile machen, indem Du so lange eine entsprechnde Variable (wie PS1=\[\033[1;33m\]\u@\h:\W$\[\033[0m\]) eintippst, bis Du das gefunden hast, was Du in die .bashrc eintragen willst.

freanir

Anmeldungsdatum:
9. August 2007

Beiträge: 180

Der Gestreifte hat geschrieben:

Und wenn Du noch bequemer rumprobieren willst kannst Du das auch an der Kommandozeile machen, indem Du so lange eine entsprechnde Variable (wie PS1=\[\033[1;33m\]\u@\h:\W$\[\033[0m\]) eintippst, bis Du das gefunden hast, was Du in die .bashrc eintragen willst.

Daran hab ich gar nicht mehr gedacht. Klar ist das komfortabler.

Solo0815

Avatar von Solo0815

Anmeldungsdatum:
7. Juni 2006

Beiträge: 402

Wohnort: KC

Auch eine schöne Spielerei:

##########################################
## Hier sind die Shell-Farben definiert ##
##########################################

BLACK='\033[0;30m'
BLUE='\033[0;34m'
GREEN="\033[0;32m"
CYAN='\033[0;36m'
RED='\e[0;31m'
PURPLE='\033[0;35m'
BROWN='\033[0;33m'
LGRAY='\033[0;37m' 	# Light-Gray
DGRAY='\033[1;30m'	# Dark-Gray
LBLUE='\033[1;34m'	# Light-Blue
LGREEN='\033[1;32m'	# Light-Green
LCYAN='\033[1;36m'	# Light-Cyan
LRED='\033[1;31m'	# Light-Red
LPURPLE='\033[1;35m' 	# Light-Purple
YELLOW='\033[1;33m'	
WHITE='\033[1;37m'
NC='\033[0m'            # No Color

## wenn root, dann USER in rot schreiben
PCNAME="${YELLOW}\h${LGRAY}"	# Host gelb, naechstes Zeichen grau
WDIR="${LRED}\w${NC}"		# Arbeitsverzeichnis hellrot, naechstes Zeichen ohne Farbe

if [ $USER == 'root' ]; then 
	PROMPTUSER="${RED}\u${LGRAY}"	# User "root" in Rot
	ENDPROMPT="# "			# Am Ende "# "
else
	PROMPTUSER="${YELLOW}\u${LGRAY}" # Normaler User in gelb
	ENDPROMPT="$ "			 # Am Ende "$ "
fi
PS1="${debian_chroot:+($debian_chroot)}${PROMPTUSER}@${PCNAME}:${WDIR}${ENDPROMPT}"
Antworten |