Vous pouvez le faire simplement en le déclarant nouveau dans la ligne de commande ou en le déclarant à nouveau. Par exemple, si vous souhaitez ajouter ~/testfolder
à votre variable de chemin, vous pouvez simplement l'entrer dans votre terminal actuel (ce n'est qu'un exemple):
PATH="$HOME/testfolder:$PATH"
Bien entendu, cela ne le modifiera que pendant la durée d'ouverture de la session de terminal. Remarquez l' $
utilisation ici, vous la laissez en dehors de la déclaration, mais si vous voulez l'afficher, vous devez l'ajouter $
pour développer son contenu.
Si vous souhaitez les déclarer plus durables et plus généraux, vous pouvez les ajouter dans votre ~/.bashrc
fichier (uniquement pour vous) ou dans /etc/bash.bashrc
(à l'échelle du système) par exemple si vous voulez qu'ils comptent pour vous seul ou pour tous les utilisateurs. Une autre option consiste à l'ajouter à votre .profile
fichier (uniquement pour vous-même) où il sera viable à partir du moment où vous vous connecterez. Vous pouvez le faire echo
par exemple si vous êtes sûr que cette variable n'est pas déjà définie ou si vous en créez de nouvelles (seulement un exemple):
echo "variable=value" >> /path/filename
Si vous souhaitez toutefois modifier un fichier en dehors de votre répertoire utilisateur, ce qui est le cas lorsque vous souhaitez le modifier, /etc/bash.bashrc
vous devez l'utiliser sudo
et vous ne pouvez donc pas simplement utiliser un `` document ici '' car cela ne fonctionnerait pas, utilisez plutôt une ligne comme ci-dessous:
echo "variable=value" | sudo tee -a /path/filename
Si la variable existe cependant déjà, vous pouvez la changer avec la sed
commande (aussi seulement un exemple):
sed -i.bak 's/variable=value/variable=new-value/' /path/filename
Cela modifiera la variable dans le fichier mais créera une sauvegarde de celle-ci avant la modification. Si vous modifiez des fichiers en dehors de votre répertoire utilisateur avec sed, vous devez utiliser sudo
dans la plupart des cas, la ligne serait donc:
sudo sed -i.bak 's/variable=value/variable=new-value/' /path/filename
La suppression d'une variable d'un fichier peut également être effectuée sed
, laissez simplement la deuxième partie de l'expression régulière vide:
sed -i.bak 's/variable=value//' /path/filename
Si vous êtes intéressé par les variables d'environnement définies, vous pouvez utiliser la env
commande pour les répertorier, ( set -o posix ; set ) | less
ou sh -c set
. Tous les trois donnent différentes quantités de sortie, avec ( set -o posix ; set ) | less
en retour le plus de variables qui sont réellement définies.
( set -o posix ; set )
c'est plus simple à diresh -c set
. Cela fonctionnera même s'ilsh
s'agit d'un lien symbolique versbash
(qui n'est pas normalement sur les versions Ubuntu modernes).sh -c set
pas vraiment toutes les variables d'environnement définies sur le système. Cependant, je vais l'inclure comme troisième moyen d'en montrer certains.sh -c set
fait toutes les variables d' environnement . Il n'affiche simplement pas les variables shell du shell appelant, mais elles ne sont jamais héritées par un processus que vous exécutez à partir de ce shell, sauf si vousexport
les avez ./etc/environment
? On dirait que c'est un raccourci vers la confusion.Il n'y a pas d'équivalent direct de
setx /m
, mais il existe des moyens d'accomplir ce quisetx /m
fait.setx /m
metvariable=value
enHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
. Non / m (soit par utilisateur)setx
met simplementvariable=value
enHKCU\Environment
.Vous avez spécifiquement demandé «à l'échelle du système». Pour cela, vous devez ajouter la paire de valeurs variables à
/etc/environment
OU à/etc/profile.d/<yourfile>
. Le premier est évalué par pam, tandis que le second est évalué par/bin/sh
. Ainsi, dans/etc/profile.d/<yourfile>
, vous ajouteriezvariable=value; export variable
. (bash le permet égalementexport variable=value
). Car/etc/environment
vous ajouteriezvariable=value
.Les équivalents par utilisateur sont
~/.pam_environment
et~/.profile
.Voir aussi: https://help.ubuntu.com/community/EnvironmentVariables
la source
Vous pouvez exporter des variables d'environnement sur la ligne de commande, mais cela n'affectera pas l'environnement effectif dans les processus déjà démarrés, uniquement dans le processus en cours et ses sous-processus. Dans la pratique, vous devez donc souvent vous reconnecter lorsque vous modifiez des variables d'environnement.
la source