Je déconnais avec les variables d'environnement sur mon Mac, j'essayais d'apprendre à les utiliser et j'ai utilisé la commande nano ~/.bash_profile
où j'ai ensuite ajouté la ligne HOME=/Users/MyCompName/Desktop
pour mettre à jour ma variable d'accueil.
Ce changement a fonctionné et peut être vu lorsque j'utilise printenv
pour afficher toutes les variables d'environnement, mais quand je suis allé pour HOME
revenir en arrière, je n'arrivais plus à trouver ~/.bash_profile
. Où est-il allé?
~
signifie$HOME
$HOME
, vous serez redéfini~
aussiRéponses:
C'est au même endroit.
Avant que le changement ne
~
se transforme en quelque chose comme/Users/YourUserName
, le shell trouve votre.bash_profile
là - bas. Une fois le fichier obtenu, il se~
développe vers un autre chemin, il~/.bash_profile
ne pointe donc plus vers le fichier correspondant. C'est parce que dans ce contexte~
signifie$HOME
.Si vous connaissez le chemin d'accès complet à votre répertoire personnel, vous pouvez l'utiliser à la place de
~
. Sous Mac, cela ressemblerait probablement à ceci:Ou laissez votre Bash rechercher votre répertoire personnel dans la base de données des utilisateurs plutôt que de simplement le regarder
$HOME
. Cela ne vous oblige à vous souvenir de rien:Modifier votre
HOME
variable sans changer votre répertoire personnel n'est pas la meilleure idée. La modification du répertoire personnel d'un utilisateur est une tâche administrative, généralement les utilisateurs ordinaires ne peuvent pas le faire.la source
.bash_profile
a une forme de script Bash. Vous pouvez exécuter un script ou le source. Exécuter signifie créer un sous-shell et y exécuter le script ligne par ligne. Sourcing signifie exécuter le script dans le shell actuel . Certaines tâches destinées à affecter le shell actuel ne peuvent pas être exécutées dans un sous-shell; changer une variable pour le shell courant en fait partie. C'est pourquoi certains fichiers proviennent, et ne sont pas exécutés dans un sous-shell. Pour générer manuellement un fichier, utilisez. file
(.
est spécifié par POSIX) ousource file
(source
est une extension non-POSIX comprise par quelques shells).nano ~YourUserName/.bash_profile
place. Cela recherchera votre répertoire personnel dans la base de données des utilisateurs plutôt que de simplement regarder $ HOME.