Fragen über
- Umgebungsvariablen setzen
- das
PATH
sind hier sehr verbreitet, und in den meisten Fällen sind die Antworten einander sehr ähnlich. In Zukunft wäre es schön, ein gutes Q / A dafür 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.
env
und die benötigten Optionen werden aufgelistet.CMD
und tipptset
oderPowerShell
tipptGet-Childitem env:
.Antworten:
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
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 in der Befehlszeile zu kennen und einzugeben . (Oder unter Windows das Dialogfeld Ausführen im Startmenü oder + R).Unter Linux und Mac OS X enthält es normalerweise alle
bin
undsbin
Verzeichnisse, die für den aktuellen Benutzer relevant sind. Unter Windows enthält es zumindest dieC:\Windows
undC:\Windows\system32
Verzeichnisse - das ist , warum Sie können laufencalc.exe
odernotepad.exe
die Befehlszeile aus oder Ausführen - Dialog, aber nichtfirefox.exe
. (Firefox befindet sich inC:\Program Files\Mozilla Firefox
. Informationen zum Einbinden von Firefox finden Sie hier .)Wenn Sie beispielsweise unter Windows in die Befehlszeile das Symbol eingeben
calc
(das Symbol.exe
kann weggelassen werden), wird der Windows-Rechner gestartet.* Sie können Unterstützung für andere Dateierweiterungen als
.exe
durch Bearbeiten hinzufügen%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%
befindetC:\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
Öffnen
Control Panel » System » Advanced » Environment Variables
.Geben Sie
control sysdm.cpl,,3
im Dialogfeld Ausführen ( + R) und klicken Sie aufEnvironment Variables
.Zum Bearbeiten von Benutzervariablen können Sie auch eingeben
im Dialogfeld "Ausführen".
Klicken Sie mit der rechten Maustaste auf (Arbeitsplatz), und klicken Sie auf Eigenschaften, oder drücken Sie einfach + Break.
Advanced » Environment Variables
.Advanced system settings » Environment Variables
.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 sind 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 den Rapid Environment Editor , mit dem 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 werden mit Prozentzeichen (%) um den Namen herum gekennzeichnet:
Echo
Um eine Umgebungsvariable des Wert in angezeigt wird
cmd.exe
, gebenecho %name%
.einstellen
Verwenden Sie zum Erstellen / Festlegen einer Variablen Folgendes
set varname=value
:Verwenden Sie zum Anhängen / Hinzufügen einer Variablen Folgendes
set varname=value;%varname%
:Auf diese Weise festgelegte Umgebungsvariablen stehen (für den Rest) der Dauer des Eingabeaufforderungsprozesses zur Verfügung, in dem sie festgelegt wurden, und stehen Prozessen zur Verfügung, die nach dem Festlegen der Variablen gestartet wurden.
setx
Um eine Variable dauerhaft zu erstellen / festzulegen , verwenden Sie :
setx varname "value"
Im Gegensatz dazu
set
gibt es kein Gleichheitszeichen und der Wert sollte in Anführungszeichen eingeschlossen werden, wenn er Leerzeichen enthält. Beachten Sie, dass Variablen mit Leerzeichen in einen String erweitern kann (zB%PATH%
wirdC:\Program Files
), so ist es am besten in Anführungszeichen Werte enthalten , die alle Variablen enthalten.Sie müssen
setx
Windows-Versionen vor Vista manuell hinzufügen .Windows XP Service Pack 2-Supporttools
Liste der Windows-Umgebungsvariablen
Hier ist eine Liste der Standardumgebungsvariablen , 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 befindet meist im
/etc
Ordner, aber benutzerspezifischen Werte können im Home - Ordner (zB befindet sich auf diese Variablen in Skripten gegeben werden/etc/profile
,$HOME/.bash_profile
). In der.profile
Datei 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 zum Festlegen einer Umgebungsvariablen
export
. Führen Sie Folgendes aus, um Ihre derzeit definierten Umgebungsvariablen in einem Terminal anzuzeigenenv
.Der
export
Befehl 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.Die C-Shell und ihre Nachkommen verwenden eine völlig andere Syntax. dort ist der Befehl
setenv
.Weitere Informationen zu diesem Thema finden Sie im Linux-Dokumentationsprojekt Path HOWTO .
Vielleicht ist OS X anders als allgemein angenommen "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, wie/bin
und/usr/sbin
./etc/paths.d
eingehenden Dateien - werden 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. zB / Programme / Mozilla / Kalender / bin.Externe Links:
quelle
SETX
dauerhafte Änderungen vornehmen. Es hat eine etwas andere Syntax.SETX
muss von derWindows Server 2003 Resource Kit
für frühere Versionen von hinzugefügt werdenNT
.WM_SETTINGCHANGE
ich es mir vorstelle, ausgestrahlt und daher Interessenten über die neuen Werte informiert. Deshalb habe ich gefragt, wie es hier zutrifft. Etwas fett zu machen ändert nichts an seiner Bedeutung und macht es auch nicht einfacher zu verstehen, genau wie den gleichen Satz zu wiederholen, nur lauter. Außerdem habe ich diesen Beitrag vor einigen Stunden bearbeitet, um speziell zu erwähnen, dass die Werte, die die Prozesse erhalten, beim Starten festgelegt werden.WM_SETTINGCHANGE
Es ist möglicherweise keine gute Idee, die Komplexität der Verteilung von Änderungen an Umgebungsvariablen sorgfältig zu erklären (im Ernst, Windows-API? Dies ist nicht die Zielgruppe dieser Frage!), Da dies den Leser verwirren kann, anstatt zu erklären, worum es sich bei diesen Variablen handelt .Dieser Beitrag ist aus technischer Sicht als Daniels, erklärt aber nicht so sehr die Konzepte.
Der Wikipedia-Artikel ist auch eine ausgezeichnete Referenz.
Linux und die meisten BSDs
In den meisten Befehlszeilen-Shells werden temporäre Umgebungsvariablen mit den Befehlen
export
(sh, bash, zsh) odersetenv
(csh, tcsh) festgelegt.Beispiele für das Voranstellen
$HOME/bin
zu$PATH
in bash oder zsh:(In diesem speziellen Fall
export
ist es unnötig, daPATH
es bereits Teil der Umgebung ist.)csh, tcsh:
Persistente Umgebungsvariablen können in mehreren separaten Phasen festgelegt werden:
Einloggen:
Einrichten der Anmeldesitzung: Linux
pam_env
, von dem normalerweise gelesen wird/etc/environment
Terminal-Logins: Die "Profil" -Dateien der Shell.
bash
verwendet/etc/profile
und die erste von:~/.bash_profile
,~/.bash_login
,~/.profile
. Handbuch Seitebash(1)
Abschnitt Invocation .Häufig enthält die Profildatei des Benutzers auch einen expliziten Aufruf
~/.bashrc
.zsh
: Manpage-zsh(1)
Abschnitt Startup / Shutdown-Dateien .csh
und andere Shells: Siehe entsprechende Handbuchseiten.Grafische Anmeldungen: Nicht sicher; kann je nach Login-Manager variieren. GDM scheint
~/.profile
mein System einzulesen .Öffnen eines Terminalfensters:
bash
verwendet/etc/bash.bashrc
und~/.bashrc
.Windows NT-Serie
cmd.exe
Verwenden Sieset name=value
in der Eingabeaufforderung ( ), um Umgebungsvariablen für dieses Fenster zu ändern.Anhängen
c:\bin
zu%PATH%
verwenden:Dies betrifft nur diesen
cmd.exe
Prozess und alle neuen 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
PATH
Variable 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 neuen Prozesse angewendet, die vom Explorer (der grafischen Shell) erstellt wurden, z. B. über das Startmenü.
Systemweite Umgebungsvariablen werden in der Registrierung gespeichert
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
und beim Systemstart geladen.Die Benutzerumgebung wird
HKCU\Environment
während der Benutzeranmeldung beibehalten und geladen.Standardmäßig sucht das System auch nach
set
Befehlen in derAUTOEXEC.NT
Datei.MS-DOS, 16-Bit-Windows, Windows 9x-Serie
command.com
Verwenden Sie in MS-DOS Prompt ( )set name=value
wie in WinNT.Ebenso
set
wirkt sich die interaktive Ausführung nur auf diese einecommand.com
Instanz sowie auf alle neuen Prozesse aus, die von ihr gestartet wurden.Um dauerhafte Änderungen vorzunehmen, fügen Sie entsprechende
set
Zeilen hinzu oder bearbeiten Sie sie. Starten SieC:\AUTOEXEC.BAT
anschließend den Computer neu.explorer.exe
über das MS-DOS-Eingabeaufforderungsfenster aus .VMS
(Konnte nicht widerstehen.)
DCL kennt kein "Pfad" -Konzept, es können jedoch verschiedene Symbol- und Befehlsdefinitionen eingegeben werden
SYS$LOGIN:LOGIN.COM
.quelle
DCL$PATH
für " automatische Fremdbefehle ".Für die globalen (nicht terminalen) Umgebungsvariablen der
bash
ShellPATH
befolge ich die in meiner Ubuntu VM-Installation verwendete Konvention - andere Shells variieren:Caveat: Die gesamte Shell-Startsequenz, die
.bashrc
,.profile
etc. Dateien in welcher Reihenfolge bezogen werden ?, wann muss ich jetzt wieder anmelden Sichtbarkeit zu erhalten , neu definiert Variablen, Aliase, etc ?, was ist der Unterschied zwischen einem Login , interaktive und nicht interaktive Shell - ich verwendecron
? und warum. ~/.bashrc
wird meine dummePATH
Variable bei der Ausführung von a immer länger? sind die Schlüsselfragen, die mir einfallen, wenn ich an meinePATH
Variable denke .Tatsächlich habe ich gerade mein gesamtes Bash-Startup-Dateiset komplett neu geschrieben und dabei Ideen aus den Ubuntu- und Cygwin-Skelettdateien übernommen. Hier sind einige meiner in-Sites:
PATH
und andere globale Umgebungsvariablen (dhLD_LIBRARY_PATH
) Variablen im.profile
;~/.profile
Quellen,$HOME/.bashrc
falls vorhanden.~/.bashrc
mit einem Test für die interaktive Ausführung, sonst beenden;shopt
Eingabeaufforderungen, Verlaufskontrollen, Terminaleinstellungen, Funktionsdefinitionen usw. (interaktive Einstellungen) in den Teil ein, der~/.bashrc
nur im interaktiven Modus ausgeführt werden darf..profile
und.bashrc
wie erwartet funktioniert. Das heißt, wenn keine besonderen Anforderungen bestehen, entfernen Sie~/.bash_profile
&~/.bash_login
;~/.bashrc
Datei und versorge sie einfach mit einem. ~/.bashrc
, um diese Änderungen in meiner aktuellen Shell abzurufen.PATH
, muss ich meine ändern und als Quelle angeben~/.profile
..profile
.Das sind meine 2 Cent zu diesem Thema.
quelle
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, in denen nach der Ausführung von Befehlen gesucht wird, 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 überprüft 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 :
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, wird hier beschrieben :
C:\wamp\bin\php\php5.5.12;
Ich hoffe, dies klärt einiges an Verwirrung.
quelle