1. PATH-ympäristömuuttuja Windowsissa
Mac/Linux-ohjeet löytyvät sivun lopusta!
Kun komentoriviltä kirjoitetaan ohjelman nimi, lähtee komentorivi etsimään ohjelman nimeä hakemistoista, jotka on lueteltu ympäristömuuttujassa nimeltä path
.
Ympäristömuuttujan path
arvon näkee kun kirjoittaa Git Bashissa tai WSL:ssä
echo $PATH
tai cmd
ikkunassa
set path
tai PowerShellissä
$env:PATH
Ympäristömuuttujassa on lueteltu hakemistojen nimiä, erotin riippuu käytetystä shellistä ja se voi joko kaksoispiste tai puolipiste. Huomaa, että lista näyttää kullakin käyttäjällä aina hieman erilaiselta.
Esimerkki Git Bash:
/c/ProgramData\Oracle\Java\javapath:/c/Program Files (x86)\Common Files\Oracle\Java\javapath:/c/Program Files\Java\jre-9
.0.4\bin:/c/devel\Python\Python36-32\Scripts\:/c/devel\Python\Python36-32\:/c/devel\perl\site\bin:/c/devel\perl\bin:/c/W
INDOWS\system32:/c/WINDOWS:/c/WINDOWS\System32\Wbem:/c/WINDOWS\System32\WindowsPowerShell\v1.0\:/c/Program Files\Java\jd
Esimerkki CMD:
C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;c:\Program Files\Java\jre-9
.0.4\bin;C:\devel\Python\Python36-32\Scripts\;C:\devel\Python\Python36-32\;C:\devel\perl\site\bin;C:\devel\perl\bin;C:\W
INDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Java\jd
Windows pohjaisissa shelleissä (cmd, PowerShell) ohjelman etsimiseen vaikuttaa myös suoritettavien ohjelmien tiedostotarkenteita listaava ympäristömuuttuja pathext
(kuinka näet sen arvon?), joka voisi olla esimerkiksi
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW
Jos annetaan esimerkiksi komento
python
niin esimerkin koneessa katsotaan ensin löytyykö python.com
-niminen tiedosto ensimmäiseksi hakemistosta:
C:\ProgramData\Oracle\Java\javapath
Jos ei löydy, katsotaan löytyykö python.exe
ko hakemistosta ja näin käydään yksitellen vaihtamassa nimen perään kukin seuraavista pathext
-muuttujassa olevista tiedoston nimen tarkentimista (bat, cmd, vbs, jne.). Jos yhtäkään lueteltuja tarkenteita vastaavaa tiedostoa ei löydä tästä hakemistosta, niin sitten siirrytään path
-muuttujan seuraavaan hakemistoon ja jatketaan. Esimerkin tapauksessa hakemistosta
C:\devel\Python\Python36-32
löytyy ohjelman python.exe
ja tiedoston löydyttyä se käynnistetään. Mutta jos mistään path
-muuttujassa luetelluista hakemistosta ei löydy halutun nimistä suoritettavaa tiedostoa, niin silloin annetaan virheilmoitus:
'python' is not recognized as an internal or external command,
operable program or batch file.
Yleensä asennusohjelmat lisäävät asentamansa ohjelman nimen hakupolkuun (eli ympäristömuuttujaan path
), mutta näin ei käy kaikissa tapauksissa. Silloin meidän pitää itse päivittää hakupolkua.
1.1 Taustaa
Jotta voit käynnistää PowerShellillä vaikkapa HelloWorld
-ohjelman (siis exe
-tiedoston tai muun ajettavan ohjelman), täytyy sinulla olla aktiivisena se kansio, missä ohjelma sijaitsee. Esimerkiksi jos HelloWorld.exe
sijaitsee kansiossa
C:\MyTemp\anlakane
niin voit käynnistää kyseisen ohjelman navigoimalla tuohon kansioon cd
-komentoja käyttämällä, ja sitten kirjoittamalla
.\HelloWorld.exe
Toinen vaihtoehto ohjelman käynnistämiseksi on kirjoittaa ohjelman koko polku.
C:\MyTemp\anlakane\HelloWorld.exe
Koska usein on kätevää käynnistää ohjelma kirjoittamalla vain lyhyesti ohjelman nimi, kuten yllä HelloWorld.exe
, tarvitaan PATH-ympäristömuuttujaa.
1.2 csc-kääntäjän lisääminen PATH-ympäristömuuttujaan
Luennolla set
-komennolla tehty asetus vaikuttaa vain siihen auki olemaan komentoikkunaan. Alla on ohjeita miten asetuksen saa pysyvästi. Käytti mitä alla olevaa tapaa tahansa, pitää sen jälkeen käynnistää uusi komentoikkuna ja asetus vaikuttaa vasta siellä.
Windows
Klikkaa Käynnistä-kuvaketta ja kirjoita environment
\(\rightarrow\) Klikkaa Edit environment variables for your account (suomalaisessa kirjoita ympäristö
ja valitse Muokkaa tilin ympäristömuuttujia
) \(\rightarrow\) Valitse Path-muuttuja ja paina Edit \(\rightarrow\) Klikkaa New ja copy-pasteta seuraava rivi ja paina lopuksi OK.
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\Roslyn
Huomautus macOS- ja Linux-käyttäjille
macOS- ja Linux-järjestelmissä PATH-ympäristömuuttujaa ei tarvitse asettaa, vaan mcs
-kääntäjäohjelmaa voidaan oletuksena käyttää komentorivillä mistä kansiosta käsin tahansa.
1.3 Valinnainen: Oman bin
, bat
tai vastaavan kansion lisääminen
Jos haluat lisätä PATH-ympäristömuuttujaan esimerkiksi kansion c:\MyTemp\bin
tai c:\bat
tms, niin tee se kuten edellä, mutta pitkän roslyn
hakemiston tilalle tarvittava hakemiston nimi.
Muista sulkea komentorivi ja käynnistää se uudestaan PATH-muuttujan päivittämiseksi komentoriville.
1.4 Lisää taustaa ympäristömuuttujista
Ympäristömuuttuja tarkoittaa yksinkertaisesti avain-arvo-paria, jossa kytketään jokin avain (esim. PATH
) tiettyyn arvoon (kuten C:\Mytemp;C:\Windows
). Ympäristömuuttujat ovat kaikkien Windows-ohjelmien käytettävissä, ja siinä mielessä ne ovat niitä kuuluisia "globaaleja muuttujia".
PATH
-muuttuja on pienoinen erikoistapaus ympäristömuuttujien joukossa. Windows koostaa System- ja User-tason PATH
:sta yhden kokonaisuuden, jossa on ensin System-muuttujassa määritelty osio ja sen perässä User-osio. Jos siis haluat peruskäyttäjänä lisätä jonkin polun PATH
:n hakulistaan ja sitä ei ole User-puolella, luo User-puolelle muuttuja nimeltä PATH
. Lopputuloksena PATH
sisältää ''sekä'' System- ''että'' User-puolella määritellyt polut.
Tällä tavalla asetettuna PATH
-muuttujan arvo säilyy, vaikka tietokone käynnistetään uudelleen. Huomaa, että kun muutat arvoa tällä tavalla, niin asetus ei näy jo käynnissä oleviin ohjelmiin. Esimerkiksi auki oleva komentorivi-ikkuna pitäää sulkea ja avata uudelleen.
Kun muutat PATH-muuttujan arvoa, niin älä tyhjennä olemassa olevaa, vaan laita olemassa olevan perään puolipiste (;
) ja sitten sen perään kirjoita uusi lisättävä hakemiston nimi.
Esimerkiksi, jos loppu on ennestään
C:\Windows\System32;C:\Windows
ja haluat lisätä csc
-kääntäjän hakemiston
C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\Roslyn
PATH
-muuttujaan, niin muuta muuttujan arvo muotoon
C:\Windows\System32;C:\Windows;C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\Roslyn
Alkuosa voi tietenkin olla sinulla jotain muuta, joten ole tarkkana soveltaessasi ohjetta.
Jos luot uuden muuttujan, niin silloin siihen ensimmäisen kerran kirjoitetaan pelkkä lisättävä arvo, esim: c:\bin
. Siis ilman puolipisteitä.
2. PATH Linuxissa ja Macissa
2.1 Asettaminen
Oletetaan että on tehty kansioon ~/bin
hyviä komentoja. Tämä halutaan lisätä hakupolkuun. Ubuntussa onkin valmiina tämä polussa, eli sitä ei edes tarvitsisi lisätä. Mutta jos tarvitsisi, niin tilapäisesti se saataisiin polkuun:
export PATH="~/bin:$PATH"
Jos haluat lisäyksestä pysyvän, niin avaa tiedosto ~/.profile
joka sijaitsee kotikansiossasi. Huomaa, että tiedoston nimen edessä on piste, eli se on piilotettu tiedosto. Tiedostolla ei myöskään ole tiedostopäätettä, kuten .txt
.
Jos tiedostoa .profile
ei ole olemassa niin luo se kotikansioosi, ja lisää siihen alkuun yllä annettu export
-komento.
Jos tiedosto oli jo olemassa, niin etsi rivi jossa on näkyy ylemmän kaltainen export PATH
-komento. Muokkaa sitä lisäämällä ensimmäisen lainausmerkin jälkeen ~/bin:
. Jos sellaista riviä ei ole, niin lisää johonkin tiedoston kohtaan yllä annettu export
-litania.
Tallenna .profile
-tiedosto, ja käynnistä pääte uudestaan. Tarkista muutoksen onnistuminen komennolla:
echo $PATH
HUOM! Mikäli .profile muutokset eivät ole onnistuneet, eli echo $PATH
ei näytä uutta asetettua polkua, niin kotikansiossasi on todennäköisesti .bash_profile
tiedosto, joka yliajaa .profile
tiedoston.
Mikäli näin on, niin voit joko poistaa .bash_profile
tiedoston (mikäli siellä ei ole mitään tarvittavaa) tai vaihtoehtoisesti lisätä edellä tehdyt muutokset .bash_profile
tiedostoon, jonka pitäisi ajaa saman asian kuin .profile
tiedosto.
2.2 Ajo-oikeus
Unix-pohjaisissa järjestelmissä pitää muistaa antaa myös ajo-oikeus tehdyille skripteille. Mikäli meillä olisi ~/bin
hakmeistossa tehtynä skripti kaanna
, niin sille voitaisiin laittaa ajo-oikeudet komennolla:
chmod 755 ~/bin/kaanna
These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.