Benutzerweite aliases

Post Reply
Message
Author
rudi

Benutzerweite aliases

#1 Post by rudi »

Hallo,

Ich versuche gerade einen alias für einen Benutzer zu vergeben, der, wenn möglich, "sessionweit" geht. Will sagen, der alias soll in allen shells funktionieren.
Ich habe den alias abwechselnd in die .profile wie auch in die .bash_login eingetragen, jedoch funktioniert dieser dann nicht in einem xterm, sondern nur in der logishell.
Natürlich kann ich ihn in die .bashrc eintragen, die bei jeder Shell neu gelesen wird, allerdings muß man sowas doch auch einmalig vergeben können, ähnlich wie man Variablen exportiert, die auch durchvererbt werden, oder ?

Jochen

Re: Benutzerweite aliases

#2 Post by Jochen »

Stichwort: "vererben".

Um Variablen weitervererben zu können, muss sie mittels "export" zu einer Umgebungsvariablen gemacht werden. Aliase können aber nicht exportiert und damit weitervererbt werden, da die eine "Shell-Only"-Funktion haben und von anderen Programmen nicht sinnvoll genutzt werden können - im Gegensatz zu Umgebungsvariablen.

Weiterhin verlangt eine Vererbung ja auch eine Eltern-Kind-Beziehung der Prozesse (auch über mehrere Ebenenen möglich).

Fazit: Nimm Deinen Aliase in die .bashrc auf - da gehören sie hin.

Jochen

Andreas B.

Re: Benutzerweite aliases

#3 Post by Andreas B. »

"/etc/profile" sollte benutzerunabhaengige Aliase enthalten,

sonst guck mal im man von xtrem, wie der vorgeht.

Jochen

Re: Benutzerweite aliases

#4 Post by Jochen »

@Andreas: Wenn ich rudi richtig verstanden habe, soll das alias schon benutzerabhängig sein, aber für alle seine Shells gelten. Damit sind dann auch "unabhängige", also in der Prozesshierarchie nebenläufige Shells gemeint. Das geht nur über die ~/.bashrc.

Ausserdem ist es m.E. schlechter Stil, in die /etc/profile Konstrukte zu schreiben, die eine Bourne-Shell nicht verstehen würde. Für systemweite Aliase wäre /etc/bashrc korrekt.

Jochen

T. Erminal

Re: Benutzerweite aliases

#5 Post by T. Erminal »

xterm -ls

Andreas B.

Re: Benutzerweite aliases

#6 Post by Andreas B. »

Zitat /etc/profile
<blockquote><hr>
# /etc/profile: This file contains system-wide defaults used by
# all Bourne (and related) shells.
<hr></blockquote>

Jochen

Re: Benutzerweite aliases

#7 Post by Jochen »

Das ist gewisslich nicht falsch, aber zusammen mit dem folgenden Auszug aus der /etc/bashrc wird's erst komplett:<blockquote><hr># /etc/bashrc

# System wide functions and aliases
# Environment stuff goes in /etc/profile
<hr></blockquote>
Denn "environment stuff" ist zwischen sh und bash (und ksh) portabel, nur aliase kann die sh gar nicht und Funktionen haben einige Nachteile.

Jochen

rudi

Re: Benutzerweite aliases

#8 Post by rudi »

Jup, es ging um einen Benutzer. Ich könnte vermutlich ein

[ "${uid}" = "123" ] && alias muh="cow --bell"

in die /etc/profile setzten, finde ich aber nicht sehr elegant. Auf jeden Fall weiß ich jetzt, das sich aliase nicht duechvererben lassen.
Wieder was gelernt. Danke an alle.

Post Reply