Komentorivi
- 1. WWW-kotisivutilan ja UNIX-käytön aktivointi
- 2. Pääteyhteys Unix-palvelimeen
- 3. Komentorivin käyttäminen
- 4. pwd, symbolinen linkki, echo ja mkdir
- 5. Tekstieditori nano
- 6. Kopiointi ja siirtäminen
- 7. Tiedostojen ja hakemistojen poistaminen
- 8. Tiedostojen oikeuksien muuttaminen
- 9. Vaativampia tehtäviä
- 10. man
- 11. grep
- 12. Komentojen vivut
- 13. Tiedostojen siirto
- 14. Lisätehtäviä
- 15. Lisämateriaalia
Tehtävien tukena kannattaa pitää auki komentoriviluento ja Unix-käyttöjärjestelmän alkeita. Tehtävät viittaavat suoraan luennon lukuihin, joten avaa luento omaan välilehteensä ennen kuin aloitat.
Tehtävät on uusittu syksyllä 2026. Myös vanha versio tehtävistä on edelleen saatavilla.
- Näissä tehtävissä poistetaan tiedostoja. Lue luennon
varoitus
rm-komennosta ennen kuin annat ensimmäisen poistokomennon. - Jos jokin ohjelma jää päälle eikä siitä pääse ulos, katso luennon ongelmatilanteet. Useimmiten oikea näppäin on q.
- Kaikki esimerkit on kirjoitettu halava-koneelle. Voit käyttää myös jalavaa; koneet ovat identtiset.
Tehtävien ratkaisut komento kerrallaan löytyvät nauhoitettuina istuntoina. Nauhoitteista voi kopioida komennot suoraan, koska ne ovat tekstiä eivätkä videokuvaa. Kokeile kuitenkin ensin itse.
1. WWW-kotisivutilan ja UNIX-käytön aktivointi
- Jos et ole vielä aktivoinut kotisivutilaasi ja UNIX-käyttöä, tee se nyt sso.jyu.fi-palvelussa: Kirjaudu → Oma → Palvelut, ja valitse sieltä Kotisivutila (users.jyu.fi) ja Unix-suorakäyttöpalvelimien kirjautumisoikeus. Tallenna. Aktivoituminen kestää 30–60 minuuttia.
- Jos W:-asema ei näy koneellasi, kirjaudu ulos ja takaisin sisään aktivoinnin jälkeen.
- Verkkolevyasemien (U: ja W:) käyttö kotikoneelta vaatii VPN-yhteyden.
Kotihakemistosi on U:-asemalla ja www-tilasi W:-asemalla. Ne ovat eri
levyjärjestelmissä, joten kotihakemistoon luotu tavallinen kansio ei
näy verkossa. Tästä syystä tehtävässä 4 tehdään kotihakemistoon symbolinen linkki
html, jonka kautta W:-asemalle pääsee käsiksi.
2. Pääteyhteys Unix-palvelimeen
Windowsissa, macOS:ssä ja Linuxissa on nykyään valmiina ssh-ohjelma.
Erillisiä yhteysohjelmia ei tarvitse asentaa.
| Vaihe | Mitä teet |
|---|---|
| 1 | Käynnistä VPN-yhteys, jos kone ei ole yliopiston verkossa. Kesästä 2024 alkaen SSH ei toimi ulkoa ilman VPN:ää. |
| 2 | Käynnistä Windows Terminal (tai PowerShell). Macissa ja Linuxissa Terminal. |
| 3 | Kirjoita ssh omatunnus@halava.cc.jyu.fi ja paina Enter. |
| 4 | Hyväksy palvelimen avain kirjoittamalla yes. |
| 5 | Kirjoita salasanasi. Se ei näy kirjoitettaessa, ei edes tähtinä. |
[opiskelija@oma-kone ~]$ ssh omatunnus@halava.cc.jyu.fi
The authenticity of host 'halava.cc.jyu.fi (130.234.10.217)' can't be established.
ED25519 key fingerprint is SHA256:KA7t35STwdE6Enj/wY13P+WnCoz9zM8jy2vR+5BpgaY.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
omatunnus@halava.cc.jyu.fi's password:
Last login: Tue Aug 26 20:34:00 2025 from vpn-10-1-2-3.jyu.fi
[omatunnus@halava ~]$
Jos SSH väittää myöhemmin palvelimen avaimen muuttuneen, älä jatka yhteyttä. Avain vaihtuu normaalisti vain suuren päivityksen yhteydessä, ja siitä tiedotetaan erikseen.
Avaa yhteys halavaan. Kokeile komentoja whoami,
hostname ja pwd. Mitä kukin niistä kertoo? Kirjaudu
lopuksi ulos komennolla exit ja avaa yhteys uudelleen.
Kopiointi ja liittäminen pääteikkunassa
Ctrl+C ja Ctrl+V ovat päätteessä muussa käytössä, joten leikepöytä toimii eri näppäimillä.
| Ohjelma | Kopiointi | Liittäminen |
|---|---|---|
| Windows Terminal, PowerShell | Ctrl+Shift+C | Ctrl+Shift+V tai hiiren oikea painike |
| macOS Terminal | Cmd+C | Cmd+V |
| Linuxin pääteohjelmat, PuTTY | Ctrl+Insert | Shift+Insert tai keskipainike |
Monirivinen liitetty teksti suoritetaan heti komentoina. Älä koskaan liitä nettisivulta komentoa, jota et ymmärrä.
Liite: PuTTY ja KiTTY (ei enää tarpeen)
PuTTY ja KiTTY olivat vuosia tavallisin tapa ottaa SSH-yhteys Windowsista, koska
Windowsissa ei ollut omaa ssh-komentoa. Nykyään niitä ei tarvita, mutta
vanhoissa ohjeissa ja
mallivideossa ne esiintyvät.
- Tarkista ensimmäisellä käyttökerralla kohdasta Window → Translation,
että Remote character set on UTF-8. Muuten
ääkköset eivät toimi.

