On 04/02/2015 07:28 AM, Sergio wrote:Le 01/04/2015 21:13, Nicolas George a écrit :Mais si on continue à faire n'importe quoi avec les fichiers
d'initialisation du shell, on peut se retrouver avec des alias dans des
shells non interactifs qui exécutent des scripts et ça peut
dramatiquement
changer leur comportement.
Règle numéro un : Les alias ne sont *jamais* interprétés dans les
scripts (sauf bien sûr ceux définis dans le script...).
Ok, merci pour toutes les précisions, je suis rassuré et on peut dire
à l'op qu'il peut se logguer en shell de connexion sans problème alors
(en passant, s'il a besoin on ajoute un tiret après su par exemple)?
1- Merci pour l'info sur les alias.
2- Les /etc/bash.bashrc et ~.bashrc sont testés en début de fichier et
ne font rien si on n'est pas intéractif.
3- Les "profile" ne sourcent bash que si PS1 n'est pas positionné et
si on est bien dans bash ($BASH non vide).
Plus précisement, chez moi seul le profile global source quelque
chose, il faut créer un ~/bashrc si on veux que le profile local le
source et j'ai un ~/bash.bashrc.
C'est logique, si on est dans ksh, on n'en a rien à faire du bashrc
Remarque:
- Mon /etc/profile me définit un alias ls='ls --color'.
- Le ~/bash.bashrc est bien sourcé quelque part car ses directives
sont bien executées mais où?
Je parle pour debian mais ça doit ressembler aux autres.
On 04/02/2015 07:28 AM, Sergio wrote:
Le 01/04/2015 21:13, Nicolas George a écrit :
Mais si on continue à faire n'importe quoi avec les fichiers
d'initialisation du shell, on peut se retrouver avec des alias dans des
shells non interactifs qui exécutent des scripts et ça peut
dramatiquement
changer leur comportement.
Règle numéro un : Les alias ne sont *jamais* interprétés dans les
scripts (sauf bien sûr ceux définis dans le script...).
Ok, merci pour toutes les précisions, je suis rassuré et on peut dire
à l'op qu'il peut se logguer en shell de connexion sans problème alors
(en passant, s'il a besoin on ajoute un tiret après su par exemple)?
1- Merci pour l'info sur les alias.
2- Les /etc/bash.bashrc et ~.bashrc sont testés en début de fichier et
ne font rien si on n'est pas intéractif.
3- Les "profile" ne sourcent bash que si PS1 n'est pas positionné et
si on est bien dans bash ($BASH non vide).
Plus précisement, chez moi seul le profile global source quelque
chose, il faut créer un ~/bashrc si on veux que le profile local le
source et j'ai un ~/bash.bashrc.
C'est logique, si on est dans ksh, on n'en a rien à faire du bashrc
Remarque:
- Mon /etc/profile me définit un alias ls='ls --color'.
- Le ~/bash.bashrc est bien sourcé quelque part car ses directives
sont bien executées mais où?
Je parle pour debian mais ça doit ressembler aux autres.
On 04/02/2015 07:28 AM, Sergio wrote:Le 01/04/2015 21:13, Nicolas George a écrit :Mais si on continue à faire n'importe quoi avec les fichiers
d'initialisation du shell, on peut se retrouver avec des alias dans des
shells non interactifs qui exécutent des scripts et ça peut
dramatiquement
changer leur comportement.
Règle numéro un : Les alias ne sont *jamais* interprétés dans les
scripts (sauf bien sûr ceux définis dans le script...).
Ok, merci pour toutes les précisions, je suis rassuré et on peut dire
à l'op qu'il peut se logguer en shell de connexion sans problème alors
(en passant, s'il a besoin on ajoute un tiret après su par exemple)?
1- Merci pour l'info sur les alias.
2- Les /etc/bash.bashrc et ~.bashrc sont testés en début de fichier et
ne font rien si on n'est pas intéractif.
3- Les "profile" ne sourcent bash que si PS1 n'est pas positionné et
si on est bien dans bash ($BASH non vide).
Plus précisement, chez moi seul le profile global source quelque
chose, il faut créer un ~/bashrc si on veux que le profile local le
source et j'ai un ~/bash.bashrc.
C'est logique, si on est dans ksh, on n'en a rien à faire du bashrc
Remarque:
- Mon /etc/profile me définit un alias ls='ls --color'.
- Le ~/bash.bashrc est bien sourcé quelque part car ses directives
sont bien executées mais où?
Je parle pour debian mais ça doit ressembler aux autres.
1- Merci pour l'info sur les alias.
2- Les /etc/bash.bashrc et ~.bashrc sont testés en début de fichier et ne font rien si on n'est pas intéractif.
3- Les "profile" ne sourcent bash que si PS1 n'est pas positionné et si on est bien dans bash ($BASH non vide).
Plus précisement, chez moi seul le profile global source quelque chose, il faut créer un ~/bashrc si on veux que le profile local le
source et j'ai un ~/bash.bashrc.
C'est logique, si on est dans ksh, on n'en a rien à faire du bashrc
Remarque:
- Mon /etc/profile me définit un alias ls='ls --color'.
- Le ~/bash.bashrc est bien sourcé quelque part car ses directives sont bien executées mais où?
1- Merci pour l'info sur les alias.
2- Les /etc/bash.bashrc et ~.bashrc sont testés en début de fichier et ne font rien si on n'est pas intéractif.
3- Les "profile" ne sourcent bash que si PS1 n'est pas positionné et si on est bien dans bash ($BASH non vide).
Plus précisement, chez moi seul le profile global source quelque chose, il faut créer un ~/bashrc si on veux que le profile local le
source et j'ai un ~/bash.bashrc.
C'est logique, si on est dans ksh, on n'en a rien à faire du bashrc
Remarque:
- Mon /etc/profile me définit un alias ls='ls --color'.
- Le ~/bash.bashrc est bien sourcé quelque part car ses directives sont bien executées mais où?
1- Merci pour l'info sur les alias.
2- Les /etc/bash.bashrc et ~.bashrc sont testés en début de fichier et ne font rien si on n'est pas intéractif.
3- Les "profile" ne sourcent bash que si PS1 n'est pas positionné et si on est bien dans bash ($BASH non vide).
Plus précisement, chez moi seul le profile global source quelque chose, il faut créer un ~/bashrc si on veux que le profile local le
source et j'ai un ~/bash.bashrc.
C'est logique, si on est dans ksh, on n'en a rien à faire du bashrc
Remarque:
- Mon /etc/profile me définit un alias ls='ls --color'.
- Le ~/bash.bashrc est bien sourcé quelque part car ses directives sont bien executées mais où?
Règle numéro un : Les alias ne sont *jamais* interprétés dans les scripts
(sauf bien sûr ceux définis dans le script...).
Règle numéro un : Les alias ne sont *jamais* interprétés dans les scripts
(sauf bien sûr ceux définis dans le script...).
Règle numéro un : Les alias ne sont *jamais* interprétés dans les scripts
(sauf bien sûr ceux définis dans le script...).
Le 01/04/2015 21:13, Nicolas George a écrit :Mais si on continue à faire n'importe quoi avec les fichiers
d'initialisation du shell, on peut se retrouver avec des alias dans des
shells non interactifs qui exécutent des scripts et ça peut
dramatiquement
changer leur comportement.
Règle numéro un : Les alias ne sont *jamais* interprétés dans les
scripts (sauf bien sûr ceux définis dans le script...).
Le 01/04/2015 21:13, Nicolas George a écrit :
Mais si on continue à faire n'importe quoi avec les fichiers
d'initialisation du shell, on peut se retrouver avec des alias dans des
shells non interactifs qui exécutent des scripts et ça peut
dramatiquement
changer leur comportement.
Règle numéro un : Les alias ne sont *jamais* interprétés dans les
scripts (sauf bien sûr ceux définis dans le script...).
Le 01/04/2015 21:13, Nicolas George a écrit :Mais si on continue à faire n'importe quoi avec les fichiers
d'initialisation du shell, on peut se retrouver avec des alias dans des
shells non interactifs qui exécutent des scripts et ça peut
dramatiquement
changer leur comportement.
Règle numéro un : Les alias ne sont *jamais* interprétés dans les
scripts (sauf bien sûr ceux définis dans le script...).
Et la réponse (ça m’apprendra à lire le code en 2 2 5 min avant d'aller
bosser)
Ben tout simplement dans le ~/.profile (comme prévu je dirais).
Par contre, si c'est qu'une question de PATH, et que tu es sur bash,
t'as qu'à le modifier dans ~/bashrc.
Et la réponse (ça m’apprendra à lire le code en 2 2 5 min avant d'aller
bosser)
Ben tout simplement dans le ~/.profile (comme prévu je dirais).
Par contre, si c'est qu'une question de PATH, et que tu es sur bash,
t'as qu'à le modifier dans ~/bashrc.
Et la réponse (ça m’apprendra à lire le code en 2 2 5 min avant d'aller
bosser)
Ben tout simplement dans le ~/.profile (comme prévu je dirais).
Par contre, si c'est qu'une question de PATH, et que tu es sur bash,
t'as qu'à le modifier dans ~/bashrc.
- Le ~/bash.bashrc est bien sourcé quelque part car ses directives
sont bien executées mais où?
Les fichiers présents dans /etc/ (règle générale, pas seulement pour les
shells...) sont interprétés par les applis de tous les utilisateurs.
Ceux du profil de l'utilisateur, par celles de l'utilisateur.
Donc /etc/profile est exécuté pour tous, alors que ~/.profile est
exécuté pour l'utilisateur
et /etc/bash.bashrc est exécuté pour tous, et ~/.bashrc pour
l'utilisateur et ce dans les même conditions.
- Le ~/bash.bashrc est bien sourcé quelque part car ses directives
sont bien executées mais où?
Les fichiers présents dans /etc/ (règle générale, pas seulement pour les
shells...) sont interprétés par les applis de tous les utilisateurs.
Ceux du profil de l'utilisateur, par celles de l'utilisateur.
Donc /etc/profile est exécuté pour tous, alors que ~/.profile est
exécuté pour l'utilisateur
et /etc/bash.bashrc est exécuté pour tous, et ~/.bashrc pour
l'utilisateur et ce dans les même conditions.
- Le ~/bash.bashrc est bien sourcé quelque part car ses directives
sont bien executées mais où?
Les fichiers présents dans /etc/ (règle générale, pas seulement pour les
shells...) sont interprétés par les applis de tous les utilisateurs.
Ceux du profil de l'utilisateur, par celles de l'utilisateur.
Donc /etc/profile est exécuté pour tous, alors que ~/.profile est
exécuté pour l'utilisateur
et /etc/bash.bashrc est exécuté pour tous, et ~/.bashrc pour
l'utilisateur et ce dans les même conditions.
mireero , dans le message <551d2915$0$3055$, a
écrit :Et la réponse (ça m’apprendra à lire le code en 2 2 5 min avant d'aller
bosser)
Ben tout simplement dans le ~/.profile (comme prévu je dirais).
Non, ce n'est pas ça du tout.
~/.bashrc est sourcé automatiquement par bash lui-même, sans que ce soit
indiqué dans un fichier de config.
SAUF... que bash a une misfeature idiote : il ne source pas ~/.bashrc quand
c'est un shell de login, même si c'est _aussi_ un shell interactif. Du coup
les distributions mettent des contournements : sourcer ~/.bashrc (le fichier
de config pour les shells interactifs) depuis ~/.profile (le fichier de
config pour les shells de login). Ça a quelques inconvénients,
essentiellement le risque de mal le faire et de se retrouver coincé pour
quelques cas particuliers.Par contre, si c'est qu'une question de PATH, et que tu es sur bash,
t'as qu'à le modifier dans ~/bashrc.
Non, non et non, c'est complètement buggé, et en pratique ça a pour
conséquence de laisser orphelins les crontabs, les commandes à distances
sans shell interactif, les procmailrc, etc.
mireero , dans le message <551d2915$0$3055$426a74cc@news.free.fr>, a
écrit :
Et la réponse (ça m’apprendra à lire le code en 2 2 5 min avant d'aller
bosser)
Ben tout simplement dans le ~/.profile (comme prévu je dirais).
Non, ce n'est pas ça du tout.
~/.bashrc est sourcé automatiquement par bash lui-même, sans que ce soit
indiqué dans un fichier de config.
SAUF... que bash a une misfeature idiote : il ne source pas ~/.bashrc quand
c'est un shell de login, même si c'est _aussi_ un shell interactif. Du coup
les distributions mettent des contournements : sourcer ~/.bashrc (le fichier
de config pour les shells interactifs) depuis ~/.profile (le fichier de
config pour les shells de login). Ça a quelques inconvénients,
essentiellement le risque de mal le faire et de se retrouver coincé pour
quelques cas particuliers.
Par contre, si c'est qu'une question de PATH, et que tu es sur bash,
t'as qu'à le modifier dans ~/bashrc.
Non, non et non, c'est complètement buggé, et en pratique ça a pour
conséquence de laisser orphelins les crontabs, les commandes à distances
sans shell interactif, les procmailrc, etc.
mireero , dans le message <551d2915$0$3055$, a
écrit :Et la réponse (ça m’apprendra à lire le code en 2 2 5 min avant d'aller
bosser)
Ben tout simplement dans le ~/.profile (comme prévu je dirais).
Non, ce n'est pas ça du tout.
~/.bashrc est sourcé automatiquement par bash lui-même, sans que ce soit
indiqué dans un fichier de config.
SAUF... que bash a une misfeature idiote : il ne source pas ~/.bashrc quand
c'est un shell de login, même si c'est _aussi_ un shell interactif. Du coup
les distributions mettent des contournements : sourcer ~/.bashrc (le fichier
de config pour les shells interactifs) depuis ~/.profile (le fichier de
config pour les shells de login). Ça a quelques inconvénients,
essentiellement le risque de mal le faire et de se retrouver coincé pour
quelques cas particuliers.Par contre, si c'est qu'une question de PATH, et que tu es sur bash,
t'as qu'à le modifier dans ~/bashrc.
Non, non et non, c'est complètement buggé, et en pratique ça a pour
conséquence de laisser orphelins les crontabs, les commandes à distances
sans shell interactif, les procmailrc, etc.
*Question*:
Les applications graphiques lancées depuis un gestionnaire de fenêtre qui est
lancé depuis depuis un shell (bash) de connexion (comme chez moi, j'ai dans
mon ~/.profile un:
[if [ "$(tty)" == "/dev/tty1" ]; then
startx
fi
Donc les applis graphiques héritent-elles de tout le bazar dans les profile
et bashrc ou y'a un ménage qui est fait?
Pardon pour la question, je sais qu'il est possible d'écrire un petit
programme qui affiche les variables positionnées, mais y'a les alias et y'a
ce à quoi je pense pas, donc au final je dis pas pardon, c'est une bonne
question finalement :)
alias toto=titi
bash -c 'alias -p'
*Question*:
Les applications graphiques lancées depuis un gestionnaire de fenêtre qui est
lancé depuis depuis un shell (bash) de connexion (comme chez moi, j'ai dans
mon ~/.profile un:
[if [ "$(tty)" == "/dev/tty1" ]; then
startx
fi
Donc les applis graphiques héritent-elles de tout le bazar dans les profile
et bashrc ou y'a un ménage qui est fait?
Pardon pour la question, je sais qu'il est possible d'écrire un petit
programme qui affiche les variables positionnées, mais y'a les alias et y'a
ce à quoi je pense pas, donc au final je dis pas pardon, c'est une bonne
question finalement :)
alias toto=titi
bash -c 'alias -p'
*Question*:
Les applications graphiques lancées depuis un gestionnaire de fenêtre qui est
lancé depuis depuis un shell (bash) de connexion (comme chez moi, j'ai dans
mon ~/.profile un:
[if [ "$(tty)" == "/dev/tty1" ]; then
startx
fi
Donc les applis graphiques héritent-elles de tout le bazar dans les profile
et bashrc ou y'a un ménage qui est fait?
Pardon pour la question, je sais qu'il est possible d'écrire un petit
programme qui affiche les variables positionnées, mais y'a les alias et y'a
ce à quoi je pense pas, donc au final je dis pas pardon, c'est une bonne
question finalement :)
alias toto=titi
bash -c 'alias -p'
On 04/02/2015 02:20 PM, Nicolas George wrote:mireero , dans le message <551d2915$0$3055$, a
écrit :Et la réponse (ça mâapprendra à lire le code en 2 2 5 min avant d'aller
bosser)
Ben tout simplement dans le ~/.profile (comme prévu je dirais).
Non, ce n'est pas ça du tout.
~/.bashrc est sourcé automatiquement par bash lui-même, sans q ue ce soit
indiqué dans un fichier de config.
SAUF... que bash a une misfeature idiote : il ne source pas ~/.bashrc qu and
c'est un shell de login, même si c'est _aussi_ un shell interactif. Du coup
les distributions mettent des contournements : sourcer ~/.bashrc (le fic hier
de config pour les shells interactifs) depuis ~/.profile (le fichier de
config pour les shells de login). Ãa a quelques inconvénients,
essentiellement le risque de mal le faire et de se retrouver coincé pour
quelques cas particuliers.Par contre, si c'est qu'une question de PATH, et que tu es sur bash,
t'as qu'Ã le modifier dans ~/bashrc.
Non, non et non, c'est complètement buggé, et en pratique à §a a pour
conséquence de laisser orphelins les crontabs, les commandes à distances
sans shell interactif, les procmailrc, etc.
J'aimerais comprendre ce qu'il y a de buggé dans un:
PATH=$PATH:~/bin
dans un bashrc.
On 04/02/2015 02:20 PM, Nicolas George wrote:
mireero , dans le message <551d2915$0$3055$426a74cc@news.free.fr>, a
écrit :
Et la réponse (ça mâapprendra à lire le code en 2 2 5 min avant d'aller
bosser)
Ben tout simplement dans le ~/.profile (comme prévu je dirais).
Non, ce n'est pas ça du tout.
~/.bashrc est sourcé automatiquement par bash lui-même, sans q ue ce soit
indiqué dans un fichier de config.
SAUF... que bash a une misfeature idiote : il ne source pas ~/.bashrc qu and
c'est un shell de login, même si c'est _aussi_ un shell interactif. Du coup
les distributions mettent des contournements : sourcer ~/.bashrc (le fic hier
de config pour les shells interactifs) depuis ~/.profile (le fichier de
config pour les shells de login). Ãa a quelques inconvénients,
essentiellement le risque de mal le faire et de se retrouver coincé pour
quelques cas particuliers.
Par contre, si c'est qu'une question de PATH, et que tu es sur bash,
t'as qu'Ã le modifier dans ~/bashrc.
Non, non et non, c'est complètement buggé, et en pratique à §a a pour
conséquence de laisser orphelins les crontabs, les commandes à distances
sans shell interactif, les procmailrc, etc.
J'aimerais comprendre ce qu'il y a de buggé dans un:
PATH=$PATH:~/bin
dans un bashrc.
On 04/02/2015 02:20 PM, Nicolas George wrote:mireero , dans le message <551d2915$0$3055$, a
écrit :Et la réponse (ça mâapprendra à lire le code en 2 2 5 min avant d'aller
bosser)
Ben tout simplement dans le ~/.profile (comme prévu je dirais).
Non, ce n'est pas ça du tout.
~/.bashrc est sourcé automatiquement par bash lui-même, sans q ue ce soit
indiqué dans un fichier de config.
SAUF... que bash a une misfeature idiote : il ne source pas ~/.bashrc qu and
c'est un shell de login, même si c'est _aussi_ un shell interactif. Du coup
les distributions mettent des contournements : sourcer ~/.bashrc (le fic hier
de config pour les shells interactifs) depuis ~/.profile (le fichier de
config pour les shells de login). Ãa a quelques inconvénients,
essentiellement le risque de mal le faire et de se retrouver coincé pour
quelques cas particuliers.Par contre, si c'est qu'une question de PATH, et que tu es sur bash,
t'as qu'Ã le modifier dans ~/bashrc.
Non, non et non, c'est complètement buggé, et en pratique à §a a pour
conséquence de laisser orphelins les crontabs, les commandes à distances
sans shell interactif, les procmailrc, etc.
J'aimerais comprendre ce qu'il y a de buggé dans un:
PATH=$PATH:~/bin
dans un bashrc.
mireero , dans le message <551d2915$0$3055$, a
écrit :Et la réponse (ça m’apprendra à lire le code en 2 2 5 min avant d'aller
bosser)
Ben tout simplement dans le ~/.profile (comme prévu je dirais).
Non, ce n'est pas ça du tout.
~/.bashrc est sourcé automatiquement par bash lui-même, sans que ce soit
indiqué dans un fichier de config.
SAUF... que bash a une misfeature idiote : il ne source pas ~/.bashrc quand
c'est un shell de login, même si c'est _aussi_ un shell interactif. Du coup
les distributions mettent des contournements : sourcer ~/.bashrc (le fichier
de config pour les shells interactifs) depuis ~/.profile (le fichier de
config pour les shells de login). Ça a quelques inconvénients,
essentiellement le risque de mal le faire et de se retrouver coincé pour
quelques cas particuliers.Par contre, si c'est qu'une question de PATH, et que tu es sur bash,
t'as qu'à le modifier dans ~/bashrc.
Non, non et non, c'est complètement buggé, et en pratique ça a pour
conséquence de laisser orphelins les crontabs, les commandes à distances
sans shell interactif, les procmailrc, etc.
mireero , dans le message <551d2915$0$3055$426a74cc@news.free.fr>, a
écrit :
Et la réponse (ça m’apprendra à lire le code en 2 2 5 min avant d'aller
bosser)
Ben tout simplement dans le ~/.profile (comme prévu je dirais).
Non, ce n'est pas ça du tout.
~/.bashrc est sourcé automatiquement par bash lui-même, sans que ce soit
indiqué dans un fichier de config.
SAUF... que bash a une misfeature idiote : il ne source pas ~/.bashrc quand
c'est un shell de login, même si c'est _aussi_ un shell interactif. Du coup
les distributions mettent des contournements : sourcer ~/.bashrc (le fichier
de config pour les shells interactifs) depuis ~/.profile (le fichier de
config pour les shells de login). Ça a quelques inconvénients,
essentiellement le risque de mal le faire et de se retrouver coincé pour
quelques cas particuliers.
Par contre, si c'est qu'une question de PATH, et que tu es sur bash,
t'as qu'à le modifier dans ~/bashrc.
Non, non et non, c'est complètement buggé, et en pratique ça a pour
conséquence de laisser orphelins les crontabs, les commandes à distances
sans shell interactif, les procmailrc, etc.
mireero , dans le message <551d2915$0$3055$, a
écrit :Et la réponse (ça m’apprendra à lire le code en 2 2 5 min avant d'aller
bosser)
Ben tout simplement dans le ~/.profile (comme prévu je dirais).
Non, ce n'est pas ça du tout.
~/.bashrc est sourcé automatiquement par bash lui-même, sans que ce soit
indiqué dans un fichier de config.
SAUF... que bash a une misfeature idiote : il ne source pas ~/.bashrc quand
c'est un shell de login, même si c'est _aussi_ un shell interactif. Du coup
les distributions mettent des contournements : sourcer ~/.bashrc (le fichier
de config pour les shells interactifs) depuis ~/.profile (le fichier de
config pour les shells de login). Ça a quelques inconvénients,
essentiellement le risque de mal le faire et de se retrouver coincé pour
quelques cas particuliers.Par contre, si c'est qu'une question de PATH, et que tu es sur bash,
t'as qu'à le modifier dans ~/bashrc.
Non, non et non, c'est complètement buggé, et en pratique ça a pour
conséquence de laisser orphelins les crontabs, les commandes à distances
sans shell interactif, les procmailrc, etc.