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

Wat zijn PATH en andere omgevingsvariabelen, en hoe kan ik ze instellen of gebruiken?

Vragen over

  • instellen omgevingsvariabelen
  • de PATH

zijn hier heel gebruikelijk, en in de meeste gevallen lijken de antwoorden erg op elkaar. In de toekomst zou het leuk zijn om hier een goede Q/A voor te hebben.

Dus de vraag is: *Wat zijn omgevingsvariabelen, zoals het uitvoerbare PATH, en hoe kan ik ze veranderen en gebruiken op grote besturingssystemen? *

Een goed antwoord zou een eenvoudige uitleg bevatten van wat omgevingsvariabelen en vooral PATH betekenen voor het OS, evenals eenvoudige richtlijnen voor het instellen en lezen van deze variabelen.

Antwoorden (5)

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

Wat zijn omgevingsvariabelen?

Omgevingsvariabelen bevatten waarden die gerelateerd zijn aan de huidige omgeving, zoals het besturingssysteem of gebruikerssessies.

Path

Een van de meest bekende heet PATH op Windows, Linux en Mac OS X. Het specificeert de directories waarin uitvoerbare programma’s zich bevinden die op de machine kunnen worden gestart zonder het hele pad naar het bestand op de commandoregel te kennen en te typen. (Of in Windows, het Run dialoogvenster in het Startmenu of

+R).

Op Linux en Mac OS X bevat het meestal alle bin- en sbin-directories die relevant zijn voor de huidige gebruiker. Op Windows bevat het tenminste de C:\Windows en C:\Windows\system32 mappen - daarom kunt u run calc.exe of notepad.exe vanaf de commandoregel of Run dialoog, maar niet firefox.exe. (Firefox bevindt zich in C:\Program Files\Mozilla Firefox. Ga voor informatie over het opnemen van Firefox naar hier .)

Als u bijvoorbeeld calc (de .exe kan worden weggelaten) in de opdrachtregel van Windows typt, wordt de Windows-calculator opgestart.

* U kunt ondersteuning voor andere bestandsextensies dan .exe toevoegen door %PATHEXT% .

Andere

Andere variabelen kunnen programma’s vertellen wat voor soort terminal wordt gebruikt (TERM op Linux/Mac OS X), of, op Windows, waar de Windows-map zich bevindt (bijv, %WINDIR% is C:\Windows).

Het creëren van nieuwe omgevingsvariabelen

In Windows, Linux en Unix is het mogelijk om nieuwe omgevingsvariabelen te creëren, waarvan de waarden dan beschikbaar worden gesteld aan alle programma’s bij de lancering.

Je kunt dit gebruiken bij het schrijven van scripts of programma’s die op meerdere machines geïnstalleerd of uitgerold zijn en moeten verwijzen naar waarden die specifiek zijn voor deze machines. Hoewel een soortgelijk effect kan worden bereikt met programmaspecifieke configuratie-instellingen, is het eenvoudiger om dit te doen met behulp van een omgevingsvariabele als meerdere programma’s dezelfde waarde moeten benaderen.

 

Windows

GUI

    1. Open Control Panel » System » Advanced » Environment Variables.
  1. Typ control sysdm.cpl,,3 in het Run dialoogvenster (

    +R) en klik op Environment Variables. Voor het bewerken van gebruikersvariabelen kunt u ook

3 typen. 3. Klik met de rechtermuisknop op (Mijn) Computer en klik op Eigenschappen, of druk gewoon op

+Break.

  1. Er zijn vele andere manieren om dezelfde plaats te bereiken, zoals door “omgevingsvariabelen” te typen in het Startmenu/Schermzoekvak, etc.

Omgevingsvariabelen in Windows zijn gescheiden in gebruikers- en machine/systeemspecifieke waarden. U kunt daar hun waarden bekijken en bewerken. Hun huidige waarden worden bij het opstarten beschikbaar gesteld aan alle programma’s.

Er is ook Rapid Environment Editor , die helpt bij het instellen en wijzigen van omgevingsvariabelen in Windows zonder dat u diep in de systeeminstellingen hoeft te gaan. Een ander open source programma voor Windows waarmee de padomgeving zeer eenvoudig kan worden bewerkt is Path Editor .

Command Line

Format

Omgevingsvariabelen in Windows worden aangeduid met procenttekens (%) rondom de naam:

%name%

echo

Om de waarde van een omgevingsvariabele weer te geven in cmd.exe, type echo %name%.

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

set

Om een variabele te creëren/instellen, gebruik set varname=value:

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

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

Om een variabele in te stellen/toevoegen, gebruik set varname=value;%varname%:

C:\>set Penguins=C:\Linux

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

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

Op deze manier ingestelde omgevingsvariabelen zijn beschikbaar voor (de rest van) de duur van het Command Prompt proces waarin ze zijn ingesteld, en zijn beschikbaar voor processen die worden gestart nadat de variabelen zijn ingesteld.

setx

Om een variabele permanent te creëren/instellen, gebruik 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

