Prompt in der SHELL

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Prompt in der SHELL

Beitrag von Duff » 16.02.2006 15:02:38

Hallo,

obwohl in meiner .profile drin steht, dass die .bashrc ausgeführt werden soll, wenn diese existiert, scheint dies nicht zu funktionieren.

.profile

Code: Alles auswählen

# ~/.profile: executed by Bourne-compatible login shells.

if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

mesg n

alias ll='ls -l'
alias dan='cd /home/daniel/'
alias down=' cd /home/daniel/downloads/'
alias scr='cd /home/daniel/scripts/'
alias la='ls -al'
Erst wenn ich ein bash -l ausführe, bekomme ich das "richtige" Prompt.

Code: Alles auswählen

sh-2.05b$ bash -l
daniel@daniel-laptop:~$
Bin mir nicht mehr ganz sicher, wie die richtige Reihenfolge lautet, aber ich meine es wäre erst die .profile und dann die .bashrc und noch ein paar (die aber leider nicht mehr kenne und auch nicht mehr in meinem Buch Debian GNU/Linux Andwenderhandbuch finden konnte)
Oh, yeah!

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 16.02.2006 15:23:13

Abhaengig, wie die Bash gestartet wird, liest sie bestimmte Dateien ein.
Startest du sie als Login-Shell, dann wird /etc/profile, ~/.bash_profile, ~/.bash_login und ~/.profile in dieser Reihenfolge gelesen.
Falls die Bash als interaktive Shell gestartet wird, liest sie ~/.bashrc und sonst nix.
Naeheres zu der ganzen Geschichte kannst du in der Man-Page von bash unter dem Punkt Invocation nachlesen.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 16.02.2006 19:00:47

Ja danke für die Antwort.
Werde es mal nachlesen.

Wo ist denn bitte noch mal der Unterschied zwischen der Login-Shell und der interaktiven Shell?
Wenn ich mich angemeldet habe und dann unter der grafischen Oberfläche wie kde die Shell/Konsole starte, ist das doch die interaktive Shell?
Oh, yeah!

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 17.02.2006 11:44:32

Du kannst auch beispielsweise "xterm -ls" starten, dann hast Du auch eine Login-Shell in diesem Terminal. Siehe "man xterm" bei -ls für die genauen Infos.

Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

Methusalix

Prompt in der SHELL

Beitrag von Methusalix » 17.02.2006 18:57:21

Hallo,

noch eine Bemerkung zur Frage nach dem Prompt. Dein Code-posting von oben zeigt ja nur
die ~/.profile. Hier wird ja nur getestet, ob ~/.bashrc existiert und nachfolgdend werden aliase definiert. Ein Prompt ist hier ja nicht definiert. Auch hier spielt die oben dargeastellte Abarbeitungsreihenfolge eine Rolle. Wenn Du

Code: Alles auswählen

echo $PS1
eingibst, solltest Du die aktuelle Prompt-Konfiguration erhalten. Die ist in /etc/profile systemweit definiert; ansonsten wird sie durch eine benutzerdefinierte Konfiguration unter ~/.profile oder ~/.bashrc überschrieben.

Gruß
Matthias

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 18.02.2006 08:08:54

Ja genau. Ein echo $PS1 gibt folgendes aus:

Code: Alles auswählen

daniel@daniel-laptop:~$ echo $PS1
${debian_chroot:+($debian_chroot)}\u@\h:\w\$
Es wird in meiner ~.profile nachgeschaut, ob die ~.bashrc existiert. Falls diese jedoch existiert, soll diese ausgeführt werden.

Code: Alles auswählen

if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi
[/code]
Oh, yeah!

Antworten