Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

prompt shell bash

8 réponses
Avatar
thierry.rouillon
Bonsoir.
J'ai les prompt suivant dans un shell bash

bash-2.05b$ su
Password:
[root@tr thierry]#

Je voudrais arriver à avoir le style du prompt sous root tout le temps même
en mode utilisateur. J'ai regarder à:
https://dpt-info.u-strasbg.fr/ ~mathis/LinuxCours/shell-bash.html
mais n'ai rien trouvé. On me conseillerait plutot la modification de
$HOME/.bash_profile
Dans
http://www.ac-creteil.fr/reseaux/systemes/linux/shell-scripts/shell-bash.html
on me renvoie vers la modif du fichier /etc/bashrc.

Je ne vois plus quoi modifier et comment. C'est peut être simple mais avant
de faire n'importe quoi, j'ose demander une petite aide...
--
Thierry de Champagne... pour me repondre remplacer 9 par 9online

8 réponses

Avatar
JRD
thierry.rouillon wrote:
Bonsoir.
J'ai les prompt suivant dans un shell bash

bash-2.05b$ su
Password:
[ thierry]#

Je voudrais arriver à avoir le style du prompt sous root tout le temps même
en mode utilisateur. J'ai regarder à:
https://dpt-info.u-strasbg.fr/ ~mathis/LinuxCours/shell-bash.html
mais n'ai rien trouvé. On me conseillerait plutot la modification de
$HOME/.bash_profile
Dans
http://www.ac-creteil.fr/reseaux/systemes/linux/shell-scripts/shell-bash.html
on me renvoie vers la modif du fichier /etc/bashrc.

Je ne vois plus quoi modifier et comment. C'est peut être simple mais avant
de faire n'importe quoi, j'ose demander une petite aide...


