PATH

Linux.fista
Versio hetkellä 25. maaliskuuta 2009 kello 14.33 – tehnyt Pb (keskustelu | muokkaukset)
Siirry navigaatioon Siirry hakuun

PATH on erityisesti komentorivillä käytettävä ympäristömuuttuja, joka määrittelee mistä hakemistoista suoritettavia ohjelmatiedostoja oletuksena haetaan. Oletetaan esimerkiksi, että käyttäjä haluaisi suorittaa ohjelmatiedoston /usr/sbin/iwconfig. Jos /usr/sbin:iä ei ole PATH-muuttujassa, joutuu käyttäjä ohjelman käynnistääkseen kirjoittamaan sen koko polun /usr/sbin/iwconfig. Jos taas kyseinen hakemisto on PATH:issä, tarvitsee hänen kirjoittaa vain iwconfig.

Toisin kuin DOS:issa, Linuxissa ja muissa Unix-tyyppisissä järjestelmissä työhakemisto (eli se hakemisto missä käyttäjä kulloinkin on) ei oletuksena ole PATH:issä. Jos käyttäjä haluaa suorittaa työhakemistossaan olevan ajettavan tiedoston, tulee siihen viitata muodossa

./ohjelma_nimi

Tämä johtuu tietoturvasyistä, jos jokin ilkeämielinen käyttäjä olisi vaikkapa sijoittanut /tmp-hakemistoon haittaohjelman nimeltä ls, niin työhakemiston ollessa PATH:issä tämä ohjelma ajettaisiin oikean ls-komennon sijaan, kun suorittaa komennon ls kyseisessä hakemistossa.

Käyttäjän PATH-muuttujan sisältö saattaisi näyttää vaikkapa seuraavalta (ilman rivinvaihtoja):

/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/usr/local/bin:/usr/local/sbin:
/home/käyttäjä/bin:/usr/games

Käyttäjä saa selville oman PATH-muuttujansa sisällön komennolla

echo $PATH

PATHin loppuun voi lisätä uusia hakemistoja komennolla

export PATH="$PATH:/uusi/hakemisto"

Huomaa, että nämä muutokset eivät jää voimaan, ellet lisää niitä komentotulkin rc-tiedostoon (esim. bashissa .bashrc).

Jos usein kaipaa tiettyä ohjelmaa, joka ei löydy PATH-muuttujasta, esim. /usr/sbin/iwconfig kuten yllä, parempi ratkaisu kuin koko tämän hakemiston lisääminen voi olla symbolisen linkin tekeminen omasta ~/bin-hakemistosta ja tämän oman hakemiston lisääminen PATH-muuttujaan.

mkdir ~/bin
ln -s /usr/sbin/iwconfig ~/bin
export PATH="$PATH:$HOME/bin"

Katso myös