it-swarm.com.de

Was sind PATH- und andere Umgebungsvariablen und wie kann ich sie festlegen oder verwenden?

Fragen über

  • umgebungsvariablen setzen
  • der PATH

sind hier sehr verbreitet, und in den meisten Fällen sind die Antworten einander sehr ähnlich. In Zukunft wäre es schön, dafür ein gutes Q/A zu haben.

Die Frage ist also: Was sind Umgebungsvariablen, wie die ausführbare Datei PATH, und wie kann ich sie auf wichtigen Betriebssystemen ändern und verwenden?

Eine gute Antwort wäre eine einfache Erklärung dessen, was Umgebungsvariablen und insbesondere PATH für das Betriebssystem bedeuten, sowie einfache Richtlinien, wie sie entsprechend eingestellt und gelesen werden.

334
slhck

Was sind Umgebungsvariablen?

Umgebungsvariablen enthalten Werte, die sich auf die aktuelle Umgebung beziehen, z. B. das Betriebssystem oder Benutzersitzungen.

Pfad

Eine der bekanntesten heißt PATH unter Windows, Linux und Mac OS X. Sie gibt die Verzeichnisse an, in denen sich ausführbare Programme * auf dem Computer befinden, die gestartet werden können, ohne den gesamten Pfad zur Datei im Befehl zu kennen und einzugeben Linie. (Oder unter Windows den Dialog Ausführen im Startmenü oder Win+R).

Unter Linux und Mac OS X enthält es normalerweise alle Verzeichnisse bin und sbin, die für den aktuellen Benutzer relevant sind. Unter Windows enthält es mindestens die Verzeichnisse C:\Windows und C:\Windows\system32. Aus diesem Grund können Sie calc.exe oder notepad.exe über die Befehlszeile oder Ausführen Dialog, aber nicht firefox.exe. (Firefox befindet sich in C:\Program Files\Mozilla Firefox. Informationen zum Einbinden von Firefox finden Sie unter hier .)

Wenn Sie beispielsweise calc (der .exe kann weggelassen werden) in die Befehlszeile von Windows eingeben, wird der Windows-Rechner gestartet.

* Sie können Unterstützung für andere Dateierweiterungen als .exe hinzufügen, indem Sie %PATHEXT% bearbeiten.

Andere

Andere Variablen können Programmen mitteilen, welche Art von Terminal verwendet wird (TERM unter Linux/Mac OS X) oder unter Windows, wo sich der Windows-Ordner befindet (z. B. %WINDIR% ist C:\Windows).

Neue Umgebungsvariablen erstellen

Unter Windows, Linux und Unix können neue Umgebungsvariablen erstellt werden, deren Werte beim Start allen Programmen zur Verfügung gestellt werden.

Sie können dies verwenden, wenn Sie Skripts oder Programme schreiben, die auf mehreren Computern installiert oder bereitgestellt werden und auf Werte verweisen müssen, die für diese Computer spezifisch sind. Während ein ähnlicher Effekt mit programmspezifischen Konfigurationseinstellungen erzielt werden kann, ist dies mit einer Umgebungsvariablen einfacher, wenn mehrere Programme auf denselben Wert zugreifen müssen.

Windows

GUI

  1. Öffnen Sie Control Panel » System » Advanced » Environment Variables.

  2. Geben Sie im Dialogfeld "Ausführen" control sysdm.cpl,,3 ein (Win+R) und klicken Sie auf Environment Variables.
    Zum Bearbeiten von Benutzervariablen können Sie auch eingeben

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

    im Dialogfeld "Ausführen".

  3. Klicken Sie mit der rechten Maustaste auf (Arbeitsplatz), und klicken Sie auf Eigenschaften, oder drücken Sie einfach Win+Break.

    • Klicken Sie in XP auf Advanced » Environment Variables.
    • In Vista + klicken Sie auf Advanced system settings » Environment Variables.
  4. Es gibt viele andere Möglichkeiten, den gleichen Ort zu erreichen, z. B. indem Sie "Umgebungsvariablen" in das Suchfeld Startmenü/Bildschirm eingeben und so weiter.

