Variable environnementale – Wikipedia

before-content-x4

Quand Variable ambiante Si l’on désigne des variables configurables dans les systèmes d’exploitation qui contiennent souvent des chemins de cheminement vers certains programmes ou données, ainsi que certaines données et paramètres qui peuvent être utilisés par plusieurs programmes. En règle générale, ce sont des chaînes de caractères.

after-content-x4

Un autre nom est aussi globale Variable ; Cependant, cela est plutôt inhabituel car cela est utilisé dans de nombreux langages de programmation dans une signification différente.

Les utilisateurs ou les applications peuvent lire et / ou modifier les valeurs de ces variables.

Ligne de commande [ Modifier | Modifier le texte source ]]

Dans de nombreux systèmes d’exploitation basés sur UNIX, tels que MacOS, Linux ou BSD, [d’abord] Les variables environnementales sont définies au début d’un interprète de ligne de commande (shell). Les variables environnementales pré-définies sont généralement définies automatiquement lorsqu’un shell est démarré en fonction des entrées dans un ou plusieurs fichiers de configuration. Dans le Bourne-Shell, par exemple, c’est le fichier / etc / profil . De plus, le shell utilise un fichier disponible dans le répertoire personnel de l’utilisateur (par ex. .profil ou .cshrc ), qui contient des variables environnementales spécifiques à l’utilisateur et peut être ajustée par l’utilisateur lui-même. Ces variables environnementales prédéfinies peuvent être trouvées en entrant imprimer être également sorti dans le shell. Le programme env Affiche toutes les variables environnementales ou permet à un programme de s’exécuter dans un environnement modifié. Les deux commandes font partie des coreutils.

Variables environnementales prédéfinies [ Modifier | Modifier le texte source ]]

Certaines variables ambiantes peuvent être trouvées sur presque tous les systèmes Unix. Les exemples pour cela sont:

MAISON Le chemin du répertoire personnel de l’utilisateur actuel
Logiciel Le nom de l’utilisateur actuel
POSTER Le chemin dans lequel les e-mails personnels de l’utilisateur actuel sont stockés
CHEMIN Cette variable contient le chemin de recherche. Si aucun répertoire n’est spécifié lors de la saisie d’une commande, le shell recherche les chemins stockés dans cette variable de gauche à droite. Les noms de répertoires sont séparés sous les systèmes d’exploitation Unixoid par Colon “:”. Le répertoire actuel n’est pas recherché car il s’agit d’un risque de sécurité.

Changement des variables environnementales [ Modifier | Modifier le texte source ]]

Les variables environnementales peuvent être définies comme suit et connues aux autres processus du système d’exploitation:

À Bourne, Bash et Shells basés sur lui:

after-content-x4
Définissez la variable: =
Faire la variable: exporter
Supprimer la variable: décollé

À CSH, TCSH et sur lui-même construit sur lui:

Définir et annoncer la variable: setenv

Vue des variables environnementales [ Modifier | Modifier le texte source ]]

Voir toutes les variables environnementales [ Modifier | Modifier le texte source ]]

Requête variable: env

Afficher une certaine variable ambiante [ Modifier | Modifier le texte source ]]

Avec tous les obus:

Requête variable: écho $

Dépendance de processus [ Modifier | Modifier le texte source ]]

Il est courant que les variables environnantes soient enregistrées par processus système. Les changements qui font un processus sur les variables ne sont valables que pour lui-même et pour les processus qui sont lancés par lui après le changement (processus enfants).

La fonctionnalité sous MS-DOS (et DOS compatible) et Windows est la même. Cependant, la portée des fonctions et des variables standard est plus grande dans les fenêtres. De plus, les variables sous Windows peuvent non seulement être définies système ou ambiantes (par exemple par le contrôle), qui peuvent être utilisées par tous les sous-processus, mais également limitée à une seule session d’un sous-processus qui a commencé. Un sous-processus reprend initialement toutes les variables de l’environnement global ( environnement ) ou le processus global d’appel (par exemple Command.com , Cmd.com , Explorateur.exe ou d’autres) à son segment environnant (après quoi un pointeur dans la PSP fait référence à l’adresse 2CH), qui peut ensuite être élargi pour inclure d’autres variables. Le segment environnant d’un (sous) processus n’existe que pendant son terme et expire à la fin.

