# [solved] Userumgebung auf Deutsch

## nisto

Hi.

Ich habe vor kurzem meine Userumgebung (Desktopumgebung ist Fluxbox) von Englisch auf Deutsch gestellt. Bisher habe ich den xserver manuell mit startx gestartet. Hier lief alles nach Plan. Nun habe ich xdm als Displaymanager installiert und sobald ich darüber den xserver starte / mich einlogge ist wieder Englisch die Sprache der Wahl.

Jemand eine Idee welche Variable ich noch setzen muss?

```

ThinkPad ~ # locale -a

C

POSIX

de_DE

de_DE.iso88591

de_DE.utf8

en_GB

en_GB.iso88591

en_GB.utf8

ThinkPad ~ # 

```

```

ThinkPad ~ # eselect locale list

Available targets for the LANG variable:

  [1]   C

  [2]   POSIX

  [3]   de_DE

  [4]   de_DE.iso88591

  [5]   de_DE.utf8

  [6]   en_GB

  [7]   en_GB.iso88591

  [8]   en_GB.utf8

  [9]   de_DE.UTF-8 *

  [ ]   (free form)

ThinkPad ~ # 

```

```

ThinkPad ~ $ cat .bashrc 

[/quote]

export LANG="de_DE.UTF-8"

export LC_COLLATE="C"

ThinkPad ~ $ 

```

Last edited by nisto on Sun Apr 01, 2018 10:32 am; edited 1 time in total

----------

## mike155

Hallo nisto,

das liegt sehr wahrscheinlich daran, dass die Umgebungsvariablen, die Du in ~/.bashrc setzt, nicht wirksam werden, wenn Du xdm verwendest. D.h. Du musst nicht zusätzliche Umgebungsvariablen setzen, sondern Du musst dafür sorgen, dass LANG auch wirklich gesetzt ist.

Deshalb ist es besser, die Language Umgebungsvariablen in /etc/env.d/02locale zu setzen. Die Datei sollte folgenden Inhalt haben:

```
LANG="de_DE.utf8"

LC_COLLATE="C"
```

Nach einer Änderung musst Du einmalig 'env-update' aufrufen. Nach einem erneuten Login sollte es funktionieren.

Wenn Du Language Umgebungsvariablen nicht systemweit, sondern nur für einen User setzen möchtest, ist ~/.profile besser als ~/.bashrc. ~/.bashrc wird nur bei bash, nicht aber bei sh oder dash ausgewertet. Und auch bei bash wird die Datei nicht in allen Modis ausgewertet (interactive login shell / intercative shell / non-interactive shell).

----------

## nisto

Hi.

In /etc/env.d/02locale hatte ich schon was zu stehen.

```

LANG="de_DE.UTF-8"

LC_COLLATE="C"

```

Ich habe es nach deiner Vorgabe geändert, gab aber leider keinen Erfolg.

----------

## mike155

Wenn ich es richtig verstehe, ist die Sprache in Fluxbox Deutsch, wenn Du die X11-Umgebung mit startx startest und sie ist Englisch, wenn Du sie über xdm startest. Richtig?

Dann bitte die LANG- und LC_COLLATE-Einträge aus .bashrc entfernen. Sie werden nicht benötigt, da die Umgebungsvariablen ja bereits über /etc/env.d/02locale gesetzt werden.

Danach bitte nacheinander beide Varianten (startx und xdm) starten und jeweils eine Shell öffnen und dort "export > datei1" bzw. "export > datei2" ausführen. Hinterher die beiden Dateien mit "diff datei1 datei2" o.ä. vergleichen. Gibt es Unterschiede?

----------

## nisto

Ja so ist es.

Ich hatte einige Jahre alles auf Englisch. Das System startet, ich logge mich auf der Konsole ein und gebe startx ein, somit starte ich Fluxbox. Auf diesem Wege habe ich jetzt alles auf deutsch umgestellt.

