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