Ero sivun ”Komentorivin perusteet” versioiden välillä

Siirry navigaatioon Siirry hakuun
29 merkkiä lisätty ,  12. tammikuuta 2009
p
ei muokkausyhteenvetoa
(huomautus DOS-käyttäjille (jokerit); ctrl-alt-fx toimii myös tekstitilassa; välilyönti rm-esimerkkiin; täydennystä jokerikäyttöön)
pEi muokkausyhteenvetoa
Rivi 57: Rivi 57:


Tiedosto kopioidaan komennolla
Tiedosto kopioidaan komennolla
  cp tiedosto kopio
  $ cp tiedosto kopio
Kokonainen hakemisto kopioitaessa on käytettävä valitsinta -R:
Kokonainen hakemisto kopioitaessa on käytettävä valitsinta -R:
  cp -R hakemisto hakemiston_kopio
  $ cp -R hakemisto hakemiston_kopio


Vastaavasti tiedostojen siirtäminen tapahtuu komennolla
Vastaavasti tiedostojen siirtäminen tapahtuu komennolla
  mv vanha_tiedostonimi uusi_tiedostonimi
  $ mv vanha_tiedostonimi uusi_tiedostonimi
samalla tavalla voi siirtää myös hakemistoja.
samalla tavalla voi siirtää myös hakemistoja.


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. Hakemisto sisältöineen poistetaan [[valitsin|valitsimen]] -r avulla ("rekursiivisesti"; tyhjän hakemiston voi poistaa myös komennolla rmdir).
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
  $ rmdir tyhjä_hakemisto


== Täydentäminen tabulaattorilla ==
== Täydentäminen tabulaattorilla ==
Rivi 94: Rivi 94:


Jos siis edellisessä esimerkissä kirjoittaisimme komennon
Jos siis edellisessä esimerkissä kirjoittaisimme komennon
  rm -r p*
  $ rm -r p*
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 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 (ää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
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
  rm ???
  $ rm ???


(tämän sijaan kannattaa usein käyttää muotoa <tt>rm -i ???</tt>, joka pyytää varmistuksen joka tiedoston osalta)
(tämän sijaan kannattaa usein käyttää muotoa <tt>rm -i ???</tt>, joka pyytää varmistuksen joka tiedoston osalta)
Rivi 104: Rivi 104:
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):
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]*
  $ 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:
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] *
  $ 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ä]]:
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
  scp "jokinkone:kopioitavat/*.txt" ~/kopioidut_tekstitiedostot
  $ scp "jokinkone:kopioitavat/*.txt" ~/kopioidut_tekstitiedostot


== Putkitus ==
== Putkitus ==
4 316

muokkausta

Navigointivalikko