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

Fragen zu

  • Umgebungsvariablen setzen
  • das PATH

Sind hier sehr häufig, 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ürde eine einfache Erklärung von was Umgebungsvariablen und insbesondere PATH für das Betriebssystem bedeuten, sowie einfache Richtlinien zum Einstellen und Lesen.

Author: Daniel Beck, 2011-05-16

5 answers

Was sind Umgebungsvariablen?

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

Pfad

Eines der bekanntesten ist PATH unter Windows, Linux und Mac OS X. Es 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 in der Befehlszeile zu kennen und einzugeben. (Oder in Windows, der Dialog Run im Startmenü oder Gewinnen+R).

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

Zum Beispiel die Eingabe von calc (die .exe kann weggelassen werden) in der Befehlszeile unter Windows wird der Windows-Rechner gestartet.

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

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

In Windows -, Linux-und Unix, es ist möglich zu erstellen neue Umgebungsvariablen, deren Werte dann zur Verfügung gestellt, um alle Programme nach dem Start.

Sie können dies verwenden, wenn Sie Skripte 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 es einfacher, dies mit einer Umgebungsvariablen zu tun, wenn mehrere Programme auf dasselbe zugreifen müssen Wert.

 

Fenster

GUI

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

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

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

    Im Dialog Ausführen.

  3. Rechtsklick (My) Computer und klicken Sie auf Eigenschaften, oder drücken Sie einfachGewinnen+Pause.

    • Klicken Sie in XP auf Advanced » Environment Variables.
    • Klicken Sie in Vista+ auf Advanced system settings » Environment Variables.
  4. Es gibt viele andere Möglichkeiten, den gleichen Ort zu erreichen, z. B. durch Eingabe von "Umgebungsvariablen" im Startmenü/Bildschirmsuchfeld usw.

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

Es gibt auch . Environment Editor, der beim Festlegen und Ändern von Umgebungsvariablen in Windows hilft, ohne tief in die Systemeinstellungen gehen zu müssen. Ein weiteres Open-Source-Programm für Windows, mit dem die Path-Umgebung sehr bequem bearbeitet werden kann, ist Path Editor.

Befehlszeile

Format

Umgebungsvariablen in Windows werden mit Prozentzeichen (%) um den Namen herum bezeichnet:

%name%

Echo

Um eine Umgebung anzuzeigen Variablenwert in cmd.exe, Typ echo %name%.

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

Set

Zu Erstellen / setzen Sie eine Variable, verwenden Sie set varname=value:

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

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

An anhängen / Hinzufügen von eine Variable, verwenden Sie 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 gesetzte Umgebungsvariablen sind verfügbar für (den Rest von) die Dauer des Eingabeaufforderungsvorgangs, in dem sie festgelegt sind, und stehen Prozessen zur Verfügung, die nach dem Setzen der Variablen gestartet werden.

Setx

Bis create / set eine Variable dauerhaft, verwenden Sie 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 ist es am besten, Anführungszeichen um Werte einzuschließen, die Variablen enthalten.

Sie müssen manuell setx zu Windows-Versionen vor Vista hinzufügen.
Windows XP Service Pack 2 Support Werkzeuge

Liste der Windows-Umgebungsvariablen

Hier ist eine Liste von Standardumgebungsvariablen, die in Windows integriert sind. Einige Beispiele sind: %WINDIR%, %SystemRoot%, %USERPROFILE%, und %APPDATA%. Wie die meisten Namen in Windows sind diese groß-und Kleinschreibung.

 

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

Umgebungsvariablen in Linux wird ein Dollarzeichen ($) wie $HOME oder $HOSTNAME vorangestellt. Viele bekannte und Standardvariablen werden in Großbuchstaben geschrieben, um genau das zu bedeuten. Beachten Sie, dass Variablennamen Groß-und Kleinschreibung berücksichtigen, was bedeutet, dass $User und $USER aus Sicht der Shell völlig unabhängig sind.

Unix-Derivate definieren systemweite Variablen in Shell-Skripten, die sich hauptsächlich im Ordner /etc befinden, aber benutzerspezifische Werte können für diese Variablen in Skripten im Home-Ordner angegeben werden (z., /etc/profile, $HOME/.bash_profile). Die Datei .profile im Home-Ordner ist ein üblicher Ort um Benutzervariablen zu definieren.

Variablen setzen

Diese Dateien sind reguläre Shell-Skripte und können mehr als nur Umgebungsvariablendeklarationen enthalten. Um eine Umgebungsvariable festzulegen, verwenden Sie export. Führen Sie env aus, um Ihre aktuell 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, aber die erste Alternative ist bevorzugt für den Fall, dass Portabilität zur Pre-POSIX Bourne Shell 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.

Eine ausführlichere Diskussion zu diesem Thema finden Sie im Linux documentation project, Path HOWTO.

Vielleicht ist OS X entgegen allgemeinem Glauben mehr "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 werden, wie /bin und /usr/sbin.
  • Jede Datei in /etc/paths.d - wird häufig von Installateuren verwendet, um die von ihnen bereitgestellten ausführbaren Dateien über die Shell verfügbar zu machen, ohne systemweite oder benutzerspezifische Konfigurationsdateien zu berühren. Diese Dateien enthalten einfach einen Pfad pro Zeile. z.B. /Programme/Mozilla/Kalender/bin.

 

Externe Links:

Umgebung Variablen in XP
Windows XP Service Pack 2 Support Tools (Enthält setx)
Umgebungsvariablen in Windows Vista und Windows 7
Hinzufügen von ausführbaren Dateien zum Dialogfeld Ausführen
Mac OSX-Tipps-Umgebungsvariablen festlegen
TLDP: Pfad Howto

 360
Author: Daniel Beck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-05-10 16:50:52

Dieser Beitrag ist aus einer eher technischen Sicht, als Daniel, aber nicht erklären, wie viel die Konzepte.


Der Wikipedia-Artikel ist ebenfalls eine ausgezeichnete Referenz.

Linux und die meisten BSDs

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

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

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

    (In diesem speziellen case, export ist unnötig, da PATH bereits Teil der Umgebung ist.)

  • Csh, tcsh:

    setenv PATH "$HOME/bin:$PATH"
    

Persistente Umgebungsvariablen können in mehreren Stufen festgelegt werden:

  • Login:

    • Login session setup: Linux pam_env, das normalerweise liest aus /etc/environment

    • Terminalanmeldungen: Die "Profil" - Dateien der Shell.

      • bash verwendet /etc/profile und die erste von: ~/.bash_profile, ~/.bash_login, ~/.profile. Handbuch Seite bash(1) Abschnitt Aufruf.

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

      • zsh: Handbuch Seite zsh(1) Abschnitt Startup/shutdown-Dateien.

      • csh und andere Schalen: Siehe entsprechende Handbuchseiten.

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

  • Öffnen eines Terminalfensters:

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

Windows-NT-Serie

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

    Um c:\bin an %PATH% anzuhängen, verwenden Sie:

    set path=%path%;c:\bin
    

    Dies betrifft nur den cmd.exe Prozess und alle neuen Prozesse, die von ihm gestartet werden.

  • Um persistent zu machen änderungen, verwenden Sie Systemsteuerung → System → Erweitert → Umgebungsvariablen. () )

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

    Änderungen werden in der Registrierung gespeichert (siehe unten) und gelten sofort für alle neuen Prozesse, die vom Explorer (der grafischen Shell) erstellt wurden, z. B. über Start Menü.

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

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

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

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

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

    Ähnlich läuft set interaktiv betrifft nur diese eine command.com Instanz zusammen mit allen neuen Prozessen, die von ihr gestartet werden.

  • Um dauerhafte Änderungen vorzunehmen, fügen Sie die entsprechenden set Zeilen in C:\AUTOEXEC.BAT hinzu oder bearbeiten Sie sie.

    • Problemumgehung Um einen Neustart zu vermeiden, für 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 an der MS-DOS-Eingabeaufforderung aus Fenster.

VMS

(Konnte nicht widerstehen.)

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

 68
Author: user1686,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2012-01-24 00:58:54

Für die globalen (nicht terminalen) Umgebungsvariablen bash Shell PATH folge ich der Konvention, die in meiner Ubuntu VM-Installation verwendet wird - andere Shells variieren:

Einschränkung: Die gesamte Shell-Startsequenz, die .bashrc, .profile, etc. dateien werden in welcher Reihenfolge bezogen?, wann muss ich mich erneut anmelden, um Sichtbarkeit für neu definierte Variablen, Aliase usw. zu erhalten? was ist der Unterschied zwischen einer login, interaktive und nicht-interaktive shell - I do use cron?, und warum, wenn ich ein . ~/.bashrc mache, ist mein dumme PATH Variable, die immer länger wird? sind die wichtigsten Fragen, die mir in den Sinn kommen, wenn ich an meine Variable PATH denke.

