Ero sivun ”PATH” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(tallennus)
 
(10 välissä olevaa versiota 5 käyttäjän tekeminä ei näytetä)
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 [[komentorivi]]llä käytettävä [[ympäristömuuttuja]], joka määrittelee mistä [[hakemisto]]ista suoritettavia ohjelmatiedostoja oletuksena haetaan. Oletetaan esimerkiksi, että [[käyttäjä]] haluaisi suorittaa ohjelmatiedoston <tt>/usr/sbin/[[iwconfig]]</tt>. Jos <tt>/usr/sbin</tt>:iä ei ole PATH-muuttujassa, joutuu käyttäjä ohjelman käynnistääkseen kirjoittamaan sen koko polun <tt>/usr/sbin/iwconfig</tt>. 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 [[tietoturva]]syistä, jos jokin ilkeämielinen käyttäjä olisi vaikkapa sijoittanut <tt>/tmp</tt>-hakemistoon [[haittaohjelma]]n nimeltä <tt>[[ls]]</tt>, niin työhakemiston ollessa PATH:issä tämä ohjelma ajettaisiin oikean <tt>ls</tt>-komennon sijaan, kun suorittaa komennon <tt>ls</tt> kyseisessä 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):
  /bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/opt/bin:/opt/gnome/bin:
  /usr/bin:/usr/sbin:/bin:/sbin:/usr/local/bin:/usr/local/sbin:
/opt/kde/bin:/opt/mozilla/bin:/opt/qgis/bin:/opt/qt/bin:/usr/local/bin:
  /home/[[käyttäjä]]/bin:/usr/games
  /home/bin:/usr/local/bin:/home/gustaf/bin
 
Käyttäjä saa selville oman PATH-muuttujansa sisällön komennolla
Käyttäjä saa selville oman PATH-muuttujansa sisällön komennolla
  echo $PATH
  [[echo]] $PATH
PATHin loppuun voi lisätä uusia hakemistoja komennolla
PATHin loppuun voi lisätä uusia hakemistoja komennolla
  [[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. <tt>/usr/sbin/iwconfig</tt> kuten yllä, parempi ratkaisu kuin koko tämän hakemiston lisääminen voi olla [[symbolinen linkki|symbolisen linkin]] tekeminen omasta <tt>[[kotihakemisto|~]]/bin</tt>-hakemistosta (tai vastaava järjestelmänlaajuisesti hakemistosta <tt>/usr/local/bin</tt>) ja tämän oman hakemiston lisääminen PATH-muuttujaan.
 
[[mkdir]] ~/bin
[[ln]] -s /usr/sbin/iwconfig ~/bin
export PATH="$PATH:$HOME/bin"
 
== Ohjelmahakemistot ==
Hakemistoja, jotka usein sisältyvät PATH:iin
* <tt>/usr/bin</tt>: useimmat ohjelmat
* <tt>/bin</tt>: ohjelmat joita saatetaan tarvita myös järjestelmää käynnistettäessä tai korjattaessa
* <tt>/usr/sbin</tt>: [[palvelin|palvelimet]] ja ylläpito-ohjelmat, joita tarvitaan vain normaalissa ajossa
* <tt>/sbin</tt>: ylläpito-ohjelmat, joita tarvitaan myös erikoistilanteissa
* <tt>/usr/local/bin</tt>: paikallisesti pakettihallinnan ohi asennetut ohjelmat
* <tt>/usr/local/sbin</tt>: paikallisesti pakettihallinnan ohi asennetut ylläpito-ohjelmat
* <tt>/home/*/bin</tt>: käyttäjien itsensä ilman ylläpito-oikeuksia asentamat ohjelmat
* <tt>/opt/bin</tt>: ylläpidon asentamat ohjelmat, joita ylläpito jostakin syystä ei halua yllämainittuihin hakemistoihin; usein isoja paketinhallinnan ohi asennettuja ohjelmistoja
* <tt>/usr/games</tt>: [[pelit]] joissakin jakeluissa (mm. [[Debian]] ja [[Fedora]])
* <tt>/usr/X11R6/bi</tt>n: ennen [[X]]:n ohjelmat olivat eri hakemistoissa, nykyään hakemistossa <tt>/usr/bin</tt>
 
Tavalliset käyttäjät eivät pääsääntöisesti tarvitse sbin-hakemistojen ohjelmia, mutta esimerkiksi [[Fedora]]ssa
ne ovat nykyään aina mukana [https://fedoraproject.org/wiki/Features/SbinSanity], jotta [[sudo]] yms. toimisi tavallisilla käyttäjillä (eikä siis tarvitse erottaa ylläpitäjiä ja muita). Yksittäisiä ohjelmia voi lisätä polkuun [[symbolinen linkki|symbolisilla linkeillä]] polussa olevista hakemistoista (katso yllä).
 
Joskus voi olla tarvetta lisätä muitakin hakemistoja polkuun, lähinnä [[Portaali:Ohjelmistokehitys|ohjelmistokehityksen]] yhteydessä.
 
==Katso myös==
==Katso myös==
*[[Komentorivin perusteet]]
*[[Komentorivin perusteet]]

Nykyinen versio 29. maaliskuuta 2009 kello 16.22

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):

/usr/bin:/usr/sbin:/bin:/sbin:/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 (tai vastaava järjestelmänlaajuisesti hakemistosta /usr/local/bin) ja tämän oman hakemiston lisääminen PATH-muuttujaan.

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

Ohjelmahakemistot[muokkaa]

Hakemistoja, jotka usein sisältyvät PATH:iin

  • /usr/bin: useimmat ohjelmat
  • /bin: ohjelmat joita saatetaan tarvita myös järjestelmää käynnistettäessä tai korjattaessa
  • /usr/sbin: palvelimet ja ylläpito-ohjelmat, joita tarvitaan vain normaalissa ajossa
  • /sbin: ylläpito-ohjelmat, joita tarvitaan myös erikoistilanteissa
  • /usr/local/bin: paikallisesti pakettihallinnan ohi asennetut ohjelmat
  • /usr/local/sbin: paikallisesti pakettihallinnan ohi asennetut ylläpito-ohjelmat
  • /home/*/bin: käyttäjien itsensä ilman ylläpito-oikeuksia asentamat ohjelmat
  • /opt/bin: ylläpidon asentamat ohjelmat, joita ylläpito jostakin syystä ei halua yllämainittuihin hakemistoihin; usein isoja paketinhallinnan ohi asennettuja ohjelmistoja
  • /usr/games: pelit joissakin jakeluissa (mm. Debian ja Fedora)
  • /usr/X11R6/bin: ennen X:n ohjelmat olivat eri hakemistoissa, nykyään hakemistossa /usr/bin

Tavalliset käyttäjät eivät pääsääntöisesti tarvitse sbin-hakemistojen ohjelmia, mutta esimerkiksi Fedorassa ne ovat nykyään aina mukana [1], jotta sudo yms. toimisi tavallisilla käyttäjillä (eikä siis tarvitse erottaa ylläpitäjiä ja muita). Yksittäisiä ohjelmia voi lisätä polkuun symbolisilla linkeillä polussa olevista hakemistoista (katso yllä).

Joskus voi olla tarvetta lisätä muitakin hakemistoja polkuun, lähinnä ohjelmistokehityksen yhteydessä.

Katso myös[muokkaa]