Variables d'environnement

Vonbek

Membre confirmé
13 Février 2005
37
0
49
Bonjour,


Switcheur tout neuf (7 jours), je souhaites stocker mes alias pour la ligne de commande et customiser mon prompt bash. Mais je ne trouve pas le fichier .bashrc; Quelqu'un pourrait il m'expliquer ou sont stockées les variables d'environnement et les alias.


Merci à vous
 
bashrc est dans etc
 
Certes, mais il vaut mieux n'y pas toucher et créer un fichier ".bashrc" dans le répertoire maison.
 
Tu peux aussi te créer un fichier .profile dans ton répertoire. et y stocker tes alias. Il sera exécuté automatiquement lorsque tu ouvres ta session (.bashrc est appelé seulement si tu exécutes Terminal et que ton shelml est bash (ce sui est le cas par défaut)).
 
Justement mon .bashrc n'a pas l'air de vouloir se charger j'ai ecrit ceci à l'interieur

if [ "$PS1" ]; then
alias ls='ls -G -l -A'

fi

malgré un nouveau terminal, une nouvelle session rien n'y fait je me retrouve toujours avec la même commande ls...
 
Vonbek a dit:
if [ "$PS1" ]; then
alias ls='ls -G -l -A'
fi
Pourquoi tu testes $PS1? C'est ton prompt, je ne vois pas l'intérêt de le tester. En plus tu n'indique pas au shell quel shelllancer pour traiter le fichier (c'est pas clair :)). Moi j'aurai mis juste ça:
Bloc de code:
#!/bin/bash
alias ls='ls -G -l -A'
Maintenant si tu tiens absolument à garder ton test essaie ça:
Bloc de code:
#!/bin/bash
if [ -n $PS1 ]; then
      alias ls='ls -G -l -A'
fi
 
En fait j'essaye d'apprendre en consultant des exemples, mais par contre pour ta premiere ligne je l'ai vue plusieurs foismais comme elle commence par un diese je pensais que c'était un commentaire...
 
Il s'agit bien d'un commentaire optionnel mais les shells l'interprêtent, lorsqu'il est présent, comme étant le chemin du sous-shell à lancer pour exécuter les commandes qui suivent dans le script. Tu pourrais mettre par exemple #!/bin/tcsh au début d'un script et ecrire tout le reste du script avec la syntaxe de tcsh (qui diffère de celle de bash pour certaines choses). Et tu pourrais lancer ce script tcsh depuis n'importe quel shell (bash, sh, tcsh, ksh...) qui se chargera d'invoquer tcsh pour l'exécuter. Si tu n'avais pas cette ligne en début de script, tu aurais été obligé dans cet exemple de lancer tcsh pour l'exécuter car bash (ou un autre) aurais pris certaines particularités syntaxiques de tcsh (ou autre) pour des erreurs de syntaxe.
La force d'un Unix quand même... :D
 
pour info voici les changements que j'ai effectué dans mon ".profile":

# syntaxe du prompt (nom_court_utilisateur:nom_du_répertoire_courant$ )
export PS1='\u:\w\$ '

# chemins d'acc<E8>s des ex<E9>cutable
export PATH=$PATH:/usr/local/bin:/opt/local/bin

# display par d<E9>faut pour le serveur X window
export DISPLAY=:0.0

# variable tex pour prosper
export TEXINPUTS=$TEXINPUTS:/sw/share/texmf/tex/latex/misc/prosper/:/sw/share/te
xmf/tex/latex/misc/prosper/img/

# initialise fink
. /sw/bin/init.sh