397 votes

Que sont PATH et les autres variables d'environnement, et comment puis-je les définir ou les utiliser ?

Questions sur

  • définition des variables d'environnement
  • le site PATH

sont très courantes ici, et dans la plupart des cas, les réponses sont très similaires les unes aux autres. À l'avenir, il serait bon d'avoir un bon Q/A pour cela.

La question est donc la suivante : Que sont les variables d'environnement, comme l'exécutable PATH et comment puis-je les modifier et les utiliser sur les principaux systèmes d'exploitation ?

Une bonne réponse comprendrait une explication simple de ce que sont les variables d'environnement et notamment PATH signifient pour le système d'exploitation, ainsi que des directives simples sur la manière de les définir et de les lire en conséquence.

385voto

Daniel Beck Points 105590

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 des utilisateurs.

Chemin d'accès

L'un des plus connus s'appelle PATH sur Windows, Linux et Mac OS X. Il indique les répertoires dans lesquels se trouvent les programmes exécutables* sur la machine qui peuvent être lancés sans connaître et taper le chemin complet du fichier sur la ligne de commande. (Ou, sous Windows, le Exécuter dans le menu Démarrer ou <img src="https://i.stack.imgur.com/T0oPO.png" alt="Win"> + R ).

Sous Linux et Mac OS X, il contient généralement tous les éléments suivants bin y sbin les répertoires pertinents pour l'utilisateur actuel. Sous Windows, il contient au moins les répertoires C:\Windows y C:\Windows\system32 les répertoires - c'est pourquoi vous pouvez exécuter calc.exe ou notepad.exe à partir de la ligne de commande ou Exécuter dialogue, mais pas firefox.exe . (Firefox est situé dans C:\Program Files\Mozilla Firefox . Pour plus d'informations sur la manière d'inclure Firefox, consultez aquí .)

Par exemple, en tapant calc (le .exe peut soit omis) dans la ligne de commande sous Windows lancera la calculatrice Windows.

* Vous pouvez ajouter le support pour les extensions de fichiers autres que .exe par l'édition %PATHEXT% .

Autre

