Ero sivun ”Komentorivin perusteet” versioiden välillä

Siirry navigaatioon Siirry hakuun
yleistä viilailua
 
(35 välissä olevaa versiota 16 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
[[Komentorivi]] on yksi Linux-järjestelmän tehokkaimmista työkaluista, mutta se voi olla Windows-maailmasta Linuxiin siirtyneelle outo. Windowsissa komentotulkki on varsin rajoittunut ja kömpelö, tosin sitä ei useinkaan käytetä juuri mihinkään. Linuxissa komentoriviltä hoituvat lähes kaikki mahdolliset tehtävät jopa kätevämmin kuin graafisia työkaluja käyttäen.
[[Komentorivi]] on yksi Linux-järjestelmän tehokkaimmista työkaluista, joka voi olla Windows-maailmasta Linuxiin siirtyneelle outo. Windowsissa komentotulkki on varsin rajoittunut ja kömpelö, eikä sitä useinkaan käytetä juuri mihinkään. Linuxissa komentoriviltä hoituvat lähes kaikki mahdolliset tehtävät, usein jopa kätevämmin kuin graafisia työkaluja käyttäen.


Windowsin komentoriviin tai DOS:iin tottuneiden kannattaa huomioida varsinkin jokerimerkkien erilainen logiikka ja se, etteivät [[Unix]]-komennot juurikaan kysele varmistuksia tai kerro tekemisistään, vaan tekevät ilman kommentteja sen, mitä pyydettiin.
Windowsin komentoriviin tai DOS:iin tottuneiden kannattaa huomioida varsinkin jokerimerkkien erilainen logiikka ja se, etteivät [[Unix]]-komennot juurikaan kysele varmistuksia tai kerro tekemisistään, vaan tekevät ilman kommentteja sen mitä pyydettiin.
[[Kuva:Gnome-terminal.png|250px|right|thumb|Komentorivin käyttöä [[gnome-terminal]]illa]]
[[Kuva:Gnome-terminal.png|250px|right|thumb|Komentorivin käyttöä [[GNOME Terminal]]illa]]


==Miten komentoriville pääsee?==
==Miten komentoriville pääsee?==
Useimmat käyttävät Linuxia graafisessa ympäristössä ([[X]]), jolloin luontevin tapa komentoriville pääsyyn on käyttää jotakin [[terminaaliemulaattori]]a. Yleisimpiä terminaaliemulaattoreita ovat X:n perustyökaluihin kuuluva [[xterm]], [[KDE]]:n [[Konsole]] sekä [[GNOME]]n [[gnome-terminal]]. Nämä löytyvät yleensä [[työpöytäympäristö]]n valikosta esimerkiksi nimellä pääte, terminaali tai komentorivi. On myös mahdollista käyttää järjestelmän tekstipohjaisia [[virtuaalikonsoli|virtuaalikonsoleja]] (yleensä numeroiltaan 1-6). Näihin pääsee graafisesta ympäristöstä näppäinyhdistelmällä Ctrl+Alt+<funktionäppäin> (esimerkiksi Ctrl+Alt+F1). Tekstitilassa voi virtuaalikonsolista toiseen siirtyä myös näppäinyhdistelmällä Alt+<funktionäppäin> tai Alt+sivunuolinäppäin. X toimii yleensä virtuaalikonsolissa 7, joten takaisin sinne voi siirtyä näppäinyhdistelmällä Alt+F7.
Useimmat käyttävät Linuxia graafisessa ympäristössä ([[X]]), jolloin luontevin tapa komentoriville pääsyyn on käyttää jotakin [[terminaaliemulaattori]]a. Yleisimpiä terminaaliemulaattoreita ovat X:n perustyökaluihin kuuluva [[xterm]], [[KDE]]:n [[Konsole]] sekä [[GNOME]]n [[GNOME Terminal]]. Nämä löytyvät yleensä [[työpöytäympäristö]]n valikosta esimerkiksi nimellä pääte, terminaali tai komentorivi. On myös mahdollista käyttää järjestelmän tekstipohjaisia [[virtuaalikonsoli|virtuaalikonsoleja]] (yleensä numeroiltaan 1-6). Näihin pääsee graafisesta ympäristöstä näppäinyhdistelmällä {{Näppäin|Ctrl|Alt}}+<funktionäppäin> (esimerkiksi {{Näppäin|Ctrl|Alt|F1}}). Tekstitilassa voi virtuaalikonsolista toiseen siirtyä myös näppäinyhdistelmällä {{Näppäin|Alt}}+<funktionäppäin> tai {{Näppäin|Alt}}+sivunuolinäppäin. X toimii yleensä virtuaalikonsolissa 7, joten takaisin sinne voi siirtyä näppäinyhdistelmällä {{Näppäin|Alt|F7}}.


Jotkut jakelut tarjoavat mahdollisuuden käynnistää koneen vikasieto- tai korjaustilassa, joka käynnistyy suoraan komentoriville. Näin on mahdollista tehdä järjestelmään korjauksia vaikka graafinen ympäristö ei toimisikaan.
Jotkut jakelut tarjoavat mahdollisuuden käynnistää koneen vikasieto- tai korjaustilassa, joka käynnistyy suoraan komentoriville. Näin on mahdollista tehdä järjestelmään korjauksia vaikka graafinen ympäristö ei toimisikaan.
Rivi 13: Rivi 13:


Seuraavissa ohjeissa dollarimerkki ($) tarkoittaa, että komento syötetään tavallisena käyttäjänä ja risuaita (#) sitä, että toimitaan pääkäyttäjänä. Tämä on yleinen merkintätapa jota käytetään muuallakin tässä wikissä ja yleisesti muissakin ohjeissa. Jos rivin alussa ei ole kumpaakaan näistä merkeistä, se tarkoittaa komennon tulostetta.
Seuraavissa ohjeissa dollarimerkki ($) tarkoittaa, että komento syötetään tavallisena käyttäjänä ja risuaita (#) sitä, että toimitaan pääkäyttäjänä. Tämä on yleinen merkintätapa jota käytetään muuallakin tässä wikissä ja yleisesti muissakin ohjeissa. Jos rivin alussa ei ole kumpaakaan näistä merkeistä, se tarkoittaa komennon tulostetta.
==Komentorivin pikanäppäimet==
Vaikka komentorivillä on mahdollista liikkua  {{Näppäin|Left}} , {{Näppäin|Right}} , {{Näppäin|HOME}} sekä {{Näppäin|END}}-näppäimillä, käytettävissä on myös pikanäppäimiä, jotka toimivat komentotulkista riippumatta.
* {{Näppäin|CTRL|A}} - Siirtää kohdistimen rivin alkuun.
* {{Näppäin|CTRL|E}} - Siirtää kohdistimen rivin loppuun.
* {{Näppäin|CTRL|B}} - Siirtää kohdistimen yhden taaksepäin
* {{Näppäin|CTRL|F}} - Siirtää kohdistimen yhden eteenpäin
* {{Näppäin|ALT|B}} - Siirtää kohdistimen edeltävään aakkosnumerisen merkkiin
* {{Näppäin|ALT|F}} - Siirtää kohdistimen seuraavan aakkosnumerisen merkin jälkeen
[[Tiedosto:Komentorivi siirtyminen.png|640px]]
* {{Näppäin|CTRL|U}} - Poistaa kohdistita edeltävän sisällön.
* {{Näppäin|CTRL|K}} - Poistaa kohdistimen sekä sen jälkeisen sisällön.
* {{Näppäin|CTRL|W}} - Poistaa kohdistita edeltävään aakkosnumeriseen merkkiin asti sisällön.
* {{Näppäin|ALT|D}} - Poistaa kohdistimen sekä sen jälkeisen sisällön seuraavaan aakkosnumeriseen merkkiin asti.


== Hakemistorakenteessa liikkuminen ==
== Hakemistorakenteessa liikkuminen ==
Rivi 32: Rivi 49:
Tässä siis ensimmäiset merkit kertovat [[tiedoston oikeudet]], toisena oleva numero kertoo tiedoston linkkien eli nimien lukumäärän (yleensä yksi muille kuin hakemistoille), sen jälkeen on tiedoston omistajan käyttäjätunnus (''kayttaja'') ja tiedoston omistava [[ryhmä]] (''users''). Toinen numeroarvo on tiedoston koko tavuina, jota seuraa viimeisin muokkauspäivämäärä ja tiedoston nimi. Huomaa että hakemistojen kohdalla näkyvä koko ei kerro hakemiston sisältämien tiedostojen yhteiskokoa.
Tässä siis ensimmäiset merkit kertovat [[tiedoston oikeudet]], toisena oleva numero kertoo tiedoston linkkien eli nimien lukumäärän (yleensä yksi muille kuin hakemistoille), sen jälkeen on tiedoston omistajan käyttäjätunnus (''kayttaja'') ja tiedoston omistava [[ryhmä]] (''users''). Toinen numeroarvo on tiedoston koko tavuina, jota seuraa viimeisin muokkauspäivämäärä ja tiedoston nimi. Huomaa että hakemistojen kohdalla näkyvä koko ei kerro hakemiston sisältämien tiedostojen yhteiskokoa.


Vinkki: Saat <tt>ls</tt>:n tulosteessa olevat tiedoston koot järkevämpään muotoon käyttäen lisäksi valitsinta <tt>h</tt> (<tt>ls -lh</tt>). Tällöin tiedostojen koot näytetään käyttäen sopivinta etuliitettä (tavuina tai kilo-, mega-, giga- tai teratavuina).
*'''Vinkki''': Saat <tt>ls</tt>:n tulosteessa olevat tiedoston koot helpommin hahmotettavaan muotoon käyttäen lisäksi valitsinta <tt>h</tt> (<tt>ls -lh</tt>). Tällöin tiedostojen koot näytetään käyttäen sopivinta etuliitettä (tavuina tai kilo-, mega-, giga- tai teratavuina).
 
*'''Vinkki''': Aaltomerkki eli <tt>~</tt> on alias kotihakemistolle. Eli <tt>ls ~/Työpöytä</tt> (tai ~/Desktop, jos käytössä on englanninkielinen nimi) listaa työpöytäsi sisällön riippumatta nykyisestä työhakemistostasi. <tt>~ville</tt> viittaa vastaavasti käyttäjän "ville" kotihakemistoon ja ~ville/Työpöytä hänen työpöytänsä sisältöön (toki hän on saattanut estää sinua lukemasta sitä).


== Komentojen suorittaminen ==
== Komentojen suorittaminen ==
Rivi 42: Rivi 61:
  /usr/share/karamba/bin-->
  /usr/share/karamba/bin-->


Mikäli ajettava ohjelma ei sijaitse $PATH:in määrittelemissä hakemistoissa, se voidaan suorittaa joko viittaamalla siihen koko sen polulla (esim. <tt>/home/kayttaja/imuroitua/hienosofta.bin</tt>) tai polulla suhteessa [[työhakemisto]]on (esim. <tt>imuroitua/hienosofta.bin</tt>). Mikäli kyseinen ohjelma on hakemistossa, johon on jo siirrytty, suhteellinen polku ilmaistaan lisäämällä tiedostonimen eteen <tt>./</tt>. Tässä piste viittaa siis nykyiseen hakemistoon. Ohjelmia ajaessasi huomaa, että suoritettavalla tiedostolla on oltava [[Tiedoston oikeudet|suoritusoikeudet]]). Esimerkiksi jos hakemistossa <tt>/home/kayttaja</tt> olisi suoritettava tiedosto nimeltä <tt>ohjelma</tt> se voitaisiin suorittaa seuraavilla tavoilla:
Mikäli ajettava ohjelma ei sijaitse $PATH:in määrittelemissä hakemistoissa, se voidaan suorittaa joko viittaamalla siihen koko sen polulla (esim. <tt>/home/kayttaja/imuroitua/hienosofta.bin</tt>) tai polulla suhteessa [[työhakemisto]]on (esim. <tt>imuroitua/hienosofta.bin</tt>). Mikäli kyseinen ohjelma on hakemistossa, johon on jo siirrytty, suhteellinen polku ilmaistaan lisäämällä tiedostonimen eteen <tt>./</tt>. Tässä piste viittaa siis nykyiseen hakemistoon. Ohjelmia ajaessasi huomaa, että suoritettavalla tiedostolla on oltava [[Tiedoston oikeudet|suoritusoikeudet]]. Esimerkiksi jos hakemistossa <tt>/home/kayttaja</tt> olisi suoritettava tiedosto nimeltä <tt>ohjelma</tt> se voitaisiin suorittaa seuraavilla tavoilla:
  $ cd /home/kayttaja
  $ cd /home/kayttaja
  $ ./ohjelma
  $ ./ohjelma
Rivi 54: Rivi 73:
Eri komentoriviohjelmia on listattu ja esitelty sivulla [[komentorivikomennot]].
Eri komentoriviohjelmia on listattu ja esitelty sivulla [[komentorivikomennot]].


== Tiedostojen kopioiminen, siirtäminen ja poistaminen ==
== Tiedostojen ja hakemistojen kopioiminen, siirtäminen ja poistaminen ==
Tavallisimmat tiedosto-operaatiot hoituvat komennoilla <tt>[[cp]]</tt> (kopiointi), <tt>[[mv]]</tt> (siirtäminen) ja <tt>[[rm]]</tt> (poistaminen).
Tavallisimmat tiedosto-operaatiot hoituvat komennoilla <tt>[[cp]]</tt> (kopiointi), <tt>[[mv]]</tt> (siirtäminen) ja <tt>[[rm]]</tt> (poistaminen).


Rivi 71: Rivi 90:
  $ rm -r hakemisto
  $ rm -r hakemisto
  $ rmdir tyhjä_hakemisto
  $ rmdir tyhjä_hakemisto
Uusia hakemistoja voi luoda komennolla <tt>[[mkdir]]</tt>:
$ mkdir hakemisto
Kerralla on mahdollista luoda useampia hakemistoja luettelemalla ne peräkkäin välilyönnillä erotettuna. Lisäksi kokonaisen hakemistopolun voi luoda kerralla käyttämällä valitsinta -p:
$ mkdir -p kuvat/2009/heinakuu
loisi hakemistoon <tt>kuvat/2009</tt> hakemiston <tt>heinakuu</tt> ja mikäli hakemistoa <tt>kuvat</tt> tai sen alihakemistoa <tt>2009</tt> ei ole olemassa, myös ne luodaan.


== Täydentäminen tabulaattorilla ==
== Täydentäminen tabulaattorilla ==
Tabulaattorin painelu on keino täydentää komentojen, hakemistojen ja tiedostojen nimiä komentoriville kirjoittamalla vain nimen alku ja painamalla sitten tabulaattoria.
Tabulaattorin painelu on keino täydentää komentojen, hakemistojen ja tiedostojen nimiä komentoriville kirjoittamalla vain nimen alku ja painamalla sitten tabulaattoria ({{Näppäin|TAB}}).


Esimerkiksi mikäli hakemistossa olisi seuraavat alihakemistot:
Esimerkiksi mikäli hakemistossa olisi seuraavat alihakemistot:
Rivi 87: Rivi 112:
ja painamalla tabulaattoria mitään ei tapahdu, koska ei ole selvää, minkä hakemiston haluat valita (asetuksista riippuen kone saattaa piipata). Kun tabulaattoria painetaan toisen kerran, tulee näkyviin listaus kaikista vaihtoehdoista, tässä tapauksessa siis hakemistojen "pelit" ja "pikkupelit" nimet.
ja painamalla tabulaattoria mitään ei tapahdu, koska ei ole selvää, minkä hakemiston haluat valita (asetuksista riippuen kone saattaa piipata). Kun tabulaattoria painetaan toisen kerran, tulee näkyviin listaus kaikista vaihtoehdoista, tässä tapauksessa siis hakemistojen "pelit" ja "pikkupelit" nimet.


Eräät komentotulkit (mm. bash, vaikka toiminnallisuus ei ole oletuksena kytkettynä) tukevat myös esimerkiksi etäkoneiden nimien, käyttäjänimien, [[PID|prosessinumeroiden]] sekä komentojen valitsimien täydennystä tabin avulla.  
Eräät komentotulkit (mm. bash) tukevat myös esimerkiksi etäkoneiden nimien, käyttäjänimien, [[PID|prosessinumeroiden]] sekä komentojen valitsimien täydennystä tabulaattorin avulla. Ominaisuus ei välttämättä ole oletuksena käytössä kaikissa [[jakelu]]issa.


Mm. [[zsh]]- ja [[tcsh]]-[[komentotulkki|komentotulkeissa]] on mahdollista myös nk. oikoluku, eli väärin kirjoitettujen komentojen tab-täydennys oikeiksi. Esimerkiksi komento <tt>mpllayr</tt> voitaisiin tällöin täydentää komennoksi <tt>[[mplayer]]</tt>.
Mm. [[zsh]]- ja [[tcsh]]-[[komentotulkki|komentotulkeissa]] on mahdollista myös nk. oikoluku, eli väärin kirjoitettujen komentojen tab-täydennys oikeiksi. Esimerkiksi komento <tt>mpllayr</tt> voitaisiin tällöin täydentää komennoksi <tt>[[mplayer]]</tt>.
===Vaaditut lisäpaketit===
* ''[[Arch Linux]]issa [[bash]]-komentotulkki tarvitsee <tt>[https://www.archlinux.org/packages/extra/any/bash-completion/ bash-completion]</tt>-paketin tätä ominaisuutta varten.''


== Jokerimerkit ==
== Jokerimerkit ==
Rivi 95: Rivi 122:


Jos siis edellisessä esimerkissä kirjoittaisimme komennon
Jos siis edellisessä esimerkissä kirjoittaisimme komennon
  $ rm -r p*
  $ rm -r *pelit
poistuisivat hakemistot <tt>pelit</tt> ja <tt>pikkupelit</tt> sisältöineen, koska ne alkavat p-kirjaimella. Vastaavasti kaikkiin ".testi"-päätteisiin tiedostoihin ja hakemistoihin viitattaisiin merkinnällä <tt>*.testi</tt> ja kaikkiin tiedostoihin/hakemistoihin, joiden nimessä esiintyy jossain kohtaa sana "linux" merkinnällä <tt>*linux*</tt>.
poistuisivat hakemistot <tt>pelit</tt> ja <tt>pikkupelit</tt> sisältöineen, koska ne loppuvat "pelit". Vastaavasti kaikkiin ".testi"-päätteisiin tiedostoihin ja hakemistoihin viitattaisiin merkinnällä <tt>*.testi</tt> ja kaikkiin tiedostoihin/hakemistoihin, joiden nimessä esiintyy jossain kohtaa sana "linux" (pienillä kirjaimilla) merkinnällä <tt>*linux*</tt>.


Toinen jokerimerkki on kysymysmerkki (?), joka viittaa mihin tahansa yhteen kirjaimeen (ääkkösten yms. osalta "kirjain" saattaa määräytyä eri tavoilla). Esimerkiksi merkintä <tt>a?</tt> vastaisi mm. merkintöjä <tt>aa, ab, ac,...</tt>, mutta ei merkintää <tt>aaa</tt>. Esimerkiksi voisimme poistaa kaikki kolmesta merkistä koostuvat tiedostot komennolla
Toinen jokerimerkki on kysymysmerkki (?), joka viittaa mihin tahansa yhteen kirjaimeen (ääkkösten yms. osalta "kirjain" saattaa määräytyä eri tavoilla). Esimerkiksi merkintä <tt>a?</tt> vastaisi mm. merkintöjä <tt>aa, ab, ac,...</tt>, mutta ei merkintää <tt>aaa</tt>. Esimerkiksi voisimme poistaa kaikki kolmesta merkistä koostuvat tiedostot komennolla
Rivi 117: Rivi 144:


== Putkitus ==
== Putkitus ==
:''Pääartikkeli: [[Putki]]''
Putket (engl. ''pipes'') ovat tapa, jolla yhden ohjelman tuloste voidaan ohjata toiselle ohjelmalle syötteeksi.  
Putket (engl. ''pipes'') ovat tapa, jolla yhden ohjelman tuloste voidaan ohjata toiselle ohjelmalle syötteeksi.  


Rivi 146: Rivi 174:
                 ||    ||
                 ||    ||
Jos järjestelmässäsi ei ole asennettuna <tt>cowsay</tt>tä, voit asentaa sen [[paketinhallinta]]järjestelmästä paketista <tt>cowsay</tt>. Lisätietoja löytyy artikkelista [[Ohjelmien asentaminen]]. Jos et voi asentaa uusia ohjelmia järjestelmääsi, voit kokeilla putkitusta putkittamalla tulosteet vaikkapa [[rev]]ille, joka tulostaa putkituksella saamansa syötteen takaperin:
Jos järjestelmässäsi ei ole asennettuna <tt>cowsay</tt>tä, voit asentaa sen [[paketinhallinta]]järjestelmästä paketista <tt>cowsay</tt>. Lisätietoja löytyy artikkelista [[Ohjelmien asentaminen]]. Jos et voi asentaa uusia ohjelmia järjestelmääsi, voit kokeilla putkitusta putkittamalla tulosteet vaikkapa [[rev]]ille, joka tulostaa putkituksella saamansa syötteen takaperin:
  $ uname -r | tac
  $ uname -r | rev
  1r-3kc-51.6.2
  1r-3kc-51.6.2


Rivi 159: Rivi 187:


Vastaavasti ohjelman tulostuksen voi ohjata tavallisen komentorivin ([[STDOUT]]) sijasta tiedostoon ohjausmerkillä >. Kokeile vaikka komentoa
Vastaavasti ohjelman tulostuksen voi ohjata tavallisen komentorivin ([[STDOUT]]) sijasta tiedostoon ohjausmerkillä >. Kokeile vaikka komentoa
cowsay Moi > tiedosto
$ cowsay Moi > tiedosto
, ja katso tämän jälkeen tiedoston <tt>tiedosto</tt> sisältö (<tt>[[cat]] tiedosto</tt>). >-merkin käyttö kirjoittaa tiedoston päälle, mutta >>-ohjausmerkkiä käyttämällä putkesta tulevan tiedon voi kirjoittaa tiedoston perään.
, ja katso tämän jälkeen tiedoston <tt>tiedosto</tt> sisältö (<tt>[[cat]] tiedosto</tt>). >-merkin käyttö kirjoittaa tiedoston päälle, mutta >>-ohjausmerkkiä käyttämällä putkesta tulevan tiedon voi kirjoittaa tiedoston perään.


Rivi 205: Rivi 233:
Tämä puolestaan kertoo, kuinka monta tiedostoa on hakemistossa <tt>/etc</tt> (<tt>[[wc]] -l</tt> laskee syötteen rivit). Luku ei ole tarkka, koska mukaan laskettiin myös otsikkorivi.
Tämä puolestaan kertoo, kuinka monta tiedostoa on hakemistossa <tt>/etc</tt> (<tt>[[wc]] -l</tt> laskee syötteen rivit). Luku ei ole tarkka, koska mukaan laskettiin myös otsikkorivi.


''Vinkki'': <tt>du</tt>:n tulosteessa hakemistojen koot ilmoitetaan tavuina. Se onkin hyvä, jos hakemistojen kokoja halutaan vertailla keskenään kuten yllä. <tt>du</tt>:n saa tulostamaan myös hakemistojen koot ihmiselle luettavassa muodossa käyttäen kilo-, mega- ja gigatavuja valitsimella <tt>-h</tt>. Tällöin hakemistojen kokojen vertailu <tt>sort</tt>illa ei onnistu, sillä se ei tajua, että 1M on enemmän kuin 10k.
*'''Vinkki''': <tt>du</tt>:n tulosteessa hakemistojen koot ilmoitetaan kilotavuina. Se onkin hyvä, jos hakemistojen kokoja halutaan vertailla keskenään kuten yllä. <tt>du</tt>:n saa tulostamaan myös hakemistojen koot ihmiselle luettavassa muodossa käyttäen kilo-, mega- ja gigatavuja valitsimella <tt>-h</tt>. Tällöin hakemistojen kokojen vertailuun <tt>sort</tt>illa täytyy käyttää valitsinta <tt>-h</tt>, jotta se tajuaa, että 1M on enemmän kuin 10k.
 


== Komentojen ketjutus ==
== Komentojen ketjutus ==
Rivi 239: Rivi 266:
Lainausmerkkejä käytetään kertomaan, että niiden välissä oleva merkkijono pitää välittää kokonaisuudessaan eteenpäin tulkitsematta sen merkkejä erikseen. Lainausmerkkejä on käytössä kolmenlaisia, joista jokaisella on oma merkityksensä.  
Lainausmerkkejä käytetään kertomaan, että niiden välissä oleva merkkijono pitää välittää kokonaisuudessaan eteenpäin tulkitsematta sen merkkejä erikseen. Lainausmerkkejä on käytössä kolmenlaisia, joista jokaisella on oma merkityksensä.  


Yksinkertaiset lainausmerkit ('), jotka suomalais-ruotsalaisessa näppäimistössä saa Ä:n ja enterin välisestä napista, saavat komentotulkin välittämään niiden välisen merkkijonon sinällään kutsutulle komennolle, prosessoimatta sitä millään tavalla. Esimerkiksi komento
[[wikipedia:fi:Heittomerkki|Heittomerkit]] saavat komentotulkin välittämään niiden välisen merkkijonon sinällään kutsutulle komennolle, prosessoimatta sitä millään tavalla. Esimerkiksi komento
  $ [[su]] -c '[[chown]] ida /home/ida -R'
  $ [[su]] -c '[[chown]] ida /home/ida -R'
joka suorittaa lainausmerkkien välissä olevan komennon [[pääkäyttäjä]]n oikeuksilla, johtaisi ilman lainausmerkkejä siihen, että <tt>su</tt> tulkitsisi vain merkkijonon "<tt>chown</tt>" <tt>-c</tt>-valitsimensa argumentiksi eli suoritettavaksi komennoksi. Loput kolme merkkijonoa tulkittaisiin <tt>su</tt>:n omiksi argumenteiksi, mikä johtaisi virheilmoitukseen.
joka suorittaa lainausmerkkien välissä olevan komennon [[pääkäyttäjä]]n oikeuksilla, johtaisi ilman lainausmerkkejä siihen, että <tt>su</tt> tulkitsisi vain merkkijonon "<tt>chown</tt>" <tt>-c</tt>-valitsimensa argumentiksi eli suoritettavaksi komennoksi. Loput kolme merkkijonoa tulkittaisiin <tt>su</tt>:n omiksi argumenteiksi, mikä johtaisi virheilmoitukseen.
Rivi 266: Rivi 293:


==Komentohistoria==
==Komentohistoria==
Useimmat komentotulkit tukevat komentohistoriaa, joka mahdollistaa aikaisemmin annettujen komentojen selaamisen ja uudelleensuorittamisen. Perustapa aikaisempien komentojen selaamiseen on ylös- ja alasnäppäimet. Komentohistorian alkuun voi yleensä siirtyä näppäimellä Page Up ja loppuun näppäimellä Page Down.  
Useimmat komentotulkit tukevat komentohistoriaa, joka mahdollistaa aikaisemmin annettujen komentojen selaamisen ja uudelleensuorittamisen. Perustapa aikaisempien komentojen selaamiseen on ylös- ja alasnäppäimet. Komentohistorian alkuun voi yleensä siirtyä näppäimellä {{Näppäin|Page Up}} ja loppuun näppäimellä {{Näppäin|Page Down}}.  


Komentohistoriaan voi suorittaa hakuja näppäinyhdistelmällä Ctrl+R. Tällöin näytetään aina edellinen annetun merkkijonon sisältävä komento. Vanhempia komentoja saa näkyviin painamalla uudestaan Ctrl+R. Ctrl+R-hakua [[zsh]]-komentotulkissa:
Komentohistoriaan voi suorittaa hakuja näppäinyhdistelmällä {{Näppäin|Ctrl|R}}. Tällöin näytetään aina edellinen annetun merkkijonon sisältävä komento. Vanhempia komentoja saa näkyviin painamalla uudestaan {{Näppäin|Ctrl|R}}. Ctrl+R-hakua [[zsh]]-komentotulkissa:
  [jaakko@laptop] ~ % cat /var/log/crond
  $ cat /var/log/crond
  bck-i-search: cat _
  bck-i-search: cat _
Jotta komentohistoria ei tuhoutuisi komentotulkki-istunnon sulkemisen yhteydessä, tallentavat useimmat komentotulkit sen sisällön tiettyyn tiedostoon. Yleensä tallennus tapahtuu vasta komentotulkin sulkeutuessa, mutta osa komentotulkeista on myös mahdollista säätää tekemään tallennus heti komennon antamisen jälkeen. Bashissa käytetään yleensä komentohistoriatiedostona tiedostoa <tt>~/.bash_history</tt>. Myös tiedosto <tt>~/.history</tt> on yleinen.
Jotta komentohistoria ei tuhoutuisi komentotulkki-istunnon sulkemisen yhteydessä, tallentavat useimmat komentotulkit sen sisällön tiettyyn tiedostoon. Yleensä tallennus tapahtuu vasta komentotulkin sulkeutuessa, mutta osa komentotulkeista on myös mahdollista säätää tekemään tallennus heti komennon antamisen jälkeen. Bashissa käytetään yleensä komentohistoriatiedostona tiedostoa <tt>~/.bash_history</tt>. Myös tiedosto <tt>~/.history</tt> on yleinen.
Rivi 280: Rivi 307:


==Näyttöhistoria==
==Näyttöhistoria==
Jo nykyisestä ruutunäkymästä kadonnutta tulostetta voi graafisissa [[terminaaliemulaattori|terminaaliemulaattoreissa]] yleensä selata normaalin vierityspalkin avulla. Tekstipohjaisissa [[virtuaalikonsoli|virtuaalikonsoleissa]] voi tulostetta selata jonkin matkaa taaksepäin näppäinyhdistelmillä Shift+Page Up ja Shift+Page Down. Nämä näppäinyhdistelmät toimivat myös terminaaliemulaattoreissa.
Jo nykyisestä ruutunäkymästä kadonnutta tulostetta voi graafisissa [[terminaaliemulaattori|terminaaliemulaattoreissa]] yleensä selata normaalin vierityspalkin avulla. Tekstipohjaisissa [[virtuaalikonsoli|virtuaalikonsoleissa]] voi tulostetta selata jonkin matkaa taaksepäin näppäinyhdistelmillä {{Näppäin|Shift|Page Up}} ja {{Näppäin|Shift|Page Down}}. Nämä näppäinyhdistelmät toimivat myös terminaaliemulaattoreissa.


Koska näyttöhistorian pituutta on yleensä myös terminaaliemulaattoreissa rajoitettu, kannattaa pitkien tiedostojen ja syötteiden selaamiseen ensisijaisesti käyttää [[less]]-ohjelmaa. Tekstin tulostus ruudulle on myös mahdollista keskeyttää Scroll Lock -näppäimellä, mikäli haluaa tutkia pitempään jotakin tiettyä kohtaa. Tulostusta voi jatkaa painamalla uudestaan samaa näppäintä. Näppäinyhdistelmät Ctrl+S ja Ctrl+Q toimivat samalla tavalla.
Koska näyttöhistorian pituutta on yleensä myös terminaaliemulaattoreissa rajoitettu, kannattaa pitkien tiedostojen ja syötteiden selaamiseen ensisijaisesti käyttää [[less]]-ohjelmaa. Tekstin tulostus ruudulle on myös mahdollista keskeyttää {{Näppäin|Scroll Lock}} -näppäimellä, mikäli haluaa tutkia pitempään jotakin tiettyä kohtaa. Tulostusta voi jatkaa painamalla uudestaan samaa näppäintä. Näppäinyhdistelmät {{Näppäin|Ctrl|S}} ja {{Näppäin|Ctrl|Q}} toimivat samalla tavalla.


==Ympäristömuuttujat==
==Ympäristömuuttujat==
Rivi 342: Rivi 369:
*[[Komentorivikomennot]]
*[[Komentorivikomennot]]
*[[Komentorivivinkkejä]]
*[[Komentorivivinkkejä]]
*[[Komentorivin uusi apuri]]
*[[:Luokka:Komentorivin perustyökalut|Komentorivin perustyökalut]]
*[[:Luokka:Komentorivin perustyökalut|Komentorivin perustyökalut]]
*[[:Luokka:Komentorivin erikoisohjelmat|Komentorivin erikoisohjelmat]]
*[[:Luokka:Komentorivin erikoisohjelmat|Komentorivin erikoisohjelmat]]
Rivi 349: Rivi 377:


==Aiheesta muualla==
==Aiheesta muualla==
*[http://people.debian.org/~debacle/refcard/refcard-fi-a4.pdf Debian GNU/Linux Pikaohje PDF-tiedostona]
*[http://www.linuxcommand.org/ LinuxCommand.org] – Aloittelijoille suunnattu kattava ja helppotajuinen englanninkielinen opetussivusto komentorivin käytöstä ja shell-skriptien kirjoituksesta.
*[http://www.linuxcommand.org/ LinuxCommand.org] – Aloittelijoille suunnattu kattava ja helppotajuinen englanninkielinen opetussivusto komentorivin käytöstä ja shell-skriptien kirjoituksesta.
*[http://fi-new.flossmanuals.net/komentorivin-perusteet/index Komentorivin perusteet] - GNU/Linuxin komentorivin perusteet suomenkielisessä FLOSS Manualsissa. {{vanhentunut linkki}}


[[Luokka:Ohjeet]]
[[Luokka:Ohjeet]]
[[Luokka:Komentorivi]]
[[Luokka:Komentorivi]]