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.
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 +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
Öffnen Sie
Control Panel » System » Advanced » Environment Variables
.-
Geben Sie
control sysdm.cpl,,3
im Dialogfeld Ausführen ein (+R) und klicken Sie aufEnvironment Variables
.
Zum Bearbeiten von Benutzervariablen können Sie auch%windir%\System32\rundll32.exe sysdm.cpl,EditEnvironmentVariables
Im Dialog Ausführen.
-
Rechtsklick (My) Computer und klicken Sie auf Eigenschaften, oder drücken Sie einfach+Pause.
- Klicken Sie in XP auf
Advanced » Environment Variables
. - Klicken Sie in Vista+ auf
Advanced system settings » Environment Variables
.
- Klicken Sie in XP auf
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ältsetx
)
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
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, daPATH
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 Seitebash(1)
Abschnitt Aufruf.Häufig enthält die Profildatei des Benutzers auch einen expliziten Aufruf von
~/.bashrc
. zsh
: Handbuch Seitezsh(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 VariablePATH
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 DateiAUTOEXEC.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 einecommand.com
Instanz zusammen mit allen neuen Prozessen, die von ihr gestartet werden. -
Um dauerhafte Änderungen vorzunehmen, fügen Sie die entsprechenden
set
Zeilen inC:\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.
- 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
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.
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:
- Exportieren Sie die Variablen
PATH
und andere globale Umgebungsvariablen (dhLD_LIBRARY_PATH
) in die Variablen.profile
; - Verwenden Sie Logik in
~/.profile
, um$HOME/.bashrc
wenn es existiert; - - Ausführung des
~/.bashrc
mit einem Test zur interaktiven Ausführung, andernfalls beenden; - 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; - 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
; - 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. - Wenn ich eine Umgebungsvariable wie
PATH
ändere, muss ich meine~/.profile
; - Ich habe meine Aufrufe an fink, Port und Brew-spezifische Setups in
.profile
gesetzt.
Das ist meine 2 Cent auf diese Thema.
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:
- Öffnen Sie das Startmenü und klicken Sie mit der rechten Maustaste auf Computer. Wählen Sie Eigenschaften.
- Wählen Sie Erweiterte Systemeinstellungen.
- Wählen Sie auf der Registerkarte Erweitert Umgebungsvariablen aus.
- Wählen Sie BEARBEITEN oder NEU. (für PFAD, den Sie höchstwahrscheinlich BEARBEITEN möchten).
- Fügen Sie Ihren Standortpfad hinzu. Beispiel:
C:\wamp\bin\php\php5.5.12;
Ich hoffe, dies klärt einige der Verwirrung.
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" :
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