2011-05-16 18:25:57 +0000 2011-05-16 18:25:57 +0000
347
347

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

Les questions sur

  • la définition des variables d'environnement
  • les 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 : **Une bonne réponse inclurait une explication simple de ce que les variables d'environnement et en particulier PATH signifient pour le système d'exploitation, ainsi que des directives simples sur la façon de les définir et de les lire en conséquence.

Réponses (5)

337
337
337
2011-05-16 18:44:52 +0000

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.

Path

L'une des plus connues s'appelle PATH sous Windows, Linux et Mac OS X. Elle spécifie les répertoires dans lesquels se trouvent les programmes exécutables sur la machine qui peuvent être lancés sans connaître et en tapant tout le chemin du fichier sur la ligne de commande. (Ou dans Windows, le dialogue Exécuter dans le menu Démarrer ou

+R).

Sous Linux et Mac OS X, il contient généralement tous les répertoires bin et sbin pertinents pour l'utilisateur actuel. Sous Windows, il contient au moins les répertoires C:\Windows et C:\Windows\system32 - c'est pourquoi vous pouvez exécuter calc.exe ou notepad.exe depuis la ligne de commande ou le dialogue Exécuter, mais pas firefox.exe. (Firefox est situé dans C:\Program Files\Mozilla Firefox. Pour savoir comment inclure Firefox, allez sur ici .)

Par exemple, en tapant calc (le .exe peut être omis) dans la ligne de commande sur Windows, vous lancerez la calculatrice Windows.

* Vous pouvez ajouter le support d'extensions de fichiers autres que .exe en éditant %PATHEXT% .

Autre

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

Vous pouvez utiliser cette fonction lorsque vous écrivez des scripts ou des programmes qui sont installés ou déployés sur plusieurs machines et que vous avez besoin de 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.

&nbsp ;

Windows

GUI

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

  2. Tapez control sysdm.cpl,,3 dans la boîte de dialogue Exécuter (

    +R) et cliquez sur Environment Variables. Pour modifier les variables utilisateur, vous pouvez également taper

  3. Faites un clic droit sur (Mon) ordinateur et cliquez sur Propriétés, ou appuyez simplement sur

    +Rupture.

  4. Il existe de nombreuses autres façons d'accéder au même endroit, par exemple en tapant “variables d'environnement” dans la boîte de recherche du menu/écran de démarrage, etc.

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

Il existe également un Éditeur rapide d'environnement , qui permet de définir et de modifier les variables d'environnement dans Windows sans avoir besoin d'approfondir les paramètres du système. Un autre programme open source pour Windows avec lequel l'environnement de chemin peut être édité très facilement est Path Editor .

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, tapez echo %name%.

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

set

Pour créer/régler 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

Pour ajouter/ajouter 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 ainsi définies sont disponibles pendant (le reste de) la durée du processus d'invite de commande dans lequel elles sont définies, et sont disponibles pour les processus qui sont lancés après la définition des variables. Pour créer/régler une variable de manière permanente, utilisez 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 mise 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% 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. Windows XP Service Pack 2 Support Tools

List of Windows Environment Variables

Ici est une liste de variables d'environnement par défaut , qui sont intégrées dans Windows. Quelques exemples sont : %WINDIR%, %SystemRoot%, %USERPROFILE%, et %APPDATA%. Comme la plupart des noms dans Windows, ils ne sont pas sensibles à la casse.

&nbsp ;

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

Les variables d'environnement dans Linux sont préfixées par un 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 Unix

définissent des variables à l'échelle du système dans des scripts shell situés principalement dans le dossier /etc, mais des valeurs spécifiques à l'utilisateur peuvent être données à ces variables dans des scripts situés dans le dossier home (par exemple /etc/profile, $HOME/.bash_profile). Le fichier .profile dans le dossier home est un endroit commun pour définir les variables utilisateur.

Réglage variables

Ces fichiers sont des scripts 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.

La commande export est une façon 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 shell Bourne pré-POSIX est nécessaire.

var=value; export var
export var=value

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 à ce que l'on croit généralement, 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 et /usr/sbin.
  • Tout fichier dans /etc/paths.d - communément utilisé par les installateurs pour rendre les fichiers exécutables qu'ils fournissent disponibles depuis le shell sans toucher aux fichiers de configuration du système ou spécifiques à l'utilisateur. Ces fichiers contiennent simplement un chemin d'accès par ligne, par exemple /Programmes/Mozilla/Calendrier/bin.

&nbsp ;

Liens externes :

Variables d'environnement dans XP Outils de support pour Windows XP Service Pack 2 (Inclut setx) Variables d'environnement dans Windows Vista et Windows 7 Ajout d'exécutables à la boîte de dialogue Exécuter Conseils pour Mac OSX - Définition des variables d'environnement TLDP : Chemin d'accès

