GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum könnte man ~/.profile zu ~/.bash_profile hinzufügen?

Bei der Installation von RVM bekommt man folgende Meldung:

* WARNING: You have '~/.profile' file, you might want to load it,
  to do that add the following line to '/home/dotancohen/.bash_profile':

    source ~/.profile

Ich mache mir Sorgen, weil meine Datei ~/.profile xmodmap ~/.Xmodmap enthält die ich natürlich nicht jedes Mal ausführen möchte, wenn ich eine neue Shell öffne.

Warum könnten die klugen RVM-Entwickler vorschlagen, .profile zu beschaffen in .bash_profile ?

Akzeptierte Antwort:

.profile und .bash_profile sind identisch in Bezug darauf, wann sie ausgeführt werden sollen:Sie werden ausgeführt, wenn Sie sich anmelden. Der Unterschied besteht darin, dass nur bash .bash_profile ausführt; Shells im Bourne-Stil (dash, ksh usw.) führen .profile aus . Bash selbst führt .profile aus wenn .bash_profile existiert nicht.

Auch wenn Sie bash als Login-Shell haben, .profile ist oft derjenige, der ausgeführt wird, wenn Sie sich im grafischen Modus anmelden – viele Distributionen richten das X-Session-Startskript so ein, dass es unter sh ausgeführt wird und laden Sie .profile .

Daher der Rat, .profile zu verwenden statt .bash_profile um Dinge wie das Definieren von Umgebungsvariablen zu tun. Wenn Sie nicht unbedingt Bash-spezifische Funktionen benötigen, fügen Sie einfach alles in .profile ein . Aber selbst wenn Sie das tun, gibt es einen Grund, ein .bash_profile zu behalten , das heißt, wenn bash es lädt, lädt es .bashrc nicht , auch wenn es interaktiv ist. Daher für die meisten Leute ~/.bash_profile sollte aus diesen beiden Zeilen bestehen:

. ~/.profile
case  $- in *i*) . ~/.bashrc;; esac

Sie sollten xmodmap nicht ausführen aus .profile . Diese wird nicht ausgeführt, wenn Sie eine neue Shell öffnen, aber sie wird beispielsweise ausgeführt, wenn Sie sich aus der Ferne mit SSH mit X11-Weiterleitung anmelden. Leider gibt es keine Standarddatei, die geladen wird, wenn Sie sich im grafischen Modus anmelden. Debian lädt ~/.xsessionrc (Ich denke, das gilt für alle Display-Manager, außer Gdm, das ~/.xprofile lädt stattdessen); andere Distributionen haben andere Einstellungen. Wenn Sie eine Cross-Distribution-Portabilität benötigen, ist es möglicherweise einfacher, Ihre Desktop-Umgebung so zu konfigurieren, dass xmodmap ausgeführt wird wenn es beginnt. Wenn Sie nur CapsLock und Strg austauschen, können Sie dies mit XKB-Einstellungen tun, zu denen die meisten modernen Desktop-Umgebungen eine Schnittstelle bieten.

Verwandte:Wie setzt man eine Variable gleich der Ausgabe eines Befehls in GRUB2?
Linux
  1. Was ist ein TAM und warum möchten Sie vielleicht einer werden?

  2. Warum ist die Synchronisierung so wichtig, wenn Sie einen bootfähigen Linux-USB-Stick erstellen?

  3. Der Unterschied zwischen ~/.profile und ~/.bash_profile?

  4. Warum wird bei der Verwendung von Anführungszeichen ein einzelner umgekehrter Schrägstrich angezeigt?

  5. Wann und warum Docker verwendet werden sollte

Was ist ein Homelab und warum sollten Sie eines haben?

Bash-Profil zwischen Computern synchronisieren

Warum wird mir beim Ausführen von ssh-add die Berechtigung verweigert?

Warum ist es möglich, den Bildschirm umzudrehen?

Warum sollte man sudo verwenden?

IP-Forwarding =Wann und warum ist dies erforderlich?