Çevre değişkeni
Çevre değişkenleri, çevresel değişkenler ya da ortam değişkenleri (ing. environment variable), işletim sistemi seviyesinde konfigüre edilebilen ve bilgisayar işlemleri tarafından erişilebilen değişkenlerdir. Çoğu kez belli programların ve dosyaların konumlarını (ing. path) ve birden fazla işlem tarafından kullanılabilen bilgi ve ayarları tutmak için kullanılırlar. Çoğunlukla bir karakter dizisi (ing. string) olurlar.
Ortam/çevre kelimesi ile kast edilen programın çalıştırma ortamıdır (ing. run-time environment). Böylece aynı işlem farklı çalıştırma ortamlarında ekstra bir konfigürasyona gerek kalmadan çalışabilir, aynı ortamdaki farklı işlemler aynı veriye ortam değişkenleri üzerinden ulaşabilirler.
Örneğin çalışan bir işlem TEMP ortam değişkeninin değerine bakarak geçici dosyalarını saklayabileceği dizin konumunu (path) öğrenebilir. Herhangi bir nedenle bu konum değiştirilmek istendiğinde yazılımlarda bir değişikliğe gerek kalmadan TEMP ortam değişkeni değiştirilir.
Aynı kavram için kullanılan bir başka terim de global değişkendir. Kullanıcılar ve bilgisayar programları bu değişkenlerin değerlerini okuyabilir ve/veya değiştirebilirler.
Unix ve Unix-tipi işletim sistemleri
Komut satırı
Linux ve BSD gibi birçok Unix tipi işletim sisteminde çevre değişkenleri komut satırı yorumlayıcısı (Unix-shell) çalışmaya başladığında okunur ve kullanılır. Daha önceden tanımlanmış olan bu değişkenler Unix kabuğu çalışmaya başladığında bir veya birçok konfigürasyon dosyasından okunur ve buna göre işlemler yapılır. Örneğin Bourne-Shell'de bu değişkenler /etc/profile dizininde tutulur. Ayrıca Shell kullanıcının uyarlayabileceği kullanıcı tarafından belirlenen çevre değişkenlerini kullanıcının "home" dizininde belli dosyalarda saklar. Daha önce tanımlanmış olan çevre değişkenler printenv gibi bir komutla görülebilir. env komutu/programı ise bir programın değiştirilmiş bir ortamda (başka çevre değişkenleri altında) çalışması sağlanabilir ya da çevre değişkenleri değiştirilebilir. Her iki komut da coreutils'in parçalarıdır.
Öntanımlı çevre değişkenleri
- PATH − Konumlar (path) listesidir. Tam konum (fullpath) belirtilmeden komut girildiğinde işletim sistemi komutu bu listedeki konumlarda arar.
- HOME − Kullanıcının dosya sistemi içindeki ana dizinini (home directory) gösterir.
- TERM − Kullanılan bilgisayar terminalinin türünü ya da terminal emulatörünü tanımlar.
- MAIL − Kullanıcının e-postalarının bulunduğu konumu belirtir.
Microsoft
MS-DOS ve Windows kabuğunda (komut işlemcisi) işlevselliği aynıdır. Windows'ta yeni bazı fonksiyonlar ve Standart değişkenler eklenmiştir.
Kaydetme
Çevre değişkenler komut satırından veya .cmd ve .BAT gibi programlar tarafından SET komutlarıyla kaydedilir. (Örneğin SET PROMPT=$P$G) SET komutu tek başına kullanıldığında ise tüm çevre değişkenler listelenir. Değişken değerlerini silmek için ise değişken adından sonra sadece = işareti verilir. (Örneğin SET PROMPT=).
Sorgulama
Elde edilmek istenen değişken % işaretleri arasında kullanılır. Örneğin APPDATA değişkeninin tuttuğu dizine gitmek için CD %APPDATA% şeklinde bir komut verilir.
Öntanımlı çevre değişkenleri
Variable | Windows XP | Windows Vista/7 | Açıklama |
---|---|---|---|
%ALLUSERSPROFILE% (%PROGRAMDATA%) | C:\Dokumente und Einstellungen\All Users | C:\ProgramData | |
%APPDATA% | C:\Dokumente und Einstellungen\{username}\Anwendungsdaten | C:\Users\{username}\AppData\Roaming | |
%COMPUTERNAME% | {computername} | ||
%COMMONPROGRAMFILES% | C:\Programme\Gemeinsame Dateien | C:\Program Files\Common Files | |
%COMMONPROGRAMFILES(x86)% | C:\Programme (x86)\Gemeinsame Dateien | C:\Program Files (x86)\Common Files | |
%COMSPEC% | %SystemRoot%\System32\cmd.exe | Komut satırının olduğu dizin %SystemRoot% uyumlu genişleme DOS'da da geçerli | |
%HOMEDRIVE% | C:\ | C:\ | |
%HOMEPATH% | \Dokumente und Einstellungen\{username} | \Users\{username} | |
%LOCALAPPDATA% | n/a | C:\Users\{username}\AppData\Local | |
%LOGONSERVER% | \\{domain_logon_server} | ||
%OS% | Windows_NT | Windows_NT | |
%PATH% | %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem | [1] %SystemRoot% uyumlu genişletme DOS'da da geçerli | |
%PATHEXT% | .COM, .EXE, .BAT, .CMD, .VBS, .VBE, .JS, .WSF, .WSH | .com, .exe, .bat, .cmd, .vbs, .vbe, .js, .jse, .wsf, .wsh, .msc | |
%PROGRAMFILES% | C:\Programme | C:\Program Files | |
%PROGRAMFILES(X86)% | C:\Programme (x86) | C:\Program Files (x86) | |
%PROMPT% | $P$G | DOS'da da geçerli | |
%SystemDrive% | C:\ | C:\ | |
%SystemRoot% | C:\Windows (Windows 2000 und davor: C:\WINNT ) | C:\Windows | |
%TEMP% oder %TMP% | C:\Windows\TEMP | [2] | |
%USERDOMAIN% | {userdomain} | ||
%USERNAME% | {username} | Aktif kullanıcı adı | |
%USERPROFILE% | %SystemDrive%\Dokumente und Einstellungen\{username} | C:\Users\{username} | |
%WINDIR% | C:\Windows | C:\Windows | Tarihsel biçim(16-Bit-Windows), uyum sağlamak için tutulmakta. %SystemRoot% ile sürekli aynı olmalı. |
%PUBLIC% | n/a | C:\Users\Public | |
%PSModulePath% | n/a | %SystemRoot%\system32\WindowsPowerShell\v1.0\Modules\ |
Notlar
- ↑ Noktalı virgül ile ayrılarak tanımlanmış bir Path varsa, komut aktif dizinden bulunamazsa, sırayla bu dizinlerde aranır ve ilk bulunduğu yerde çalıştırılır.
- ↑ Güvenlik açısından tüm kullanıcıların ulaşabileceği genel bir dizin yerine, kullanıcı bazlı örneğin %HOMEDRIVE%%HOMEPATH%\TEMP gibi bir dizin olması önerilir.