- Kirjoita Session-kohtaan Host name
halava.cc.jyu.fi, Port 22 ja Connection type SSH. Valitse listasta Default settings ja Save, niin asetus säilyy.
- Valitse Open ja hyväksy palvelimen avain valitsemalla Yes.
- Syötä käyttäjätunnus
login as-kysymykseen ja sen jälkeen salasana. Salasana ei näy kirjoitettaessa.
3. Komentorivin käyttäminen
Kirjautumisen jälkeen näet komentokehotteen. Sen ulkoasu vaihtelee, mutta yleensä
siinä on käyttäjätunnus@kone ja oletushakemiston nimi. Viimeisenä
merkkinä on $ tai %.
[opiskelija@halava ~]$
Merkki ~ tarkoittaa kotihakemistoa, joten olet kirjautumisen jälkeen
automaattisesti siellä.
- Katso hakemistolistaus komennolla
ls. Mitä kotihakemistostasi löytyy? - Kokeile sitten
ls -al. Mitä uutta tuli näkyviin? Vipu-anäyttää myös pisteellä alkavat piilotiedostot ja-lpitkän listauksen. - Mistä erotat hakemiston ja tiedoston toisistaan pitkässä listauksessa?
Sarkain täydentää. Kirjoita nimen alku ja paina Tab. Komentorivi täydentää lopun, jos nimi on yksikäsitteinen. Kaksi painallusta listaa vaihtoehdot.
Nuoli ylös hakee edellisen komennon. Sitä voi muokata nuolinäppäimillä ja ajaa uudelleen. Katso luennon luku 11.
Kooste tässä ohjauksessa tarvittavista komennoista. Laajempi taulukko on luennolla.
| Merkintä | Esimerkki | Toiminta |
|---|---|---|
/ | cd html/tyovaline | Hakemistoerotin |
- | ls -al | Vivun eli valitsimen etumerkki |
. | cp ../luennot/index.html . | Oletushakemisto |
.. | cd .. | Isähakemisto |
~ | cd ~/html | Kotihakemisto |
pwd | pwd | Kertoo, missä hakemistossa olet |
ls | ls -al tyovaline | Hakemistolistaus |
cd | cd tyovaline/luennot/ | Vaihtaa oletushakemiston |
mkdir | mkdir -p a/b/c | Luo hakemiston |
rmdir | rmdir luennot | Poistaa tyhjän hakemiston |
cp | cp testi.txt harkka/ | Kopioi tiedostoja |
mv | mv demot demoja | Siirtää tai nimeää uudelleen |
rm | rm testi.txt | Poistaa tiedoston pysyvästi |
cat | cat testi.txt | Tulostaa tiedoston sisällön |
less | less testi.txt | Selaa sisältöä; poistu q |
chmod | chmod a+r index.html | Muuttaa oikeuksia |
nano | nano testi.txt | Tekstieditori |
man | man ls | Komennon käyttöohje; poistu q |
4. pwd, symbolinen linkki, echo ja mkdir
Selvitä ensin, missä olet halavan tiedostojärjestelmässä:
[opiskelija@halava ~]$ pwd
/nashome3/opiskelija
pwd kertoo aina oletushakemistosi eli työhakemistosi. Heti
kirjautumisen jälkeen se on sama kuin kotihakemistosi. Polun alkuosa
(nashome3) vaihtelee käyttäjittäin.
Symbolinen linkki www-tilaan
Kotihakemistosi on U:-asemalla, mutta www-sivusi ovat W:-asemalla. Luodaan kotihakemistoon symbolinen linkki, jonka kautta W:-asemalle pääsee. Valmis komento tekee sen puolestasi:
[opiskelija@halava ~]$ /opiskelu/itkp1011/makewww
Tämän jälkeen kotihakemistossasi on html-niminen linkki, joka
käyttäytyy kuin tavallinen kansio. Katso, minne se johtaa:
[opiskelija@halava ~]$ ls -ld html
lrwxrwxrwx. 1 opiskelija students 36 Sep 6 12:31 html -> /wwwhome/home/opiskelija/public_html
[opiskelija@halava ~]$ realpath html
/wwwhome/home/opiskelija/public_html
Rivin ensimmäinen kirjain l ja nuoli kertovat, että kyseessä on
linkki eikä hakemisto. Symbolisista linkeistä on tarkempi selitys luennon
lisätieto-osassa.
html: No such file or directory
Linkitys puuttuu tai kotisivutila ei ole vielä aktivoitunut. Aja
/opiskelu/itkp1011/makewww uudelleen. Aktivointi voi kestää 15
minuuttia, joten odota hetki ja yritä sitten uudestaan. Jos virhe jatkuu, tarkista
sso.jyu.fi-palvelusta, että Kotisivutila on
valittuna.
Lisätietoa: mitä makewww oikeasti tekee
makewww on valmis komento, joka tekee käytännössä saman kuin:
[opiskelija@halava ~]$ ln -s /wwwhome/home/$USER/public_html ~/html
lnluo linkkejä. Vipu-stekee symbolisen linkin, joka toimii myös eri levyjen välillä. Ilman sitä syntyisi kova linkki (hard link), joka ei toimi hakemistoille eikä levyrajan yli.$USERon ympäristömuuttuja, jonka tilalle komentotulkki sijoittaa käyttäjätunnuksesi. Sama komento toimii siis kaikille. Kokeile:echo $USERjaecho $HOME. Komentoechotulostaa sille annetun tekstin, ja shell korvaa muuttujat niiden arvoilla ennen tulostusta.~tarkoittaa kotihakemistoa, joten linkki syntyy aina kotihakemistoon riippumatta siitä, missä olit komentoa antaessasi.- Kaikki ympäristömuuttujat näkee komennolla
env.
Jos saat virheen File exists, linkki on jo olemassa.
Hakemistojen luominen
- Siirry www-tilaasi:
cd html - Tee sinne hakemisto
tyovalinekomennollamkdir tyovaline. Onnistuneesta komennosta ei tule mitään palautetta; vain virheistä kerrotaan. - Tarkista tulos komennolla
ls -al. Näet hakemistontyovalinesekä merkinnät.(nykyinen hakemisto) ja..(isähakemisto). - Palaa kotihakemistoon pelkällä komennolla
cdilman parametreja. - Siirry suoraan takaisin:
cd html/tyovaline. Kokeile Tab-täydennystä: kirjoitacd htja paina sarkainta. - Siirry yksi taso ylös komennolla
cd ..ja sitten takaisintyovaline-kansioon. - Tee
tyovaline-kansioon kolme hakemistoa:harkka,demotjaluennot.
Tarkista lopputulos tree-komennolla:
[opiskelija@halava tyovaline]$ tree
.
├── demot
├── harkka
└── luennot
3 directories, 0 files
- Katso W:-asemasi sisältö myös tiedostonhallinnan kautta. Näetkö saman rakenteen?
- Siirry
demot-kansioon. Yritä sitten siirtyä sieltä suoraanluennot-kansioon yhdelläcd-komennolla. Vinkki: ensin yksi taso ylös, sitten alas toiseen haaraan. - Tarkista
realpath-komennolla, mihin viittaus../harkkaosoittaa, ennen kuin siirryt sinne. - Harjoittele lisää suhteellisten viittausten työkalulla.
5. Tekstieditori nano
nano on yksinkertainen tekstieditori, karkeasti Windowsin Muistion vastine. Tiedoston nimi annetaan parametrina; jos tiedostoa ei ole, se luodaan tallennettaessa.
[opiskelija@halava tyovaline]$ nano testi.txt
Alareunassa näkyvät yleisimmät komennot. Merkki ^ tarkoittaa
Ctrl-näppäintä ja M- tarkoittaa Alt-näppäintä.
Sanamuodot vaihtelevat nanon version ja kieliasetuksen mukaan.
GNU nano 5.6.1 testi.txt
^G Ohje ^O Kirjoita ^W Etsi ^K Leikkaa ^T Suorita ^C Sijainti
^X Lopeta ^R Lue tied. ^\ Korvaa ^U Liitä ^J Tasaa ^/ Rivinro
| Näppäily | Toiminto |
|---|---|
| Ctrl+O | Tallenna. Kysyy tiedostonimen; hyväksy Enterillä |
| Ctrl+X | Poistu |
| Ctrl+W | Etsi merkkijonoa |
| Ctrl+K ja Ctrl+U | Leikkaa rivi ja liitä se |
| Alt+U | Kumoa |
| Ctrl+/ | Siirry riville numero |
Kursoria liikutetaan nuolinäppäimillä. Hiirtä on turha yrittää: palvelin ei tiedä koneesi hiirestä mitään.
- Kirjoita
testi.txt-tiedostoon muutama rivi tekstiä. - Tallenna (Ctrl+O) ja poistu (Ctrl+X).
- Tarkista sisältö komennolla
cat testi.txt.
6. Kopiointi ja siirtäminen
Rakenteen pitäisi nyt näyttää tältä:
[opiskelija@halava tyovaline]$ tree
.
├── demot
├── harkka
├── luennot
└── testi.txt
3 directories, 1 file
- Kopioi
testi.txthakemistoonharkkacp-komennolla. Malleja on luennon kopiointiesimerkeissä. - Varmista, että olet edelleen
tyovaline-hakemistossa, ja kopioi sama tiedosto myösdemot-hakemistoon. - Siirrä
demot-hakemistontesti.txtmv-komennollaluennot-hakemistoon. - Tarkista lopputulos
tree-komennolla.
[opiskelija@halava tyovaline]$ tree
.
├── demot
├── harkka
│ └── testi.txt
├── luennot
│ └── testi.txt
└── testi.txt
3 directories, 3 files
cp ja mv eivät kysy mitään
Jos kohteessa on jo samanniminen tiedosto, se korvataan varoittamatta. Vipu
-i saa komennon kysymään ensin.
Testaa tiedostojen näkyminen selaimessa. Avaa osoite
https://users.jyu.fi/~omatunnus/tyovaline/harkka/testi.txt
Osoitteessa on oltava koko kansiorakenne ja tiedoston nimi, koska palvelimessa on estetty hakemistolistausten näyttäminen. Muista myös, että isoilla ja pienillä kirjaimilla on merkitystä.
7. Tiedostojen ja hakemistojen poistaminen
Komentorivillä ei ole roskakoria. rm poistaa
tiedoston lopullisesti eikä kumoamistoimintoa ole. Jos poistat jokerimerkeillä,
tarkista aina ensin ls- tai echo-komennolla, mihin merkit
osuvat.
[opiskelija@halava tyovaline]$ ls *.txt # katso ensin
[opiskelija@halava tyovaline]$ rm *.txt # poista vasta sitten
- Poista
rm-komennollaluennot-hakemistontesti.txt. - Poista sitten
rmdir-komennolla hakemistotluennotjademot. Jätäharkkajäljelle harjoitustyötä varten. - Mitä
rmdirvastaa, jos hakemisto ei ole tyhjä? Kokeile ja lue virheilmoitus.
8. Tiedostojen oikeuksien muuttaminen
Tiedosto-oikeuksien muuttaminen on osattava, jos haluat harjoitustyön komentoriviosuudesta arvosanaksi kolme (3) tai enemmän. Perusteet ovat luennon luvussa 29; tässä kerrataan olennainen.
[opiskelija@halava tyovaline]$ ls -al
total 8
drwxr-xr-x. 3 opiskelija students 61 Nov 5 12:41 .
drwxr-xr-x. 4 opiskelija students 4096 Nov 5 12:39 ..
drwxr-xr-x. 2 opiskelija students 6 Nov 5 12:39 harkka
-rw-r--r--. 1 opiskelija students 216 Jan 23 13:37 testi.txt
Ensimmäisen sarakkeen ensimmäinen kirjain kertoo tyypin: - tiedosto,
d hakemisto, l symbolinen linkki. Yhdeksän seuraavaa
merkkiä ovat oikeudet kolmen ryhmissä: omistaja (owner), ryhmä (group) ja kaikki muut
(others). Jos oikeutta ei ole, paikalla on -.
| Oikeus | Tiedostolla | Hakemistolla |
|---|---|---|
r | Saa lukea sisällön | Saa listata nimet, esimerkiksi ls |
w | Saa muuttaa sisältöä | Saa luoda ja poistaa hakemiston sisällä olevia tiedostoja |
x | Saa suorittaa ohjelmana | Saa kulkea läpi: siirtyä siihen cd-komennolla ja käyttää sen sisällä olevia tiedostoja |
Hakemiston x-oikeus ei siis ole listaamisoikeus vaan
läpikulkuoikeus. Tämä on www-julkaisemisessa ratkaisevaa: palvelin tarvitsee
x-oikeuden jokaiseen hakemistoon polulla sivullesi, vaikka se ei saisi
listata niiden sisältöä.
Halavassa ja jalavassa opiskelijoiden ryhmä ja muut ovat käytännössä sama asia.
chmod
chmod [vivut] [muutos] [tiedosto tai hakemisto]
Vipu -R muuttaa oikeudet rekursiivisesti koko hakemistorakenteeseen.
Muutos annetaan symbolisesti kolmessa osassa: kenelle, miten, mitä.
| Kenelle | Miten | Mitä |
|---|---|---|
u omistaja | + lisää | r luku |
g ryhmä | - poista | w kirjoitus |
o muut | = aseta täsmälleen | x suoritus tai läpikulku |
a kaikki | X läpikulku vain hakemistoille |
chmod a+x skripti.sh # kaikille suoritusoikeus tiedostoon
chmod ug+w raportti.txt # omistajalle ja ryhmälle kirjoitusoikeus
chmod a+rx kotisivu # kaikille luku JA läpikulku kansioon
chmod go-rwx omat/oma.txt # ryhmältä ja muilta kaikki oikeudet pois
chmod a=r yhteinen.txt # kaikille pelkkä lukuoikeus, muut pois
a+r
Yleinen virhe on antaa kansiolle pelkkä lukuoikeus. Silloin sen nimet näkyvät,
mutta sisään ei pääse eikä tiedostoja saa auki. Kansioille käytetään
a+rx ja tiedostoille a+r. Koko puun saa kerralla oikein
komennolla chmod -R a+rX, jossa iso X lisää läpikulun
vain hakemistoihin.
Viimeinen esimerkki chmod a=r yhteinen.txt poistaa kirjoitusoikeuden
myös omistajalta. Tiedostoa ei voi muokata ennen kuin annat itsellesi
kirjoitusoikeuden takaisin.
- Anna
harkka-kansioon kaikille luku- ja läpikulkuoikeus. Tarkista tulos komennollals -ld harkka. - Käy katsomassa selaimella, että
https://users.jyu.fi/~omatunnus/tyovaline/harkka/testi.txtaukeaa. - Poista nyt
tyovaline-kansiosta muilta sekä luku- että läpikulkuoikeus (chmod go-rx tyovaline). Päivitä sivu selaimessa. Minkä virheen saat? - Kokeile sitten poistaa vain lukuoikeus (
chmod go-r) ja jättääxvoimaan. Näkyykö tiedosto nyt? Mieti, miksi. - Palauta lopuksi toimivat oikeudet:
chmod -R a+rX ~/html/
~/html on symbolinen linkki. Kirjoittamalla polun muodossa
~/html/ kohdistat komennon linkin takana olevaan hakemistoon etkä
linkkiin itseensä.
9. Vaativampia tehtäviä
Nämä kannattaa tehdä, jos tavoittelet harjoitustyön komentoriviosuudesta enemmän kuin kolmosta.
9.1 Tulostuksen edelleenohjaus
Komentorivikäytölle on tyypillistä työkaluajattelu, jossa monimutkaisemmat
tehtävät ratkaistaan yhdistelemällä yksinkertaisia työkaluja. Tulostuksen voi ohjata
näytön sijasta tiedostoon merkinnöillä > ja >>.
- Ohjaa
ls-komennon tuloste tiedostoon:ls > tiedostot.txt - Tutki tulosta komennolla
less tiedostot.txt. Poistu q-näppäimellä. - Ohjaa nyt
tree-komennon tuloste samaan tiedostoon. Mitä tiedostossa lukee? Mihin edellinen sisältö katosi? - Lisää perään
ls >> tiedostot.txt. Mitä tapahtui tällä kertaa?
> tyhjentää kohteen heti
Merkintä > tyhjentää kohdetiedoston ennen kuin komento edes
ajetaan. Vahingossa kirjoitettu yksi kulmasulje kahden sijasta hävittää tiedoston
sisällön.
Virhevirta on eri asia kuin tuloste
Jokaisella ohjelmalla on kaksi erillistä tulostusvirtaa: vakiotuloste
(stdout) ja virhevirta (stderr). Merkintä > ohjaa vain
ensimmäisen, minkä vuoksi virheilmoitukset jäävät näkyviin ruudulle.
| Merkintä | Toiminto |
|---|---|
komento 2> virheet.txt | Ohjaa vain virhevirran tiedostoon |
komento > ulos.txt 2>&1 | Ohjaa molemmat samaan tiedostoon |
komento 2> /dev/null | Heittää virheilmoitukset pois |
Aja komento ls /etc/ /ei-ole-olemassa > ulos.txt. Mitä jää
ruudulle ja mitä menee tiedostoon? Kokeile sitten samaa muodossa
ls /etc/ /ei-ole-olemassa > ulos.txt 2> virheet.txt.
9.2 Putkitus
Komennon tulosteen voi ohjata suoraan toiselle komennolle putkimerkillä
|.
- Vertaa komentoja
ls /etc/jals /etc/ | less. Mitä eroa niillä on? Muista q. - Tulosta
/etc/-kansion sisällöstä vain kymmenen ensimmäistä riviä:ls /etc/ | head - Laske, montako kohdetta
/etc/-kansiossa on:ls /etc/ | wc -l
9.3 Korvausmerkit
Korvausmerkeillä eli jokerimerkeillä sama toimenpide kohdistetaan moneen tiedostoon kerralla. Komentotulkki laajentaa merkit tiedostonimiksi ennen kuin komento suoritetaan.
| Merkki | Vastaa | Esimerkki |
|---|---|---|
* | Nollaa tai useampaa mitä tahansa merkkiä | ls *.txt |
? | Yhtä mitä tahansa merkkiä | ls ???.txt |
Kirjoittamalla echo suunnittelemasi komennon eteen näet täsmälleen
sen rivin, jonka komentotulkki olisi suorittanut. Tämä on erityisen tärkeää ennen
rm-komentoa.
[opiskelija@halava tyovaline]$ echo rm *.txt
rm testi.txt tiedostot.txt
Ratkaise ls-komennolla ja korvausmerkeillä:
- Kaikki
.conf-päätteiset kohteet/etc/-kansiosta. - Kaikki kohteet, joiden nimessä esiintyy jossain kohtaa
conf. - Kaikki kohteet, joiden nimi päättyy pisteeseen ja kahteen merkkiin.
- Kaikki kohteet, joiden nimi alkaa
p-kirjaimella ja päättyy.conf.
Tiedostonimien korvausmerkkejä kutsutaan usein virheellisesti säännöllisiksi
lausekkeiksi. Ne ovat eri järjestelmiä, ja sama merkki tarkoittaa niissä eri asiaa:
tiedostonimissä * on ”mikä tahansa merkkijono”, mutta
grep-komennossa se tarkoittaa ”edellinen merkki nolla tai useampi
kerta”. Ero selitetään luennon
luvussa 25.
10. man
man-komento näyttää komennon manuaalisivun. Manuaali avautuu
less-ohjelmaan, joten siitä poistutaan
q-näppäimellä. Haku onnistuu /-näppäimellä ja
hyödyllisin osa, EXAMPLES, on yleensä aivan lopussa (G hyppää sinne).
Selvitä manuaalisivujen avulla, mitä seuraavat ohjelmat tekevät. Kokeile kutakin myös käytännössä.
sort,wc,headjataildiffjadufind. Esimerkki:find . -name testi.txtetsii tiedostoa oletushakemistosta ja kaikista sen alikansioista.curltaiwget. Kokeilecurl -I https://users.jyu.fi/~omatunnus/: mitä statuskoodi kertoo?
11. grep
grep poimii rivit, joilla esiintyy haluttu merkkijono. Se on
hyödyllisimpiä komentorivin työkaluja.
[opiskelija@halava tyovaline]$ grep testi tiedostot.txt # tiedoston riveistä
[opiskelija@halava tyovaline]$ ls /etc/ | grep conf # putkesta, nimistä
[opiskelija@halava tyovaline]$ grep -i todo muistiot.txt # kirjainkoko ei väliä
[opiskelija@halava tyovaline]$ grep -n img index.html # näytä rivinumerot
[opiskelija@halava tyovaline]$ grep -l www /etc/* # vain tiedostojen nimet
[opiskelija@halava tyovaline]$ grep -c error loki.txt # laske osumat
Komento grep www /etc/* antaa runsaasti virheilmoituksia
hakemistoista ja tiedostoista, joihin sinulla ei ole lukuoikeutta. Ne voi vaientaa
kahdella tavalla, ja ero kannattaa ymmärtää:
grep -s www /etc/*pyytää grep-ohjelmaa olemaan tulostamatta virheitä.grep www /etc/* 2> /dev/nullpyytää komentotulkkia heittämään virhevirran pois. Tämä toimii minkä tahansa ohjelman kanssa.
- Tulosta tiedostosta
/etc/nsswitch.confkaikki rivit, joilla on#-merkki. Huomaa, että#on komentotulkille erikoismerkki ja se on kirjoitettava heittomerkkien sisään:grep '#' /etc/nsswitch.conf - Tulosta samasta tiedostosta rivit, joilla
#-merkkiä ei ole. Vinkki:-v. - Etsi
/etc/-kansiosta niiden tiedostojen nimet, joiden sisällössä esiintyy#. Selvitä manuaalista, mikä vipu tulostaa pelkän tiedostonimen.
12. Komentojen vivut
Lähes kaikkien komentojen toimintaa voi muokata vivuilla. Vipu selviää aina ohjelman manuaalisivulta, ja manuaalien lukeminen vaatii pientä harjoittelua.
- Vertaa komentoja
ls /etc/jals -l /etc/. - Komento
ls /etc/*.dtulostaa myös.d-loppuisten kansioiden sisällöt. Etsi vipu, jolla saat näkyviin vain kansioiden nimet. - Luo yhdellä komennolla kansiorakenne
foo/bar/foobar/barfoo. Vinkki:mkdir-komennon manuaali. - Etsi
man -k-haulla, mitä pdf-tiedostoihin liittyviä ohjelmia koneessa on:man -k pdf - Poista lopuksi luomasi
foo-puu. Mieti ensin, mikä komento siihen tarvitaan ja miksirmdirei riitä.
13. Tiedostojen siirto
Jos et saa W:-asemaa käyttöön verkkolevynä, tiedostot voi siirtää SFTP-yhteydellä. Windowsissa käytetään WinSCP:tä ja macOS:ssä FileZillaa. Käynnistä ensin VPN-yhteys.
- Valitse File protocol -kohtaan SFTP.
- Kirjoita Host name -kohtaan
halava.cc.jyu.fi. - Täytä käyttäjätunnus ja salasana ja valitse Login.

- Hyväksy palvelimen avain ensimmäisellä kerralla.

- Näkymä jakautuu kahtia: vasemmalla oma koneesi, oikealla palvelin. Oikealla
näkyy oletuksena kotihakemistosi.

- Listaus päivittyynäppäinyhdistelmällä Ctrl+R.
Saman voi tehdä ilman erillistä ohjelmaa. scp toimii nykyään myös
Windowsissa, ja rsync siirtää vain muuttuneet tiedostot. Katso luennon
luku 34.
$ scp index.html omatunnus@halava.cc.jyu.fi:html/
$ rsync -avz sivusto/ omatunnus@halava.cc.jyu.fi:html/
14. Lisätehtäviä
Näissä tehtävissä joudut yhdistelemään useita komentoja, putkitusta, korvausmerkkejä ja vipuja. Jos tavoittelet kurssista arvosanaa viisi, harjoittele näitä.
- Selvitä, miten
who-komento toimii. Kuinka monta käyttäjää on parhaillaan kirjautuneena halavaan? Vinkki:wc -l. - Listaa kirjautuneet käyttäjät käänteisessä aakkosjärjestyksessä käyttäjätunnuksen mukaan.
- Selvitä, montako eri käyttäjää koneessa on, vaikka yhdellä
käyttäjällä olisi useita istuntoja. Vinkki:
cut,sortjauniq. - Tulosta kaikista
/etc/-kansion.conf-päätteisistä tiedostoista#-merkin sisältävät rivit aakkosjärjestyksessä. - Selvitä
quota -s-komennolla, paljonko levytilaa sinulla on käytössä. Etsi sittendu -sh ~/* | sort -h-komennolla eniten tilaa vievä kansio.
Ketjuttaminen
Komentoja voi yhdistää samalle riville. Merkintä && suorittaa
jälkimmäisen komennon vain, jos ensimmäinen onnistui. Tämä on hyödyllistä silloin,
kun toinen komento olisi vaarallinen väärässä hakemistossa.
[opiskelija@halava ~]$ cd ~/html/tyovaline && ls
[opiskelija@halava ~]$ cd ~/ei-ole && rm *.txt
Aja jälkimmäinen esimerkki ja selitä, miksi mitään ei poistettu. Mitä olisi
tapahtunut, jos komennot olisi erotettu puolipisteellä (;)?
Lisätehtävä: SSH-yhteys toiseen Unix-koneeseen
Avoimen SSH-yhteyden kautta voi ottaa yhteyden toiseen koneeseen:
[opiskelija@halava ~]$ ssh omatunnus@jalava.cc.jyu.fi
[opiskelija@jalava ~]$ hostname
jalava.cc.jyu.fi
[opiskelija@jalava ~]$ exit
[opiskelija@halava ~]$ exit
Huomaa, että jokainen exit sulkee yhden yhteyden kerrallaan. Tarkista
hostname-komennolla, missä koneessa kulloinkin olet.
Lisätehtävä: tiedostojen oikeudet WinSCP:llä
Oikeuksia voi muuttaa myös graafisesti. Huomaa, että U:-asemalla eli
kotihakemistossa tämä ei toimi normaalilla tavalla; tee harjoitus
html-kansion puolella.
- Etsi WinSCP:llä
html-kansio ja sen altatyovaline. - Napsauta
testi.txt-tiedostoa hiiren oikealla painikkeella ja valitse Properties.
- Poista lukuoikeus (read) ryhmältä (group) ja muilta (others).

- Päivitä tiedosto selaimessa. Jos se vieläkin näkyy, jokin meni pieleen.
- Palauta lukuoikeus ryhmälle ja muille ja tarkista, että tiedosto näkyy taas.
Dialogissa näkyy myös oikeuksien oktaalimuoto, esimerkiksi 0644.
Se on sama asia kuin rw-r--r--: r = 4, w = 2,
x = 1.
Hyödyllisiä komentoriviohjelmia
Jos komentorivi kiinnostaa enemmän, tutustu näihin. Tarkista ensin
which ohjelma -komennolla, onko ohjelma asennettu halavaan.
- wget ja curl hakevat tiedostoja ja kokonaisia sivustoja verkosta.
- mogrify ja
convertmuuntavat ja muokkaavat kuvatiedostoja. tarjazippaketoivat tiedostoja siirtoa varten.tmuxpitää istunnon pystyssä, vaikka yhteys katkeaisi.giton versionhallinta, johon törmäät väistämättä myöhemmin.
Kokeile myös näitä: awk, bc, df,
diff, du, env, file,
find, id, kill, ln,
ps, sed, touch, tree,
xargs.
Putkitusta voi harjoitella myös korttipelin parissa.
15. Lisämateriaalia
- Kurssin komentoriviluento ja Unix-käyttöjärjestelmän alkeita.
- Sormet unixiin – Paavo Niemisen laaja ja hyvin ylläpidetty johdanto komentotulkin käyttöön.
- grep ja säännölliset lausekkeet – perusteellinen suomenkielinen kuvaus.
- explainshell.com selittää pitkän komennon osa kerrallaan. Käytä tätä ennen kuin ajat netistä löytämäsi komennon.
- The Unix Shell (englanniksi).
Käyttäjien kommentit