Umgebungsvariablen in Windows werden in benutzer- und maschinen-/systemspezifische Werte unterteilt. Dort können Sie ihre Werte anzeigen und bearbeiten. Ihre aktuellen Werte beim Start werden allen Programmen zur Verfügung gestellt.

Es gibt auch Rapid Environment Editor , mit dessen Hilfe Umgebungsvariablen in Windows festgelegt und geändert werden können, ohne dass die Systemeinstellungen eingehend untersucht werden müssen. Ein weiteres Open-Source-Programm für Windows, mit dem die Pfadumgebung sehr komfortabel bearbeitet werden kann, ist Path Editor .

Befehlszeile

Format

Umgebungsvariablen in Windows sind mit Prozentzeichen (%) gekennzeichnet, die den Namen umgeben:

%name%

echo

Geben Sie cmd.exe ein, um den Wert einer Umgebungsvariablen in echo %name% anzuzeigen.

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

einstellen

Verwenden Sie zum Erstellen/Festlegen einer Variablen set varname=value:

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

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

Verwenden Sie zum Anhängen/Hinzufügen einer Variablen set varname=value;%varname%:

C:\>set Penguins=C:\Linux

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

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

Auf diese Weise festgelegte Umgebungsvariablen stehen (für den Rest) der Dauer des Eingabeaufforderungsprozesses zur Verfügung, in dem sie festgelegt werden, und stehen Prozessen zur Verfügung, die nach dem Festlegen der Variablen gestartet werden.

setx

Verwenden Sie zum Erstellen/Festlegen einer Variablen dauerhaft 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

Im Gegensatz zu set gibt es kein Gleichheitszeichen und der Wert sollte in Anführungszeichen gesetzt werden, wenn er Leerzeichen enthält. Beachten Sie, dass Variablen zu einer Zeichenfolge mit Leerzeichen erweitert werden können (z. B. %PATH% wird zu C:\Program Files). Daher sollten Werte, die Variablen enthalten, am besten in Anführungszeichen gesetzt werden.

Sie müssen setx zu früheren Windows-Versionen als Vista manuell hinzufügen.
Windows XP Service Pack 2-Supporttools

Liste der Windows-Umgebungsvariablen

Here ist eine Liste von Standard-Umgebungsvariablen , die in Windows integriert sind. Einige Beispiele sind: %WINDIR%, %SystemRoot%, %USERPROFILE% und %APPDATA%. Wie die meisten Namen in Windows wird bei diesen Angaben die Groß- und Kleinschreibung nicht berücksichtigt.

Unix-Derivate (FreeBSD, GNU/Linux, OS X)

Umgebungsvariablen in Linux wird ein Dollarzeichen ($) vorangestellt, z. B. $ HOME oder $ HOSTNAME. Viele bekannte und Standardvariablen werden in Großbuchstaben geschrieben, um genau das zu bezeichnen. Beachten Sie, dass bei Variablennamen zwischen Groß- und Kleinschreibung unterschieden wird. Dies bedeutet, dass $ User und $ USER aus Sicht der Shell keinerlei Beziehung zueinander haben.

Unix-Derivate definieren systemweite Variablen in Shell-Skripten, die sich zumeist im Ordner /etc befinden. Benutzerdefinierte Werte können jedoch für diese Variablen in Skripten im Basisordner angegeben werden (z. B. /etc/profile, $HOME/.bash_profile). In der Datei .profile im Basisordner werden häufig Benutzervariablen definiert.

Variablen setzen

Diese Dateien sind reguläre Shell-Skripte und können mehr als nur Deklarationen von Umgebungsvariablen enthalten. Verwenden Sie export, um eine Umgebungsvariable festzulegen. Führen Sie env aus, um Ihre derzeit definierten Umgebungsvariablen in einem Terminal anzuzeigen.

