Ero sivun ”PATH” versioiden välillä
Siirry navigaatioon
Siirry hakuun
Selkeytetty artikkelia.
LP (keskustelu | muokkaukset) (PATH-esimerkki keskustelun mukaan; hakemistojen lyhyet kuvaukset yms.) |
(Selkeytetty artikkelia.) |
||
(3 välissä olevaa versiota 2 käyttäjän tekeminä ei näytetä) | |||
Rivi 1: | Rivi 1: | ||
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 /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. | 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 | 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 [[tietoturva]]syistä, jos jokin ilkeämielinen käyttäjä olisi vaikkapa sijoittanut /tmp-hakemistoon [[haittaohjelma]]n nimeltä ls, niin työhakemiston ollessa PATH:issä tämä ohjelma ajettaisiin oikean | 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): | ||
/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/bin:/usr/local/sbin: | /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 | Käyttäjä saa selville oman PATH-muuttujansa sisällön komennolla | ||
Rivi 13: | Rivi 12: | ||
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 [[kotikansio]]ssa oleva .[[bashrc]] tai .profile). | ||
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 [[kotihakemisto|~]]/bin-hakemistosta (tai vastaava järjestelmänlaajuisesti hakemistosta /usr/local/bin) ja tämän oman hakemiston lisääminen PATH-muuttujaan. | 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 | [[mkdir]] ~/bin | ||
Rivi 23: | Rivi 22: | ||
== Ohjelmahakemistot == | == Ohjelmahakemistot == | ||
Hakemistoja, jotka usein sisältyvät PATH:iin | Hakemistoja, jotka usein sisältyvät PATH:iin | ||
* /usr/bin: useimmat ohjelmat | * <tt>/usr/bin</tt>: useimmat ohjelmat | ||
* /bin: ohjelmat joita saatetaan tarvita myös järjestelmää käynnistettäessä tai korjattaessa | * <tt>/bin</tt>: 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 | * <tt>/usr/sbin</tt>: [[palvelin|palvelimet]] ja ylläpito-ohjelmat, joita tarvitaan vain normaalissa ajossa | ||
* /sbin: ylläpito-ohjelmat, joita tarvitaan myös erikoistilanteissa | * <tt>/sbin</tt>: ylläpito-ohjelmat, joita tarvitaan myös erikoistilanteissa | ||
* /usr/local/bin: paikallisesti pakettihallinnan ohi asennetut ohjelmat | * <tt>/usr/local/bin</tt>: paikallisesti pakettihallinnan ohi asennetut ohjelmat | ||
* /usr/local/sbin: paikallisesti pakettihallinnan ohi asennetut ylläpito-ohjelmat | * <tt>/usr/local/sbin</tt>: paikallisesti pakettihallinnan ohi asennetut ylläpito-ohjelmat | ||
* /home/*/bin: käyttäjien itsensä ilman ylläpito-oikeuksia asentamat ohjelmat | * <tt>/home/*/bin</tt>: 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 | * <tt>/opt/bin</tt>: ylläpidon asentamat ohjelmat, joita ylläpito jostakin syystä ei halua yllämainittuihin hakemistoihin; usein isoja paketinhallinnan ohi asennettuja ohjelmistoja | ||
* /usr/games: pelit | * <tt>/usr/games</tt>: [[pelit]] joissakin jakeluissa (mm. [[Debian]] ja [[Fedora]]) | ||
* /usr/X11R6/ | * <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 tarvitse sbin-hakemistojen ohjelmia, mutta esimerkiksi | 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, 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ä). | 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ä. | Joskus voi olla tarvetta lisätä muitakin hakemistoja polkuun, lähinnä [[Portaali:Ohjelmistokehitys|ohjelmistokehityksen]] yhteydessä. |