In tegenstelling tot set is er geen gelijkteken en moet de waarde tussen aanhalingstekens worden geplaatst als deze spaties bevat. Merk op dat variabelen kunnen uitbreiden naar een string met spaties (bijv. %PATH% wordt C:\Program Files), dus het is het beste om aanhalingstekens op te nemen rond waarden die variabelen bevatten.

U moet setx handmatig toevoegen aan versies van Windows eerder dan Vista. ## Lijst van Windows omgevingsvariabelen Hier is een lijst van default-omgevingsvariabelen , die in Windows zijn ingebouwd. Enkele voorbeelden zijn:%WINDIR%, %SystemRoot%, %USERPROFILE% en %APPDATA%. Zoals de meeste namen in Windows zijn deze hoofdlettergevoelig.

 

Unix derivaten (FreeBSD, GNU / Linux, OS X)

Omgevingsvariabelen in Linux worden voorafgegaan door een dollarteken ($) zoals $HOME of $HOSTNAME. Veel bekende en standaard variabelen worden in hoofdletters gespeld om dat aan te geven. Houd in gedachten dat namen van variabelen hoofdlettergevoelig zijn, wat betekent dat $User en $USER vanuit het oogpunt van de commandoregel volledig ongerelateerd zijn.

Unix-derivaten definiëren systeembrede variabelen in commandoregel-scripts die zich meestal in de map /etc bevinden, maar gebruikersspecifieke waarden kunnen aan die variabelen worden gegeven in scripts die zich in de homemap bevinden (bijv. /etc/profile, $HOME/.bash_profile). Het .profile-bestand in de thuismap is een gebruikelijke plaats om gebruikersvariabelen te definiëren.

Setting variabelen

Deze bestanden zijn gewone shellscripts en kunnen meer dan alleen omgevingsvariabele declaraties bevatten. Om een omgevingsvariabele in te stellen, gebruik je export. Om uw huidige gedefinieerde omgevingsvariabelen in een terminal te tonen, draait u env.

Het export commando is een standaard manier om variabelen te definiëren. De syntaxis is zeer intuïtief. Het resultaat is identiek voor deze twee regels, maar het eerste alternatief is te verkiezen in het geval portabiliteit nodig is boven pre-POSIX Bourne shell.

var=value; export var
export var=value

De C-shell en zijn nakomelingen gebruiken een compleet andere syntax; daar is het commando setenv.

Zie het Linux documentatieproject, Path HOWTO voor een meer diepgaande discussie over dit onderwerp.

Misschien is OS X, in tegenstelling tot wat vaak wordt gedacht, meer “Unix” dan Linux. Naast de reeds genoemde bestanden kan $PATH in deze bestanden worden aangepast:

  • /etc/paths bevat alle standaard mappen die aan het pad worden toegevoegd, zoals /bin en /usr/sbin.
  • Elk bestand in /etc/paths.d - algemeen gebruikt door installateurs om de uitvoerbare bestanden die ze aanleveren beschikbaar te maken vanaf de commandoregel, zonder dat het systeembrede of gebruikersspecifieke configuratiebestanden aangeraakt hoeven te worden. Deze bestanden bevatten eenvoudigweg één pad per regel, bijv, /Programs/Mozilla/Calendar/bin.

 

Externe links:

Omgevingsvariabelen in XP Windows XP Service Pack 2 Ondersteuningshulpmiddelen (inclusief setx) Omgevingsvariabelen in Windows Vista en Windows 7 Uitvoerbare bestanden toevoegen aan het dialoogvenster uitvoeren Mac OSX Tips - Omgevingsvariabelen instellen TLDP: Pad Howto

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

Dit bericht is vanuit een meer technisch oogpunt dan dat van Daniel, maar legt niet zoveel uit over de concepten.

  • *

Het Wikipedia-artikel is ook een uitstekende referentie.

Linux en de meeste BSD’s

In de meeste command-line shells worden tijdelijke omgevingsvariabelen ingesteld met behulp van export (sh, bash, zsh) of setenv (csh, tcsh) commando’s.

  • Voorbeelden voor het vooraf instellen van $HOME/bin tot $PATH in bash of zsh:

  • csh, tcsh:

Persistente omgevingsvariabelen kunnen tijdens verschillende afzonderlijke stappen worden ingesteld:

  • Login:

  • Openen van een terminalvenster:

Windows NT serie

  • In Command Prompt (cmd.exe), gebruik set name=value om omgevingsvariabelen voor dat venster te wijzigen.

  • Gebruik Control Panel → Systeem → Geavanceerd → Omgevingsvariabelen om blijvende wijzigingen aan te brengen.

  • Systeembrede omgevingsvariabelen worden bewaard in het register, HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment, en geladen bij het opstarten van het systeem.

  • Standaard zoekt het systeem ook naar set-commando’s in AUTOEXEC.NT-bestand.

MS-DOS, 16-bit Windows, Windows 9x serie

  • In MS-DOS Prompt (command.com), gebruik set name=value, net als in WinNT.

  • Om blijvende wijzigingen aan te brengen, voeg set regels toe of bewerk deze in C:\AUTOEXEC.BAT en herstart dan.

VMS

(Kan niet weerstaan.)

