Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2243 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Logiciels

  [bash] au login, .bashrc n'est pas exécuté :-(

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[bash] au login, .bashrc n'est pas exécuté :-(

n°291243
Figti
Posté le 11-07-2003 à 00:40:07  profilanswer
 

J'ai lu à plusieurs endroits que .bashrc situé dans le home de l'utilisateur était exécuté au login. Soit.
 
Chez moi, je constate que ça marche pas tout le temps :
1)j'initie une cnx ssh , un login m'est demandé
2)je me logue en "bozo", et mes alias présents dans mon .bashrc ne fonctionnent pas. J'en déduis que mon .bashrc n'a pas été exécuté :(
3)je fais "su clown", cette fois les alias de clown fonctionnent
4)logué en clown, je fais "su bozo" (nouvelle session bozo) : cette fois le .bashrc est prix en compte !!!
 
Pourquoi il le fait pas sur une première connexion ?  :??:

mood
Publicité
Posté le 11-07-2003 à 00:40:07  profilanswer
 

n°291260
Jak
Back to Slack !
Posté le 11-07-2003 à 08:16:59  profilanswer
 

C'est un truc bizarre, en effet, et je n'ai jamais bien compris pourquoi ça le faisait. Pour résoudre ce problème, fais :
 
mv .bashrc .profile
 
Et recrée un .bashrc, et mets-y la ligne suivante :
 
. .profile
 
En fait, le problème, c'est que selon la manière de se logger, c'est soit le .bashrc qui se lance, soit le .profile. Et là, dans un cas comme dans l'autre, tu auras bien ce qu'il faut à chaque fois.
 
Tiens, je me demande en fait si le simple fait de faire un lien symbolique vers le .bashrc, qui s'appellerait .profile, ne fonctionnerait pas. Disons que l'intérêt, pour moi, d'avoir 2 fichiers, c'est l'un des 2 n'est lancé que lorsque qu'on se logge en mode texte, alors qu'ils passent tous les 2 dans un xterm, ce qui me permet de différencier un peu les environnements si nécessaire.

n°291324
Figti
Posté le 11-07-2003 à 11:23:41  profilanswer
 

Merci pour ta réponse.
 
Pour faire simple, j'ai -temporairement- essayé en faisant un "cp .bashrc .profile"
Malheureusement, ça n'a pas changé le comportement :heink:.
Je me connecte avec PuTTY depuis un poste window$, ça a rien à voir  si?
 
J'ai aussi essayé en créant un alias .profile pointant sur .bashrc -> même comportement :sweat:
 
Ah, spa tout simple linux :o (mais gratifiant ; mais pas tout simple ;))


Message édité par Figti le 11-07-2003 à 11:24:32
n°291333
Jak
Back to Slack !
Posté le 11-07-2003 à 11:28:38  profilanswer
 

Mmmmh ... C'est curieux, ça ... Et tu as essayé la méthode qui consiste à mettre « . .profile » dans le .bashrc ?

n°291367
Figti
Posté le 11-07-2003 à 12:23:37  profilanswer
 

Bah non plus :(
 
Mais bon, je ne l'ai pt'et pas fait comme il faut : j'ai simplement mis une unique ligne dans .bashrc : ". .profile" . Il faut pas faire débuter le script par !#/bin/bash ? (sorry j'ai pas trop l'habitude... :D)
 
En regardant de + près, j'ai vu que j'avais aussi un fichier .bash_profile. Est-ce que c'est là-dedans qu'il faut farfouiller, ou pas du tout...?  :whistle:
 
PS : J'ai oublié de préciser : je suis sous Debian testing/unstable


Message édité par Figti le 11-07-2003 à 12:24:24
n°291406
minusplus
Posté le 11-07-2003 à 13:36:46  profilanswer
 

parce que .bashrc est un script d'initialisation d'un shell interactif qui n'est pas un shelle de login.
 
http://consolemode.org/prods/bash- [...] mments.xml

n°291409
arsunik
ma tuxitude me beastifie
Posté le 11-07-2003 à 13:42:15  profilanswer
 

Le .profile est le fichier sourcé par sh.
Le .bash_profile est le fichier sourcé par bash pour un shell de login. Il doit normallement comporter tout l'environnement exporté (PATH...).
Le .bashrc est utilisé dans l'autre cas (pas un shell de login). Il contient tous les alias/fonctions et tout ce qui n'est pas exporté.
 
Il convient donc de mettre ". .bashrc" dans le .bash_profile et non l'inverse.
Ou même mieux de mettre :

Code :
  1. case "$-" in
  2.   *i*) . .bashrc ;;
  3. esac


Afin de ne charger le .bashrc que si le shell est interactif.

n°291522
Figti
Posté le 11-07-2003 à 18:02:20  profilanswer
 

Merci ; j'y vois plus clair.
En gros, le lien de minisplus explique qu'il existe en fait des "shell de login", des "shell intertactifs", et des "shell non interactifs". :sweat:
En fonction de ces différents shell, ce ne sont pas les memes fichiers qui sont executés au login.
 
Ce qui recoupe le post de ArSuniK : effectivement en ajoutant

Code :
  1. # include .bashrc if it exists
  2. if [ -f ~/.bashrc ]; then
  3.     source ~/.bashrc
  4. fi


(commandes suggérées par Debian; que j'utilise justement ;))
dans le .bash_profile, ça marche nickel !
 
:jap:


Message édité par Figti le 11-07-2003 à 18:05:02

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Logiciels

  [bash] au login, .bashrc n'est pas exécuté :-(

 

Sujets relatifs
[HACK] RootKit sous Debian, comment recuperer mon login :'(appliquer un script ou un programme récursivement [ bash ]
bash_completion et développement de ~[Bash] checker une dependance, which & Cie
.bashrc?bash: locale: command not found
[pb serveur imap] erreur login[BASH] droits différents sur fichiers et dossiers
news.linuxfr.org et login ?[bash] faire un rm de " ls | grep -E "^[1-9]{1,2} "
Plus de sujets relatifs à : [bash] au login, .bashrc n'est pas exécuté :-(


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR