Olarak işlem , ortam değişkenleri, bir işletim sisteminin çeşitli işlemler ile (kullanılan dinamik değişkenler , Windows , UNIX, vb.) Aynı hiyerarşik çizgide olmayan ve bu nedenle seçimlerini birbirlerine iletmek için bir konvansiyona ihtiyaç duyan programlar arasında bilgi iletmek için kullanılırlar.
Ayrıca bir HTTP sunucusu için CGI ortam değişkenlerinden de bahsediyoruz .
Herhangi bir parametre içermeyen SET komutu , ortam değişkenlerinin çoğunu listelemenizi sağlar.
% ERRORLEVEL%,% DATE%,% TIME%,% CD%,% RANDOM% değişkenleri SET komutu tarafından görüntülenmez (Not: Bu değişkenlerin rolü aşağıdaki paragraflarda açıklanmıştır).
Bir ortam değişkenini değiştirmek için, komut istemine şu komutu girmelisiniz :
SET PATH=%PATH%;c:\WINDOWS\System32\wbemDikkatli olun, bu sadece mevcut süreçte işe yarar.
Bir ortam değişkenini kalıcı olarak değiştirmek için:
Bir ortam değişkenini değiştirmek için şunu girmelisiniz:
PATH=$PATH:./Dikkatli olun, bu sadece mevcut süreçte işe yarar.
Bir ortam değişkenini kalıcı olarak değiştirmek için , değişkeni atamak ve dışa aktarmak için kabuk başlatma dosyanıza ( Bash için ~ / .bashrc , Zsh için ~ / .zshrc ) bir satır ekleyebilirsiniz . İşte minimal bir ~ / .bashrc örneği :
# Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions export LANG=fr_CA.UTF8Kabuk başlatma betiği kullanıcıya özeldir.
Her bağlandığımızda (doğrudan veya ssh ile) ve her yeni konsol açtığımızda çalıştırılır.
Yani değişkenin atama tüm kullanıcıları yarar sağladığını, bu eklenebilir küresel başlatma dosyasında (sağlanan haklara sahip) kabuk ( / etc / profile Bash için).
Tüm kullanıcılar için ortak olan profilin dizinini gösterir.
Örnek değerler:
C:\ProgramData ou C:\Documents and Settings\All UsersVarsayılan profil ile karıştırmamaya dikkat edin:
C:\Documents and Settings\Default User % UYGULAMA VERİSİ%Oturum açmış kullanıcının uygulama verilerini içerir.
Örnek değerler:
C:\Users\Wikipedia\AppData\Roaming ou C:\Documents and Settings\Wikipedia\Application Data % HOMEPATH%Örnek değerler:
\Users\Wikipedia ou \Documents and Settings\Wikipedia % KULLANICI ADI%% USERNAME%, oturum açan kullanıcının adını içerir (örnek: Wikipedia).
% KULLANICI PROFİLİ%% USERPROFILE% , oturum açmış kullanıcının (NTUSER.DAT ve NTUSER.INI dosyaları) HKEY_CURRENT_USER kovanını içeren dizinin yolunu gösterir .
% CD% değişkeni SET komutu tarafından görüntülenmez ; geçerli dizinin erişim yolunu verir.
Bilgisayarın adını içerir.
Oturum yöneticisi (smss.exe) tarafından ayarlanan ortam değişkenlerine bakın .
% DATE% ve% TIME% değişkenleri SET komutu tarafından görüntülenmez ; bilgisayarın güncel tarih ve saatini verirler.
% ERRORLEVEL% değişkeni SET komutu tarafından görüntülenmez ; çalıştırılan son komutun hata kodunu verir (0 veya 1). Bu, $ değişkeninin eşdeğeridir? Unix.
Windows altında gelişmiş kabuk yapmak için gerekli bir komuttur (komut dosyaları: .bat uzantısı ).
İşte iki kod örneği:
IF ERRORLEVEL 2 GOTO no_such_file IF %ERRORLEVEL% EQU 2 SET CODE_ERREUR=2Oturum yöneticisi (smss.exe) tarafından ayarlanan ortam değişkenlerine bakın .
Varsayılan değer :
C:Kullanıcı bir etki alanı için oturum açtıysa ,% LOGONSERVER%, kimlik doğrulaması için kullanılan etki alanı denetleyicisinin adını gösterir ve başında "\\" bulunur. Misal:
\\controle_domaine % USERDOMAIN%, geçerli kullanıcının ait olduğu çalışma grubunun veya Windows etki alanının adını gösterir.Kullanıcı bir Çalışma Grubu için oturum açtıysa,% LOGONSERVER%, "\\" ile başlayan% BİLGİSAYARADI% ile aynı şeyi gösterir. Misal:
\\PC_WikipediaOturum yöneticisi (smss.exe) tarafından ayarlanan ortam değişkenlerine bakın .
Oturum yöneticisi (smss.exe) tarafından ayarlanan ortam değişkenlerine bakın .
Oturum yöneticisi (smss.exe) tarafından ayarlanan ortam değişkenlerine bakın .
% PROCESSOR_ARCHITECTURE%,% PROCESSOR_IDENTIFIER%,% PROCESSOR_LEVEL% ve% PROCESSOR_REVISION% değişkenleri için , oturum yöneticisi (smss.exe) tarafından ayarlanan ortam değişkenlerine bakın .
Bu ortam değişkeni, yüklü Windows programlarının dizininin yolunu gösterir (bkz. Program Dosyaları ).
Varsayılan değeri:
C:\Program FilesBu değişkenin değeri, kayıt defterinde anahtardaki ProgramFilesDir değişkeni tarafından yapılandırılır HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion.
Bu ortam değişkeni, 64 bit Windows yüklü x86 programları dizininin yolunu belirtir (bkz. Program Dosyaları ).
Varsayılan değeri:
C:\Program Files (x86)Bu ortam değişkeni, bir komut girmeden önce görüntülenen istemi özelleştirmek için kullanılır.
Varsayılan değeri:
$P$GKodu dolar işareti "$" ile başlayan özel değerlerle birleştirilmiş görüntü metni içerebilir.
Kodlu | Açıklama |
---|---|
P | Geçerli yol ( P ath ) |
N $ | Yalnızca mevcut okuyucu |
$ G | Üstün karakter ">" ( G reater ) |
$ L | Alt karakter "<" ( L es ) |
$ D | Güncel tarih ( D yediler ) |
T | Güncel saat ( T ime ) |
% RANDOM% değişkeni SET komutu tarafından görüntülenmez ; bir numara oluşturur rastgele sahte 0 ile arasında 15 inci 2 (32768) gücü.
Bu değişken, Windows'un yüklü olduğu sürücünün harfini gösterir.
Varsayılan değeri:
C:Bu ortam değişkeni, sistem dosyalarının konumunu gösterir.
Kayıt defteri tarafından yapılandırılır: anahtardaki SystemRoot değeri HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion.
Varsayılan değerlerVarsayılan şudur:
Gönderen % SystemRoot% , diğer çevre değişkenleri ayarlanabilir. % PATH % , % COMSPEC% , % TEMP% , % TMP% , % WINDIR% için , bkz . Oturum yöneticisi tarafından oluşturulan ortam değişkenleri .
% TMP% ve% TEMP%. Aşağıdaki dizinde de geçici bir dosya klasörü bulunur ( Windows XP ):
C: \ Documents and Settings \ oturum_adı \ Local Settings \ Temp
% SystemRoot% benzer
Misal:
C:\WindowsUnix (veya GNU / Linux) altında, kabuklar aynı sözdizimini kullanarak iki tür değişken kullanır:
Bunlara yerel değişkenler olarak erişilir ve dışa aktarma komutuyla ( bash için ) dışa aktarılmaları veya setenv (csh) komutunu kullanmaları gerekir .
Unix altındaki ortam değişkenlerine örnek:
CFLAGS'a bakın
Infopath, Emacs Metin Düzenleyicisi tarafından kullanılan bir ortam değişkenidir . Bilgi dizinlerinin listesini içerir.
$ LANG değişkeni, çeşitli programlar tarafından görüntülenecek mesajların dilini belirlemek için kullanılır. Örneğin :
$ LANG=fr ls fff ls: fff: Aucun fichier ou répertoire de ce type $ LANG=en ls fff ls: fff: No such file or directoryBu farklı çeviriler / usr / share / locale alt dizinlerinde .mo dosyalarında bulunabilir .
İngilizce bir hata mesajı almak için bu değişkeni değiştirmek ilginç olabilir (örneğin, " export LANG=C " komutunu çalıştırarak ), ardından bu hata mesajını bir arama motorunda aramak için , ilgilendiğiniz sayfalardan daha büyük bir listeye sahip olmaktır. Fransızca hata mesajı ve daha kesin bir teşhis bulmayı umuyoruz.
Gösterilen vim metin düzenleyicisi$ LANG değişkeni ayrıca vim tarafından kullanılacak kodlamayı belirlemek için kullanılır. .Txt dosyasının yalnızca UTF-8 olarak kodlanmış "yaz" satırı içerdiğini varsayalım . Bu dosyayı konsolda vim ile düzenlemek için, "export LANG = fr.UTF8" ayarlamanız ve konsolun kodlamasının UTF-8 (Yapılandırma → Kodlama) olarak ayarlandığından emin olmanız gerekir.
Konsol kodlaması ISO / IEC 8859-1'e ayarlanmışsa , vim "yaz" gösterecektir. $ LANG değişkeni UTF-8 kodlamasını belirtmiyorsa, örneğin $ LANG = fr, ancak konsol kodlaması UTF-8 ise, vim "yaz" gösterecek, ancak imleç konumu uygun olmayacaktır. Aslında, konsol üç karakter görüntülese de, vim beş sayar ("$" ile satırın sonuna gitmek imleci çok uzağa yerleştirir).
Windows ile KarşılaştırmaWindows'ta dil, kayıt defteri ile, HKEY_CURRENT_USER'da, daha kesin olarak ControlPanel \ international'ın bazı alt anahtarlarında ayarlanır (bunu ayarlama aracı intl.cpl'dir ).
$ LD_LIBRARY_PATH değişkeni, aşağıdakilerle ayrılmış bir dizin listesi içerir; burada, varsayılan dizinlerde kurulu olmayan kitaplıklar bulunur (/ usr / lib ve / usr / local / lib'nin $ LD_LIBRARY_PATH içinde belirtilmesi gerekmez).
Bir kitaplığa dinamik olarak bağlı bir uygulama çalıştırılırken, kitaplık önce varsayılan dizinlerde, ardından görünüm sırasına göre $ LD_LIBRARY_PATH değişkeninde listelenen dizinlerde aranır.
Kitaplık bulunmazsa, çalışma zamanında aşağıdakine benzer bir hata mesajı atılır:
le_nom_du_binaire: error while loading shared libraries: libXX.so.0: cannot open shared object file: No such file or directoryÖrnek değer:
:0.0Örnek değer:
xtermÖrnek değer
cüce terminal $ DESKTOP_SESSIONÖrnek değer:
default $ DESKTOP_STARTUP_IDBir /home/demo/Bureau/getenv.sh senaryonun ortamında Örnek değer başlattığı SpaceFM altında bir masaüstü yöneticisi olarak LXDE :
DESKTOP_STARTUP_ID = spacefm / | ev | demo | Masaüstü | getenv.sh/3459- 2-debian7_TIME740137
GTK +, bu ortam değişkenini uygulama başlatma bildirimi bağlamında kullanır. Resmi şartnamelere göre GTK + uygulaması bu ortam değişkenini alt süreçlerine aktarmamak için okuduktan sonra yok etmelidir.
Yukarıda belirtilen örnekteki /home/demo/Bureau/getenv.sh programı, $ HOME / .config / autostart dizinindeki bir .desktop dosyası aracılığıyla oturum açmada otomatik olarak başlatıldığında veya bir grafik terminal öykünücüsünden çalıştırıldığında, o zaman ortamı bu değişkeni içermez.
$ GDM_XSERVER_LOCATION ve $ GDMSESSIONGNOME Görüntü Yöneticisi'ne bakın .
$ GNOME_DESKTOP_SESSIONÖrnek değer:
Default $ GNOME_KEYRING_SOCKETÖrnek değer:
/tmp/keyring-24TGGU/socketBkz. İ18n .
$ POSIXLY_CORRECT ortam değişkeni ayarlanmışsa, GNU / Linux komutları POSIX standardına uyacaktır .
Örneğin, bu değişken ayarlanmışsa , GNU grep POSIX.2'ye uyacaktır.
Bkz POSIX # POSIXLY DOĞRU ortam değişkeni .
Mevcut oturum için kullanıcı adı değerini içerir.
$ SHELL, varsayılan olarak kullanılan kabuk yorumlayıcısını gösterir . Genel linux değeri / bin / bash'dir (daha nadiren / bin / sh ).
Unix altındaki kabuk listesi için, kategoriye bakın : Shell Unix .
İç değişkenler için bkz (in) İç Değişkenler .
Ortam değişkenlerinin parçası olmayan değişkenler vardır. Örneğin şunlar olabilir:
<PATH> değişkeni, çalıştırılabilir dosyaların aranacağı dizinlerin listesini içerir . Bu değişken Windows'ta (% PATH%) ve Unix ve Linux'ta ($ PATH) bulunur.
MisalSisteminizdeki herhangi bir dizine gidersiniz ( cd komutu ile ).
Yazdığınız denerseniz wikipedia.exe çünkü yürütülmez konsola (veya terminal) içinde / opt / wikipedia / bin değil PATH .
Öte yandan, / opt / wikipedia / bin / exfile yazarsanız işe yarayacaktır, ancak yazmak oldukça uzun sürer.
Bu nedenle, PATH ortam değişkenini ayarlamak gereklidir.
Unix / Linux altında: $ PATHUnix ve Linux altında, bu değişken yalnızca çalıştırılabilir dosyaların (ikili veya kabuk betiği) konumu için kullanılır. İçin yazılım kütüphaneleri , diğer değişkenler kullanılan (örnek: $ LD_LIBRARY_PATH) bulunmaktadır.
$ PATH yolunu görüntüleyin echo $PATHAyrıca şu komutu da kullanabilirsiniz:
printenv PATH $ PATH ayırıcısı: ":"Ayırıcı iki nokta üst üste işaretidir (:).
$ PATH'ı geçici olarak değiştirinİle bash kabuğu
export PATH=$PATH:/opt/toto/binBu değişiklik yalnızca geçicidir (mevcut oturum için).
$ PATH yolunu kalıcı olarak değiştirinBu nedenle, ~ / satırına aşağıdaki satırı ekleyerek PATH değişikliğini kalıcı hale getirmelisiniz . bashrc .
export PATH=$PATH:/opt/toto/bin Mevcut dizin tuzağıUnix altında , geçerli dizinde bulunan bir dosyayı yürütmek için, genellikle komutun önüne "./" koymanız gerekir, bu da dosyanın geçerli dizinde olduğunu belirtmenize olanak tanır.
Bu özellik, Windows'a (veya eski MS-DOS'a ) alışkın olan kullanıcıları , mevcut dizinde bulunan bir programı doğrudan arayabileceğiniz şaşırtmaktadır.
Bu bir güvenlik önlemidir. Örneğin, kötü niyetli bir saldırgan mevcut dizine ls adlı kötü amaçlı bir programı yerleştirmeyi başarırsa , dizini listelemek istediğinizde bu program çalıştırılacaktır ( normalde / bin / dizininde bulunan ls komutu yerine ). , PATH içindedir, ancak yalnızca sistem yöneticisi tarafından değiştirilebilir ).
Kullanıcı her şeye rağmen Microsoft'un bu "ergonomisini" bulmak isterse, PATH'sine "./" yolunu eklemelidir:
PATH=$PATH;./Bu güvenlik önlemi, Windows sürüm 7'den gelen PowerShell'de yeniden sunulmuştur ; geçerli klasörde çalıştırılabilir bir dosya çalıştırmak için kullanıcının önünde ". \" olması gerekir.
Profildeki temel $ PATHTüm oturumlar için $ PATH temel değeri profilde tanımlanır: Kabuk dosyası / etc / profile .
Mac OS X altında $ PATH yolunu görüntüleyin( Bourne kabuğunda )
echo $PATH $ PATH ayırıcısı: ":"Ayırıcı iki nokta üst üste işaretidir (:).
$ PATH'ı geçici olarak değiştirin export PATH="$PATH:/opt/toto/bin"Bu değişiklik yalnızca geçicidir (mevcut oturum için).
$ PATH yolunu kalıcı olarak değiştirinPATH değişikliği, Kullanıcı profiline aşağıdaki satırı ekleyerek kalıcı hale getirilmelidir (yani, kullandığınız terminal türüne bağlı olarak kabuk ~ / .profile veya ~ / .bash_profile ).
export PATH="$PATH:/opt/toto/bin"/ Etc / profile dosyasının PATH'ını doğrudan değiştirmek de mümkündür ( sudo kullanmalı veya root olmalısınız ).
Windows'ta:% PATH%Windows'ta, bir yürütülebilir dosya varsayılan konumda değilse,% PATH% değişkeni hangi dizinlerde aranacağını belirtir.
Bu değişken üzerinden ayarlanır kayıt konfigürasyonunda, Session Manager (Smss.exe) (tam yeri geçerli: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PATH)
% PATH% yolunu görüntüleyinKomut isteminde şu komutu girin:
SET pathveya
ECHO %PATH% % PATH% ayırıcı: noktalı virgülAyırıcı, noktalı virgül karakteridir: "; ".
% PATH% yolunu geçici olarak değiştirinKomut isteminde şu komutu girin:
SET PATH=%PATH%;c:\opt\wikipedia\binBu değişiklik yalnızca geçicidir (mevcut komut istemi için).
% PATH% değerini kalıcı olarak değiştirinÜç yol mümkündür:
1- PATH ortam değişkenini Denetim Masası> Sistem> Gelişmiş> Ortam değişkenleri> Sistem değişkenleri: Değişken Yol ⇒ Değiştir'den değiştirmelisiniz. Örnek: Windows'un bir uygulama veya .bat dosyasını bulmak için C: \ Batch dizinine bakması gerektiğini belirtmek için; C: \ Batch ekleyin.
2- setx'e dayalı bir MS-DOS komutu (betikte kullanım için daha uygun) kullanın.
İşte bir kullanım örneği: Amaç, PATH ortam değişkenine kalıcı olarak C: \ Wikipedia \ bin eklemektir. SETX "%PATH%;C:\Wikipedia\bin"3- Kayıt defterini değiştiren bir MS-DOS komutu (komut dosyasında kullanım için daha uygun) kullanın.
İşte bir kullanım örneği: Amaç, PATH ortam değişkenine kalıcı olarak C: \ Lotus \ Notes eklemektir. REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /d "%PATH%;C:\Lotus\Notes" /f REG EKLE seçenekleri: / f (zorla): onay görüntülenmeden kayıt defteri anahtarının eklenmesini zorlamaya izin verir; / v (değer): değerin adını belirtir; / d (veri): anahtarın değerini gösterir. Not: Sistemin daha önce yapılan değişiklikleri hesaba katması için makinenin yeniden başlatılması gerekir.Bu ortam değişkeni, yalnızca karşılık gelen bilgisayarda Java yüklüyse ayarlanır .
JAVA_HOME, Java sanal makinesi ( sınıf , yazılım kitaplıkları vb.) İçin gerekli dosyaların ağaç yapısını içeren dizini gösterir . Java sınıf yükleyicisine bakın .
Windows özel durumu için , oturum yöneticisi (smss.exe) tarafından ayarlanan ortam değişkenlerine bakın .