Der Befehl export ist eine Standardmethode zum Definieren von Variablen. Die Syntax ist sehr intuitiv. Das Ergebnis ist für diese beiden Zeilen identisch, die erste Alternative ist jedoch vorzuziehen, wenn eine Portabilität zur Bourne Shell vor POSIX erforderlich ist.

var=value; export var
export var=value

Die C-Shell und ihre Nachkommen verwenden eine völlig andere Syntax. Dort lautet der Befehl setenv.

Weitere Informationen zu diesem Thema finden Sie im Linux-Dokumentationsprojekt Path HOWTO .

Möglicherweise ist OS X entgegen der landläufigen Meinung eher "Unix" als Linux. Zusätzlich zu den bereits erwähnten Dateien kann $ PATH in diesen Dateien geändert werden:

  • /etc/paths enthält alle Standardverzeichnisse, die dem Pfad hinzugefügt wurden, z. B. /bin und /usr/sbin.
  • Beliebige Datei in /etc/paths.d - wird häufig von Installationsprogrammen verwendet, um die von ihnen bereitgestellten ausführbaren Dateien in der Shell verfügbar zu machen, ohne systemweite oder benutzerspezifische Konfigurationsdateien zu berühren. Diese Dateien enthalten lediglich einen Pfad pro Zeile. z. B./Programs/Mozilla/Calendar/bin.

Externe Links:

mgebungsvariablen in XP
Windows XP Service Pack 2-Supporttools (Beinhaltet setx)
mgebungsvariablen in Windows Vista und Windows 7
Hinzufügen von ausführbaren Dateien zum Dialogfeld "Ausführen"
Tipps für Mac OS X - Festlegen von Umgebungsvariablen
TLDP: Path Howto

328
Daniel Beck

Dieser Beitrag ist aus technischer Sicht als Daniels, erklärt aber nicht so sehr die Konzepte.


Der Wikipedia-Artikel ist auch eine hervorragende Referenz.

Linux und die meisten BSDs

In den meisten Befehlszeilen-Shells werden temporäre Umgebungsvariablen mit den Befehlen export (sh, bash, zsh) oder setenv (csh, tcsh) festgelegt.

  • Beispiele für das Voranstellen von $HOME/bin vor $PATH in bash oder zsh:

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

    (In diesem speziellen Fall ist export nicht erforderlich, da PATH bereits Teil der Umgebung ist.)

  • csh, tcsh:

    setenv PATH "$HOME/bin:$PATH"
    

Persistente Umgebungsvariablen können in mehreren separaten Phasen festgelegt werden:

  • Anmeldung:

    • Einrichten der Anmeldesitzung: Linux pam_env, das normalerweise von /etc/environment liest

    • Terminal-Anmeldungen: Die "Profil" -Dateien der Shell.

      • bash verwendet /etc/profile und den ersten von: ~/.bash_profile, ~/.bash_login, ~/.profile. Manual page bash(1) section Aufruf .

        Häufig enthält die Profildatei des Benutzers auch einen expliziten Aufruf für ~/.bashrc.

      • zsh: Manpage zsh(1) section Startup/shutdown files .

      • csh und andere Shells: Siehe entsprechende Handbuchseiten.

    • Grafische Anmeldungen: Nicht sicher; kann je nach Login-Manager variieren. GDM scheint ~/.profile in meinem System zu lesen.

  • Öffnen eines Terminalfensters:

    • bash verwendet /etc/bash.bashrc und ~/.bashrc.

