2011-05-16 18:25:57 +0000 2011-05-16 18:25:57 +0000
347
347

Co to są PATH i inne zmienne środowiskowe i jak mogę je ustawić lub użyć?

Pytania o

  • ustawianie zmiennych środowiskowych
  • PATH

są tu bardzo powszechne i w większości przypadków odpowiedzi są bardzo podobne do siebie. W przyszłości dobrze byłoby mieć do tego dobry Q/A.

Tak więc pytanie jest: Co to są zmienne środowiskowe, jak np. wykonywalny PATH i jak mogę je zmienić i używać na głównych systemach operacyjnych?

Dobra odpowiedź zawierałaby proste wyjaśnienie co zmienne środowiskowe, a w szczególności PATH oznaczają dla systemu operacyjnego, a także proste wskazówki jak je odpowiednio ustawić i odczytać.

Odpowiedzi (5)

337
337
337
2011-05-16 18:44:52 +0000

What are Environment Variables?

Environment variables hold values related to the current environment, like the Operating System or user sessions.

Path

One of the most well-known is called PATH on Windows, Linux and Mac OS X. It specifies the directories in which executable programs* are located on the machine that can be started without knowing and typing the whole path to the file on the command line. (Lub w Windows, okno dialogowe Run w menu Start lub

+R).

Na Linuksie i Mac OS X, zwykle zawiera wszystkie katalogi bin i sbin odpowiednie dla aktualnego użytkownika. W systemie Windows zawiera on co najmniej katalogi C:\Windows i C:\Windows\system32 - dlatego można run calc.exe lub notepad.exe z linii poleceń lub okna dialogowego Run, ale nie firefox.exe. (Firefox znajduje się w C:\Program Files\Mozilla Firefox. Aby dowiedzieć się, jak włączyć Firefoksa, przejdź tutaj .)

Na przykład, wpisanie calc (w wierszu poleceń w Windows można pominąć .exe can) spowoduje uruchomienie Kalkulatora Windows.

* Możesz dodać obsługę rozszerzeń plików innych niż .exe, edytując %PATHEXT% .

Inne

Inne zmienne mogą wskazywać programom, jakiego rodzaju terminal jest używany (TERM na Linuksie/Mac OS X), lub, w przypadku Windows, gdzie znajduje się folder Windows (np, %WINDIR% is C:\Windows).

Creating new environment variables

In Windows, Linux and Unix, it’s possible to create new environment variables, whose values are then made available to all programs upon launch.

You can use this when writing scripts or programs that are installed or deployed to multiple machines and need to reference values that are specific to these machines. Podobny efekt można osiągnąć przy użyciu ustawień konfiguracyjnych specyficznych dla danego programu, ale łatwiej jest to zrobić przy użyciu zmiennej środowiskowej, jeśli wiele programów musi mieć dostęp do tej samej wartości.

 

Windows

GUI

  1. Open Control Panel » System » Advanced » Environment Variables.

  2. Wpisz control sysdm.cpl,,3 w oknie dialogowym Uruchom (

    +R) i kliknij Environment Variables. Do edycji zmiennych użytkownika można również wpisać

  3. Kliknij prawym przyciskiem myszy (Mój) Komputer i kliknij na Właściwości, lub po prostu wciśnij

    +Przerwij.

  4. Istnieje wiele innych sposobów dotarcia do tego samego miejsca, np. wpisując “zmienne środowiskowe” w Menu Start/pole wyszukiwania ekranowego itd.

Zmienne środowiskowe w systemie Windows są podzielone na wartości specyficzne dla użytkownika i maszyny/systemu. Można tam przeglądać i edytować ich wartości. Ich aktualne wartości po uruchomieniu są dostępne dla wszystkich programów.

Istnieje również Rapid Environment Editor , który pomaga w ustawianiu i zmianie zmiennych środowiskowych w systemie Windows bez konieczności zagłębiania się w ustawienia systemowe. Innym otwartym programem dla Windows, za pomocą którego można bardzo wygodnie edytować środowisko ścieżek jest Edytor Ścieżek .

Linia poleceń

Format

Zmienne środowiskowe w Windows są oznaczone znakami procentowymi (%) otaczającymi nazwę:

%name%

echo

Aby wyświetlić wartość zmiennej środowiskowej w cmd.exe, wpisz echo %name%.

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

set

To create/set a variable, use set varname=value:

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

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

To append/add a variable, use set varname=value;%varname%:

C:\>set Penguins=C:\Linux

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

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

Environment variables set in this way are available for (the rest of) the duration of the Command Prompt process in which they are set, and are available to processes that are started after the variables were set.

setx

To create/set a variable permanently , użyj 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

W przeciwieństwie do set, nie ma znaku równości i wartość powinna być zamknięta w cudzysłowie, jeśli zawiera jakieś spacje. Zauważ, że zmienne mogą rozwinąć się do łańcucha ze spacjami (np. %PATH% staje się C:\Program Files), więc najlepiej jest dołączyć cudzysłowy wokół wartości, które zawierają dowolne zmienne.

