Re: Aliase dauerhaft festlegen
On Thu, Jan 30, 2003 at 06:38:01PM +0100, Martin Küppers wrote:
> die Aliase nicht mehr, und doch stehen sie in der .bashrc.
> An welcher Schraube muß ich drehen, damit die Aliase für mich als root
> und normaler user dauerhaft festgelegt bleiben?
~/.bashrc ist schon richtig. Dann ist's für den jeweiligen Nutzer, aber
auch nur unter bestimmten Bedinungen:
1. Bash startet
2. Bin ich eine Login-Shell?
Ja: 1. /etc/profile abarbeiten
2. $HOME/.bash_profile
oder $HOME/.bash_login
oder $HOME/.profile
abarbeiten
3. Fertig
Nein: Bin ich eine interaktive Shell (also kein Script)?
Ja: $HOME/.bashrc abarbeiten
Nein: Existiert $BASH_ENV? Dann die dort genannte
Datei abarbeiten
Wie Du siehst, wird beim "normalen" Einloggen nie eine .bashrc beachtet.
Warum das ganze?
*profile*: Setzen von Umgebungsvariablen, die normalerweise
auch an Subshells vererbt werden sollen.
*bashrc*: Setzen von Aliasen, die im interaktiven Leben zwar
nützlich sind, aber für Script (was ja auch nur Subshells sind)
gefährlich sein können. (Ein Script-Autor wird sich immer darauf
verlassen, das 'ls' so funktioniert wie /bin/ls und nicht ein Alias
auf z.B. 'ls -F' ist...)
Nichtinteraktive Shells (also Scripte) haben von Deinen
Umgebungsvariablen Kenntnis, aber nicht von Deinen Aliasen.
Interaktive Shells (die *keine* Loginshells sind, z.B. entstehen
die, wenn man im vi ':shell' aufruft) haben die
*profile* nicht gelsen, aber über den Vererbungsmechanismus Kenntnis
von den Umgebungsvariablen, die aktuellen Aliase kennen sie, weil
sie die *bashrc* gelesen haben....
Was fehlt? Loginshells haben bisher keine Kenntnis von der
*bashrc*. Darum findest Du in der *profile* normalerweise etwas
derart: test -f $HOME/.bashrc && source $HOME/.bashrc
Wenn's unter X funktioniert (X kann auch KDE heißen, was ja nix weiter
als besonders buntes X ist ;)), dann wahrscheinlich, weil die
X-Termnials, die dort geöffnet werden, keine Loginshell, sondern nur
eine interaktive Shell starten. Was ja fast Sinn ergibt. Manchmal.
Auf der Textkonsole kommst Du zu Deiner Shell normalerweise nach einem
Login -> also hast Du eine Login-Shell..
Ich bin mir jetzt nicht mehr sicher, ob Du das wissen wolltest, aber
jetzt ist's aufgeschrieben.
Viele Gruesse aus Dresden
Heiko Schlittermann (36, ledig, 1 Kind) ;-)
--
SCHLITTERMANN.de ------------------ internet & unix support -
<a href="http://debian.schlittermann.de/"> Debian 3.x CD </a>
Heiko Schlittermann HS12-RIPE -------------------------------
pgp: A1 7D F6 7B 69 73 48 35 E1 DE 21 A7 A8 9A 77 92 -------
gpg: 3061 CFBF 2D88 F034 E8D2 7E92 EE4E AC98 48D0 359B -----
Reply to: