IPB

Bienvenue invité ( Connexion | Inscription )

> [SHELL] variables d'environnement (résolu à moitié)
Options
clarusad
posté 6 Feb 2010, 11:30
Message #1


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 309
Inscrit : 17 Oct 2006
Lieu : Strasbourg, France
Membre no 70 694



Bonjour à tous,

Comment et où, à l'instar de Linux, modifier ses variables d'environnement sous mac OS X ?
Je voudrais faire deux choses :

1) indiquer au système cet endroit de stockage de binaires : /sw/bin ;
2) que le système m'avertisse avant que je fasse un rm (je voudrais qu'il suffixe cette commande avec -i : rm -i).

Merci à tous pour votre aide.

Ce message a été modifié par clarusad - 16 Feb 2010, 11:15.
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s) (1 - 14)
guerom00
posté 6 Feb 2010, 12:41
Message #2


Sans titre ni bouboules et terriblement négatif !


Groupe : Membres
Messages : -8 378 756
Inscrit : 5 Dec 2004
Membre no 28 230



Comme d'habitude : t'as un fichier d'initialisation dépendant du shell que tu utilises. Sous OS X, c'est du bash. Tu as donc un fichier dénommé .profile dans ton home dans lequel tu te définis toutes ces variables.

Ce message a été modifié par guerom00 - 6 Feb 2010, 12:42.


--------------------
la galette: un site qui ne tourne pas en rond !
Breton par assiduité et Pinklaireur occasionnel et n'aime pas Caps Lock…
“Theory: As long as strangers hold the power to affect your mood, you are deeply and fundamentally fucked.”
The Internet is made of cats.
Go to the top of the page
 
+Quote Post
clarusad
posté 6 Feb 2010, 14:00
Message #3


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 309
Inscrit : 17 Oct 2006
Lieu : Strasbourg, France
Membre no 70 694



Pour ce qui est de l'avertissement, j'ai modifié ce fichier :
Code
~/.profile

en y ajoutant :
Code
alias rm='rm -i'

mais ça ne fonctionne pas.

En ce qui concerne le chemin de (mes) binaires, je crois qu'il faut modifier la variable d'environnement $PATH,
mais je ne sais pas comment faire car je croyais la trouver dans mon home... mais non !
Go to the top of the page
 
+Quote Post
noop
posté 6 Feb 2010, 14:04
Message #4


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 964
Inscrit : 3 Nov 2005
Membre no 49 239



c'est dans le fichier .bash_profile qu'il faut faire ca
Go to the top of the page
 
+Quote Post
clarusad
posté 6 Feb 2010, 15:22
Message #5


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 309
Inscrit : 17 Oct 2006
Lieu : Strasbourg, France
Membre no 70 694



Merci :-)

Me reste plus qu'à "résoudre" le souci de la variable d'environnement $PATH.
En attendant de trouver une solution propre, j'ai fait un :
Citation
ln /sw/bin/toto /bin

de sorte de faire un alias du binaire toto là où il devrait être.
Go to the top of the page
 
+Quote Post
fgiron
posté 6 Feb 2010, 15:51
Message #6


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 1 336
Inscrit : 19 May 2003
Lieu : Vendée
Membre no 7 668



Pour /sw/bin, tout simplement doit se trouver dans .bashrc la ligne suivante débutant par le point:
Code
. /sw/bin/init.sh

Le path est en effet défini dans ce fichier /sw/bin/init.sh.

Pour 'rm -i':
Code
alias rm='rm -i'


Pour que ça fonctionne, il faut redémarrer un shell ou lancer la commande 'rehash' (mais je crois qu'elle est spécifique à zsh).

Ce message a été modifié par fgiron - 6 Feb 2010, 16:02.


--------------------
[size=1]iMac 24", M1, 1To, 16 Go, Sonoma 14.1
iMac 24', 650 Go, Ram 4 Go, Intel Core 2 Duo 3.06 GHz, OS X 10.10.5
Airport Express 7.6.1 - Time Capsule 2 To 7.6.1 - iPod classic 160 Go
Go to the top of the page
 
+Quote Post
flan
posté 7 Feb 2010, 00:30
Message #7


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 608
Inscrit : 1 Jul 2006
Membre no 63 808



Citation (noop @ 6 Feb 2010, 14:04) *
c'est dans le fichier .bash_profile qu'il faut faire ca

Ou .bashrc, suivant qu'on se connecte en ssh ou directement.
Go to the top of the page
 
+Quote Post
clarusad
posté 13 Feb 2010, 23:38
Message #8


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 309
Inscrit : 17 Oct 2006
Lieu : Strasbourg, France
Membre no 70 694



Effectivement, c'est .bash_profile qu'il faut modifier : j'ai donc un avertissement lors de la suppression d'un fichier. Parfait (je suis parfois étourdi).
En revanche, ça m'amène à une seconde question : en modifiant ce fichier, désormais lorsque j'ouvre un terminal j'ai l' alias qui se met dans l'invite ; c'est n'importe quoi !
Code
Welcome to Darwin!
alias rm='rm -i'
PowerMac:~ clarusad$

C'est normal ça ???

Merci à tous pour votre aide.

Ce message a été modifié par clarusad - 13 Feb 2010, 23:39.
Go to the top of the page
 
+Quote Post
flan
posté 15 Feb 2010, 14:53
Message #9


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 608
Inscrit : 1 Jul 2006
Membre no 63 808



poste ton .bash_profile complet, c'est sûrement une erreur de syntaxe.
Go to the top of the page
 
+Quote Post
clarusad
posté 15 Feb 2010, 16:56
Message #10


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 309
Inscrit : 17 Oct 2006
Lieu : Strasbourg, France
Membre no 70 694



voilà :
Code
alias rm='rm -i'
alias rm -d='rm -di'

C'est tout simple : il n'y à que ça.
Go to the top of the page
 
+Quote Post
flan
posté 16 Feb 2010, 02:53
Message #11


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 608
Inscrit : 1 Jul 2006
Membre no 63 808



Citation (clarusad @ 15 Feb 2010, 16:56) *
voilà :
Code
alias rm='rm -i'
alias rm -d='rm -di'

C'est tout simple : il n'y à que ça.

C'est la seconde ligne.

avec alias, tu remplaces un nom (ici rm) par une chaîne (ici 'rm -i' )
Avec ta seconde ligne, il perd les pédales, vu que tu ne respectes pas la syntaxe (tu essaies d'aliaser rm -d, c'est-à-dire une commande avec un argument), du coup, il doit afficher le contenu actuel de rm (qui est remplacé par rm -i) et l'affiche à l'écran.

Supprimes ta seconde ligne, et tout marchera correctement.
Go to the top of the page
 
+Quote Post
clarusad
posté 16 Feb 2010, 08:58
Message #12


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 309
Inscrit : 17 Oct 2006
Lieu : Strasbourg, France
Membre no 70 694



ok, je comprends, mais alors comment faire pour que je puisse avoir plusieurs alias de commandes ?
Par exemple je pourrais aussi vouloir ceci en plus :
alias ls='ls -ai'
pour obtenir le ll de Linux. Comment l'ajouter dans ce cas ?

Merci.
Go to the top of the page
 
+Quote Post
guerom00
posté 16 Feb 2010, 10:08
Message #13


Sans titre ni bouboules et terriblement négatif !


Groupe : Membres
Messages : -8 378 756
Inscrit : 5 Dec 2004
Membre no 28 230



Oui bah tu rajoutes ça :
Citation (clarusad @ 16 Feb 2010, 08:58) *
alias ls='ls -ai'

à la suite dans ton fichier.
Ce qui n'allait pas précédemment c'est que tu voulais définir un alias pour “rm -d” qui est une commande et un argument. On peut pas faire ça. smile.gif


--------------------
la galette: un site qui ne tourne pas en rond !
Breton par assiduité et Pinklaireur occasionnel et n'aime pas Caps Lock…
“Theory: As long as strangers hold the power to affect your mood, you are deeply and fundamentally fucked.”
The Internet is made of cats.
Go to the top of the page
 
+Quote Post
clarusad
posté 16 Feb 2010, 11:05
Message #14


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 309
Inscrit : 17 Oct 2006
Lieu : Strasbourg, France
Membre no 70 694



ok je comprends bien, merci.
En plus que le rm -di est superflu car le terminal me demande une confirmation lors de la destruction d'un répertoire.

Merci à tous pour votre aide : j'ai bien avancé !
(j'ajoute la mention résolu dans le titre du post)
Go to the top of the page
 
+Quote Post
darenzana
posté 16 Feb 2010, 21:48
Message #15


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 745
Inscrit : 13 Nov 2006
Membre no 72 823



Citation (clarusad @ 16 Feb 2010, 11:05) *
En plus que le rm -di est superflu car le terminal me demande une confirmation lors de la destruction d'un répertoire.

bin oui, puisque tu as deja un alias rm=rm -i
quand tu tapes 'rm -d', le shell parse ta ligne, voir 'rm', le remplace par 'rm -i', et donc la commande exécutée est 'rm -i -d'
d'ailleurs un petit truc utile, pour mettre à jour ces mécanismes internes:
tapes 'set -x'
une fois ceci fait, le shell t'indiquera chaque ligne tel qu'il la comprend avant de l'exécuter.
pour revenir au comportement original:
set +x


--------------------
Macbook Pro 15" Core 2 Duo 2.33GHz, 3Go RAM, Mac OS X 10.6.8 | Macbook Air 13" mi-2011 Core i5, Mac OS X 10.8
NAS Synology DS-110+
iPhone 6 silver 64Go - forfait SFR Red 3Go
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 19th March 2024 - 04:05