Je me pose des questions existentielles sur les conditions de vie des
variables d'environnement. En fait, une variable d'environnement, c'est
quoi vraiment ?
Par exemple, dans un shell, y'a des variables définies, comme TERM
ou PS1
dont je me demande précisément d'où elles viennent : sont-ce des
options sur la ligne de commande qui lance le shell, y a-t'il un autre
mécanisme en jeu ?
Pareil pour la conservation de variables comme TERM quand on fait du ssh
ou autre.
Je me pose des questions existentielles sur les conditions de vie des
variables d'environnement. En fait, une variable d'environnement, c'est
quoi vraiment ?
Par exemple, dans un shell, y'a des variables définies, comme TERM
ou PS1
dont je me demande précisément d'où elles viennent : sont-ce des
options sur la ligne de commande qui lance le shell, y a-t'il un autre
mécanisme en jeu ?
Pareil pour la conservation de variables comme TERM quand on fait du ssh
ou autre.
Je me pose des questions existentielles sur les conditions de vie des
variables d'environnement. En fait, une variable d'environnement, c'est
quoi vraiment ?
Par exemple, dans un shell, y'a des variables définies, comme TERM
ou PS1
dont je me demande précisément d'où elles viennent : sont-ce des
options sur la ligne de commande qui lance le shell, y a-t'il un autre
mécanisme en jeu ?
Pareil pour la conservation de variables comme TERM quand on fait du ssh
ou autre.
Bonsoir,
Je me pose des questions existentielles sur les conditions de vie des
variables d'environnement. En fait, une variable d'environnement, c'est
quoi vraiment ? Ça naît et ça meurt comment ?
Une variable d'environement est créée dans un processus "père" et
Par exemple, dans un shell, y'a des variables définies, comme TERM ou
PS1, dont je me demande précisément d'où elles viennent : sont-ce des
options sur la ligne de commande qui lance le shell, y a-t'il un autre
mécanisme en jeu ? Pareil pour la conservation de variables comme TERM
quand on fait du ssh ou autre.
Un certain nombre de variables sont définies dans des fichiers systemes
Ensuite, hors d'un shell (par exemple sous X), les applications ont-elles
accès à des variables d'environnement, et si oui, comment fixer leur
valeur (pas au moyen du .bashrc j'imagine) ?
Si tu veux acceder a une variable d'environnement pour une appli X, le
Désolé si mes questions sont un peu floues, c'est que c'est pas très
clair dans ma tête, tout ça :)
Manuel.
Bonsoir,
Je me pose des questions existentielles sur les conditions de vie des
variables d'environnement. En fait, une variable d'environnement, c'est
quoi vraiment ? Ça naît et ça meurt comment ?
Une variable d'environement est créée dans un processus "père" et
Par exemple, dans un shell, y'a des variables définies, comme TERM ou
PS1, dont je me demande précisément d'où elles viennent : sont-ce des
options sur la ligne de commande qui lance le shell, y a-t'il un autre
mécanisme en jeu ? Pareil pour la conservation de variables comme TERM
quand on fait du ssh ou autre.
Un certain nombre de variables sont définies dans des fichiers systemes
Ensuite, hors d'un shell (par exemple sous X), les applications ont-elles
accès à des variables d'environnement, et si oui, comment fixer leur
valeur (pas au moyen du .bashrc j'imagine) ?
Si tu veux acceder a une variable d'environnement pour une appli X, le
Désolé si mes questions sont un peu floues, c'est que c'est pas très
clair dans ma tête, tout ça :)
Manuel.
Bonsoir,
Je me pose des questions existentielles sur les conditions de vie des
variables d'environnement. En fait, une variable d'environnement, c'est
quoi vraiment ? Ça naît et ça meurt comment ?
Une variable d'environement est créée dans un processus "père" et
Par exemple, dans un shell, y'a des variables définies, comme TERM ou
PS1, dont je me demande précisément d'où elles viennent : sont-ce des
options sur la ligne de commande qui lance le shell, y a-t'il un autre
mécanisme en jeu ? Pareil pour la conservation de variables comme TERM
quand on fait du ssh ou autre.
Un certain nombre de variables sont définies dans des fichiers systemes
Ensuite, hors d'un shell (par exemple sous X), les applications ont-elles
accès à des variables d'environnement, et si oui, comment fixer leur
valeur (pas au moyen du .bashrc j'imagine) ?
Si tu veux acceder a une variable d'environnement pour une appli X, le
Désolé si mes questions sont un peu floues, c'est que c'est pas très
clair dans ma tête, tout ça :)
Manuel.
Si tu veux acceder a une variable d'environnement pour une appli X, le
plus simple est de faire un shell pour lancer cette appli :
export Ma_variable=TOTO
/usr/local/bin/Mon_executable
'Mon_executable' est alors un processus fils du script shell qui connait
'Ma_variable'.
L'avantage est que dès que tu ferme ton appli, la variable
d'environnement "Ma_variable" disparait et ne vient pas polluer le
systeme.
Hm, en fait j'ai plutôt le désir inverse : j'aimerais bien que certaines
Si tu veux acceder a une variable d'environnement pour une appli X, le
plus simple est de faire un shell pour lancer cette appli :
export Ma_variable=TOTO
/usr/local/bin/Mon_executable
'Mon_executable' est alors un processus fils du script shell qui connait
'Ma_variable'.
L'avantage est que dès que tu ferme ton appli, la variable
d'environnement "Ma_variable" disparait et ne vient pas polluer le
systeme.
Hm, en fait j'ai plutôt le désir inverse : j'aimerais bien que certaines
Si tu veux acceder a une variable d'environnement pour une appli X, le
plus simple est de faire un shell pour lancer cette appli :
export Ma_variable=TOTO
/usr/local/bin/Mon_executable
'Mon_executable' est alors un processus fils du script shell qui connait
'Ma_variable'.
L'avantage est que dès que tu ferme ton appli, la variable
d'environnement "Ma_variable" disparait et ne vient pas polluer le
systeme.
Hm, en fait j'ai plutôt le désir inverse : j'aimerais bien que certaines
Quand je les lance depuis un shell, le shell doit être le processus père,
et il suffit que les variables soient positionnées dans mon .bashrc.
Quand je lance les applis depuis des boutons ou le menu de mon window
manager, j'imagine que c'est lui le père et qu'il faut donc positionner
les variables dans mon .xsession avant de lancer le wm. C'est bien ça ?
Quand je les lance depuis un shell, le shell doit être le processus père,
et il suffit que les variables soient positionnées dans mon .bashrc.
Quand je lance les applis depuis des boutons ou le menu de mon window
manager, j'imagine que c'est lui le père et qu'il faut donc positionner
les variables dans mon .xsession avant de lancer le wm. C'est bien ça ?
Quand je les lance depuis un shell, le shell doit être le processus père,
et il suffit que les variables soient positionnées dans mon .bashrc.
Quand je lance les applis depuis des boutons ou le menu de mon window
manager, j'imagine que c'est lui le père et qu'il faut donc positionner
les variables dans mon .xsession avant de lancer le wm. C'est bien ça ?
Sauf que .bashrc n'est pas exactement le bon endroit, ce serait plutôt
.bash_profile.
Sauf que .bashrc n'est pas exactement le bon endroit, ce serait plutôt
.bash_profile.
Sauf que .bashrc n'est pas exactement le bon endroit, ce serait plutôt
.bash_profile.
En tout cas, je suis preneur de toute explication concernant la
différence entre .bashrc et .bash_profile (il me semble que ça a à voir
avec la notion de shell de login que je n'ai jamais compris non plus) et
de ce qu'il convient de mettre dans l'un et pas dans l'autre.
En tout cas, je suis preneur de toute explication concernant la
différence entre .bashrc et .bash_profile (il me semble que ça a à voir
avec la notion de shell de login que je n'ai jamais compris non plus) et
de ce qu'il convient de mettre dans l'un et pas dans l'autre.
En tout cas, je suis preneur de toute explication concernant la
différence entre .bashrc et .bash_profile (il me semble que ça a à voir
avec la notion de shell de login que je n'ai jamais compris non plus) et
de ce qu'il convient de mettre dans l'un et pas dans l'autre.
mpg wrote in message :En tout cas, je suis preneur de toute explication concernant la
différence entre .bashrc et .bash_profile (il me semble que ça a à voir
avec la notion de shell de login que je n'ai jamais compris non plus) et
de ce qu'il convient de mettre dans l'un et pas dans l'autre.
La réponse à tes interrogations est dans le man de bash, dans la partie
« invocation », sur une demi-page environ. En français là, par exemple
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man1/bash.1.html#sect6
Merci pour ce lien, même s'il ne répond pas vraiment à mes
mpg wrote in message <pan.2007.05.18.17.47.12@free.fr>:
En tout cas, je suis preneur de toute explication concernant la
différence entre .bashrc et .bash_profile (il me semble que ça a à voir
avec la notion de shell de login que je n'ai jamais compris non plus) et
de ce qu'il convient de mettre dans l'un et pas dans l'autre.
La réponse à tes interrogations est dans le man de bash, dans la partie
« invocation », sur une demi-page environ. En français là, par exemple
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man1/bash.1.html#sect6
Merci pour ce lien, même s'il ne répond pas vraiment à mes
mpg wrote in message :En tout cas, je suis preneur de toute explication concernant la
différence entre .bashrc et .bash_profile (il me semble que ça a à voir
avec la notion de shell de login que je n'ai jamais compris non plus) et
de ce qu'il convient de mettre dans l'un et pas dans l'autre.
La réponse à tes interrogations est dans le man de bash, dans la partie
« invocation », sur une demi-page environ. En français là, par exemple
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man1/bash.1.html#sect6
Merci pour ce lien, même s'il ne répond pas vraiment à mes
Ce qui m'échappe encore, c'est la différence de principe qu'il y a entre
un shell de login et un pas-de-login, ou plus précisément la raison
d'être de cette distinction.
Par exemple, quand j'ouvre un rxvt, j'ai un
shell pas-de-login, mon .bash_profile n'est pas lu, et mon PATH n'est
pas positionné pour inclure ~/bin.
Ce qui m'échappe encore, c'est la différence de principe qu'il y a entre
un shell de login et un pas-de-login, ou plus précisément la raison
d'être de cette distinction.
Par exemple, quand j'ouvre un rxvt, j'ai un
shell pas-de-login, mon .bash_profile n'est pas lu, et mon PATH n'est
pas positionné pour inclure ~/bin.
Ce qui m'échappe encore, c'est la différence de principe qu'il y a entre
un shell de login et un pas-de-login, ou plus précisément la raison
d'être de cette distinction.
Par exemple, quand j'ouvre un rxvt, j'ai un
shell pas-de-login, mon .bash_profile n'est pas lu, et mon PATH n'est
pas positionné pour inclure ~/bin.
mpg wrote in message <464df4d1$0$14981$:Ce qui m'échappe encore, c'est la différence de principe qu'il y a
entre un shell de login et un pas-de-login, ou plus précisément la
raison d'être de cette distinction.
Quand tu te connectes à une machine, tu as peut-être envie que quelques
messages te rappellent les courriers non-lus ou les rendez-vous du jour.
Mais tu ne veux pas ça à chaque fois que tu ouvres un terminal. Donc
dans .bash_profile, tu mets les commandes qui t'informent des nouveaux
mails et des rendez-vous, et dans .bashrc, tu mets ce qui configure le
shell : alias, apparence du prompt, complétion, etc.
Oki, là je comprends bien.
Par exemple, quand j'ouvre un rxvt, j'ai un
shell pas-de-login, mon .bash_profile n'est pas lu, et mon PATH n'est
pas positionné pour inclure ~/bin.
Pour les sessions graphiques, c'est dans ~/.xsession ou équivalent qu'il
faut régler l'environnement. Si tu utilises fréquemment les deux, tu as
tout intérêt à regrouper l'environnement dans un seul fichier, qui est
sourcé par .xsession comme par .bash_profile.
Oki. Alors à la fac ça va bien j'ai un ~/.xsession, qui d'ailleurs pour
Personnellement, j'utilise Zsh, qui a :
.zprofile, sourcé par les shells de login, qui est essentiellement vide
pour moi.
.zshrc, sourcé par les shells interactifs (y compris les shells de
login), qui contient les alias et les réglage de complétion,
essentiellement.
.zshenv (sans équivalent chez bash), qui est sourcé par _tous_ les
shells, où je définis l'environnement, avec un test pour éviter de le
redéfinir s'il a déjà été défini, mais pour pouvoir quand même le
redéfinir si je le change.
mpg wrote in message <464df4d1$0$14981$426a74cc@news.free.fr>:
Ce qui m'échappe encore, c'est la différence de principe qu'il y a
entre un shell de login et un pas-de-login, ou plus précisément la
raison d'être de cette distinction.
Quand tu te connectes à une machine, tu as peut-être envie que quelques
messages te rappellent les courriers non-lus ou les rendez-vous du jour.
Mais tu ne veux pas ça à chaque fois que tu ouvres un terminal. Donc
dans .bash_profile, tu mets les commandes qui t'informent des nouveaux
mails et des rendez-vous, et dans .bashrc, tu mets ce qui configure le
shell : alias, apparence du prompt, complétion, etc.
Oki, là je comprends bien.
Par exemple, quand j'ouvre un rxvt, j'ai un
shell pas-de-login, mon .bash_profile n'est pas lu, et mon PATH n'est
pas positionné pour inclure ~/bin.
Pour les sessions graphiques, c'est dans ~/.xsession ou équivalent qu'il
faut régler l'environnement. Si tu utilises fréquemment les deux, tu as
tout intérêt à regrouper l'environnement dans un seul fichier, qui est
sourcé par .xsession comme par .bash_profile.
Oki. Alors à la fac ça va bien j'ai un ~/.xsession, qui d'ailleurs pour
Personnellement, j'utilise Zsh, qui a :
.zprofile, sourcé par les shells de login, qui est essentiellement vide
pour moi.
.zshrc, sourcé par les shells interactifs (y compris les shells de
login), qui contient les alias et les réglage de complétion,
essentiellement.
.zshenv (sans équivalent chez bash), qui est sourcé par _tous_ les
shells, où je définis l'environnement, avec un test pour éviter de le
redéfinir s'il a déjà été défini, mais pour pouvoir quand même le
redéfinir si je le change.
mpg wrote in message <464df4d1$0$14981$:Ce qui m'échappe encore, c'est la différence de principe qu'il y a
entre un shell de login et un pas-de-login, ou plus précisément la
raison d'être de cette distinction.
Quand tu te connectes à une machine, tu as peut-être envie que quelques
messages te rappellent les courriers non-lus ou les rendez-vous du jour.
Mais tu ne veux pas ça à chaque fois que tu ouvres un terminal. Donc
dans .bash_profile, tu mets les commandes qui t'informent des nouveaux
mails et des rendez-vous, et dans .bashrc, tu mets ce qui configure le
shell : alias, apparence du prompt, complétion, etc.
Oki, là je comprends bien.
Par exemple, quand j'ouvre un rxvt, j'ai un
shell pas-de-login, mon .bash_profile n'est pas lu, et mon PATH n'est
pas positionné pour inclure ~/bin.
Pour les sessions graphiques, c'est dans ~/.xsession ou équivalent qu'il
faut régler l'environnement. Si tu utilises fréquemment les deux, tu as
tout intérêt à regrouper l'environnement dans un seul fichier, qui est
sourcé par .xsession comme par .bash_profile.
Oki. Alors à la fac ça va bien j'ai un ~/.xsession, qui d'ailleurs pour
Personnellement, j'utilise Zsh, qui a :
.zprofile, sourcé par les shells de login, qui est essentiellement vide
pour moi.
.zshrc, sourcé par les shells interactifs (y compris les shells de
login), qui contient les alias et les réglage de complétion,
essentiellement.
.zshenv (sans équivalent chez bash), qui est sourcé par _tous_ les
shells, où je définis l'environnement, avec un test pour éviter de le
redéfinir s'il a déjà été défini, mais pour pouvoir quand même le
redéfinir si je le change.
Oki. Alors à la fac ça va bien j'ai un ~/.xsession, qui d'ailleurs pour
Par contre chez moi pour l'instant j'ai pas de ~/.xsession, mon
gestionnaire de connections X lançant directement wmaker. J'imagine que
la marche à suivre est d'en créer un (à faire appeler par wdm), qui
réglera l'environnement puis lancera wmaker.
Yep, ça m'a l'air très raisonnable comme architecture. Je pense que je
vais effectivement créer un fichier séparé pour l'environnement, à faire
sourcer par .bash_profile et .xsession.
Au fait, ton test fonctionne
comment ?
Oki. Alors à la fac ça va bien j'ai un ~/.xsession, qui d'ailleurs pour
Par contre chez moi pour l'instant j'ai pas de ~/.xsession, mon
gestionnaire de connections X lançant directement wmaker. J'imagine que
la marche à suivre est d'en créer un (à faire appeler par wdm), qui
réglera l'environnement puis lancera wmaker.
Yep, ça m'a l'air très raisonnable comme architecture. Je pense que je
vais effectivement créer un fichier séparé pour l'environnement, à faire
sourcer par .bash_profile et .xsession.
Au fait, ton test fonctionne
comment ?
Oki. Alors à la fac ça va bien j'ai un ~/.xsession, qui d'ailleurs pour
Par contre chez moi pour l'instant j'ai pas de ~/.xsession, mon
gestionnaire de connections X lançant directement wmaker. J'imagine que
la marche à suivre est d'en créer un (à faire appeler par wdm), qui
réglera l'environnement puis lancera wmaker.
Yep, ça m'a l'air très raisonnable comme architecture. Je pense que je
vais effectivement créer un fichier séparé pour l'environnement, à faire
sourcer par .bash_profile et .xsession.
Au fait, ton test fonctionne
comment ?