D'autres variables peuvent indiquer aux programmes quel type de terminal est utilisé ( TERM sur Linux/Mac OS X), ou, sur Windows, l'endroit où se trouve le dossier Windows (par ex, %WINDIR% es C:\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 lors de leur lancement.

Vous pouvez l'utiliser lorsque vous écrivez des scripts ou des programmes qui sont installés ou déployés sur plusieurs machines et qui doivent référencer des valeurs spécifiques à ces machines. Bien qu'un effet similaire puisse être obtenu en utilisant des paramètres de configuration spécifiques au programme, il est plus facile de le faire en utilisant une variable d'environnement si plusieurs programmes doivent accéder à la même valeur.

Windows

GUI

  1. Ouvrir Control Panel » System » Advanced » Environment Variables .

  2. Type control sysdm.cpl,,3 dans la boîte de dialogue Exécuter ( <img src="https://i.stack.imgur.com/T0oPO.png" alt="Win"> + R ) et cliquez sur Environment Variables .
    Pour éditer les variables utilisateur, vous pouvez également taper

    %windir%\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables

    dans la boîte de dialogue Exécuter.

  3. Cliquez avec le bouton droit de la souris sur (Mon) Ordinateur et cliquez sur Propriétés, ou appuyez simplement sur <img src="https://i.stack.imgur.com/T0oPO.png" alt="Win"> + Break .

    • Dans XP, cliquez sur Advanced » Environment Variables .
    • Dans Vista+, cliquez sur Advanced system settings » Environment Variables .
  4. Il existe de nombreuses autres façons d'arriver au même endroit, par exemple en tapant "variables d'environnement" dans la boîte de recherche du menu Démarrer/Écran, etc.

Les variables d'environnement dans Windows sont séparées en valeurs spécifiques à l'utilisateur et à la machine/au système. Vous pouvez afficher et modifier leurs valeurs à cet endroit. Leurs valeurs actuelles au lancement sont mises à la disposition de tous les programmes.

Il existe également Éditeur d'environnement rapide qui permet de définir et de modifier les variables d'environnement dans Windows sans avoir à pénétrer dans les paramètres du système. Un autre programme open source pour Windows avec lequel l'environnement du chemin d'accès peut être édité très facilement est Éditeur de chemins .

Ligne de commande

Format

Les variables d'environnement dans Windows sont indiquées par des signes de pourcentage (%) entourant le nom :

%name%

echo

Pour afficher la valeur d'une variable d'environnement dans cmd.exe , type echo %name% .

C:\>echo %USERPROFILE%
C:\Users\Daniel

set

A créer/établir une variable, utilisez set varname=value :

C:\>set FunnyCatPictures=C:\Users\Daniel\Pictures\Funny Cat Pictures

C:\>set FunnyCatPicturesTwo=%USERPROFILE%\Pictures\Funny Cat Pictures 2

A ajouter/supprimer une variable, utilisez set varname=value;%varname% :

C:\>set Penguins=C:\Linux

C:\>set Penguins=C:\Windows;%Penguins%

C:\>echo %Penguins%
C:\Windows;C:\Linux

Les variables d'environnement définies de cette manière sont disponibles pour (le reste de) la durée du processus de l'invite de commande dans lequel elles sont définies, et sont disponibles pour les processus lancés après que les variables ont été définies.

setx

A créer/établir une variable en permanence utiliser setx varname "value" :

C:\>setx FunnyCatPictures "C:\Users\Daniel\Pictures\Funny Cat Pictures"

[Restart CMD]

C:\>echo %FunnyCatPictures%
C:\Users\Daniel\Pictures\Funny Cat Pictures

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 de caractères avec des espaces (par exemple, %PATH% devient C:\Program Files ), il est donc préférable d'inclure des guillemets autour des valeurs qui contiennent des variables.

Vous devez ajouter manuellement setx aux versions de Windows antérieures à Vista.
Outils d'assistance pour Windows XP Service Pack 2

Liste des variables d'environnement de Windows

Ici est une liste de variables d'environnement par défaut qui sont intégrés à Windows. En voici quelques exemples : %WINDIR% , %SystemRoot% , %USERPROFILE% y %APPDATA% . Comme la plupart des noms dans Windows, ils sont insensibles à la casse.

Dérivés Unix (FreeBSD, GNU / Linux, OS X)

Les variables d'environnement sous Linux sont préfixées par le signe dollar ($), comme $HOME ou $HOSTNAME. De nombreuses variables connues et standard sont écrites en majuscules pour le signifier. Gardez à l'esprit que les noms de variables sont sensibles à la casse, ce qui signifie que $User et $USER n'ont aucun rapport du point de vue du Shell.

Les dérivés d'Unix définissent des variables à l'échelle du système dans des Shell Shell situés pour la plupart dans le fichier /etc mais des valeurs spécifiques à l'utilisateur peuvent être données à ces variables dans scripts situés dans le dossier personnel (par ex, /etc/profile , $HOME/.bash_profile ). Le site .profile dans le dossier personnel est un endroit courant pour définir des variables utilisateur.

Variables de réglage

Ces fichiers sont des Shell Shell réguliers et peuvent contenir plus que de simples déclarations de variables d'environnement. Pour définir une variable d'environnement, utilisez export . Pour afficher vos variables d'environnement actuellement définies dans un terminal, exécutez env .

Le site export 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 dans le cas où la portabilité vers le Bourne Shell pré-POSIX est nécessaire.

var=value; export var
export var=value

Le Shell de C et ses descendants utilisent une syntaxe complètement différente ; là, la commande est setenv .

Voir le projet de documentation Linux, Chemin d'accès HOWTO pour une discussion plus approfondie sur ce sujet.

Contrairement à ce que l'on pourrait croire, 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 qui sont ajoutés au chemin, comme /bin y /usr/sbin .
  • Tout fichier dans /etc/paths.d - couramment utilisé par les installateurs pour rendre les fichiers exécutables qu'ils fournissent disponibles à partir du Shell sans toucher aux fichiers de configuration du système ou de l'utilisateur. Ces fichiers contiennent simplement un chemin par ligne. Par exemple, /Programmes/Mozilla/Calendar/bin.

Liens externes :

Variables d'environnement dans XP
Outils d'assistance pour Windows XP Service Pack 2 (Comprend setx )
Variables d'environnement dans Windows Vista et Windows 7
Ajout d'exécutables à la boîte de dialogue Exécuter
Astuces Mac OSX - Définition des variables d'environnement
TLDP : Guide du chemin

78voto

James Mertz Points 390

Ce post est d'un point de vue plus technique que celui de Daniel, mais n'explique pas autant les concepts.


Le site 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 la commande export (sh, bash, zsh) ou setenv (csh, tcsh).

  • Exemples pour prepending $HOME/bin à $PATH dans bash ou zsh :

    export PATH="$HOME/bin:$PATH"

    (Dans ce cas particulier, export est inutile puisque PATH fait déjà partie de l'environnement).

  • csh, tcsh :

    setenv PATH "$HOME/bin:$PATH"

Les variables d'environnement persistantes peuvent être définies au cours de plusieurs étapes distinctes :

  • Connexion :

    • Configuration de la session de connexion : Linux pam_env qui se lit généralement à partir de /etc/environment

    • Connexions au terminal : Les fichiers "profil" du Shell.

      • bash utilise /etc/profile et le premier de : ~/.bash_profile , ~/.bash_login , ~/.profile . Page manuelle bash(1) section Invocation .

        Souvent, le fichier de profil de l'utilisateur comprend un appel explicite à la fonction ~/.bashrc aussi.

      • zsh : Page de manuel zsh(1) section Fichiers de démarrage/arrêt .

      • csh et autres coquillages : Voir les pages du manuel correspondantes.

    • Logins 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 y ~/.bashrc .

Série Windows NT

  • Dans l'invite de commande ( cmd.exe ), utilisez set name=value pour modifier les variables d'environnement de cette fenêtre.

    Pour ajouter c:\bin à %PATH% utiliser :

    set path=%path%;c:\bin

    Cela ne concerne que les cmd.exe et tout nouveau les processus lancés à partir de celui-ci.

  • Pour effectuer des changements persistants, utilisez Panneau de configuration Système avancé Variables d'environnement . ( docs )

    Note : Les paramètres de l'utilisateur prévalent normalement sur ceux du système, PATH est traitée de manière particulière : les paramètres du système et de l'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 fichiers de la base de données. nouveau les processus créés par Explorer (le Shell graphique), par exemple, via le menu Démarrer.

  • Les variables d'environnement du système sont conservées dans le registre, HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment et chargé au démarrage du système.

    L'environnement de l'utilisateur est maintenu dans HKCU\Environment et chargé lors de la connexion de l'utilisateur.

  • Par défaut, le système recherche également set commandes dans AUTOEXEC.NT fichier.

MS-DOS, Windows 16 bits, série Windows 9x

  • Dans l'invite MS-DOS ( command.com ), utilisez set name=value comme dans WinNT.

    De même, l'exécution set interactivement n'affecte que cette seule command.com ainsi que tous les nouveaux processus lancés à partir de celle-ci.

  • Pour effectuer des changements persistants, ajoutez ou modifiez les données appropriées. set lignes dans C:\AUTOEXEC.BAT puis redémarrez.

    • Solution pour éviter le redémarrage, pour Windows 9x : ouvrir une fenêtre MS-DOS Prompt, définir les variables appropriées, fermer le processus Explorer existant ( Démarrer Arrêter tout en maintenant Ctrl+Shift, cliquez sur Annuler ), exécutez explorer.exe à partir de la fenêtre d'invite MS-DOS.

VMS

(Je n'ai pas pu résister.)

DCL n'a pas de concept de "chemin", mais diverses définitions de symboles et de commandes peuvent être mises dans SYS$LOGIN:LOGIN.COM .

11voto

Paul V Points 261

Q : Que sont les variables d'environnement ?

A : Les variables d'environnement sont similaires aux variables de tout langage de programmation. Dans le cas des systèmes Windows ou Unix, elles stockent diverses valeurs pour permettre aux programmes et aux tâches d'obtenir des informations nécessaires sur le système d'exploitation ou sur l'environnement. Par exemple :

USERPROFILE : répertoire des utilisateurs dans les fichiers du système d'exploitation.

MAIL : où se trouve le courrier d'un utilisateur dans les fichiers de l'OS.

Q : Qu'est-ce que la variable PATH spécifiquement ?

A : La variable PATH définit les chemins des répertoires à consulter lors de l'exécution des commandes, tant pour les commandes RUN que pour les appels internes des programmes. Cela évite qu'un programme ait besoin de connaître son emplacement d'installation pour appeler d'autres processus exécutables.

Il consulte 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 cette Article de Wikipedia :

Lorsqu'une commande est saisie dans une commande Shell ou qu'un appel système est effectué par un programme pour exécuter un programme, le système effectue d'abord une recherche dans le répertoire de travail actuel, puis dans le chemin d'accès, en examinant chaque répertoire de gauche à droite .


Q : Comment ajouter un emplacement à la variable PATH ?

A : Vous devez modifier la chaîne de variables de la variable PATH de l'environnement pour y inclure l'emplacement de votre exécutable.

Une façon de procéder est décrite aquí :

  1. Ouvrez le menu Démarrer et cliquez à droite sur Ordinateur. Sélectionnez Propriétés.
  2. Sélectionnez Paramètres système avancés.
  3. Dans l'onglet Avancé, sélectionnez Variables d'environnement.
  4. Sélectionnez EDIT ou NEW. (pour PATH, vous voudrez probablement choisir EDIT).
  5. Ajoutez le chemin de votre emplacement. Par exemple : C:\wamp\bin\php\php5.5.12;

J'espère que cela clarifie une partie de la confusion.

4voto

Raf Points 171

Windows 10, sans compte administrateur

Panneau de configuration -> Comptes d'utilisateurs -> Comptes d'utilisateurs -> Modifier mes variables d'environnement

Notez que vous devez cliquez sur l'en-tête "Comptes d'utilisateurs". : Note you have to click on the header "User Accounts"

Encore une fois, vous devez cliquez sur l'en-tête "Comptes d'utilisateurs". : Note again you have to click on the header "User Accounts"

Change my environment variables

Environment Variables

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X