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
Open Control Panel » System » Advanced » Environment Variables
.
Wpisz control sysdm.cpl,,3
w oknie dialogowym Uruchom (
+R) i kliknij Environment Variables
.
Do edycji zmiennych użytkownika można również wpisać
Kliknij prawym przyciskiem myszy (Mój) Komputer i kliknij na Właściwości, lub po prostu wciśnij
+Przerwij.
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