Ensemble [ Modifier | Modifier le texte source ]]

Les variables environnementales peuvent provenir de la ligne de commande depuis ou depuis les fichiers de traitement de pile ( .cmd , .UN ) avec le ENSEMBLE -Mand sont définis (par exemple. Définir l'invite = $ p $ g ). Si la ENSEMBLE -ID Command seul, toutes les variables environnementales sont affichées et seul le nom d’une variable est donné, donc leur valeur est affichée. Vous pouvez les supprimer par le nom de variable suivi de = est donné (par exemple Définir l'invite = ).

mettre en doute [ Modifier | Modifier le texte source ]]

Dans les fichiers de traitement de pile ( .UN ) peut être utilisé par les variables environnantes en étant soufflées en pourcentages (par ex. CD% variable% ). Le programme appelé reçoit ensuite la ligne de commande avec une variable étayée.

Déposer des programmes [ Modifier | Modifier le texte source ]]

Le mécanisme des variables ambiants ne stipule pas le fait que les variables ambiantes de la coquille superordonnée peuvent être modifiées à partir d’un programme ou d’un environnement de coquille secouée (CMD). En raison de l’héritage des variables, les changements dans leur propre environnement n’affectent pas l’environnement de Command.com ( Environnement principal ) hors de. Un appel aux commandes de la ligne de commande à partir d’un programme n’a également aucun effet, car cela démarre une nouvelle instance de Command.com.

L’astuce suivante a été possible sous DOS et les anciennes versions Windows: la zone environnante de la commande.com pourrait être modifiée en utilisant le premier bloc d’imposition de la mémoire via INT 21 Ah = 52h an Adresse [BX-2H] FINDS, puis a recherché un bloc d’impôt de stockage pour le bloc de contrôle de la mémoire jusqu’à ce que vous trouviez la zone autour de Command.com et modifiez-la. Cependant, cela ne fonctionne plus à partir de Windows NT, car les environs de Command.com sont régulièrement rechargés par le noyau NT.

La détermination d’une variable ambiante dans un programme et l’utilisation suivante dans un script de shell ou de lots est possible en démarrant le shell ou le script de lot de ce programme dans le programme après avoir modifié votre propre environnement. Un tel appel est généralement pris en charge dans les langages de programmation en appelant la fonction du système d’exploitation respectif, en Java, par exemple avec la classe java.lang.processbuilder. L’environnement modifié du programme agit alors comme parent pour cet appel.

Dans Windows Batch Programs et sous PC compatible DOS, le changement dans l’environnement d’un lot appelé ( appel -Command) au niveau de l’appel car l’environnement de commande ne le laissera pas. Cela ne s’applique pas à appeler un script shell Unix à partir d’un script. Le script accessible est intégré dans un nouvel environnement (enfant), qui ne s’applique donc pas au niveau d’appel.

Dans Windows, il est désormais possible d’influencer l’environnement à partir d’un programme:
Le programme doit créer un petit fichier de lots dans un répertoire temporaire ou le répertoire actuel avec le contenu suivant:

Définir la variable = wert 

Ce fichier batch temporaire est ensuite appelé dans le lot global:

MySentv.exe SomeParameters> setenv.bat
Appel setenv.bat
Les commandes de lot suivantes 

Ligne de commande Windows [ Modifier | Modifier le texte source ]]