DCL heeft geen concept van “pad”, maar verschillende symbool- en opdrachtdefinities kunnen in SYS$LOGIN:LOGIN.COM worden gezet.

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

Voor de bash shell PATH globale (niet-terminal) omgevingsvariabelen, volg ik de conventie die gebruikt wordt in mijn Ubuntu VM installatie - andere shells zullen variëren:

Caveat: De hele shell opstartsequentie, welke .bashrc, .profile, etc. bestanden worden gesourced in welke volgorde?, wanneer moet ik opnieuw inloggen om zicht te krijgen op nieuw gedefinieerde variabelen, aliassen, etc.? wat is het verschil tussen een login, interactieve, en niet-interactieve shell - ik gebruik cron?, en waarom als ik een . ~/.bashrc doe wordt mijn stomme PATH variabele steeds langer? zijn de belangrijkste vragen die in me opkomen als ik aan mijn PATH variabele denk.

In feite heb ik net mijn hele bash startup bestandenset herschreven met ideeën uit de Ubuntu en cygwin skelet bestanden, en hier zijn enkele van mijn in sites:

  1. 2. Exporteer de PATH en andere globale omgevingsvariabelen (d.w.z. LD_LIBRARY_PATH) in de .profile;
  2. Exporteer de ~/.profile en andere globale omgevingsvariabelen (d.w.z. $HOME/.bashrc) in de ~/.bashrc. 2. Gebruik logica in shopt om ~/.bashrc als bron te gebruiken;
  3. Gebruik logica in .profile om .bashrc als bron te gebruiken;
  4. Gebruik logica in ~/.bash_profile als bron;
  5. Gebruik logica in ~/.bash_login als bron. 3. Hekkenuitvoering van ~/.bashrc met een test voor interactieve uitvoering, anders afsluiten;
  6. Zet alle aliassen, . ~/.bashrc‘s, prompt setup, geschiedenis controle, terminal setup, functie definitie, enz. (interactieve gerelateerde setup) in het deel van PATH dat beveiligd is om alleen in interactieve modus te draaien;
  7. Ontdoe je van de andere bash startup bestanden, omdat hun bestaan bepaalt of het controle pad door ~/.profile en .profile werkt zoals verwacht. Dat wil zeggen, tenzij er specifieke vereisten zijn om anders te doen, verwijder &007 & &007;
  8. Als ik bij de bash prompt ben, en ik moet wat standaard setup updaten, bewerk ik mijn &007 bestand, dan breng ik het eenvoudigweg aan met een &007 om die veranderingen in mijn huidige shell te krijgen.
  9. Wanneer ik een wijziging aanbreng in een omgevingsvariabele als &007, moet ik mijn &007 aanpassen en broncode geven;
  10. Ik zet mijn aanroepen op fink, port, en brouw specifieke opstellingen in &007.

Dat is mijn 2 cent over dit onderwerp.

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

Q: WAT zijn omgevingsvariabelen ?

A: Omgevingsvariabelen zijn vergelijkbaar met variabelen in elke programmeertaal. In het geval van Windows of Unix systemen slaan ze verschillende waarden op zodat programma’s en taken de noodzakelijke OS-informatie of ‘Omgevingsinformatie’ kunnen krijgen. Bijvoorbeeld:

USERPROFILE : gebruikersmap binnen de OS-bestanden.

MAIL : waar de mail van een gebruiker kan worden gevonden binnen de OS-bestanden.

*Q: WAT is de PATH-variabele specifiek? *

A: De PATH-variabele stelt directory-paden in om in te kijken wanneer commando’s worden uitgevoerd, zowel voor RUN-commando’s, als voor interne oproepen van programma’s. Dit voorkomt dat een programma zijn installatielocatie moet kennen om andere uitvoerbare processen aan te roepen.

Het kijkt naar de Windows Environment System PATH variabele en test elke locatie voor het gegeven uitvoerbare programma. Dus het toevoegen van een locatie aan de PATH-variabele maakt het mogelijk om een executable direct aan te roepen.

Volgens dit Wikipedia-artikel :

Wanneer een commando wordt ingevoerd in een commandoshell of een systeemaanroep wordt gedaan door een programma om een programma uit te voeren, zoekt het systeem eerst in de huidige werkmap en vervolgens in het pad, waarbij elke map van links naar rechts wordt onderzocht

  • *

*Q: HOE moet er een locatie worden toegevoegd aan de PATH-variabele ? *

A: U moet de variabele string van de omgevingsvariabelen PATH bewerken om de locatie van uw uitvoerbare variabele op te nemen.

Een manier om dit te doen wordt beschreven hier :

  1. 1. Open het Startmenu en klik met de rechtermuisknop op Computer. Selecteer Eigenschappen.
  2. 3. Selecteer Geavanceerde systeeminstellingen.
  3. Selecteer in het tabblad Geavanceerd de optie Omgevingsvariabelen.
  4. Klik op de knop Geavanceerd. 4. Selecteer EDIT of NIEUW. (voor PATH wilt u waarschijnlijk EDIT).
  5. Voeg uw locatiepad toe. b.v.: C:\wamp\bin\php\php5.5.12;

Ik hoop dat dit een deel van de verwarring oplost.

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