Nun habe ich ein xdm als Displaymanager installiert, der jetzt Fluxbox startet, hier bleibt alles auf Englisch.

Aus der ~/.bashrc habe ich die Einträge wieder entfernt.

Deinen anderen Vorschlag probiere ich morgen aus.

----------

## firefly

Über einen display manager (wie xdm) wird eine "login" shell gestartet.

Und und im fallde der bash wertet diese nicht die ~/.bashrc aus sondern ~/.bash_profile, ~/.bash_login oder ~/.profile.

Wenn die Umstellung auf Deutsch nur für den einzelnen User gemacht werden soll dann muss es in eines der oben genannten dateien die Änderungen gemacht werden.

----------

## nisto

 *firefly wrote:*   

> ~/.bash_profile, ~/.bash_login oder ~/.profile.

 

Moin.

Ich habe alle Dateien nacheinander angelegt, bleibe aber über xdm in Englisch.   :Sad: 

----------

## nisto

 *mike155 wrote:*   

> "export > datei1" bzw. "export > datei2" ausführen. Hinterher die beiden Dateien mit "diff datei1 datei2" o.ä. vergleichen. Gibt es Unterschiede?

 

Moin.

Es gibt Unterschiede. LANG wird nicht gesetzt, obwohl in 02locale definiert.

```

ThinkPad ~/Downloads $ diff xdm.txt xstart.txt 

0a1

> declare -x ANT_HOME="/usr/share/ant"

1a3,4

> declare -x CONFIG_PROTECT="/usr/share/gnupg/qualified.txt"

> declare -x CONFIG_PROTECT_MASK="/etc/sandbox.d /etc/fonts/fonts.conf /etc/gentoo-release /etc/terminfo /etc/dconf /etc/ca-certificates.conf /etc/revdep-rebuild"

3a7,9

> declare -x FLTK_DOCDIR="/usr/share/doc/fltk-1.3.3-r3/html"

> declare -x GCC_SPECS=""

> declare -x GSETTINGS_BACKEND="dconf"

5a12,21

> declare -x HUSHLOGIN="FALSE"

> declare -x HZ="100"

> declare -x INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/6.4.0/info:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.29.1/info:/usr/share/info"

> declare -x JAVAC="/etc/java-config-2/current-system-vm/bin/javac"

> declare -x JAVA_HOME="/etc/java-config-2/current-system-vm"

> declare -x JDK_HOME="/etc/java-config-2/current-system-vm"

> declare -x LANG="de_DE.utf8"

> declare -x LC_COLLATE="C"

> declare -x LESS="-R -M --shift 5"

> declare -x LESSOPEN="|lesspipe %s"

7a24,26

> declare -x MANPAGER="manpager"

> declare -x MANPATH="/etc/java-config-2/current-system-vm/man:/usr/share/gcc-data/x86_64-pc-linux-gnu/6.4.0/man:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.29.1/man:/usr/lib/llvm/5/share/man:/etc/java-config-2/current-system-vm/man/:/usr/local/share/man:/usr/share/man"

> declare -x MOZ_GMP_PATH="/usr/lib64/nsbrowser/plugins/gmp-gmpopenh264/system-installed"

8a28,29

> declare -x OPENGL_PROFILE="xorg-x11"

> declare -x PAGER="/usr/bin/less"

11a33

> declare -x QT_GRAPHICSSYSTEM="raster"

13c35

< declare -x SHLVL="2"

---

> declare -x SHLVL="4"

16c38,39

< declare -x WINDOWID="8388621"

---

> declare -x VBOX_APP_HOME="/usr/lib64/virtualbox"

> declare -x WINDOWID="6291469"

18c41,44

< declare -x XTERM_LOCALE="C"

---

> declare -x XAUTHORITY="/home/nisto/.Xauthority"

> declare -x XDG_CONFIG_DIRS="/etc/xdg"

> declare -x XDG_DATA_DIRS="/usr/local/share:/usr/share"

> declare -x XTERM_LOCALE="de_DE.utf8"

ThinkPad ~/Downloads $

```