Pour afficher la valeur d’une variable ambiante dans la ligne de commande, vous utilisez Echo% nom% ou nom , où pour NOM Le nom de variable est utilisé.
Le ensemble -CcUnery est également disponible en éditeur de ligne de commande. Il peut également être très bien utilisé dans les fichiers batch. La commande ensemble En tant que tel, répertorie toutes les variables environnementales définies et donc disponibles. Si vous souhaitez créer une variable ambiante ou attribuer une nouvelle valeur à une nouvelle valeur existante, vous l’utilisez set name = wert , au lieu de NOM Le nom et à la place VALEUR La valeur future des variables est utilisée. ensemble /? Fournit des informations détaillées sur les fonctionnalités de la commande.

Surface graphique [ Modifier | Modifier le texte source ]]

La commande propose un éditeur graphique pour diriger les variables environnementales rundll32 sysdm.cpl, editenvironmentVariables ou l’élément de menu “Panneau de configuration – système” ou la combinaison de clés les fenêtres + Pause . L’éditeur peut être trouvé sous l’onglet “Avancé” et peut être trouvé sous “Variables environnementales”.

Uservariables et variables système [ Modifier | Modifier le texte source ]]

Les versions Windows plus récentes (par exemple Windows XP ou Windows 7) font la distinction entre les “userariables”, qui se réfèrent uniquement aux utilisateurs actuellement connectés, et “variables système”, qui sont valables pour l’ensemble du système (y compris tous les autres comptes d’utilisateurs).

Variables ambiantes dynamiques [ Modifier | Modifier le texte source ]]

Certains programmes DOS et Windows fournissent des variables environnementales générées dynamiquement. Ceux-ci ne sont pas stockés fermement et la valeur est déterminée peu de temps avant la sortie. Des exemples de telles variables environnementales dynamiques sont:

CD Spécifie le répertoire dans lequel se trouve le questionneur. (Aussi DOS; Classic: sans lettres de lecteur; à propos de Windows XP: avec lettre de lecteur)
DATE Date du système actuel
TEMPS Heure du système actuel
Errorlevel Code d’erreur de la dernière commande réalisée (aussi dos)
Aléatoire Génère un nombre aléatoire entre 0 et 32767
Cmdcmdline Contient la ligne de commande de l’interpréteur de commande actif, voir aussi comspec

Variables environnementales prédéfinies [ Modifier | Modifier le texte source ]]

Selon la version Windows utilisée, il existe d’autres variables environnementales définies lorsque vous démarrez le système ou lors de la connexion. Les valeurs peuvent dépendre de la langue d’état et des lettres de lecteur du lecteur du système d’exploitation. Par exemple:

Variable Windows XP Windows Vista / 7/8/10/11 remarque
% Allusersprofile% (% programdata%) C: documents et paramètres de tous les utilisateurs C: ProgramData
%DONNÉES D’APPLICATION% C: Documents et paramètres {Nom d’utilisateur} Données d’application C: utilisateurs {nom d’utilisateur} appdataroaming
%NOM DE L’ORDINATEUR% {Nom de l’ordinateur}
% CommonProgramfiles% C: Programme des fichiers de licorne C: Files de fichiers FileScommon du programme
% CommonProgramfiles (x86)% C: Programmes (x86) Fichiers conjoints C: Fichiers de programme (x86) Fichiers communs
% Comspec% % Systemroot% system32cmd.exe Chemin vers l’interprète de ligne de commande
% Root du système% étendu en conséquence
aussi dos
% Homedrive% C: C:
% Homepath% Documents et paramètres {nom d’utilisateur} Utilisateurs {nom d’utilisateur}
% Localappata% n / A C: utilisateurs {nom d’utilisateur} appdatalocal
% Logonserver% \ {domain_logon_server}
%TOI% Windows_nt Windows_nt
%CHEMIN% % Systemroot% system32;% systemroot%;% systemroot% system32wbem CHEMIN
% Root du système% étendu en conséquence
aussi dos
% Pathext% .Com, .exe, .bat, .cmd, .vbs, .vbe, .js, .wsf, .wsh .com, .exe, .bat, .cmd, .vbs, .vbe, .js, .jse, .wsf, .wsh, .msc
%Fichiers de programme% C:Programme C: Fichiers de programme
% ProgramFiles (x86)% C: Programme (x86) C: Fichiers du programme (x86)
%RAPIDE% $ P $ g aussi dos
% SystemDrive% C: C:
% Systemrooot% C: Windows
(Windows 2000 et avant: C: Winnt)
C: Windows
% Temp% ou% TMP% C: documents et paramètres {nom d’utilisateur} C: Utilisateurs {nom d’utilisateur} AppDatalocalTemp Temp
% Userdomain% {userdomain}
%NOM D’UTILISATEUR% {nom d’utilisateur} Le nom de l’utilisateur actuel
%PROFIL DE L’UTILISATEUR% % SystemDrive% documents et paramètres {nom d’utilisateur} C: utilisateurs {nom d’utilisateur}
% Windir% C: Windows C: Windows Forme historique (fenêtres 16 bits), maintenue pour la compatibilité. Doit toujours être identique à% de racine du système%.
%PUBLIC% n / A C: Userspublic
% Psmodulepath% n / A % Systemroot% system32windowspowershellv1.0modules
CHEMIN Des chemins séparés séparés par un demi-colon, dans lequel
Cette commande doit être recherchée pour les programmes exécutables si une commande ne pouvait être trouvée dans le répertoire actuel. Il existe également un autre mécanisme d’enregistrement du programme.
Temp Pour la protection des données, cela ne devrait pas être un répertoire général pour tous les utilisateurs, mais un répertoire utilisateur spécifique; Environ% homedrive %% homepath% temp.

