Keskkonna muutujad: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Mlepla (talk | contribs)
Avattis (talk | contribs)
No edit summary
 
(62 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==Mis on keskkonnamuutujad==
=Sissejuhatus=


Keskkonnamuutujad on võtmepaarid, mis on salvestatud sehell-i keskkonda.
Keskkonnamuutujaid kasutatakse nii Unix-laadsetes kui ka Windows-operatsioonisüsteemides teatud protsessidele või süsteemile vajalike väärtuste hoidmiseks. Nagu nimigi ütleb, on tegu muutujatega, st nende väärtusi saab kohandada vastavalt vajadusele. Eristatakse kaht tüüpi keskkonnamuutujaid - kasutajapõhiseid ja süsteemiüleseid.<ref>[https://www.lifewire.com/what-are-environment-variables-2625868 What are Environment Variables? (01.11.2017)]</ref> Kasutajapõhine on näiteks Linuxis <code>$HOME</code>, mis viitab kasutaja kodukataloogile ja on igal kasutajal erinev. Süsteemiülene on näiteks <code>$PATH</code>, mis viitab asukohtadele, kust otsitakse programmifaile, mis on hõlpsasti käivitatavad ilma kataloogile viitamata. <ref>[http://enos.itcollege.ee/~edmund/osadmin/est/keskkond-protsessid/keskkond-protsessid_OSadmin.pdf Kasutajakeskkond ja protsessid (8. slaid) (01.11.2017)]</ref>


Et saada teada millesed keskkonnamuutujad on sinu arvutis väärtustatud, siis kasuta käsku <b>printenv</b> või <b>env</b>.
=Keskkonnamuutujad Windowsis=


==Siin on nimekiri levinumatest keskkonnamuutujatest:==
Keskkonnamuutujad Windowsis tunneb ära neid ümbritsevast tähistusest %-märkidega, nt <code>%windir%</code>. Siin kehtib Windowsi-maailma omadus, et muutujad pole tõstutundlikud, st <code>%windir%</code>, <code>%WINDIR%</code> ja <code>%wiNdiR%</code> viitavad kõik ühtmoodi kataloogile, kuhu on paigaldatud jooksev operatsioonisüsteem. Kui nt avada Start-menüü, trükkida sinna <code>%windir%</code> ja vajutada Enterit, avanebki vastav kataloog Windows Exploreri aknana.


[[http://www.cyberciti.biz/howto/question/general/linux-unix-list-common-environment-variables.php]]
Graafilise liidese abil saab Windowsis vaadata ja muuta määratud keskkonnamuutujaid, minnes "System (Superkey+Pause/Break) -> Advanced system settings -> Advanced -> Environment Variables".<br/>
[[File:Kkm_1.png|700px]]


[[https://help.ubuntu.com/community/EnvironmentVariables]]
==Haldamine cmd.exe käsurealt==


<b>HISTFILE</b>--käsk näitab millisesse file on salvestatud ajalugu
<code>cmd.exe</code> abil saab keskkonnamuutujaid hallata järgnevalt:
<code>set minuMuutuja=esimeneVäärtus</code> omastab muutujale 'minuMuutuja' kirjeldatud väärtuse. Kui tahta sellele lisada veel teist väärtust, nt tekitada loetelu teekondadest, saab kasutada süntaksit <code>set minuMuutuja=teineVäärtus;%minuMuutuja%</code>. Muutujale omistatud väärtusi saab välja kuvada käsuga <code>echo %minuMuutuja%</code>.<br/><br/>
[[File:Kkm_2.png]]<br/><br/>
Sel viisil määratletud keskkonnamuutujad pole püsivad, st nad kestavad kuni käesoleva Command Prompti sulgemiseni ja sealtsamast käivitatud protsessidele. Kui tahta muutujaid seadistada käsurealt püsivateks, tuleb kasutada <code>setx</code> käsku, mille süntaks on <code>setx minuMuutuja "väärtus"</code>, mis on mõnevõrra erinev eelnevast. <ref>[https://superuser.com/questions/284342/what-are-path-and-other-environment-variables-and-how-can-i-set-or-use-them What are PATH and other environment variables, and how can I set or use them? (01.11.2017)]</ref> <b>NB!</b> Sel viisil püsivateks seatud muutujad on kasutajapõhised, mitte süsteemiülesed!<br/><br/>
[[File:Kkm_3.png]]


<pre>echo $HISTFILE
==Haldamine PowerShelli käsurealt <ref>[https://technet.microsoft.com/en-us/library/ff730964.aspx Windows PowerShell Tip of the Week (02.11.2017)]</ref>==
/root/.bash_history</pre>


<b>HISTFILESIZE</b>--näitab kui palju ridu on ajaloo file-s
PowerShellis annab ülevaate kõikidest kehtivatest keskkonnamuutujatest käsk <code>Get-ChildItem Env:</code>.


<pre>echo $HISTFILESIZE
<b>Sessioonipõhiste</b> keskkonnamuutujate loomiseks (sama efekt cmd.exe <code>set</code>'iga): <code>$env:minuMuutuja = "Siin on väärtus"</code>.
2000</pre>


<b>HOSTNAME</b>--käsk näitab süsteemi kasutaja nime
<b>Püsivate kasutajapõhiste</b> keskkonnamuutujate loomiseks: <code>[Environment]::SetEnvironmentVariable("minuMuutuja", "Siin on väärtus", "User")</code>.
<pre>echo $HOSTNAME
UbuntuServer</pre>


<b>PS1</b>--näitab default promti
<b>Püsivate süsteemiüleste</b> keskkonnamuutujate loomiseks: <code>[Environment]::SetEnvironmentVariable("minuMuutuja", "Siin on väärtus", "Machine")</code>.
<pre>echo $PS1


\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$</pre>
Keskkonnamuutujate eemaldamiseks saab kasutada süntaksit <code>Remove-Item Env:\minuMuutuja</code>.


<b>USER</b>--näitab sisse loginud kasutaja nime
==Levinumad keskkonnamuutujad Windowsis <ref>[http://enos.itcollege.ee/~edmund/osadmin/est/keskkond-protsessid/keskkond-protsessid_OSadmin.pdf Kasutajakeskkond ja protsessid (8. slaid) (01.11.2017)]</ref>==
<pre>echo $USER
* %TEMP%, %TMP% – ajutised failid
marek</pre>
* %PATH% – otsiteekond
* %USERNAME% – kasutajanimi
* %WINDIR% – süsteemi paigalduskataloog
* %APPDATA% – rakenduste sätete kaust
* %COMPUTERNAME% – masina nimi
* %SYSTEMDRIVE% – süsteemiketas
* %SYSTEMROOT% – süsteemi juurkataloog
* %HOMEDRIVE% – ketas, kus asub kodukataloog
* %HOMEPATH% – kodukataloog
* %PROGRAMDATA% – kõikide kasutajate rakenduste andmed
* %PROGRAMFILES% – rakenduste paigaldused


<b>LOGNAME</b>--Sarnaselt "USER", mõned programmid eelistavad lugeda seda muutujat, mitte USER-it.
=Keskkonnamuutujad Linuxis<ref>[https://help.ubuntu.com/community/EnvironmentVariables EnvironmentVariables (02.11.2017)]</ref>=
<pre>echo $LOGNAME
marek</pre>


<b>HOME</b>--Sisseloginud kasutaja asukoht kodukataloogis
Linuxis on kõige mõistlikum keskkonnamuutujaid hallata käsurealt. Olenevalt kestprogrammist võib siin olla mõningaid süntaksierinevusi, vaatleme siinkohal enamlevinud Bashi kasutamist.
<pre>echo $HOME
/home/marek</pre>


<b>COLUMNS</b>--Teksti veergude arv terminaliaknas.  
Kõik määratletud keskkonnamuutujad, mis käesolevas sessioonis kehtivad, on vaadatavad käsuga <code>printenv</code>. Üksiku huvipakkuva keskkonnamuutuja väärtust saab välja kutsuda: <code>echo $HOME</code>. Kuna Linuxi maailm on Windowsi omast tõstutundlikum, tuleb siin silmas pidada, et <code>echo $HOME</code>, <code>echo $home</code> ja <code>echo $HomE</code> tähendavad erinevaid asju.
<pre>echo $COLUMNS
80</pre>


<b>LINES</b>--Teksti ridade arv konsooliaknas.
==Püsimatud keskkonnamuutujad==
<pre>echo $LINES
Uue keskkonnamuutuja loomist alustatakse sessioonimuutuja loomisega. Kui selle nimega muutuja eksisteerib, muudetakse selle väärtust.
24</pre>
<pre>minuMuutuja=minuV22rtus</pre>
Et sellest saaks keskkonnamuutuja, tuleb kasutada <code>export</code> käsku.
<pre>export minuMuutuja</pre>
Selle peale ilmub <code>minuMuutuja</code> keskkonnamuutujana <code>printenv</code> päringu väljundisse. Tuleb aga mõista, et antud keskkonnamuutuja toimib <b>ainult käesoleva Bashi protsessi poolt algatatud protsesside raames ja temas endas</b>, st uut terminaliakent avades ja sinna <code>printenv</code> sisestades väljundisse <code>minuMuutuja</code> ei teki.


<b>LANG</b>--Põhiline keeleseade, mida rakendused süsteemis kasutavad
==Püsivad keskkonnamuutujad==
<pre>echo $LANG
en_GB.UTF-8</pre>


<b>PWD</b>--Praegu töötav kataloog shellis.
Kui tahame luua keskkonnamuutujaid, mis kehtiks püsivalt ja oleks <b>ühe kasutaja ülesed</b>, saame soovitud muutujate väärtustamised säilitada failis <code>~/.pam_environment</code>. Kui lisame sinna faili rea <code>minuMuutuja=minuV22rtus</code>, saab kasutaja süsteemi logimisel <code>minuMuutuja</code> püsivaks keskkonnamuutujaks. Teine variant on kasutada faili <code>~/.profile</code>, mida tuleb käsitleda kui skriptifaili ja sisestada soovitud muutuja omistamine käsuna, nt lisada rida <code>export minuMuutuja=minuV22rtus</code>.
<pre>echo $PWD
/home/marek</pre>


<b>PATH</b>--Koolonid kataloogide vahel nimekirja kahendfailidest mida otsitakse.
Kui tahame luua keskkonnamuutujaid, mis kehtiks püsivalt ja oleks <b>süsteemiülesed</b>, saame soovitud muutujate väärtustamised säilitada failis <code>/etc/environment</code>. Kui lisame sinna faili rea <code>minuMuutuja=minuV22rtus</code>, saab süsteemi käivitamisel <code>minuMuutuja</code> püsivaks süsteemiüleseks keskkonnamuutujaks. See aga ei tähenda, et me soovi korral tema väärtust jooksvalt sessiooni- või püsimatu keskkonnamuutujana kohendada ei saaks vastavalt vajadusele.
<pre>echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games</pre>


<b>DISPLAY</b>--Seda tunnust kasutatakse näitamaks graafilist rakendust, kus näidatakse tegelikku graafilist kasutajaliidest, väärtus koosneb 3-st osast: host-nimele järgneb koolon(:),ekraani numbrile järgneb punkt(.)ja ekraanide arv. Host-nime graafiline väljund saadetakse üle võrgu. Selle võib ära jätta, kui X server töötab kohalikus masinas. Ekraan arv võimaldab valida mitu X serverit töötab sama masin (Ubuntu kasutab mitut X serverit, et lubada mitut graafilist töölaua sessiooni). Kuigi ekraani number on kasutusel valitakse füüsiliste ekraanide seast, milline haldab X serverit, see on harva valitud midagi muud kui "0". Käsitsi seadistakse "Display" keskkonnamuutuja väärtust harva, sest see tehakse automaatselt kohandatakse paljude rakendustega nagu "GDM" ja "SSH", kui on vaja.
==Levinumad keskkonnamuutujad Linuxis <ref>[http://enos.itcollege.ee/~edmund/osadmin/est/keskkond-protsessid/keskkond-protsessid_OSadmin.pdf Kasutajakeskkond ja protsessid (8. slaid) (02.11.2017)]</ref>==
<pre>echo $DISPLAY
:0</pre>


<b>SHELL</b>--näitab praegust shelli.
* USER – kasutajanimi
<pre>echo $SHELL
* PATH – otsiteekond (kataloogide nimekiri, millest süsteem otsib programmifaile, mida kasutaja käivitab ilma kataloogile viitamata)
/bin/bash</pre>
* HOME – kasutaja kodukataloog
* SHELL – kasutaja kestprogramm
* EDITOR – kasutaja poolt eelistatud tekstiredaktor
* HOSTNAME – masina nimi


<b>TERM</b>--terminal või terminali emulaator, mida praegune kasutaja kasutab
=Autor=
<pre>echo $TERM
xterm</pre>


<b>OSTYPE</b>--näitab operatsioonisüsteemi tüüpi
Rudolf Purge, AK21
<pre>echo $OSTYPE
linux-gnu</pre>


<b>MACHTYPE</b>--näitab protsessori arhitektuuri, kus süsteem töötab.
nov 2017
<pre>echo $MACHTYPE
x86_64-pc-linux-gnu</pre>


<b>EDITOR</b>--näitab kasutaja eelistatud tekstiredaktorit.
=Kasutatud kirjandus=
<pre>echo $EDITOR
/usr/bin/nano</pre>


<b>MANPATH</b>--kataloogide käsitsi otsimine süsteemist.
<references />
<pre>echo $MANPATH
/usr/share/man:/usr/local/man</pre>
 
==Autor==
 
Marek Lepla A32
 
==Kasutatud kirjandus==
 
1. http://www.cyberciti.biz/howto/question/general/linux-unix-list-common-environment-variables.php
 
2. https://help.ubuntu.com/community/EnvironmentVariables


[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]]

Latest revision as of 09:51, 7 November 2017

Sissejuhatus

Keskkonnamuutujaid kasutatakse nii Unix-laadsetes kui ka Windows-operatsioonisüsteemides teatud protsessidele või süsteemile vajalike väärtuste hoidmiseks. Nagu nimigi ütleb, on tegu muutujatega, st nende väärtusi saab kohandada vastavalt vajadusele. Eristatakse kaht tüüpi keskkonnamuutujaid - kasutajapõhiseid ja süsteemiüleseid.[1] Kasutajapõhine on näiteks Linuxis $HOME, mis viitab kasutaja kodukataloogile ja on igal kasutajal erinev. Süsteemiülene on näiteks $PATH, mis viitab asukohtadele, kust otsitakse programmifaile, mis on hõlpsasti käivitatavad ilma kataloogile viitamata. [2]

Keskkonnamuutujad Windowsis

Keskkonnamuutujad Windowsis tunneb ära neid ümbritsevast tähistusest %-märkidega, nt %windir%. Siin kehtib Windowsi-maailma omadus, et muutujad pole tõstutundlikud, st %windir%, %WINDIR% ja %wiNdiR% viitavad kõik ühtmoodi kataloogile, kuhu on paigaldatud jooksev operatsioonisüsteem. Kui nt avada Start-menüü, trükkida sinna %windir% ja vajutada Enterit, avanebki vastav kataloog Windows Exploreri aknana.

Graafilise liidese abil saab Windowsis vaadata ja muuta määratud keskkonnamuutujaid, minnes "System (Superkey+Pause/Break) -> Advanced system settings -> Advanced -> Environment Variables".

Haldamine cmd.exe käsurealt

cmd.exe abil saab keskkonnamuutujaid hallata järgnevalt: set minuMuutuja=esimeneVäärtus omastab muutujale 'minuMuutuja' kirjeldatud väärtuse. Kui tahta sellele lisada veel teist väärtust, nt tekitada loetelu teekondadest, saab kasutada süntaksit set minuMuutuja=teineVäärtus;%minuMuutuja%. Muutujale omistatud väärtusi saab välja kuvada käsuga echo %minuMuutuja%.



Sel viisil määratletud keskkonnamuutujad pole püsivad, st nad kestavad kuni käesoleva Command Prompti sulgemiseni ja sealtsamast käivitatud protsessidele. Kui tahta muutujaid seadistada käsurealt püsivateks, tuleb kasutada setx käsku, mille süntaks on setx minuMuutuja "väärtus", mis on mõnevõrra erinev eelnevast. [3] NB! Sel viisil püsivateks seatud muutujad on kasutajapõhised, mitte süsteemiülesed!

Haldamine PowerShelli käsurealt [4]

PowerShellis annab ülevaate kõikidest kehtivatest keskkonnamuutujatest käsk Get-ChildItem Env:.

Sessioonipõhiste keskkonnamuutujate loomiseks (sama efekt cmd.exe set'iga): $env:minuMuutuja = "Siin on väärtus".

Püsivate kasutajapõhiste keskkonnamuutujate loomiseks: [Environment]::SetEnvironmentVariable("minuMuutuja", "Siin on väärtus", "User").

Püsivate süsteemiüleste keskkonnamuutujate loomiseks: [Environment]::SetEnvironmentVariable("minuMuutuja", "Siin on väärtus", "Machine").

Keskkonnamuutujate eemaldamiseks saab kasutada süntaksit Remove-Item Env:\minuMuutuja.

Levinumad keskkonnamuutujad Windowsis [5]

  • %TEMP%, %TMP% – ajutised failid
  • %PATH% – otsiteekond
  • %USERNAME% – kasutajanimi
  • %WINDIR% – süsteemi paigalduskataloog
  • %APPDATA% – rakenduste sätete kaust
  • %COMPUTERNAME% – masina nimi
  • %SYSTEMDRIVE% – süsteemiketas
  • %SYSTEMROOT% – süsteemi juurkataloog
  • %HOMEDRIVE% – ketas, kus asub kodukataloog
  • %HOMEPATH% – kodukataloog
  • %PROGRAMDATA% – kõikide kasutajate rakenduste andmed
  • %PROGRAMFILES% – rakenduste paigaldused

Keskkonnamuutujad Linuxis[6]

Linuxis on kõige mõistlikum keskkonnamuutujaid hallata käsurealt. Olenevalt kestprogrammist võib siin olla mõningaid süntaksierinevusi, vaatleme siinkohal enamlevinud Bashi kasutamist.

Kõik määratletud keskkonnamuutujad, mis käesolevas sessioonis kehtivad, on vaadatavad käsuga printenv. Üksiku huvipakkuva keskkonnamuutuja väärtust saab välja kutsuda: echo $HOME. Kuna Linuxi maailm on Windowsi omast tõstutundlikum, tuleb siin silmas pidada, et echo $HOME, echo $home ja echo $HomE tähendavad erinevaid asju.

Püsimatud keskkonnamuutujad

Uue keskkonnamuutuja loomist alustatakse sessioonimuutuja loomisega. Kui selle nimega muutuja eksisteerib, muudetakse selle väärtust.

minuMuutuja=minuV22rtus

Et sellest saaks keskkonnamuutuja, tuleb kasutada export käsku.

export minuMuutuja

Selle peale ilmub minuMuutuja keskkonnamuutujana printenv päringu väljundisse. Tuleb aga mõista, et antud keskkonnamuutuja toimib ainult käesoleva Bashi protsessi poolt algatatud protsesside raames ja temas endas, st uut terminaliakent avades ja sinna printenv sisestades väljundisse minuMuutuja ei teki.

Püsivad keskkonnamuutujad

Kui tahame luua keskkonnamuutujaid, mis kehtiks püsivalt ja oleks ühe kasutaja ülesed, saame soovitud muutujate väärtustamised säilitada failis ~/.pam_environment. Kui lisame sinna faili rea minuMuutuja=minuV22rtus, saab kasutaja süsteemi logimisel minuMuutuja püsivaks keskkonnamuutujaks. Teine variant on kasutada faili ~/.profile, mida tuleb käsitleda kui skriptifaili ja sisestada soovitud muutuja omistamine käsuna, nt lisada rida export minuMuutuja=minuV22rtus.

Kui tahame luua keskkonnamuutujaid, mis kehtiks püsivalt ja oleks süsteemiülesed, saame soovitud muutujate väärtustamised säilitada failis /etc/environment. Kui lisame sinna faili rea minuMuutuja=minuV22rtus, saab süsteemi käivitamisel minuMuutuja püsivaks süsteemiüleseks keskkonnamuutujaks. See aga ei tähenda, et me soovi korral tema väärtust jooksvalt sessiooni- või püsimatu keskkonnamuutujana kohendada ei saaks vastavalt vajadusele.

Levinumad keskkonnamuutujad Linuxis [7]

  • USER – kasutajanimi
  • PATH – otsiteekond (kataloogide nimekiri, millest süsteem otsib programmifaile, mida kasutaja käivitab ilma kataloogile viitamata)
  • HOME – kasutaja kodukataloog
  • SHELL – kasutaja kestprogramm
  • EDITOR – kasutaja poolt eelistatud tekstiredaktor
  • HOSTNAME – masina nimi

Autor

Rudolf Purge, AK21

nov 2017

Kasutatud kirjandus