----------

## mike155

 *Quote:*   

> LANG wird nicht gesetzt, obwohl in 02locale definiert.
> 
> 

 

Ich verstehe zwar noch nicht, warum LANG nicht gesetzt ist - aber wir wissen zumindest, dass wir an der richtigen Stelle suchen  :Smile: 

OK, prüfen wir erst einmal die Basics:

1) /etc/env.d/02locale wird nicht direkt von der Shell gelesen. Nach Änderungen muss man env-update aufrufen und die Daten werden nach /etc/profile.env geschrieben. Bitte prüfe, dass in /etc/profile.env die gewünschten Werte für LANG und LC_COLLATE stehen.

2) Auch /etc/profile.env wird nicht direkt von der Shell gelesen. Stattdessen liest die Shell die Datei /etc/profile. In dieser Datei muss u.a. folgendes stehen:

```
# Load environment settings from profile.env, which is created by

# env-update from the files in /etc/env.d

if [ -e /etc/profile.env ] ; then

        . /etc/profile.env

fi
```

Ist das der Fall?

3) In /etc/profile.env und /etc/profile.d/* dürfen keine Anweisungen stehen, die LANG oder LC_COLLATE zurücksetzen oder überschreiben. Bitte überprüfen.

4) Deine Ausgabe von "eselect locale list" enthält sowohl de_DE.utf8, als auch de_DE.UTF-8. Das ist zwar wahrscheinlich nicht der Grund für das Problem, es ist aber auch nicht richtig. Bitte /etc/locale.gen auf einen doppelten Eintrag überprüfen.

----------

## nisto

Hey, weiter gehts   :Smile: 

1) LANG und LC_COLLATE sind geschrieben

```

ThinkPad ~ # cat /etc/profile.env

# THIS FILE IS AUTOMATICALLY GENERATED BY env-update.

# DO NOT EDIT THIS FILE. CHANGES TO STARTUP PROFILES

# GO INTO /etc/profile NOT /etc/profile.env

export ANT_HOME='/usr/share/ant'

export CONFIG_PROTECT='/usr/share/gnupg/qualified.txt'

export CONFIG_PROTECT_MASK='/etc/sandbox.d /etc/fonts/fonts.conf /etc/gentoo-release /etc/terminfo /etc/dconf /etc/ca-certificates.conf /etc/revdep-rebuild'

export FLTK_DOCDIR='/usr/share/doc/fltk-1.3.3-r3/html'

export GCC_SPECS=''

export GSETTINGS_BACKEND='dconf'

export INFOPATH='/usr/share/gcc-data/x86_64-pc-linux-gnu/6.4.0/info:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.29.1/info:/usr/share/info'

export LANG='de_DE.utf8'

export LC_COLLATE='C'

export LESS='-R -M --shift 5'

export LESSOPEN='|lesspipe %s'

export MANPAGER='manpager'

export MANPATH='/usr/share/gcc-data/x86_64-pc-linux-gnu/6.4.0/man:/usr/share/binutils-data/x86_64-pc-linux-gnu/2.29.1/man:/usr/lib/llvm/5/share/man:/etc/java-config-2/current-system-vm/man/:/usr/local/share/man:/usr/share/man'

export MOZ_GMP_PATH='/usr/lib64/nsbrowser/plugins/gmp-gmpopenh264/system-installed'

export OPENGL_PROFILE='xorg-x11'

export PATH='/usr/x86_64-pc-linux-gnu/gcc-bin/6.4.0:/usr/lib/llvm/5/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin'

export QT_GRAPHICSSYSTEM='raster'

export ROOTPATH='/usr/x86_64-pc-linux-gnu/gcc-bin/6.4.0:/usr/lib/llvm/5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin'

export VBOX_APP_HOME='/usr/lib64/virtualbox'

export XDG_CONFIG_DIRS='/etc/xdg'

export XDG_DATA_DIRS='/usr/local/share:/usr/share'

```

2) Codeschnipsel ist enthalten

```

ThinkPad ~ # cat /etc/profile

# Load environment settings from profile.env, which is created by

# env-update from the files in /etc/env.d

if [ -e /etc/profile.env ] ; then

        . /etc/profile.env

fi

```

3) Sieht gut aus

4) Das habe ich nach Deinem Hinweis geändert.

```

ThinkPad ~ # eselect locale list

Available targets for the LANG variable:

  [1]   C

  [2]   POSIX

  [3]   de_DE

  [4]   de_DE.iso88591

  [5]   de_DE.utf8 *

  [6]   en_GB

  [7]   en_GB.iso88591

  [8]   en_GB.utf8

  [ ]   (free form)

ThinkPad ~ # locale -a 

C

POSIX

de_DE

de_DE.iso88591

de_DE.utf8

en_GB

en_GB.iso88591

en_GB.utf8

ThinkPad ~ #

```

----------

## mike155

 *Quote:*   

> Hey, weiter gehts 

 

Gut! Dann kommen wir ans Eingemachte!  :Smile: 

Wenn die Doku stimmt (man xdm), ist die Datei '/usr/lib64/X11/xdm/Xsession' das erste Script, das im Kontext des Users ausgeführt wird:

```
SESSION PROGRAM

The Xsession program is the command which is run as the user's session.  It is run with the permissions of the authorized user.

```

Bei mir beginnt das Script mit '#!/bin/bash --login' - und damit sollte beim Ausführen auch '/etc/profile' eingelesen werden.

Bitte die Datei '/usr/lib64/X11/xdm/Xsession' editieren und in der zweiten Zeile folgendes hinzufügen:

```
export > "/tmp/environment-$$"

```

Dann bitte xdm neu starten und anmelden, so dass die GUI erscheint. Jetzt sollte es eine (oder mehrere?) Dateien '/tmp/environment-XXXX' geben. Stehen dort die richtigen Werte für LANG und LC_ALL drin?

Wenn es keine Datei '/tmp/environment-XXXX' gibt, wird '/usr/lib64/X11/xdm/Xsession' nicht ausgeführt.

Wenn es die Datei gibt und sie die richtigen Werte für LANG und LC_COLLATE enthält, müssten wir versuchen herauszufinden, warum sie später wieder verschwinden.

Wenn es die Datei gibt und sie die falschen Werte für LANG und LC_COLLATE enthält, müssten wir herausfinden, warum 'bash --login' in der ersten Zeile von '/usr/lib64/X11/xdm/Xsession' nicht funktioniert.

----------

## nisto

Es gibt keine environment-XXXX files in /tmp/.

----------

## mike155

 *Quote:*   

> Es gibt keine environment-XXXX files in /tmp/.

 

Das wundert mich...

Was steht denn in der Datei '/etc/X11/xdm/xdm-config'? Steht dort etwas anderes als:

```
...

DisplayManager*startup:         /usr/lib64/X11/xdm/Xstartup

DisplayManager*session:         /usr/lib64/X11/xdm/Xsession

DisplayManager*reset:           /usr/lib64/X11/xdm/Xreset

...

```

Oder andersherum gefragt: in welcher Datei bzw. wie hast Du denn konfiguriert, dass nach dem Login bei xdm Fluxbox gestartet wird?

----------

## Tyrus

@nisto

Ich wundere mich wieso du xdm installieren musstest? Du meinst damit x11-apps/xdm, richtig?

Wenn du den x11-base/xorg-server einsetzt, hast du automatisch (mit /etc/init.d/xdm und /etc/init.d/xdm-setup) zwei Skripte dabei, die den Start eines Displaymanagers erledigen. Du musst die natürlich beim Booten automatisch starten lassen. Also liegt daran ob du openRC einsetzt oder systemd. Aber da kannste das doch einfach aktivieren?

Gut, ich kenn mich nicht weiter mit Fluxbox aus. Für kde startet man auch nicht mehr mit kdm, sondern mit sddm im Normalfall. 

Lies mal hier: https://wiki.gentoo.org/wiki/Fluxbox

Da wird auch gesagt.

```

rc-update add xdm default

```

Das ist aber jetzt der Weg unter openRC.

Und ausserdem schlagen die x11-misc/slim als LoginManager vor.

Wenn du das machst, musste dann folgendes eintragen in /etc/conf.d/xdm.

```

DISPLAYMANAGER="slim"

```

Ich will jetzt nicht vorhersagen ob das die Sprachprobleme löst, aber es wäre der Weg den ich bevorzugen würde, also statt x11-apps/xdm zu verwenden.

----------

## nisto

 *mike155 wrote:*   

> Oder andersherum gefragt: in welcher Datei bzw. wie hast Du denn konfiguriert, dass nach dem Login bei xdm Fluxbox gestartet wird?

 

Guten Morgen.

Ich habe in /home/nisto/.xsession definiert das Xsession gestartet werden soll.

und in

```

ThinkPad ~ # cat /etc/X11/xdm/Xsession 

#!/bin/sh

#

# $XdotOrg: app/xdm/config/Xsession.cpp,v 1.4 2006/03/18 03:43:18 alanc Exp $

# $Xorg: Xsession,v 1.4 2000/08/17 19:54:17 cpqbld Exp $

# $XFree86: xc/programs/xdm/config/Xsession,v 1.2 1998/01/11 03:48:32 dawes Exp $

#. /etc/X11/Xsession

exec startfluxbox

ThinkPad ~ # 

```

steht es auch

----------

## nisto

 *mike155 wrote:*   

> Was steht denn in der Datei '/etc/X11/xdm/xdm-config'?

 

```

ThinkPad ~ # cat /etc/X11/xdm/xdm-config

! $Xorg: xdm-conf.cpp,v 1.3 2000/08/17 19:54:17 cpqbld Exp $

! $XdotOrg: $    

!

!

!

!

! $XFree86: xc/programs/xdm/config/xdm-conf.cpp,v 1.10 2002/11/30 19:11:32 herrb Exp $

!

DisplayManager.errorLogFile:    /var/log/xdm.log

DisplayManager.pidFile:         /var/run/xdm.pid

DisplayManager.keyFile:         /etc/X11/xdm/xdm-keys

DisplayManager.servers:         /etc/X11/xdm/Xservers

DisplayManager.accessFile:      /etc/X11/xdm/Xaccess

DisplayManager.authDir: /var/lib/xdm

DisplayManager*resources:       /etc/X11/xdm/Xresources

DisplayManager.willing:         su nobody -c /etc/X11/xdm/Xwilling

! All displays should use authorization, but we cannot be sure

! X terminals will be configured to support it, so those that do not will

! require individual resource settings.

DisplayManager*authorize:       true

!

DisplayManager*chooser:         /usr/lib/X11/xdm/chooser

DisplayManager*startup:         /etc/X11/xdm/Xstartup

DisplayManager*session:         /etc/X11/xdm/Xsession

DisplayManager*setup:           /etc/X11/xdm/Xsetup_0

DisplayManager*reset:           /etc/X11/xdm/Xreset

DisplayManager*authComplain:    true

DisplayManager*userPath:        /usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games

DisplayManager*systemPath:      /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11

DisplayManager*loginmoveInterval:       10

! SECURITY: do not listen for XDMCP or Chooser requests

! Comment out this line if you want to manage X terminals with xdm

DisplayManager.requestPort:     0

ThinkPad ~ #

```

----------

## nisto

 *Tyrus wrote:*   

> @nisto
> 
> Ich wundere mich wieso du xdm installieren musstest? Du meinst damit x11-apps/xdm, richtig?

 

Hi.

Ja das Paket habe ich installiert.

```

ThinkPad ~ # equery list -p x11-apps/xdm

 * Searching for xdm in x11-apps ...

[IP-] [  ] x11-apps/xdm-1.1.11-r3:0

ThinkPad ~ #

```

Ich nutze openRC und habe xdm als default mit rc-update eingetragen.

Mit x11-base/xorg-server muss ich mal beschäftigen, installiert ist es.

----------

## nisto

@mike155

In /home/nisto/.xsession habe ich es auskommentiert, wird ja laut der config nicht benötigt.

----------

## mike155

Hallo nisto,

mal schauen, ob ich es richtig verstehe:

1) Bei Dir steht in der Datei '/etc/X11/xdm/xdm-config' für 'DisplayManager*session' der Wert '/etc/X11/xdm/Xsession'.

2) Dadurch wird bei Dir nach einem Login die Datei '/etc/X11/xdm/Xsession' ausgeführt, die folgenden Inhalt hat (Kommentare gekürzt):

```
#!/bin/sh

exec startfluxbox

```

==> Dann ist die Lösung ganz einfach: Ersetze die erste Zeile der Datei '/etc/X11/xdm/Xsession' durch '#!/bin/bash --login'. Die Datei sollte dann also folgendermaßen aussehen (Kommentare gekürzt):

```
#!/bin/bash --login

exec startfluxbox

```

Dann wird beim Starten von '/etc/X11/xdm/Xsession' die Datei '/etc/profile' eingelesen (was bei einem Login auch immer geschehen sollte - von daher ist '#!/bin/sh' nicht nur ungewöhnlich, sondern falsch). Über '/etc/profile' werden dann auch die in der Datei '/etc/env.d/02locale' gesetzten Umgebungsvariablen für die Sprache wirksam.  :Smile: 

----------

## musv

 *firefly wrote:*   

> Über einen display manager (wie xdm) wird eine "login" shell gestartet.
> 
> Und und im fallde der bash wertet diese nicht die ~/.bashrc aus sondern ~/.bash_profile, ~/.bash_login oder ~/.profile.
> 
> Wenn die Umstellung auf Deutsch nur für den einzelnen User gemacht werden soll dann muss es in eines der oben genannten dateien die Änderungen gemacht werden.

 

Kommt mir das nur komisch vor? xdm wird wohl kaum unter dem User laufen, der sich gerade einloggen will. Bei sddm gibt's auch einen User sddm. Die Configs für das Ding stehen unter /etc. Und eventuell lässt sich auch die Sprache irgendwo im xdm umstellen.

----------

## mike155

 *musv wrote:*   

> xdm wird wohl kaum unter dem User laufen, der sich gerade einloggen will
> 
> 

 

xdm läuft unter root. Nachdem sich ein User angemeldet hat, wird Xstartup als root ausgeführt, danach wechselt xdm zu dem User, der sich angemeldet hat, und führt Xsession aus. Welche Scripte sich hinter Xstartup und Xsession verbergen, wird in /etc/X11/xdm/xdm-config definiert.

 *musv wrote:*   

> Und eventuell lässt sich auch die Sprache irgendwo im xdm umstellen.
> 
> 

 

Wie in meinem letzten Post beschrieben, hat der Fragesteller ein eigenes Xsession Script. Es beginnt nicht wie das mit xdm mitgelieferte Xsession Script mit  '#!/bin/bash --login', sondern mit '#!/bin/sh'. Deshalb wird /etc/profile für den neu angemeldeten User nicht eingelesen - und damit fehlen wichtige Umgebungsvariablen (siehe auch das oben gepostete Diff). Zu den fehlenden Umgebungsvariablen gehören auch die Spracheinstellungen.

Die Lösung ist, die erste Zeile des Xsession Scripts des Fragestellers auf '#!/bin/bash --login' zu ändern - so wie auch in dem Xsession Script, das mit xdm mitgeliefert wird.

----------

## nisto

 *mike155 wrote:*   

> 
> 
> ==> Dann ist die Lösung ganz einfach: Ersetze die erste Zeile der Datei '/etc/X11/xdm/Xsession' durch '#!/bin/bash --login'. Die Datei sollte dann also folgendermaßen aussehen (Kommentare gekürzt):
> 
> ```
> ...

 

Hey.

Ja das war's. Vielen Dank für deine Mühe und Zeit ... Frohe Ostern.

p.s. Diese Zeile ist doch auskommentiert, wie kann diese denn Bedeutung haben?

----------

## haegar87

 *nisto wrote:*   

>  *mike155 wrote:*   
> 
> ==> Dann ist die Lösung ganz einfach: Ersetze die erste Zeile der Datei '/etc/X11/xdm/Xsession' durch '#!/bin/bash --login'. Die Datei sollte dann also folgendermaßen aussehen (Kommentare gekürzt):
> 
> ```
> ...

 

Stimmt so nicht ganz. Die erste Zeile "#!/bin/bash --login" ist nicht auskommentiert, das Zeichen (#!) ist ein besonderes Zeichen mit einer anderen Funktion.

Sagen wir mal du schreibst ein Skript, setzt die Dateiattribute für ausführen (+x) und rufst dann dein Skript auf.

Woher soll dein System wissen, was es tun soll (okay, es weiß, dass es die Datei ausführen soll, aber wie? Womit?)

Dafür ist dieses Steuerzeichen zuständig. In deinem Fall soll also das Skript von /bin/bash mit dem Parameter --login ausgeführt werden.

Könnte auch /bin/zsh oder /bin/sh oder /bin/bash oder oder oder sein. Hängt vom Skript ab.

Deshalb haben auch vorher deine Einträge in der .bashrc nicht gezogen, dein Skript wurde von /bin/sh ausgeführt nicht von /bin/bash.

Und der shell ist deine .bashrc herzlich egal...

Folgend noch ein Link für eine (umfangreiche) Erklärung: https://de.wikipedia.org/wiki/Shebang

----------

## nisto

Okay danke.

Wie setze ich auf gelöst?

----------

## musv

 *nisto wrote:*   

> Wie setze ich auf gelöst?

 

Du editierst den ersten Beitrag und setzt ein "[solved]" an den Anfang des Titels.

----------

## nisto

 *musv wrote:*   

>  *nisto wrote:*   Wie setze ich auf gelöst? 
> 
> Du editierst den ersten Beitrag und setzt ein "[solved]" an den Anfang des Titels.

 

 :Very Happy:  Top ....

----------

## firefly

 *musv wrote:*   

>  *firefly wrote:*   Über einen display manager (wie xdm) wird eine "login" shell gestartet.
> 
> Und und im fallde der bash wertet diese nicht die ~/.bashrc aus sondern ~/.bash_profile, ~/.bash_login oder ~/.profile.
> 
> Wenn die Umstellung auf Deutsch nur für den einzelnen User gemacht werden soll dann muss es in eines der oben genannten dateien die Änderungen gemacht werden. 
> ...

 

Nein XDM läuft natürlich nicht unter dem user. Sondern es führt ein login für den angegeben benutzer durch und startet dann im kontext des benutzers die X-Session.

Der login entspricht AFAIK dem gleichen verhalten als wenn der Nutzer über die console den login (via getty und co) macht.

Und in diesem kontext wird dann auch die shell (als "login" shell) ausgeführt, welche für den Benutzer in der /etc/passwd als default shell hinterlegt ist.

Dass kann man auch gut testen wenn man folgendes in die config datei packt, welche von einer login-shell ausgewertet wird.

z.b. für die bash in der ~/.bash_profile:

 *Quote:*   

> echo "logintest" > ~/logintest.log

 

Und danach über einen display manager (z.b. xdm oder sddm) sich mit dem benutzer anmeldet.

Es wird die datei "logintest.log" im home verzeichnis des benutzers angelegt mit dem content "logintest"

----------

## musv

Bei rechter Überlegung hast du natürlich Recht. Danke für die Korrektur.

----------