Należy ręcznie dodać setx do wersji Windows wcześniejszych niż Vista. Windows XP Service Pack 2 Support Tools

List of Windows Environment Variables

Here is a list of default environment variables , which are built into Windows. Niektóre z nich to:%WINDIR%, %SystemRoot%, %USERPROFILE%, oraz %APPDATA%. Jak większość nazw w Windows, nie uwzględnia się w nich wielkości liter.

 

Uniksowe pochodne (FreeBSD, GNU / Linux, OS X)

Zmienne środowiskowe w Linuksie są prefiksowane znakiem dolara ($), takim jak $HOME lub $HOSTNAME. Wiele znanych i standardowych zmiennych jest napisanych wielkimi literami, aby to właśnie oznaczało. Należy pamiętać, że w nazwach zmiennych rozróżniana jest wielkość liter, co oznacza, że $User i $USER są całkowicie niezwiązane z punktu widzenia powłoki.

Uniksowe pochodne definiują systemowe zmienne szerokie w skryptach powłoki znajdujących się głównie w folderze /etc, ale  wartości specyficzne dla użytkownika mogą być nadawane tym zmiennym w skryptach znajdujących się w folderze głównym (np. /etc/profile, $HOME/.bash_profile). Plik .profile w folderze domowym jest częstym miejscem definiowania zmiennych użytkownika.

Ustawienie zmienne

Pliki te są zwykłymi skryptami powłoki i mogą zawierać więcej niż tylko deklaracje zmiennych środowiskowych. Aby ustawić zmienną środowiskową, użyj export. Aby pokazać aktualnie zdefiniowane zmienne środowiskowe w terminalu, wykonaj env.

Polecenie export jest standardowym sposobem definiowania zmiennych. Składnia jest bardzo intuicyjna. Wynik jest identyczny dla tych dwóch linii, ale pierwsza alternatywa jest lepsza w przypadku, gdy konieczna jest przenośność w stosunku do powłoki pre-POSIX Bourne'a.

var=value; export var
export var=value

Powłoka C i jej potomkowie używają zupełnie innej składni; tam poleceniem jest setenv.

Zobacz projekt dokumentacji Linuksa, Path HOWTO aby dowiedzieć się więcej na ten temat.

Być może wbrew powszechnemu przekonaniu, OS X jest bardziej “uniksowy” niż Linux. Dodatkowo do plików już wymienionych, $PATH może być modyfikowany w tych plikach:

  • /etc/paths zawiera wszystkie domyślne katalogi, które są dodawane do ścieżki, jak /bin i /usr/sbin.
  • Dowolny plik w /etc/paths.d - powszechnie używany przez instalatorów do udostępniania plików wykonywalnych, które dostarczają z powłoki bez dotykania systemowych lub specyficznych dla użytkownika plików konfiguracyjnych. Pliki te zawierają po prostu jedną ścieżkę na linię, np, /Programy/Mozilla/Calendar/bin.

 

Linki zewnętrzne:

Zmienne środowiskowe w XP Windows XP Service Pack 2 Support Tools (Zawiera setx) Zmienne środowiskowe w Windows Vista i Windows 7 Adding executables to the Run Dialog Box Mac OSX Tips - Setting Environment Variables TLDP: Path Howto

64
64
64
2011-05-16 19:03:17 +0000

Ten post jest z bardziej technicznego punktu widzenia niż Daniela, ale nie wyjaśnia tak bardzo pojęć.

  • *

artykuł w Wikipedii jest również doskonałym odniesieniem.

Linux i większość BSD

W większości powłok z linii poleceń, tymczasowe zmienne środowiskowe są ustawiane za pomocą komend export (sh, bash, zsh) lub setenv (csh, tcsh).

  • Przykłady dla poleceń prepending $HOME/bin do $PATH w bash lub zsh:

  • csh, tcsh:

Zmienne środowiskowe stałe mogą być ustawiane w kilku oddzielnych etapach:

  • Login:

  • Otwarcie okna terminala:

Windows NT series

  • W Prompie Poleceń (cmd.exe), użyj set name=value do zmiany zmiennych środowiskowych dla tego okna.

  • Aby dokonać trwałych zmian, użyj Panelu sterowania → System → Zaawansowane → Zmienne środowiskowe. docs )

  • Ogólnosystemowe zmienne środowiskowe są przechowywane w Rejestrze, HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment, i ładowane przy starcie systemu.

  • Domyślnie system szuka również komend set w pliku AUTOEXEC.NT.

MS-DOS, 16-bitowy Windows, Windows serii 9x

  • W MS-DOS Prompt (command.com), użyj set name=value, jak w WinNT.

  • Aby wprowadzić trwałe zmiany, dodaj lub edytuj odpowiednie linie set w C:\AUTOEXEC.BAT, a następnie zrestartuj komputer.

VMS

(Couldn’t resist.)

DCL nie ma pojęcia “ścieżki”, ale w SYS$LOGIN:LOGIN.COM można umieścić różne definicje symboli i komend.

9
9
9
2014-01-15 17:49:57 +0000

