Ero sivun ”Komentorivin perusteet” versioiden välillä

Siirry navigaatioon Siirry hakuun
1 797 merkkiä lisätty ,  12. tammikuuta 2009
huomautus DOS-käyttäjille (jokerit); ctrl-alt-fx toimii myös tekstitilassa; välilyönti rm-esimerkkiin; täydennystä jokerikäyttöön
(huomautus DOS-käyttäjille (jokerit); ctrl-alt-fx toimii myös tekstitilassa; välilyönti rm-esimerkkiin; täydennystä jokerikäyttöön)
Rivi 1: Rivi 1:
[[Komentorivi]] on yksi GNU/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 tarvitakaan 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 GNU/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.
 
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.


==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ä 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ä 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.


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 64: Rivi 66:


Tiedostojen poistaminen taas tapahtuu komennolla
Tiedostojen poistaminen taas tapahtuu komennolla
  rm tiedosto toinen_tiedosto kolmas_tiedosto
  rm tiedosto toinen_tiedosto "kolmas tiedosto"
Poistettavia tiedostoja voidaan siis antaa kerralla useampia. Hakemistoja poistettaessa on annettava valitsin -r:
Poistettavia tiedostoja voidaan siis antaa kerralla useampia. Hakemisto sisältöineen poistetaan [[valitsin|valitsimen]] -r avulla ("rekursiivisesti"; tyhjän hakemiston voi poistaa myös komennolla rmdir).
  rm -r hakemisto
  rm -r hakemisto
rmdir tyhjä_hakemisto


== Täydentäminen tabulaattorilla ==
== Täydentäminen tabulaattorilla ==
Rivi 88: Rivi 91:


== Jokerimerkit ==
== Jokerimerkit ==
Tiedostoihin ja hakemistoihin voidaan niiden kokonaisen nimen lisäksi viitata myös käyttäen jokerimerkkejä * ja ?. Tähti (*) tarkoittaa sitä, että siitä eteenpäin saa olla mitä tahansa merkkejä. Jos siis edellisessä esimerkissä kirjoittaisimme komennon
Tiedostoihin ja hakemistoihin voidaan niiden kokonaisen nimen lisäksi viitata myös käyttäen jokerimerkkejä * ja ?. Tähti (*) tarkoittaa sitä, että sen tilalla saa olla mitä tahansa merkkejä.  
 
Jos siis edellisessä esimerkissä kirjoittaisimme komennon
  rm -r p*
  rm -r p*
poistuisivat hakemistot <tt>pelit</tt> ja <tt>pikkupelit</tt> 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 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>.


Toinen jokerimerkki on kysymysmerkki (?), joka viittaa mihin tahansa yhteen kirjaimeen. 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 (ääkö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
  rm ???
  rm ???
(tämän sijaan kannattaa usein käyttää muotoa <tt>rm -i ???</tt>, joka pyytää varmistuksen joka tiedoston osalta)
Klassinen "ansa" on se, että <tt>.*</tt> tavallisten [[piilotiedosto]]jen lisäksi viittaa myös hakemistoihin <tt>.</tt> ja <tt>..</tt>, joten <tt>rm -r .*</tt> ei poista pelkästään kaikkia piilotiedostoja ja -piilohakemistoja vaan myös nykyisen työhakemiston ylähakemiston kaikkine alihakemistoineen. Tämän sijaan voi käyttää toista rakennetta, jolla määrätään että toisen merkin on oltava kirjain (tässä [[wikipedia:fi:ASCII|ASCII]]-kirjain):
rm .[a-zA-Z]*
Toinen ansa on se, että ylimääräinen välilyönti voi aiheuttaa ikäviä yllätyksiä (erityisesti tiedostoja [[bash-skriptaus|automaattisesti käsiteltäessä]]). Tässä poistetaan sekä .?-tyyliset piilotiedostot että kaikki tavalliset tiedostot:
rm .[a-z] *
DOS:sta poiketen komentotulkki tulkitsee jokerimerkit itse eikä välitä niitä kutsutulle ohjelmalle. Jos jokerimerkit viittaavat eri ympäristöön (kuten usein esimerkiksi komennoissa [[scp]] ja [[tar]]), ne on suojattava komentotulkin tulkinnoilta, joko kenoviivalla tai [[#Lainausmerkkien käyttö|lainausmerkeillä]]:
scp jokinkone:kopioitavat/\*.txt ~/kopioidut_tekstitiedostot
scp "jokinkone:kopioitavat/*.txt" ~/kopioidut_tekstitiedostot


== Putkitus ==
== Putkitus ==
785

muokkausta

Navigointivalikko