Tatsächlich habe ich gerade mein gesamtes Bash-Startdateiset komplett neu geschrieben und Ideen aus den Ubuntu-und Cygwin-Skelettdateien übernommen, und hier sind einige meiner In-Sites:

  1. Exportieren Sie die Variablen PATH und andere globale Umgebungsvariablen (dh LD_LIBRARY_PATH) in die Variablen .profile;
  2. Verwenden Sie Logik in ~/.profile, um $HOME/.bashrc wenn es existiert;
  3. - Ausführung des ~/.bashrc mit einem Test zur interaktiven Ausführung, andernfalls beenden;
  4. Setzen sie alle aliase, shopt ' s, prompt setup, history control, terminal setup, funktion definition, etc. (interactive related setup) in dem Teil von ~/.bashrc, der geschützt ist, um nur im interaktiven Modus ausgeführt zu werden;
  5. Entfernen Sie die anderen Bash-Startdateien, da ihre Existenz bestimmt, ob der Steuerpfad durch .profile und .bashrc wie erwartet funktioniert. Das heißt, es sei denn, es gibt spezifische Anforderungen, um etwas anderes zu tun, entfernen ~/.bash_profile & ~/.bash_login;
  6. Wenn ich an der Bash-Eingabeaufforderung bin und ein Standard-Setup aktualisieren muss, bearbeite ich meine ~/.bashrc - Datei und quelle sie dann einfach mit einem . ~/.bashrc, um diese Änderungen in meiner aktuellen Shell abzurufen.
  7. Wenn ich eine Umgebungsvariable wie PATH ändere, muss ich meine ~/.profile;
  8. Ich habe meine Aufrufe an fink, Port und Brew-spezifische Setups in .profile gesetzt.

Das ist meine 2 Cent auf diese Thema.

 10
Author: Billy McCloskey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-01-15 17:56:50

Q: WAS sind Umgebungsvariablen ?

A: Umgebungsvariablen ähneln Variablen in jeder Programmiersprache. Bei Windows - oder Unix-Systemen speichern sie verschiedene Werte, damit Programme und Aufgaben die erforderlichen Betriebssysteminformationen oder Umgebungsinformationen abrufen können. Beispiel:

USERPROFILE: Benutzerverzeichnis innerhalb der OS-Dateien.

MAIL: wo die Mail eines Benutzers in den OS-Dateien gefunden werden kann.

Q: WAS ist die Pfadvariable speziell?

A: Die Variable PATH legt Verzeichnispfade fest, nach denen gesucht werden soll, wenn 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 sucht nach der Systempfadvariablen der Windows-Umgebung und testet jeden Speicherort für die angegebene ausführbare Datei. Das Hinzufügen eines Speicherorts zur Pfadvariablen ermöglicht es einer ausführbaren Datei, direkt aufgerufen werden.

Nach diesem Wikipedia-Artikel:

Wenn ein Befehl in eine Befehlsshell eingegeben wird oder ein Systemaufruf von einem Programm zum Ausführen eines Programms ausgeführt wird, durchsucht das System zuerst das aktuelle Arbeitsverzeichnis und sucht dann den Pfad, wobei jedes Verzeichnis von links nach rechts untersucht wird


F: WIE füge ich der Pfadvariablen einen Speicherort hinzu ?

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

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

  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 Umgebungsvariablen aus.
  4. Wählen Sie BEARBEITEN oder NEU. (für PFAD, den Sie höchstwahrscheinlich BEARBEITEN möchten).
  5. Fügen Sie Ihren Standortpfad hinzu. Beispiel: C:\wamp\bin\php\php5.5.12;

Ich hoffe, dies klärt einige der Verwirrung.

 10
Author: user945389,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-10-09 02:59:38

Windows 10 ohne admin-Konto -

Systemsteuerung - > Benutzerkonten - > Benutzerkonten - > Meine Umgebungsvariablen ändern

Hinweis Sie müssen Klicken Sie auf die Überschrift "Benutzerkonten" : Hinweis Sie müssen auf die Überschrift "Benutzerkonten" klicken"

Klicken Sie erneut auf die Überschrift "Benutzerkonten" : Beachten Sie erneut, dass Sie auf die Überschrift "Benutzerkonten" klicken müssen"

Meine Umgebungsvariablen ändern

Umgebungsvariable

 3
Author: Raf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-02-26 10:20:48