Çevre değişkeni

yazılım değerlerini depolamak için kullanılan küçük veri parçası

Ç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 global 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.

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

değiştir

Komut satırı

değiştir

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

değiştir
  • PATH− Konumlar (path) listesidir. Tam konum (fullpath) belirtilmeden komut girildiğinde işletim sistemi komutu bu listedeki konumlarda arar.
  • PWD − Kullanıcının bulunduğu mevcut konumu belirtir.
  • 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.
  • EDITOR − Kullanıcının varsayılan metin editörünü belirtir.
  • BROWSER − Kullanıcının varsayılan web tarayıcısını belirtir.

Microsoft

değiştir

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

değiştir

Ç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şkenleri 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

değiştir

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

değiştir
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\
  1. ^ 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.
  2. ^ 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.