Martin Doerr schrieb:
Hallo miteinander,

da ich mich gerade mal wieder ein wenig mit LPIC beschäftige, bin ich auf eine Sache gestoßen, welche mich als Anfänger und Ubuntu-8.10-Benutzer etwas verwundert. Es geht um die Thematik Shell- / Umgebungsvariablen:
Ubuntu basiert ja auf Debian. Sollte also eigentlich alles die gleiche Funktion haben, wie auf meiner Debiankiste.

- irgenwann habe ich mal gelernt, dass systemweite Shellanpassungen in /etc/profile und benutzerweite in ~/.bash_profile stehen.
Unterscheide zwischen systemweiten/generellen Konfigurationsdateien und zwischen Benutzerdefinierten Konfigurationsdateien. Letztere findeste du in der Regel in deinem Heimatverzeichnis, systemweite Sachen in der Regel in /etc/irgendwo. Also grob: ja :-).
- da ich in meinem Home-Verzeichnis keine .bash_profile finden konnte suchte ich nach dem Synonym .bash_login bzw. .profile und wurde bei letzterem fündig! Dort steht aber nur ein kleines Script, welches auf .bashrc verweist!
Diese Files haben unterschiedliche "Wirkung". Zunächstmal, alle Files haben die gleiche Syntax. Sie werden jedoch zu unterschiedlichen Zeitpunkten genutzt
oder aufgerufen. Ein Auszug aus der Manpage der Bash:
FILES
      /bin/bash
             The bash executable
      /etc/profile
             The systemwide initialization file, executed for login shells
      /etc/bash.bashrc
             The systemwide per-interactive-shell startup file
      /etc/bash.logout
The systemwide login shell cleanup file, executed when a login shell exits
      ~/.bash_profile
             The personal initialization file, executed for login shells
      ~/.bashrc
             The individual per-interactive-shell startup file
      ~/.bash_logout
The individual login shell cleanup file, executed when a login shell exits
      ~/.inputrc
             Individual readline initialization file
Existiert eine Datei nicht, wird sie natürlich nicht ausgeführt, aber auch nicht angelegt. Also einfach eine Erstellen, wenn keine da ist. Da ich z.B. bei einer login-Shell das gleiche will, wie bei einer "per-interactive"-Shell, habe ich die .bash_profile auf die .bashrc verlinkt und muss so nur in einer Datei rumpfuschen. Evtl. hat die Ubuntu-Gefolgschaft da ja auch sowas hingebogen.

- eigentlich suche ich nach dem Ursprung der Shell-Variablen PATH, SHELL, MANPATH usw. Irgendwo müssen diese doch definiert werden!
 In der .bashrc auf jeden Fall nicht...!
sam:/etc# egrep -r "PATH=|MANPATH=" * | grep bash
bash_completion: PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin type $1 &>/dev/null && bash_completion: PATH=$PATH:/sbin:/usr/sbin:/usr/local/sbin _command $1 $2 $3
skel/.bash_profile:    PATH=~/bin:"${PATH}"
sam:/etc#

Die Variable $SHELL wird imho aus der /etc/passwd ausgelesen.

- dann lese ich immer wieder die Aussage, dass z.B. PATH eine Umgebungsvariable und keine Shell-Variable ist, was den Eintrag in
 /etc/environment erklären würde.
/etc/enviroment hab ich auf meiner Debian-Kiste nicht. Aber ich glaube mich dunkel zu erinnern, dass das sowas Ubuntu-Spezifisches ist, worin tolle Variabeln definiert werden. Im Zweifel mal posten, wenn sie nicht allzu groß ist. Vielleicht hilft dir auch schon ein grep nach enviroment um zu sehen,
wo das File eingelesen wird ;-)

Fragen über Fragen...!
<lichd>

Kann mich hier jemand mal erhellen???
</lichd>
Licht schreibt man mit "t"!


Grüße, Peter



--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an