64
64
64
2011-05-16 19:03:17 +0000

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


L'article Wikipedia est également une excellente référence.

Linux et la plupart des BSDs

Dans la plupart des shells en ligne de commande, les variables d'environnement temporaires sont définies à l'aide des commandes export (sh, bash, zsh) ou setenv (csh, tcsh).

  • Exemples de mise en attente de $HOME/bin à $PATH dans bash ou zsh :

  • csh, tcsh :

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

  • Connexion :

  • Ouverture d'une fenêtre de terminal :

Windows NT series

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

  • Pour effectuer des modifications persistantes, utilisez Panneau de configuration → Système → Avancé → Variables d'environnement. docs )

  • Les variables d'environnement 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.

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

MS-DOS, Windows 16 bits, Windows 9x series

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

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

VMS

(Impossible de 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.

9
9
9
2014-01-15 17:49:57 +0000

Pour les variables d'environnement globales (non-terminales) du shell bash, je suis la convention utilisée dans mon installation de la VM Ubuntu - les autres shells varient :

Avertissement : toute la séquence de démarrage du shell, quels fichiers PATH, .bashrc, etc. proviennent de quel ordre ?, quand dois-je me reconnecter pour obtenir la visibilité des variables, alias, etc. nouvellement définis ? quelle est la différence entre un shell de connexion, interactif et non-interactif - j'utilise .profile ?, et pourquoi quand je fais un cron, ma stupide variable . ~/.bashrc devient de plus en plus longue ? sont les questions clés qui me viennent à l'esprit quand je pense à ma variable PATH.

En fait, je viens de réécrire complètement mon ensemble de fichiers de démarrage de bash en prenant des idées des fichiers squelettes Ubuntu et cygwin, et voici quelques uns de mes sites in:

  1. Exporter les variables PATH et autres variables d'environnement global (c'est-à-dire PATH) dans le LD_LIBRARY_PATH ;
  2. Utiliser la logique dans .profile pour créer la source de ~/.profile si elle existe ;
  3. Clôturer l'exécution de $HOME/.bashrc avec un test pour l'exécution interactive, sinon quitter ;
  4. Mettre tous les alias, ~/.bashrc, la configuration de l'invite, le contrôle de l'historique, la configuration du terminal, la définition des fonctions, etc. (installation interactive liée) dans la partie de shopt qui est protégée pour ne s'exécuter qu'en mode interactif ;
  5. Se débarrasser des autres fichiers de démarrage de bash, car leur existence détermine si le chemin de contrôle à travers ~/.bashrc et .profile fonctionne comme prévu. C'est-à-dire, à moins qu'il n'y ait des exigences spécifiques pour faire autrement, supprimer .bashrc ~/.bash_profile ;
  6. Lorsque je suis à l'invite de bash, et que je dois mettre à jour une certaine configuration par défaut, j'édite mon fichier ~/.bash_login, puis je le source simplement avec un ~/.bashrc pour obtenir ces changements dans mon shell actuel. Quand je fais un changement dans une variable d'environnement comme . ~/.bashrc, je dois modifier et approvisionner mon fichier PATH ;
  7. je mets mes appels à fink, port, et brew des configurations spécifiques dans ~/.profile.

C'est mon 2 centimes sur ce sujet.

8
8
8
2014-07-25 09:57:28 +0000

Q: WHAT sont des 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 les informations nécessaires sur le système d'exploitation ou l'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 : Qu'est-ce que la variable PATH en particulier ?

A: La variable PATH définit les chemins d'accès aux répertoires à consulter lorsque des commandes sont exécutées, 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.

Elle se tourne vers 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 Wikipedia :

Lorsqu'une commande est entrée dans un shell de commande ou qu'un appel système est effectué par un programme pour exécuter un programme, le système recherche d'abord le répertoire de travail actuel et ensuite le chemin, en examinant chaque répertoire de gauche à droite


*Q : COMMENT ajouter un emplacement à la variable PATH ? *

A: Vous devez modifier la chaîne de caractères de la variable d'environnement PATH pour inclure l'emplacement de votre exécutable.

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

  1. Ouvrez le menu Démarrer et cliquez avec le bouton droit de la souris sur Ordinateur. Sélectionnez Propriétés.
  2. Sélectionnez Paramètres avancés du système.
  3. Dans l'onglet Avancé, sélectionnez Variables d'environnement.
  4. Sélectionnez EDITER ou NOUVEAU. (pour PATH vous voulez probablement EDITER).
  5. ajoutez votre chemin de localisation. par exemple : C:\wamp\bin\php\php5.5.12;

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

0
0
0
2020-02-26 10:20:48 +0000

Questions connexes

10
7
19
21
17