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

539983
slhck

Fragen über

  • Umgebungsvariablen einstellen
  • 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 unter den wichtigsten Betriebssystemen ändern und verwenden?

Eine gute Antwort wäre eine einfache Erklärung, welche Umgebungsvariablen und insbesondere PATHfür das Betriebssystem von Bedeutung sind, sowie einfache Richtlinien zum Einstellen und Lesen dieser Variablen .

325
Ich habe es satt, jedes Mal manuell arbeiten zu müssen, wenn ich es brauchte. Ich schrieb einige Registry-Einträge, um Kontextmenüs für AddToPath und RemoveFromPath zu Ordnern hinzuzufügen. Dazu benutzte ich eine kostenlose Anwendung namens pathed.exe. Hier ist der Link zum vollständigen Handbuch: http://www.addictivetips.com/windows-tips/add-remove-any-folder-to-path-variable-using-context-menu/ Ich kann jetzt sehr einfach Ordner hinzufügen zu PATH Variable oder entfernen Sie sie daraus, ohne dass Sie eine Datei bearbeiten oder sich Sorgen machen müssen, dass die Formatierung der Variablen beeinträchtigt wird. Ich hoffe es hilft. =) Haroon Q. Raja vor 12 Jahren 2
In Windows 8 verwendet Search die schnellste Navigation zu sich ändernden System- und Benutzerumgebungsvariablen. Win+ Wöffnet die Suche nach allen Einstellungen. Suchen Sie nach "env" und die erforderlichen Optionen werden aufgelistet. FRIdSUN vor 10 Jahren 0
Ich denke, es ist schneller und übersichtlicher, wenn Sie `CMD` öffnen und` set` oder `PowerShell` eingeben und` Get-Childitem env: `eingeben. paradroid vor 10 Jahren 0
Unter Windows gibt es eine Verknüpfung zum Öffnen von Eigenschaften von System, z. Systemsteuerung -> System Es ist die WIN-Taste auf der Tastatur + Pause / Pause (WIN + Pause). Dies ist äußerst hilfreich und beschleunigt das Einstellen neuer Umgebungsvariablen unter Win8, da dort in der modernen Benutzeroberfläche durch mehrere Fenster geklickt werden muss (Ja. Wenn es modern ist, ziehe ich einen Kaktus auf meiner Handfläche), was einfach ärgerlich ist. Natürlich können Sie ein Powershell-Skript erstellen oder den Befehl setx verwenden und machen sich keine Sorgen mehr darüber: D termil0r vor 11 Jahren 1
Wenn Sie die Pfadvariable häufig bearbeiten (z. B. beim Einrichten eines neuen Systems), kann es hilfreich sein, eine Verknüpfung zum Dialogfeld Systemeigenschaften auf dem Desktop zu haben. Klicken Sie dazu mit der rechten Maustaste auf den Desktop, wählen Sie Neue Verknüpfung aus, und geben Sie systempropertiesadvanced.exe ein. Anschließend können Sie auf den Link klicken, um zum Dialogfeld Systemeigenschaften zu gelangen. Klicken Sie dann auf Umgebungsvariablen, um zum Dialogfeld mit den Pfadeinstellungen zu gelangen. Brian Burns vor 9 Jahren 0
Toller Post darüber: http://www.windows-commandline.com/set-path-command-line/ Royi vor 7 Jahren 0

4 Antworten auf die Frage

316
Daniel Beck

Was sind Umgebungsvariablen?

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

Pfad

Eine der bekanntesten wird PATHunter Windows, Linux und Mac OS X bezeichnet. Sie gibt die Verzeichnisse an, in denen sich ausführbare Programme * auf dem Computer befinden, die gestartet werden können, ohne dass der gesamte Dateipfad in die Befehlszeile eingegeben wird . (Oder unter Windows das Dialogfeld Ausführen im Startmenü oder Win+ R).

