Ero sivun ”Komentorivin perusteet” versioiden välillä
Siirry navigaatioon
Siirry hakuun
huomautus DOS-käyttäjille (jokerit); ctrl-alt-fx toimii myös tekstitilassa; välilyönti rm-esimerkkiin; täydennystä jokerikäyttöön
Pb (keskustelu | muokkaukset) p (→Jokerimerkit: typo) |
LP (keskustelu | muokkaukset) (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 | [[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 | rm tiedosto toinen_tiedosto "kolmas tiedosto" | ||
Poistettavia tiedostoja voidaan siis antaa kerralla useampia. | 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ä | 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 == |