Inscription [ Modifier | Modifier le texte source ]]

Parmi les nouvelles versions de Windows (Windows NT / 2000 / XP / 2003 / Vista) sont stockées dans l’enregistrement. Le chemin d’enregistrement

 Hkey_current_userenvironment  

ou avec Windows XP (pour par exemple HomeDrive) et Windows Vista

 HKEY_CURRENT_USERVOLATILE  Environnement  

est utilisé pour les variables environnementales qui affectent uniquement l’utilisateur actuel. Le chemin

 HKEY_LOCAL_MACHINESYSTEMCURRENT ControlsetControlSession  Direction de l'environnement  

D’un autre côté, il est utilisé pour stocker des variables environnementales qui sont valides dans le système global.
Avec la fonction de recherche de l’éditeur d’enregistrement, les chemins ou les clés peuvent être recherchés pour les entrées souhaitées.

Avec la commande regedit Dans la boîte de dialogue d’exécution ( les fenêtres + R ) L’éditeur peut être démarré.

Danger: Changements inappropriés En inscription conséquences graves ont. Les modifications ne doivent être apportées que si vous savez ce que vous faites.
Avant chaque changement, il doit être assuré par les données d’enregistrement pertinentes!

Retarder lors de l’utilisation de variables modifiées [ Modifier | Modifier le texte source ]]

Au début d’un processus (fichier EXE), les variables ambiantes actuelles sont lues à partir du registre puis “gelé”, le processus reçoit donc une copie ou un “instantané” des variables actuelles. Les variables ambiantes ultérieures ne sont donc pas affectées par les processus en cours (tant que le programme ne fait pas attention au message Windows correspondant [2] ), de sorte que des processus tels qu’un shell en cours d’exécution (“demande d’entrée”) ne le remarquent pas. Si les variables ambiantes doivent être utilisées dans un shell, une nouvelle instance de la coquille doit être chargée. Peu importe si une coquille qui était déjà ouverte avec les anciennes variables environnementales était fermée ou non. Cela signifie que deux coquilles peuvent être effectuées avec différentes variables environnementales.

Si le shell est lancé à partir d’un Windows Explorer (par exemple au moyen de “ouvrir la fenêtre de commande ici”), et que l’option “Démarrer la fenêtre du dossier dans un processus distinct” est activée dans l’embauche de l’Explorateur Windows, l’explorateur Windows doit également être redémarré afin que les paramètres modifiés soient visibles.

  1. Explications des variables ambiantes sous Ubuntu-Linux
  2. Message wm_settingchange
after-content-x4