Des questions sur
- réglage des variables d'environnement
- le
PATH
sont très fréquents ici, et dans la plupart des cas, les réponses sont très similaires les unes aux autres. À l'avenir, il serait bien d'avoir une bonne Q / A pour cela.
La question est donc la suivante: que sont les variables d’environnement, telles que l’exécutable PATH
, et comment puis-je les modifier et les utiliser sur les principaux systèmes d’exploitation?
Une bonne réponse inclurait une explication simple des variables d’environnement et en particulier une PATH
signification pour le système d’exploitation, ainsi que des instructions simples sur la manière de les définir et de les lire en conséquence.
env
et les options nécessaires sont répertoriés.CMD
et en tapantset
, ou enPowerShell
tapantGet-Childitem env:
.Réponses:
Que sont les variables d'environnement?
Les variables d'environnement contiennent des valeurs liées à l'environnement actuel, comme le système d'exploitation ou les sessions utilisateur.
Chemin
L'un des plus connus est appelé
PATH
sous Windows, Linux et Mac OS X. Il spécifie les répertoires dans lesquels les programmes exécutables * se trouvent sur la machine et peuvent être démarrés sans connaître ni entrer le chemin d'accès complet au fichier sur la ligne de commande. . (Ou sous Windows, la boîte de dialogue Exécuter du menu Démarrer ou + R).Sous Linux et Mac OS X, il contient généralement tous les répertoires
bin
etsbin
répertoires pertinents pour l'utilisateur actuel. Sous Windows, il contient au moins les répertoiresC:\Windows
etC:\Windows\system32
. C'est pourquoi vous pouvez exécuter la commandecalc.exe
ou ànotepad.exe
partir de la ligne de commande ou de la boîte de dialogue Exécuter , mais pasfirefox.exe
. (Firefox est situé dansC:\Program Files\Mozilla Firefox
. Pour savoir comment inclure Firefox, cliquez ici .)Par exemple, si vous tapez
calc
(le.exe
peut être omis) dans la ligne de commande sous Windows, la calculatrice Windows démarre.* Vous pouvez ajouter un support pour les extensions de fichier autrement qu'en le
.exe
modifiant%PATHEXT%
.Autre
D'autres variables peuvent indiquer aux programmes le type de terminal utilisé (
TERM
sous Linux / Mac OS X) ou, sous Windows, l'emplacement du dossier Windows (par exemple,%WINDIR%
estC:\Windows
).Création de nouvelles variables d'environnement
Sous Windows, Linux et Unix, il est possible de créer de nouvelles variables d'environnement, dont les valeurs sont ensuite mises à la disposition de tous les programmes au lancement.
Vous pouvez l'utiliser lorsque vous écrivez des scripts ou des programmes installés ou déployés sur plusieurs ordinateurs et que vous devez faire référence à des valeurs spécifiques à ces ordinateurs. Un effet similaire peut être obtenu à l'aide de paramètres de configuration spécifiques à un programme, mais il est plus facile d'utiliser une variable d'environnement si plusieurs programmes doivent accéder à la même valeur.
les fenêtres
Interface graphique
Ouvert
Control Panel » System » Advanced » Environment Variables
.Tapez
control sysdm.cpl,,3
dans la boîte de dialogue Exécuter ( + R) et cliquez surEnvironment Variables
.Pour éditer les variables utilisateur, vous pouvez aussi taper
dans la boîte de dialogue Exécuter.
Cliquez avec le bouton droit sur (Mon) ordinateur et cliquez sur Propriétés, ou appuyez simplement sur + Break.
Advanced » Environment Variables
.Advanced system settings » Environment Variables
.Il existe de nombreuses autres façons d'atteindre le même endroit, par exemple en tapant "variables d'environnement" dans le champ de recherche Menu Démarrer / Écran, etc.
Les variables d'environnement dans Windows sont séparées en valeurs spécifiques à l'utilisateur et à la machine / système. Vous pouvez voir et éditer leurs valeurs ici. Au lancement, leurs valeurs actuelles sont mises à la disposition de tous les programmes.
Il existe également Rapid Environment Editor , qui aide à définir et à modifier les variables d'environnement dans Windows sans avoir à approfondir les paramètres système. Path Editor est un autre programme open source pour Windows permettant de modifier très facilement l’environnement de chemin .
Ligne de commande
Format
Les variables d'environnement dans Windows sont indiquées par des signes de pourcentage (%) entourant le nom:
écho
Pour afficher la valeur d'une variable d'environnement dans
cmd.exe
, tapezecho %name%
.ensemble
Pour créer / définir une variable, utilisez
set varname=value
:Pour ajouter / ajouter une variable, utilisez
set varname=value;%varname%
:Les variables d'environnement définies de cette manière sont disponibles pour (le reste de) la durée du processus d'invite de commande dans lequel elles sont définies, et sont disponibles pour les processus démarrés après la définition des variables.
setx
Pour créer / définir une variable de façon permanente , utilisez
setx varname "value"
:Contrairement à
set
, il n'y a pas de signe égal et la valeur doit être placée entre guillemets si elle contient des espaces. Notez que les variables peuvent se développer en une chaîne avec des espaces (par exemple,%PATH%
devientC:\Program Files
), il est donc préférable d'inclure des guillemets autour des valeurs contenant des variables.Vous devez ajouter manuellement
setx
aux versions de Windows antérieures à Vista.Outils de support de Windows XP Service Pack 2
Liste des variables d'environnement Windows
Voici une liste des variables d’environnement par défaut , intégrées à Windows. Quelques exemples sont:
%WINDIR%
,%SystemRoot%
,%USERPROFILE%
et%APPDATA%
. Comme la plupart des noms dans Windows, ils ne respectent pas la casse.Dérivés Unix (FreeBSD, GNU / Linux, OS X)
Les variables d’environnement sous Linux sont précédées du signe dollar ($) tel que $ HOME ou $ HOSTNAME. Beaucoup de variables connues et standard sont énoncées en majuscules pour signifier cela. N'oubliez pas que les noms de variable sont sensibles à la casse, ce qui signifie que $ User et $ USER ne sont absolument pas liés du point de vue du shell.
Les dérivés Unix définissent des variables système dans les scripts shell situés principalement dans le
/etc
dossier, mais des valeurs spécifiques à l'utilisateur peuvent être attribuées à ces variables dans des scripts situés dans le dossier de base (par exemple/etc/profile
,$HOME/.bash_profile
). Le.profile
fichier dans le dossier de départ est un endroit commun pour définir les variables utilisateur.Réglage des variables
Ces fichiers sont des scripts shell normaux et peuvent contenir plus que des déclarations de variables d’environnement. Pour définir une variable d’environnement, utilisez
export
. Pour afficher les variables d’environnement actuellement définies dans un terminal, exécutezenv
.La
export
commande est un moyen standard de définir des variables. La syntaxe est très intuitive. Le résultat est identique pour ces deux lignes, mais la première alternative est préférable au cas où la portabilité au shell pré-POSIX Bourne serait nécessaire.Le shell C et ses descendants utilisent une syntaxe complètement différente. là, la commande est
setenv
.Voir le projet de documentation Linux, Path HOWTO pour une discussion plus approfondie sur ce sujet.
Peut-être contrairement aux idées reçues, OS X est plus "Unix" que Linux. En plus des fichiers déjà mentionnés, $ PATH peut être modifié dans ces fichiers:
/etc/paths
contient tous les répertoires par défaut ajoutés au chemin, tels que/bin
et/usr/sbin
./etc/paths.d
- généralement utilisé par les installateurs pour rendre les fichiers exécutables qu'ils fournissent disponibles à partir du shell sans toucher aux fichiers de configuration spécifiques au système ou à l'utilisateur. Ces fichiers contiennent simplement un chemin par ligne. par exemple, / Programmes / Mozilla / Calendar / bin.Liens externes:
la source
SETX
pour apporter des modifications permanentes. Sa syntaxe est légèrement différente.SETX
doit être ajouté à partir desWindows Server 2003 Resource Kit
versions précédentes deNT
.WM_SETTINGCHANGE
je suppose et informera donc les parties intéressées des nouvelles valeurs. C'est pourquoi j'ai demandé comment cela s'appliquait ici. Faire quelque chose en gras ne change pas son sens et ne le rend pas plus facile à comprendre, tout comme répéter la même phrase, mais plus fort. De plus, j'ai édité ce message il y a quelques heures pour mentionner spécifiquement que les valeurs que les processus reçoivent sont définies lors de leur lancement.WM_SETTINGCHANGE
? API Windows? Ce n'est pas l'auditoire de cette question!) Pourrait ne pas être une bonne idée, car cela risquerait de dérouter le lecteur au lieu d'expliquer en quoi consistent ces variables. .Ce billet est d’un point de vue plus technique que celui de Daniel, mais n’explique pas autant les concepts.
L' article de Wikipedia est également une excellente référence.
Linux et la plupart des BSD
Dans la plupart des shells de ligne de commande, les variables d'environnement temporaires sont définies à l'aide de commandes
export
(sh, bash, zsh) ousetenv
(csh, tcsh).Exemples pour ajouter
$HOME/bin
à$PATH
bash ou zsh:(Dans ce cas particulier,
export
est inutile carPATH
fait déjà partie de l'environnement.)csh, tcsh:
Les variables d'environnement persistantes peuvent être définies au cours de plusieurs étapes distinctes:
S'identifier:
Configuration de la session de connexion: Linux
pam_env
, qui lit généralement à partir de/etc/environment
Connexions au terminal: fichiers "profil" du shell.
bash
utilise/etc/profile
et la première de:~/.bash_profile
,~/.bash_login
,~/.profile
.bash(1)
Section de page de manuel Invocation .Souvent, le fichier de profil de l'utilisateur inclut également un appel explicite
~/.bashrc
.zsh
:zsh(1)
Section de page de manuel Fichiers de démarrage / arrêt .csh
et autres coquilles: voir les pages de manuel appropriées.Connexions graphiques: Pas sûr; peut varier en fonction du gestionnaire de connexion. GDM semble lire
~/.profile
dans mon système.Ouverture d'une fenêtre de terminal:
bash
utilise/etc/bash.bashrc
et~/.bashrc
.Série Windows NT
Dans Invite de commande (
cmd.exe
), utilisezset name=value
pour modifier les variables d’environnement pour cette fenêtre.Pour ajouter
c:\bin
à%PATH%
, utilisez:Cela ne concerne que ce
cmd.exe
processus et tous les nouveaux processus lancés à partir de celui-ci.Pour apporter des modifications persistantes, utilisez Panneau de configuration → Système → Avancé → Variables d’environnement . ( docs )
Remarque: Bien que les paramètres utilisateur remplacent normalement ceux du système, la
PATH
variable est gérée spécialement: les paramètres système et utilisateur sont fusionnés dans la valeur finale.Les modifications sont stockées dans le registre (voir ci-dessous) et s'appliquent instantanément à tous les nouveaux processus créés par Explorer (le shell graphique), par exemple via le menu Démarrer.
Les variables d'environnement à l'échelle du système sont conservées dans le registre
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
et chargées au démarrage du système.L'environnement utilisateur est conservé
HKCU\Environment
et chargé lors de la connexion de l'utilisateur.Par défaut, le système recherche également des
set
commandes dans unAUTOEXEC.NT
fichier.MS-DOS, Windows 16 bits, série Windows 9x
Dans Prompt (
command.com
) MS-DOS , utilisezset name=value
, comme dans WinNT.De même, l'exécution
set
interactive affecte uniquement cettecommand.com
instance, ainsi que les nouveaux processus lancés à partir de celle-ci.Pour apporter des modifications persistantes, ajoutez ou modifiez des
set
lignes appropriéesC:\AUTOEXEC.BAT
, puis redémarrez.explorer.exe
partir de la fenêtre d'invite MS-DOS. .VMS
(Ne pouvait pas résister.)
DCL n'a pas de notion de "chemin", mais diverses définitions de symboles et de commandes peuvent être insérées
SYS$LOGIN:LOGIN.COM
.la source
DCL$PATH
pour " commandes étrangères automatiques ".Pour les variables d'environnement global (non terminal) du
bash
shellPATH
, je suis la convention utilisée dans mon installation de machine virtuelle Ubuntu - les autres shells varieront:Avertissement: La coque toute la séquence de démarrage, qui
.bashrc
,.profile
etc. des fichiers sourcés dans quel ordre ?, quand dois - je vous reconnecter pour obtenir la visibilité aux nouvelles variables définies, alias, etc ?, quelle est la différence entre une connexion , shell interactif et non-interactif - j’utilisecron
??, et pourquoi, quand je le fais,. ~/.bashrc
maPATH
variable stupide est-elle de plus en plus longue? sont les questions clés qui me viennent à l’esprit lorsque je pense à maPATH
variable.En fait, je viens de réécrire complètement mon ensemble de fichiers de démarrage bash en prenant des idées tirées des fichiers squelette Ubuntu et cygwin, et voici quelques-uns de mes sites in:
PATH
et les autres variables d'environnement globales (c'est-à-direLD_LIBRARY_PATH
) dans le.profile
fichier;~/.profile
source$HOME/.bashrc
si elle existe;~/.bashrc
avec un test pour l'exécution interactive, quitter sinon;shopt
« s, la configuration rapide, le contrôle de l' histoire, configuration du terminal, définition de fonction, etc. (configuration associée interactive) dans la partie~/.bashrc
qui est protégée seulement fonctionner en mode interactif;.profile
et.bashrc
fonctionne comme prévu. Autrement dit, sauf indication contraire expresse de votre part, supprimez~/.bash_profile
&~/.bash_login
;~/.bashrc
fichier, puis le source simplement avec. ~/.bashrc
pour obtenir ces modifications dans mon shell actuel.PATH
, je dois modifier et créer ma source~/.profile
..profile
.C'est mes 2 cents sur ce sujet.
la source
Q: QUELLES sont les variables d'environnement?
A: Les variables d'environnement sont similaires aux variables de tout langage de programmation. Dans le cas de systèmes Windows ou Unix, ils stockent diverses valeurs pour permettre aux programmes et aux tâches d'obtenir les informations nécessaires sur le système d'exploitation ou les informations "Environnement". Par exemple:
USERPROFILE: répertoire des utilisateurs dans les fichiers du système d'exploitation.
MAIL: où le courrier d'un utilisateur peut être trouvé dans les fichiers du système d'exploitation.
Q: QUELLE est la variable PATH en particulier?
R: La variable PATH définit les chemins de répertoire dans lesquels rechercher les commandes, tant pour les commandes RUN que pour les appels internes à partir de programmes. Cela évite à un programme de connaître son emplacement d'installation pour appeler d'autres processus exécutables.
Il examine la variable PATH du système d’environnement Windows et teste chaque emplacement pour l’exécutable donné. Ainsi, l’ajout d’un emplacement à la variable PATH permet d’appeler directement un exécutable.
Selon cet article de Wikipedia :
Q: COMMENT ajouter un emplacement à la variable PATH?
R: Vous devez éditer la chaîne de variable de la variable PATH des variables d'environnement pour inclure l'emplacement de votre exécutable.
Une façon de faire est décrite ici :
C:\wamp\bin\php\php5.5.12;
J'espère que cela clarifie une partie de la confusion.
la source