Windows NT-Serie

  • Verwenden Sie in der Eingabeaufforderung (cmd.exe) set name=value, um die Umgebungsvariablen für dieses Fenster zu ändern.

    Verwenden Sie zum Anhängen von c:\bin an %PATH% Folgendes:

    set path=%path%;c:\bin
    

    Dies betrifft nur diesen cmd.exe -Prozess und alle new -Prozesse, die von diesem Prozess gestartet werden.

  • Um dauerhafte Änderungen vorzunehmen, verwenden Sie Systemsteuerung → System → Erweitert → Umgebungsvariablen . ( docs )

    Hinweis: Während Benutzereinstellungen normalerweise die Systemeinstellungen überschreiben, wird die Variable PATH speziell behandelt: Sowohl die System- als auch die Benutzereinstellungen werden zum endgültigen Wert zusammengeführt.

    Änderungen werden in der Registrierung gespeichert (siehe unten) und sofort auf alle new -Prozesse angewendet, die vom Explorer (der grafischen Shell) erstellt wurden, z. B. über das Startmenü.

  • Systemweite Umgebungsvariablen werden in der Registrierung HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment gespeichert und beim Systemstart geladen.

    Die Benutzerumgebung wird in HKCU\Environment gespeichert und während der Benutzeranmeldung geladen.

  • Standardmäßig sucht das System auch in der AUTOEXEC.NT-Datei nach set-Befehlen.

MS-DOS, 16-Bit-Windows, Windows 9x-Serie

  • Verwenden Sie in der MS-DOS-Eingabeaufforderung (command.com) set name=value wie in WinNT.

    In ähnlicher Weise wirkt sich die interaktive Ausführung von set nur auf diese eine command.com-Instanz sowie auf alle neuen Prozesse aus, die von ihr gestartet werden.

  • Um dauerhafte Änderungen vorzunehmen, fügen Sie in C:\AUTOEXEC.BAT die entsprechenden Zeilen für set hinzu oder bearbeiten Sie sie. Starten Sie anschließend den Computer neu.

    • Problemumgehung zur Vermeidung eines Neustarts unter Windows 9x: Öffnen Sie ein MS-DOS-Eingabeaufforderungsfenster, legen Sie die entsprechenden Variablen fest, schließen Sie den vorhandenen Explorer-Prozess ( Start → Herunterfahren →, während Sie Strg + Umschalt gedrückt halten, klicken Sie auf Abbrechen ), führen Sie Explorer.exe im MS-DOS-Eingabeaufforderungsfenster aus.

VMS

(Konnte nicht widerstehen.)

DCL kennt kein "Pfad" -Konzept, es können jedoch verschiedene Symbol- und Befehlsdefinitionen in SYS$LOGIN:LOGIN.COM eingefügt werden.

64
grawity

Für die globalen (nicht terminalen) Umgebungsvariablen bash Shell PATH befolge ich die in meiner Ubuntu VM -Installation verwendete Konvention - andere Shells variieren:

Vorsichtsmaßnahme: Die gesamte Shell-Startsequenz, bei der .bashrc, .profile usw. Dateien in welcher Reihenfolge bezogen werden. Wann muss ich mich erneut anmelden, um die Sichtbarkeit für neu definierte Variablen, Aliase usw. zu gewährleisten? Worin besteht der Unterschied? Anmelde-, interaktive und nicht interaktive Shell - Ich verwende cron ?, und warum wird meine dumme PATH -Variable länger und länger, wenn ich einen . ~/.bashrc mache? sind die wichtigsten Fragen, die mir einfallen, wenn ich an meine Variable PATH denke.