Unter Linux und Mac OS X enthält es normalerweise alle binund sbinfür den aktuellen Benutzer relevante Verzeichnisse. Unter Windows enthält es zumindest die C:\Windowsund C:\Windows\system32Verzeichnisse - das ist, warum Sie können laufen calc.exe oder notepad.exedie Befehlszeile aus oder Ausführen - Dialog, aber nicht firefox.exe. (Firefox befindet sich in C:\Program Files\Mozilla Firefox. Informationen zum Einbinden von Firefox finden Sie hier .)

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

* Sie können Unterstützung für Dateierweiterungen hinzufügen, außer .exedurch Bearbeiten %PATHEXT%.

Andere

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

Neue Umgebungsvariablen erstellen

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

Sie können dies verwenden, wenn Sie Skripts oder Programme schreiben, die auf mehreren Computern installiert oder bereitgestellt werden und Werte angeben müssen, die für diese Computer spezifisch sind. Ein ähnlicher Effekt lässt sich zwar mit programmspezifischen Konfigurationseinstellungen erzielen, aber es ist einfacher, eine Umgebungsvariable zu verwenden, wenn mehrere Programme auf denselben Wert zugreifen müssen.

 

Windows

GUI

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

  2. Geben Sie control sysdm.cpl,,3in das Dialogfeld Ausführen ( Win+ R) ein 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.

    • In XP klicken Sie auf Advanced » Environment Variables.
    • In Vista + klicken Sie auf Advanced system settings » Environment Variables.
  4. Es gibt viele andere Möglichkeiten, um an dieselbe Stelle zu gelangen, beispielsweise durch Eingabe von "Umgebungsvariablen" in das Startfeld / Bildschirmsuchfeld usw.

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 den Rapid Environment Editor, mit dem Sie Umgebungsvariablen in Windows einstellen und ändern können, ohne tief in die Systemeinstellungen gehen zu müssen. Ein weiteres Open-Source-Programm für Windows, mit dem die Pfadumgebung sehr bequem bearbeitet werden kann, ist der Path Editor .

Befehlszeile

Format

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

%name% 

Echo

Um eine Umgebungsvariable des Wert in angezeigt wird cmd.exe, geben echo %name%.

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

einstellen

Um eine Variable zu erstellen / setzen, verwenden Sie set varname=value:

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

Um eine Variable anzufügen / hinzuzufügen, 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 für (den Rest) der Dauer des Eingabeaufforderungsprozesses, in dem sie festgelegt werden, und für Prozesse verfügbar, die nach dem Festlegen der Variablen gestartet werden.

setx

Um eine Variable dauerhaft zu erstellen oder festzulegen, 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 dazu setgibt es kein Gleichheitszeichen und der Wert sollte in Anführungszeichen eingeschlossen werden, wenn er Leerzeichen enthält. Beachten Sie, dass sich Variablen zu einer Zeichenfolge mit Leerzeichen erweitern können (z. B. %PATH%wird C:\Program Files). Es empfiehlt sich daher, Anführungszeichen um Werte einzuschließen, die beliebige Variablen enthalten.

Sie müssen setxWindows-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 bei den meisten Namen in Windows ist diese Groß- und Kleinschreibung nicht zu beachten.

 

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

Umgebungsvariablen in Linux wird ein Dollarzeichen ($) vorangestellt, beispielsweise $ HOME oder $ HOSTNAME. Viele bekannte und Standardvariablen sind in Großbuchstaben angegeben, um genau dies zu bezeichnen. Beachten Sie, dass für Variablennamen die Groß- und Kleinschreibung beachtet wird. Dies bedeutet, dass $ User und $ USER aus Sicht der Shell völlig unabhängig sind.

Unix-Derivate definieren systemweite Variablen in Shell-Skripts, die sich meistens im /etcOrdner befinden, aber benutzerspezifische Werte können diesen Variablen in Skripten im Basisordner (z . B. /etc/profile, $HOME/.bash_profile) zugewiesen werden . Die .profileDatei im Basisordner ist ein üblicher Ort zum Definieren von Benutzervariablen.

