Ce que j'ai observé:
Lorsque je tape emacs
dans gnome-terminal, il se lance dans le même environnement, avec des variables définies dans .bashrc
. Si j'utilise un raccourci clavier vers la commande emacs
, il s'ouvre dans un environnement qui n'a pas ces variables.
Questions:
.bashrc
? Contexte supplémentaire: J'ai besoin de pouvoir accéder aux variables depuis R, comme décrit dans un SO question ( Comment accéder à une variable d'environnement bash depuis R dans emacs ), et j'ai également besoin du chemin vers ma distribution texlive pour Auctex. La présente question est différente en ce que je suis plus généralement intéressé par le différence entre le lancement d'emacs depuis le terminal et le lancement d'emacs depuis le menu Applications, Gnome-do ou un raccourci clavier qui appelle soit emacs
ou /usr/bin/emacs23 %F
.
~/.bashrc
Est généralement lu pour les shells interactifs secondaires après votre connexion. Si vous souhaitez initialiser vos paramètres lors de la connexion, utilisez plutôt ~/.profile
. Pour appliquer vos paramètres à l'échelle du système, utilisez /etc/profile
. C'est le premier fichier lu par bash.
Pour clarifier les choses, je pense que j'expliquerais un peu plus.
/etc/profile
Global, puis ~/.profile
Et les paramètres/variables qui y sont mentionnés sont initialisés. Cependant, vous ne voyez pas ce shell comme terminal car l'interface graphique du système X-window est en cours d'exécution.gnome-terminal
~/.bashrc
Est lu et les paramètres/variables qui y sont déclarés sont disponibles uniquement pour le terminal secondaire. Notez que ce terminal secondaire est un processus enfant de votre shell de connexion..bashrc
N'était pas disponible pour le shell de connexion principal; il n'est donc pas disponible pour les applications également. Par conséquent, rien dans .bashrc
Ne sera disponible pour ces applications s'il est exécuté à partir du menu. Mais lorsque vous ouvrez un gnome-terminal
Et exécutez la commande à partir de là, les applications sont lancées en tant qu'enfants de gnome-terminal
Et en héritent les paramètres de .bashrc
.