Hallo alle beisammen, ich habe hier mit meiner Susi 7.3 ein kleineres Problemchen: Logge ich mich als user auf der Console ein, habe ich alle meine mit alias in der boot.local definierten Kurzbefehle. Diese Kurzbefehle habe ich dort hinein gestellt, damit die fuer alle User nutzbar sind - ist das falsch? Logge ich mich allerdings als genau derselbe user unter X ein und gehe dort in eine Shell (meinetwegen zum Bleistift xterm) und versuche genau dieselben Kurzbefehle auszufuehren, dann macht er Zicken, es gaebe diese Befehle nicht. Jetzt meine Schlussfolgerung: Offenbar scheint er beim Login in X die boot.local NICHT auszufuehren, sonst wuerde er ja meine alias Commandos gelesen und ausgefuehrt haben. Wie also stelle ich es nun an, dass ich nach einem Login in X meine Kurzbefehle, die ich wie oben beschrieben ja in boot.local gesetzt habe, auch in einer X-console nutzen kann. Errrmh, versteht Ihr mich? Oder ist das zu wirr? Also ich weiss nich, wonach ich da nun suchen soll, vielleicht mache ich das auch nur klompizierter als es ist, aber ich bemuehe mich ja nur, das Problem zu erlaeutern... TOPMANN -- Die unaufgeforderte Zusendung einer Werbemail an Privatleute verstoesst gegen §1 UWG und §823 I BGB (Beschluss des LG Berlin vom 2.8.1998, Az: 16 O 201/98).Jede kommerzielle Nutzung der uebermittelten persoenlichen Daten sowie deren Weitergabe an Dritte ist ausdruecklich untersagt!
Hallo! Torben Pollmann wrote:
Logge ich mich als user auf der Console ein, habe ich alle meine mit alias in der boot.local definierten Kurzbefehle. Diese Kurzbefehle habe ich dort hinein gestellt, damit die fuer alle User nutzbar sind - ist das falsch?
Ja. /etc/init.d/boot.local ist ein Startskript, keine Konfigurationsdatei. Dort stehen Kommandos, die direkt von init nach dem Booten aber vor dem Wechsel in einen Runlevel ausgefuehrt werden sollen. Ueblicherweise sind das Dinge, die man braucht, um Hardware zu konfigurieren oder umzukon- figurieren nach seinen Beduerfnissen.
[...] Jetzt meine Schlussfolgerung: Offenbar scheint er beim Login in X die boot.local NICHT auszufuehren, sonst wuerde er ja meine alias Commandos gelesen und ausgefuehrt haben.
Falsche Schlussfolgerung. Das Skript boot.local wird immer unabhaengig vom Runlevel ausgefuehrt, es wird wie oben be- schrieben sogar vor dem Wechsel in einen Runlevel ausge- fuehrt. Dein Problem liegt ganz woanders... Denk mal ueber folgendes nach: $> alias bla bash: alias: `bla' not found $> ( alias bla="echo blubb" ; alias bla ) alias bla='echo blubb' $> alias bla bash: alias: `bla' not found Nun versuche mal zu erklaeren, warum der Alias "bla" in der letzten Zeile nicht definiert ist... Kleiner Tip: $> alias bla bash: alias: `bla' not found $> alias bla="echo blubb" ; alias bla alias bla='echo blubb' $> alias bla alias bla='echo blubb' funktioniert wohl so, wie Du es erwarten wuerdest. Ver- gleiche nun mal die zwei Beispiel-Bloecke miteinander...
Wie also stelle ich es nun an, dass ich nach einem Login in X meine Kurzbefehle, die ich wie oben beschrieben ja in boot.local gesetzt habe, auch in einer X-console nutzen kann.
Errrmh, versteht Ihr mich? Oder ist das zu wirr? Also ich weiss nich, wonach ich da nun suchen soll, vielleicht mache ich das auch nur klompizierter als es ist, aber ich bemuehe mich ja nur, das Problem zu erlaeutern...
Benuzte nicht boot.local, sondern lies Dir mal den Header von /etc/profile durch: # /etc/profile for SuSE Linux # # PLEASE DO NOT CHANGE /etc/profile. There are chances that your changes # will be lost during system upgrades. Instead use /etc/profile.local # for your local settings, favourite global aliases, VISUAL and EDITOR # variables, etc ... "Favourite global aliases", das ist wohl genau das, was bei Dir zutrifft, oder? Also schreibe Deine Aliase in die Datei /etc/profile.local und alles wird gut. CU, Thomson
Thorsten Haude schrieb:
* Thomas Hertweck
[2003-08-22 13:27]: Denk mal ueber folgendes nach:
Habe ich, ich komme nicht drauf. Was ist die Lösung?
"man bash": [...] (list) list is executed in a subshell. Variable assignments and builtin commands that affect the shell's environment do not remain in effect after the command completes. The return status is the exit status of list. [...] Im Beispiel, was gegeben war, ist der Alias also nur innerhalb des Klammernpaares definiert, naemlich in der Subshell. Wird die Subshell beendet und man kehrt in die urspruengliche Shell zurueck, dann ist der Alias wieder undefiniert. Laesst man das Klammernpaar weg, so wird der Alias in der momentanen Shell definiert. Das gleiche passiert, wenn ich das richtig verstanden habe, im Prinzip Torben, wenn er die Aliase in die Datei /etc/init.d/boot.local schreibt. Sie sind unter dann X einfach nicht mehr verfuegbar... Aber vielleicht hast Du ja eine bessere Erklaerung parat. Jedenfalls ist /etc/profile.local der richtige Ort fuer die Alias-Definitionen. Gruesse, Thomson
Torben Pollmann wrote:
Jetzt meine Schlussfolgerung: Offenbar scheint er beim Login in X die boot.local NICHT auszufuehren, sonst wuerde er ja meine alias Commandos gelesen und ausgefuehrt haben.
Das boot.local aus /etc/init.d? Gut moeglich, das der *DM solche Eintraege nicht weitervererbt. Aliases und PATH-Veraenderungen legt man zweckmaessig in "~/.bashrc" hinein. Das sollte auch von einem xterm ausgewertet werden (Wenn deine User-Shell die Bash ist) Systemweite Aliases und Env-Variablen kann man in /etc/bash.bashrc oder besser in /etc/profile.local oder einer Datei in /etc/profile.d ablegen. -- Have fun, Peter
Hallo, Torben Pollmann schrieb:
ich habe hier mit meiner Susi 7.3 ein kleineres Problemchen:
Logge ich mich als user auf der Console ein, habe ich alle meine mit alias in der boot.local definierten Kurzbefehle. Diese Kurzbefehle habe ich dort hinein gestellt, damit die fuer alle User nutzbar sind - ist das falsch?
Da bist Du in einer Loginshell. Die liest aus /etc/profile, ~/.bash_profile, oder ~/.profile.
Logge ich mich allerdings als genau derselbe user unter X ein und gehe dort in eine Shell (meinetwegen zum Bleistift xterm) und versuche genau dieselben Kurzbefehle auszufuehren, dann macht er Zicken, es gaebe diese Befehle nicht.
Jetzt bist Du in einer Nicht-Login-Shell. Die liest ~/.bashrc.
Jetzt meine Schlussfolgerung: Offenbar scheint er beim Login in X die boot.local NICHT auszufuehren, sonst wuerde er ja meine alias Commandos gelesen und ausgefuehrt haben.
Wie also stelle ich es nun an, dass ich nach einem Login in X meine Kurzbefehle, die ich wie oben beschrieben ja in boot.local gesetzt habe, auch in einer X-console nutzen kann.
Schreib das doch in /etc/profile.local -> wird von der /etc/profile eingelesen. Gruss Sven -- Linux macht Spass, weil es von intelligenten Menschen gemacht ist. [Ratti in suse-linux]
participants (5)
-
Peter Wiersig
-
Sven Rodenbeck
-
Thomas Hertweck
-
Thorsten Haude
-
Torben Pollmann