Variablen setzen

Diese Dateien sind reguläre Shell-Skripte und können mehr als nur Umgebungsvariablendeklarationen enthalten. Um eine Umgebungsvariable festzulegen, verwenden Sie export. Um Ihre aktuell definierten Umgebungsvariablen in einem Terminal anzuzeigen, führen Sie den Befehl aus env.

Der exportBefehl 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 vorzuziehen, wenn die 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 ist der Befehl setenv.

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

Im Gegensatz zu der weit verbreiteten Meinung ist OS X eher "Unix" als Linux. Zusätzlich zu den bereits erwähnten Dateien kann $ PATH in diesen Dateien geändert werden:

  • /etc/pathsenthält alle Standardverzeichnisse, die dem Pfad hinzugefügt werden, wie /binund /usr/sbin.
  • Alle Dateien in /etc/paths.d- Diese Datei wird normalerweise 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:

Umgebungsvariablen in XP
Windows XP Service Pack 2-Supporttools (umfasst 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

Unter Windows Vista können Sie `SETX 'verwenden, um dauerhafte Änderungen vorzunehmen. Es hat eine etwas andere Syntax. Für frühere Versionen von `NT` muss` SETX` aus dem `Windows Server 2003 Resource Kit` hinzugefügt werden. paradroid vor 12 Jahren 10
@paradroid Nizza, wusste das nicht (kein Windows-Benutzer). Dieses Thema ist Community-Wiki. Sie können diese Informationen einfach bearbeiten. Daniel Beck vor 12 Jahren 1
Was Sie als "Shell" bezeichnen, sind keine Umgebungsvariablen. Sie gelten auch nicht nur für den Windows Explorer. Dies ist eine Umgebungsvariable _template_, an der jedes Programm teilnehmen kann, das das Protokoll versteht. Siehe [diese ServerFault-Antwort] (http://serverfault.com/questions/240570/windows-environment-variables-and-manual-registry-editing-no-wrong-values-issue/241012#241012). JdeBP vor 12 Jahren 0
@JdeBP Ich verstehe nicht, wie das hier zutrifft, da der Benutzer erwähnt hat, dass es nicht mit der Bearbeitung der Registrierung funktionierte, aber * funktionierte * beim Bearbeiten mit dem Dialog. Worauf willst du hinaus? Daniel Beck vor 12 Jahren 0
Der Punkt wird ziemlich klar gemacht. Hier ist es fett gedruckt: ** Dies sind keine Umgebungsvariablen, sondern lediglich ein _template_, aus denen Umgebungsvariablen _ aufgebaut sind, und sie sind _nicht _ nur auf Microsoft Windows Explorer beschränkt (die "Shell"). ** JdeBP vor 12 Jahren 0
@JdeBP Der Abschnittstitel sollte * darauf verweisen, wie diese Werte auf der Benutzeroberfläche * festgelegt werden, die unter Windows * shell * genannt wird, im Gegensatz zum folgenden Abschnitt * Befehlszeilenschnittstelle *. Ich habe das editiert, bevor ich deinen Kommentar vor 10 Stunden gesehen habe. Niemand hat jemals erwähnt, dass dies nur für den Explorer gilt. Daniel Beck vor 12 Jahren 2
@JdeBP Die von Ihnen verknüpfte Antwort trifft in diesem Fall nicht wirklich zu, da Sie über das Festlegen der Werte in der Registrierung gesprochen haben. Bei der Einstellung über "Dialog" wird "WM_SETTINGCHANGE" übertragen, was ich mir vorstellen kann, und interessierte Parteien über die neuen Werte informieren. Deshalb habe ich gefragt, wie es hier angewendet wird. Etwas fett zu machen ändert nichts an seiner Bedeutung und macht es auch nicht verständlicher, genau so, als würde man denselben Satz 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 Start festgelegt werden. Daniel Beck vor 12 Jahren 1
@JdeBP Sie werden möglicherweise auch feststellen, dass die Frage eher grundlegend ist. Die genaue Verteilung der Änderungen an den Umgebungsvariablen (ernsthaft: "WM_SETTINGCHANGE"? Windows-API? Dies ist nicht die Zielgruppe dieser Frage!), Ist möglicherweise keine gute Idee, da dies den Leser verwirren könnte, anstatt zu erklären, was diese sind Variablen sind ungefähr. Daniel Beck vor 12 Jahren 3
@muntoo Vielen Dank, dass Sie an dieser Antwort gearbeitet haben. Ich muss allerdings nach dem Wortlaut fragen. * Es gibt die Verzeichnisse an, in denen sich ausführbare Programme auf dem Computer befinden. Programme, die sich in den von PATH angegebenen Verzeichnissen befinden, können gestartet werden, ohne den gesamten Dateipfad in die Befehlszeile einzugeben. * - Wie auch immer Sie ihn geändert haben (abgesehen von Grammatikproblemen)? Programme können sich ziemlich überall befinden, der Pfad wird nur zum Lokalisieren verwendet. Ich stimme dem nicht zu, wie der erste Satz herauskam. Daniel Beck vor 12 Jahren 1
@Daniel Ich habe versucht, es in kürzere Sätze zu "zerhacken" (was jeder Englischlehrer zu befürworten scheint), aber ich habe diesen Fehler versehentlich eingeführt. (Behoben, jetzt.) Ich habe auch ein vorgeschlagenes "Zum Beispiel" hinzugefügt, das das Verständnis erleichtern könnte. Es ist jedoch ein bisschen überflüssig. Vielleicht kannst du helfen, es etwas besser in den Beitrag zu integrieren? Mateen Ulhaq vor 12 Jahren 0
Ich würde sagen, es ist eine sehr ausführliche Antwort, die sicherlich vielen Menschen helfen wird, allen, die mitgeholfen haben. Ich denke nicht, dass wir uns auch mit Windows-Interna befassen sollten, das wollte ich sowieso nicht. slhck vor 12 Jahren 1
Ich denke nicht, dass "Rapid Environment Editor" oder "Path Editor" Open Source sind. [RapidEE-Lizenz] (http://www.rapidee.com/de/license), keine Lizenz für `Path Editor`. Vielleicht haben Sie an [PathEd] (http://pathed.sourceforge.net/) gedacht? Ehtesh Choudhury vor 10 Jahren 0
@ Daniel: Was meinst du mit "beachte, dass * wenn *% Leerzeichen enthalten", wenn% PATH% enthalten ist? Pacerier vor 9 Jahren 0
@Pacerier Diese Antwort wurde gemeinsam bearbeitet und dieser Abschnitt wurde nicht von mir geschrieben. Das heißt, ich habe es gerade überprüft, und es scheint, dass "% PATH%" standardmäßig Einträge enthält, die sich auf Ordner in "C: \ Programmdateien" beziehen, was bedeutet, dass es sich um eine Zeichenfolge mit Leerzeichen handelt, die ein korrektes Anführungszeichen benötigt. Daniel Beck vor 9 Jahren 0
@ DanielBeck, Ok, ich habe es bearbeitet. Pacerier vor 9 Jahren 0
@ Pacerier Ich glaube nicht, dass das stimmt. Es gibt keine vernünftige Konfiguration, bei der "PATH" * * "C: \ Program files" entspricht. Daniel Beck vor 9 Jahren 0
@DanielBeck, warum nicht? Ich habe keine Probleme. Pacerier vor 9 Jahren 0
Anführungszeichen sind erforderlich, wenn das Argument für den set-Befehl von Windows Leerzeichen enthält. Die beiden folgenden Befehle funktionieren, der erste lässt die Variablen die Anführungszeichen enthalten: `set FunnyCatPictures =" C: \ Users \ Daniel \ Pictures \ Funny Cat Pictures "` und der zweite nicht: `set" FunnyCatPictures = C: \ Users \ Daniel \ Bilder \ Lustige Katzenbilder "` Melebius vor 9 Jahren 0
@Tripleee Ich bin nicht überzeugt, dass deine Bearbeitung korrekt ist. "export VAR = value" funktioniert für mich in 'dash', und [die POSIX-Manpage für den Export] (http://www.unix.com/man-page/POSIX/1posix/export) zeigt die Syntax als `export an Name [= Wort] `. Können Sie eine Referenz für Ihren Antrag angeben? G-Man vor 9 Jahren 0
@ G-Man [ich kann es jetzt] (http://unix.stackexchange.com/questions/193095/where-is-export-var-value-not-available) - danke für die Nachfrage (-: Vorschlag zur Bearbeitung bearbeiten.). tripleee vor 9 Jahren 0
62
grawity

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 $HOME/binzu $PATHin bash oder zsh:

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

    (In diesem Fall exportist dies nicht erforderlich, da PATHes bereits Teil der Umgebung ist.)

  • csh, tcsh:

    setenv PATH "$HOME/bin:$PATH" 

Persistente Umgebungsvariablen können in mehreren Schritten festgelegt werden:

  • Anmeldung:

    • Anmeldesitzung einrichten: Linux pam_env, das normalerweise aus liest/etc/environment

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

      • bashverwendet /etc/profileund die erste von: ~/.bash_profile, ~/.bash_login, ~/.profile. Handbuch Seite bash(1)Abschnitt Invocation .

        Oft enthält die Profildatei des Benutzers auch einen expliziten Aufruf ~/.bashrc.

      • zsh: Handbuch Seite zsh(1)Abschnitt Dateien Start / Herunterfahren .

      • csh und andere Shells: Siehe entsprechende Handbuchseiten.

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

  • Öffnen eines Terminalfensters:

    • bashverwendet /etc/bash.bashrcund ~/.bashrc.

Windows NT-Serie

  • cmd.exeVerwenden Sie set name=valuein Eingabeaufforderung ( ), um Umgebungsvariablen für dieses Fenster zu ändern.

    Anhängen c:\binzu %PATH%verwenden:

    set path=%path%;c:\bin 

    Dies betrifft nur diesen cmd.exeProzess und alle neuen Prozesse, die von ihm gestartet werden.

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

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

    Änderungen werden in der Registrierung (siehe unten) gespeichert und gelten sofort für alle neuen Prozesse, die vom Explorer (die grafische Shell) erstellt wurden, beispielsweise über das Startmenü.

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

    Die Benutzerumgebung wird HKCU\Environmentwährend der Benutzeranmeldung beibehalten und geladen.

  • Standardmäßig sucht das System auch nach setBefehlen in der AUTOEXEC.NTDatei.

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

  • command.comVerwenden Sie in MS-DOS-Eingabeaufforderung ( ) set name=valuewie in WinNT.

    In ähnlicher Weise setbetrifft die interaktive Ausführung nur diese eine command.comInstanz sowie alle neuen Prozesse, die von ihr gestartet werden.

  • Um dauerhafte Änderungen vorzunehmen, fügen Sie entsprechende setZeilen hinzu oder bearbeiten Sie sie und starten Sie sie C:\AUTOEXEC.BATanschließend neu.

    • Umgehung, 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 → bei gedrückter STRG-Taste + Umschalttaste, klicken Sie auf Abbrechen ), und führen Sie explorer.exedas MS-DOS-Eingabeaufforderungsfenster aus .

VMS

(Konnte nicht widerstehen.)

DCL hat kein Konzept für "Pfad", es können jedoch verschiedene Symbol- und Befehlsdefinitionen eingegeben werden SYS$LOGIN:LOGIN.COM.

Der VMS-Abschnitt ist falsch. DCL hat "DCL $ PATH" für "[automatische Fremdbefehle] (http://h71000.www7.hp.com./doc/731final/6489/6489pro_033.html#map_nosymb)". JdeBP vor 12 Jahren 2
@grawity, was meinst du mit "vms konnte nicht widerstehen ..."? Pacerier vor 9 Jahren 2
9
Billy McCloskey

Für die globalen Umgebungsvariablen der bashShell PATH(nicht für das Terminal) befolge ich die Konventionen, die in meiner Ubuntu VM-Installation verwendet werden. Andere Shells variieren:

Caveat: Die gesamte Shell-Startsequenz, die .bashrc, .profileetc. 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 - verwende ich cron? Und warum wächst . ~/.bashrcmeine blöde PATHVariable immer länger? sind die Schlüsselfragen, die mir einfallen, wenn ich an meine PATHVariable denke .

In der Tat habe ich gerade mein gesamtes bash-Startup-Set komplett neu geschrieben und dabei die Ideen aus den Ubuntu- und Cygwin-Skeleton-Dateien übernommen. Hier sind einige meiner Sites:

  1. Exportieren Sie die PATHund andere globale Umgebungsvariablen (dh LD_LIBRARY_PATH) in die .profile;
  2. Verwenden Sie Logik ~/.profilefür die Quelle, $HOME/.bashrcfalls vorhanden.
  3. Zaunausführung des ~/.bashrcmit einem Test für die interaktive Ausführung, ansonsten beenden;
  4. Setzen Sie alle Aliasnamen, shoptEingabeaufforderungen, Verlaufssteuerung, Terminalsetup, Funktionsdefinition usw. (interaktives Setup) in den Teil, der ~/.bashrcgeschützt ist und nur im interaktiven Modus ausgeführt werden kann.
  5. Befreien Sie sich von den anderen Bash-Startdateien, da deren Vorhandensein bestimmt, ob der Steuerungspfad durchläuft .profileund .bashrcwie erwartet funktioniert. Das heißt, es sei denn, es gibt spezielle Anforderungen, um etwas anderes zu tun, entfernen Sie ~/.bash_profile& ~/.bash_login;
  6. Wenn ich an der Bash-Eingabeaufforderung bin und einige Standardeinstellungen aktualisieren muss, bearbeite ich meine ~/.bashrcDatei und füge sie dann einfach mit einem ein . ~/.bashrc, um diese Änderungen in meine aktuelle Shell zu übernehmen.
  7. Wenn ich eine Umgebungsvariable wie ändere PATH, muss ich meine ändern ~/.profile;
  8. Ich setze meine Anrufe ein, um bestimmte Setups zu filtern, zu portieren und zu brühen .profile.

Das sind meine 2 Cent zu diesem Thema.

6
user945389

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 erhalten. Zum Beispiel:

USERPROFILE: Benutzerverzeichnis innerhalb der OS-Dateien.

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

F: WAS ist die PATH-Variable speziell?

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

Es sucht nach der Windows-Umgebungssystem-PATH-Variablen und testet jeden Speicherort auf die angegebene ausführbare Datei. Wenn Sie also der PATH-Variable einen Ort hinzufügen, kann eine ausführbare Datei direkt aufgerufen werden.

Laut diesem Wikipedia-Artikel :

Wenn ein Befehl in einer 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 durchsucht dann den Pfad, wobei jedes Verzeichnis von links nach rechts untersucht wird


F: WIE fügt man der PATH-Variablen einen Ort hinzu?

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

Eine Möglichkeit dazu ist hier beschrieben :

  1. Öffnen Sie das Startmenü und klicken Sie mit der rechten Maustaste auf Computer. Wählen Sie Eigenschaften aus.
  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 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, das macht einige der Verwirrung klar.