Dla globalnych (nieterminalistycznych) zmiennych środowiskowych powłoki bash, stosuję się do konwencji użytej w mojej instalacji maszyny wirtualnej Ubuntu - inne powłoki będą się różnić:

Caveat: Cała sekwencja uruchamiania powłoki, z których plików PATH, .bashrc, etc. pochodzą w jakiej kolejności?, kiedy muszę się ponownie zalogować, aby uzyskać widoczność do nowo zdefiniowanych zmiennych, aliasów, etc.? jaka jest różnica pomiędzy powłoką logującą, interaktywną i nieinteraktywną - używam .profile? i dlaczego kiedy robię cron, moja głupia zmienna . ~/.bashrc rośnie coraz bardziej i bardziej? czy są to kluczowe pytania, które przychodzą mi na myśl, kiedy myślę o mojej zmiennej PATH.

W rzeczywistości, po prostu całkowicie przerobiłem mój cały zestaw plików startowych bash biorąc pod uwagę pomysły z Ubuntu i plików szkieletu cygwina, a oto niektóre z moich stron:

  1. Eksportować the PATH i inny globalny środowiskowy zmienny (i.e. PATH) zmienny w the LD_LIBRARY_PATH;
  2. Użyj logiki w .profile, aby znaleźć źródło ~/.profile, jeśli istnieje;
  3. Ogrodzenie wykonania $HOME/.bashrc z testem do interaktywnego wykonania, wyjście z niego w inny sposób;
  4. Umieść wszystkie aliasy, ~/.bashrc, prompt setup, kontrolę historii, konfigurację terminala, definicję funkcji, itp. (interaktywna konfiguracja powiązana) w części shopt, która jest chroniona, aby działać tylko w trybie interaktywnym;
  5. usuń pozostałe pliki startowe basha, ponieważ ich istnienie determinuje, czy ścieżka sterowania przez ~/.bashrc i .profile działa zgodnie z oczekiwaniami. To znaczy, o ile nie ma szczególnych wymagań, aby zrobić inaczej, usuń .bashrc i ~/.bash_profile;
  6. Kiedy jestem przy bash prompt i muszę zaktualizować jakieś domyślne ustawienia, edytuję mój plik ~/.bash_login, a następnie po prostu dostarczam go z ~/.bashrc, aby uzyskać te zmiany w mojej obecnej powłoce.
  7. gdy dokonuję zmian w zmiennej środowiskowej, takiej jak . ~/.bashrc, muszę zmodyfikować mój PATH i dostarczyć go do źródła;
  8. umieszczam moje połączenia do fink, portu i zaparzam specyficzne ustawienia w ~/.profile.

To moje 2 centy na ten temat.

8
8
8
2014-07-25 09:57:28 +0000

Q: JAKIE są Zmienne środowiskowe??

A: Zmienne środowiskowe są podobne do zmiennych w każdym języku programowania. W przypadku systemów Windows lub Uniksowych przechowują one różne wartości, aby programy i zadania mogły uzyskać niezbędne informacje o systemie operacyjnym lub informacje o “środowisku”. Na przykład:

USERPROFILE : katalog użytkowników w plikach systemu operacyjnego.

MAIL : gdzie poczta użytkownika znajduje się w plikach systemu operacyjnego.

*Q: CO konkretnie jest zmienną PATH? *

A: Zmienna PATH ustawia ścieżki dostępu do katalogów podczas wykonywania poleceń, zarówno dla poleceń RUN, jak i dla wewnętrznych wywołań z programów. Dzięki temu program nie musi znać swojej lokalizacji instalacji, aby wywołać inne procesy wykonywalne.

Zmienna PATH systemu Windows Environment System sprawdza każdą lokalizację dla danego procesu wykonywalnego. Tak więc dodanie lokalizacji do zmiennej PATH pozwala na bezpośrednie wywołanie pliku wykonywalnego.

Zgodnie z tym artykuł w Wikipedii :

Gdy polecenie jest wprowadzane do powłoki poleceń lub program wywołuje system w celu wykonania programu, system najpierw przeszukuje bieżący katalog roboczy, a następnie przeszukuje ścieżkę, badając każdy katalog od lewej do prawej

  • *

*Q: Jak dodać lokalizację do zmiennej PATH ? *

A:Aby dodać lokalizację do zmiennej PATH należy edytować łańcuch zmiennych środowiskowych.

Jeden ze sposobów jest opisany tutaj :

  1. 1. Otwórz menu startowe i kliknij prawym przyciskiem myszy na Komputer. Wybierz opcję Właściwości.
  2. Wybierz opcję Zaawansowane ustawienia systemowe.
  3. Na karcie Zaawansowane wybierz Zmienne środowiskowe.
  4. Wybierz EDYT lub NEW. (dla PATH najprawdopodobniej chcesz EDYT).
  5. Dodaj ścieżkę lokalizacji, np.: C:\wamp\bin\php\php5.5.12;

Mam nadzieję, że wyjaśnia to trochę zamieszania.

0
0
0
2020-02-26 10:20:48 +0000