Le fichier $HOME/.bash_profile est exécuté *UNE* seule fois lors de la
connexion (du login) à la machine (sauf si le bash de connexion est
lancé avec l'argument --noprofile). Tous les shell bash lancé ensuite
par ce shell père n'iront pas voir ce fichier.

Le fichier $HOME/.bashrc (s'il existe) est *TOUJOURS* exécuté par tous
les bash (sauf si bash est lancé avec --norc ou avec --rcfile ...).
Par convention (par habitude), $HOME/.bashrc regarde si /etc/bashrc
existe et l'exécute. En effet, dans $HOME/.bashrc, on trouve souvent
les lignes suivantes :
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

Si ces lignes sont supprimées, alors /etc/bashrc ne sert à rien.

Le mieux est de modifier son propre .bashrc (pour chaque utilisateur),
car le prompt (PS1), exemple typique, n'est pas forcément le même pour
tout le monde.

Voilà.
JRD.
--
jerome (dot) drapeau <at> free (dot) fr
http://jerome.drapeau.free.fr
La critique est aisée, l'art est difficile.

Avatar
Nicolas George
JRD wrote in message <con6fq$48v$:
Le fichier $HOME/.bash_profile est exécuté *UNE* seule fois lors de la
connexion (du login) à la machine (sauf si le bash de connexion est
lancé avec l'argument --noprofile).


Sauf si c'est une connexion par XDM ou similaire, auquel cas il n'est pas lu
du tout.

Le fichier $HOME/.bashrc (s'il existe) est *TOUJOURS* exécuté par tous
les bash


Uniquement les bash interactifs, pas ceux qui interprètent des scripts ou
des commandes passées directement.

Avatar
JRD
Bonsoir,

Nicolas George <nicolas$ wrote:
JRD wrote in message <con6fq$48v$:
Le fichier $HOME/.bash_profile est exécuté *UNE* seule fois lors de la
connexion (du login) à la machine (sauf si le bash de connexion est
lancé avec l'argument --noprofile).


Sauf si c'est une connexion par XDM ou similaire, auquel cas il n'est pas lu
du tout.


Lapalissade : Si le programme de connexion (login) n'est pas bash,
alors le .bash_profile n'est pas exécuté.
C'est donc le cas pour xdm, gdm, zsh, ksh, sh, etc.

Le fichier $HOME/.bashrc (s'il existe) est *TOUJOURS* exécuté par tous
les bash


Uniquement les bash interactifs, pas ceux qui interprètent des scripts ou
des commandes passées directement.


man bashrc fait 4500 lignes.
On peut donc en faire une analyse précise, mais cela risque d'être un
peu long. AMHA.

JRD.
--
jerome (dot) drapeau <at> free (dot) fr
http://jerome.drapeau.free.fr
La critique est aisée, l'art est difficile.


Avatar
Nicolas George
JRD wrote in message <conmag$2es$:
Lapalissade : Si le programme de connexion (login) n'est pas bash,
alors le .bash_profile n'est pas exécuté.
C'est donc le cas pour xdm, gdm, zsh, ksh, sh, etc.


Hum, apparemment, tu n'as pas les idées claires sur les processus de login,
puisque tu mets sur le même plan les shells et xdm.

Donc pour fixer les idées :

- login est le programme qui vérifie le mot de passe quand on se logue en
mode teste, fait les initialisations de base (changement des droits sur le
terminal, enregistrement dans utmp), puis exécute le shell de login de
l'utilisateur ;

- le shell de login, presque toujours un vrai shell quand il s'agit d'un
vrai utilisateur, est ce qui interprète les commandes qu'on tape une fois
qu'on es logué ;

- xdm est le programme qui invite l'utilisateur à se loguer en mode
graphique.

S'il faut faire un parallèle entre le mode graphique et le mode texte, xdm
doit être mis en regard de login, et le shell de login va correspondre à
~/.xsession, ou au windowmanager choisi dans les menus de xdm.

Uniquement les bash interactifs, pas ceux qui interprètent des scripts ou
des commandes passées directement.
man bashrc fait 4500 lignes.



Je ne vois pas le rapport.


Avatar
JRD
Bonsoir,

Nicolas George <nicolas$ wrote:
JRD wrote in message <conmag$2es$:
Lapalissade : Si le programme de connexion (login) n'est pas bash,
alors le .bash_profile n'est pas exécuté.
C'est donc le cas pour xdm, gdm, zsh, ksh, sh, etc.


Hum, apparemment, tu n'as pas les idées claires sur les processus de login,
puisque tu mets sur le même plan les shells et xdm.


12 ans d'Unix et presque autant de Linux, je crois que je commence à
comprendre les procédures de "loging".

Donc pour fixer les idées :

- login est le programme qui vérifie le mot de passe quand on se logue en
mode teste, fait les initialisations de base (changement des droits sur le
terminal, enregistrement dans utmp), puis exécute le shell de login de
l'utilisateur ;


Vrai.

- le shell de login, presque toujours un vrai shell quand il s'agit d'un
vrai utilisateur, est ce qui interprète les commandes qu'on tape une fois
qu'on es logué ;


Vrai.

- xdm est le programme qui invite l'utilisateur à se loguer en mode
graphique.


Vrai.

S'il faut faire un parallèle entre le mode graphique et le mode texte, xdm
doit être mis en regard de login, et le shell de login va correspondre à
~/.xsession, ou au windowmanager choisi dans les menus de xdm.


On peut aussi pinailler sur les ordres et les priorités des fichiers
.xserverrc, .xsession, .xinitrc, .profile, .bash_profile, .bashrc,
.bash_logout, .zprofile, .zshrc, .zlogin, .zlogout, etc, etc.

Uniquement les bash interactifs, pas ceux qui interprètent des scripts ou
des commandes passées directement.
man bashrc fait 4500 lignes.

man bash fait 4500 lignes.


Tout le monde aura corrigé. ;-)

Je ne vois pas le rapport.
A pinailleur, pinalleur et demi.


Le post initial portait sur .bash_profile et /etc/bashrc et je pense
que mon intervention a éclairé le posteur (à défaut, man bash lui a
donné les éventuels renseignements complémentaires).

JRD.
--
jerome (dot) drapeau <at> free (dot) fr
http://jerome.drapeau.free.fr
La critique est aisée, l'art est difficile.



Avatar
Stephane Chazelas
2004-12-2, 14:55(+00), Nicolas George:
JRD wrote in message <con6fq$48v$:
Le fichier $HOME/.bash_profile est exécuté *UNE* seule fois lors de la
connexion (du login) à la machine (sauf si le bash de connexion est
lancé avec l'argument --noprofile).


Sauf si c'est une connexion par XDM ou similaire, auquel cas il n'est pas lu
du tout.


Il devrait. Sur certains system, il (ou l'equivalent) le fait.

XDM lance une session utilisateur, il devrait donc evaluer le
fichier de customization de session (au moins ~/.profile ou un
script comme ~/.dtprofile qui peut etre configuré pour sourcer
le ~/.profile).

Le fichier $HOME/.bashrc (s'il existe) est *TOUJOURS* exécuté par tous
les bash


Uniquement les bash interactifs, pas ceux qui interprètent des scripts ou
des commandes passées directement.


Pas les shells de login (meme interactifs) non plus ce qui peut
etre consideré comme un bug.

Note que suivant les options de compilations, il peut aussi
sourcer /etc/bash.bashrc, ce qui est parfois documenté dans la
page de man et/ou la page info.

Pour un comportement plus coherent, voir zsh.

--
Stephane


Avatar
JRD
Bonjour,

Stephane Chazelas wrote:
2004-12-2, 14:55(+00), Nicolas George:
JRD wrote in message <con6fq$48v$:
Le fichier $HOME/.bash_profile est exécuté *UNE* seule fois lors de la
connexion (du login) à la machine (sauf si le bash de connexion est
lancé avec l'argument --noprofile).


Sauf si c'est une connexion par XDM ou similaire, auquel cas il n'est pas lu
du tout.


Il devrait. Sur certains system, il (ou l'equivalent) le fait.


Effectivement, GDM sous linux (ma station perso) le fait.
Pour XDM, je n'ai pas testé.

XDM lance une session utilisateur, il devrait donc evaluer le
fichier de customization de session (au moins ~/.profile ou un
script comme ~/.dtprofile qui peut etre configuré pour sourcer
le ~/.profile).

Le fichier $HOME/.bashrc (s'il existe) est *TOUJOURS* exécuté par tous
les bash


Uniquement les bash interactifs, pas ceux qui interprètent des scripts ou
des commandes passées directement.


Pas les shells de login (meme interactifs) non plus ce qui peut
etre consideré comme un bug.


Je dirais plutôt comme une "sécurité" (au lieu de bug). Le shell de
login étant un shell particulier, que l'on peut appréhender (imaginer)
comme un script de connexion. ;-)
Enfin, c'est juste un ajustement sémantique. ;-)

Note que suivant les options de compilations, il peut aussi
sourcer /etc/bash.bashrc, ce qui est parfois documenté dans la
page de man et/ou la page info.


bash est GNU; donc, il est modifiable à loisir. ;-)

JRD.
--
jerome (dot) drapeau <at> free (dot) fr
http://jerome.drapeau.free.fr
La critique est aisée, l'art est difficile.



Avatar
thierry.rouillon
Nicolas George nous a gentiment écrit:

JRD wrote in message <conmag$2es$:
Lapalissade : Si le programme de connexion (login) n'est pas bash,
alors le .bash_profile n'est pas exécuté.
C'est donc le cas pour xdm, gdm, zsh, ksh, sh, etc.


Hum, apparemment, tu n'as pas les idées claires sur les processus de
login, puisque tu mets sur le même plan les shells et xdm.



Je ne parlais que du prompt que l'on abtiens en mode console(ctrl+alt+F1)
Pourquoi est il différent en mode utilisateur ou en mode root ?

--
Thierry de Champagne... pour me repondre remplacer 9 par 9online