Tatsächlich habe ich gerade meinen gesamten Bash-Startdateisatz komplett neu geschrieben, wobei ich Ideen aus den Ubuntu- und Cygwin-Skelettdateien übernommen habe, und hier sind einige meiner in-Sites:

  1. Exportieren Sie die Variablen PATH und andere globale Umgebungsvariablen (d. H. LD_LIBRARY_PATH) in den .profile.
  2. Verwenden Sie die Logik in ~/.profile, um $HOME/.bashrc als Quelle zu verwenden, falls vorhanden.
  3. Zaun Ausführung des ~/.bashrc mit einem Test für die interaktive Ausführung, sonst beenden;
  4. Fügen Sie alle Aliase, shopt, Eingabeaufforderung, Verlaufssteuerung, Terminal-Setup, Funktionsdefinition usw. (interaktives Setup) in den Teil von ~/.bashrc ein, der nur im interaktiven Modus ausgeführt werden darf.
  5. Beseitigen Sie die anderen Bash-Startdateien, da ihre Existenz bestimmt, ob der Steuerpfad durch .profile und .bashrc wie erwartet funktioniert. Das heißt, wenn keine besonderen Anforderungen bestehen, entfernen Sie ~/.bash_profile & ~/.bash_login;
  6. Wenn ich an der Bash-Eingabeaufforderung bin und einige Standardeinstellungen aktualisieren muss, bearbeite ich meine ~/.bashrc-Datei und versorge sie einfach mit einem . ~/.bashrc, um diese Änderungen in meiner aktuellen Shell abzurufen.
  7. Wenn ich eine Umgebungsvariable wie PATH ändere, muss ich meinen ~/.profile ändern und als Quelle angeben.
  8. Ich rufe auf, um bestimmte Setups in .profile zu finken, zu portieren und zu brauen.

Das sind meine 2 Cent zu diesem Thema.

9
Billy McCloskey

F: WAS sind Umgebungsvariablen?

A: Umgebungsvariablen ähneln Variablen in jeder Programmiersprache. Bei Windows- oder Unix-Systemen werden verschiedene Werte gespeichert, damit Programme und Aufgaben die erforderlichen Informationen zum Betriebssystem oder zur Umgebung abrufen können. Zum Beispiel:

USERPROFILE: Benutzerverzeichnis innerhalb der Betriebssystemdateien.

MAIL: Hier finden Sie die E-Mails eines Benutzers in den Betriebssystemdateien.

F: WAS ist die PATH-Variable speziell?

A: Die Variable PATH legt Verzeichnispfade fest, nach denen gesucht wird, wann Befehle ausgeführt werden, sowohl für RUN-Befehle als auch für interne Aufrufe von Programmen. Dies verhindert, dass ein Programm seinen Installationsort kennen muss, um andere ausführbare Prozesse aufzurufen.

Es untersucht die Windows-Umgebungsvariable PATH und testet jeden Speicherort für die angegebene ausführbare Datei. Durch Hinzufügen eines Speicherorts zur PATH-Variablen kann eine ausführbare Datei direkt aufgerufen werden.

Laut diesem Wikipedia-Artikel :

Wenn ein Befehl in eine Befehls-Shell eingegeben wird oder ein Programm einen Systemaufruf ausführt, durchsucht das System zuerst das aktuelle Arbeitsverzeichnis und anschließend den Pfad, wobei jedes Verzeichnis von links nach rechts überprüft wird


F: WIE füge ich der PATH-Variablen eine Position hinzu?

A: Sie müssen die Variablenzeichenfolge der Umgebungsvariablen PATH-Variablen bearbeiten, um den Speicherort Ihrer ausführbaren Datei einzuschließen.

Eine Möglichkeit, dies zu tun, ist hier beschrieben:

  1. Öffnen Sie das Startmenü und klicken Sie mit der rechten Maustaste auf Computer. Wählen Sie Eigenschaften.
  2. Wählen Sie Erweiterte Systemeinstellungen.
  3. Wählen Sie auf der Registerkarte Erweitert die Option Umgebungsvariablen aus.
  4. Wählen Sie BEARBEITEN oder NEU. (für PATH möchten Sie höchstwahrscheinlich EDITIEREN).
  5. Fügen Sie Ihren Standortpfad hinzu. z. B .: C:\wamp\bin\php\php5.5.12;

Ich hoffe, dies klärt einiges an Verwirrung.

7
user945389