Ero sivun ”PATH” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(tallennus)
(esimerkin vaihto, omat symlinkit PATH-lisäysten korvikkeena)
Rivi 1: Rivi 1:
PATH on erityisesti komentorivillä käytettävä [[wikipedia:fi:ympäristömuuttuja|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
PATH on erityisesti komentorivillä käytettävä [[wikipedia:fi:ympäristömuuttuja|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
  ./ohjelma_nimi
Tämä johtuu tietoturvasyistä, eli jos jokin ilkeämielinen krakkeri olisi vaikkapa sijoittanut käyttäjän kotihakemistoon haittaohjelman nimeltä ls, niin työhakemiston ollessa PATH:issä tämä ohjelma ajettaisiin joka kerta, kun käyttäjä suorittaa [[ls]]-komennon tässä hakemistossa.
Tämä johtuu tietoturvasyistä, eli 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 [[ls]]-komennon siinä hakemistossa.


Käyttäjän PATH-muuttujan sisältö saattaisi näyttää vaikkapa seuraavalta (ilman rivinvaihtoja):
Käyttäjän PATH-muuttujan sisältö saattaisi näyttää vaikkapa seuraavalta (ilman rivinvaihtoja):
Rivi 12: Rivi 12:
  [[export]] PATH="$PATH:/uusi/hakemisto"
  [[export]] PATH="$PATH:/uusi/hakemisto"
Huomaa, että nämä muutokset eivät jää voimaan, ellet lisää niitä [[komentotulkki|komentotulkin]] rc-tiedostoon (esim. [bash]]issa .[[bashrc]]
Huomaa, että nämä muutokset eivät jää voimaan, ellet lisää niitä [[komentotulkki|komentotulkin]] rc-tiedostoon (esim. [bash]]issa .[[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 [[symbolinen linkki|symbolisen linkin]] tekeminen omasta ~/bin-hakemistosta ja tämän oman hakemiston lisääminen PATH-muutujaan.
[[mkdir]] ~/bin
[[ln]] -s /usr/sbin/iwconfig ~/bin
export PATH="$PATH:$HOME/bin"
==Katso myös==
==Katso myös==
*[[Komentorivin perusteet]]
*[[Komentorivin perusteet]]

Versio 4. maaliskuuta 2008 kello 00.09

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ä, eli 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 ls-komennon siinä hakemistossa.

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

/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/opt/bin:/opt/gnome/bin:
/opt/kde/bin:/opt/mozilla/bin:/opt/qgis/bin:/opt/qt/bin:/usr/local/bin:
/home/bin:/usr/local/bin:/home/gustaf/bin

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. [bash]]issa .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-muutujaan.

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

Katso myös