Komentorivi

Seuraavissa tehtävissä voit käyttää apuna dokumenttia "Unix-käyttöjärjestelmän käytön alkeita". Pikakertauksen komennoista löydät myös luentomateriaalista. Avaa molemmat edellämainituista dokumenteista valmiiksi näkyviin omiin selainikkunoihinsa, koska joudut niitä välttämättä käyttämään.

Voit käyttää apunasi myös Sormet unixiin-harjoituksia tai jos haluat syventyä aiheeseen kunnolla niin UNIX ja shell-ohjelmointi -kurssia.

WWW-kotisivutilan ja UNIX-käytön aktivointi

Pääteyhteys Unix-palvelimeen

Mallivideo ssh-yhteydestä

SFTP-yhteys unix-palvelimeen

Komentorivin käyttäminen

Kooste unixin peruskomennoista
UNIX UNIX-esimerkki TOIMINTA
/ hakemistoerotin
- ls -al Komentojen valitsimien erotinmerkki
esim. DIR /p
. cp ~/www/tyovaline/index.html . Oletushakemisto
.. cp ../luennot/index.html . Isähakemisto
ls -la ls -la tyovaline Näyttää hakemistolistauksen oletushakemistosta tai annetusta hakemistosta
cd cd tyovaline/luennot/ Vaihtaa oletushakemiston toiseksi.
mkdir mkdir tyovaline/luennot/luento1 Tekee hakemiston
rmdir rmdir luento1 Tuhoaa tyhjän hakemiston
cp cp demot/demo1.txt luennot/luento1/luento1.txt Kopioi tiedostoja
cat cat luento1.txt Tulostaa tiedoston sisällön näytölle
mv mv demot demoja Vaihdetaan tiedoston tai hakemiston nimi
rm rm luento1.txt Tuhoaa tiedoston
mv mv luento1.txt ../../demot/ Siirtää tiedoston uuteen paikkaan
chmod chmod go+r index.html Muutetaan tiedostojen ja hakemistojen oikeuksia
nano nano luento1.txt Yksinkertainen tekstieditori

pwd, cd, ln, echo ja mkdir

nano

Nano-editori

nano on yksinkertainen tekstieditori (vrt. windowsin notepad). Joistain unix-koneista löytyy myös pico, joka on aivan samanlainen editori kuin nano.

Kopiointi

[tjlahton@jalava tyovaline]$ tree
.
├── demot
├── harkka
├── luennot
└── testi.txt

3 directories, 1 file

mv

Tiedostojen ja kansioiden poistaminen (rm ja rmdir)

Tiedostojen oikeuksien muuttaminen

Tiedostojen oikeuksia on osattava muuttaa, jos haluaa harjoitustyön komentoriviosuudesta arvosanaksi kolme (3) tai enemmän.

Jokaisella tiedostolla ja hakemistolla on omistaja, joka määrittelee omat ja muiden oikeudet lukea, muuttaa tai viitata tiedostoon. Tiedoston käyttöoikeudet näkee ls -al komennolla:

[tjlahton@halava tyovaline]$ ls -al
total 8
drwxr-xr-x.  5 tjlahton users   61 Nov  5 12:41 .
drwxr-xr-x. 25 tjlahton users 4096 Jan 18 10:07 ..
drwxr-xr-x.  2 tjlahton users    6 Nov  5 12:39 demot
drwxr-xr-x.  2 tjlahton users    6 Nov  5 12:39 harkka
drwxr-xr-x.  2 tjlahton users    6 Nov  5 12:39 luennot
-rw-r--r--.  1 tjlahton users  216 Jan 23 13:37 testi.txt
[tjlahton@halava tyovaline]$

Oikeudet näkyvät ensimmäisessä sarakkeessa.

Sarakkeen ensimmäinen kirjain kertoo tiedostotyypin:

Yhdeksän seuraavaa ovat varsinaiset oikeudet. Oikeudet ovat järjestyksessä seuraavasti:

Oikeuksia on kolmenlaisia. Jos ko. oikeutta ei ole kirjaimen paikalla on - .

Esimerkiksi rivi -rw-r--r-- tarkoittaa, että:

halava- ja jalava-koneissa opiskelijoilla ryhmä ja muut ovat käytännössä sama asia. Henkilökunta saattaa kuulua johonkin ryhmään jolloin myös ryhmän oikeuksilla on merkitystä.

chmod

chmod-komennolla muutetaan tiedostojen ja kansioiden oikeuksia.

chmod [-optiot] [asetettavat oikeudet symboleina] [tiedoston tai hakemiston nimi]

Tiedostojen oikeuksien muuttaminen tapahtuu chmod-komennolla. Optio -R muuttaa oikeudet rekursiivisesti eli koko hakemistorakenteeseen. Varsinainen oikeustietoihin tapahtuva muutos annetaan joko oktaalinumeroina tai symbolisesti, josta tarkemmin seuraavassa:

Ensin annetaan tieto kenelle oikeuksia muutetaan.

Seuraavana kerrotaan miten oikeuksia muutetaan:

Viimeisenä kerrotaan mitä oikeutta muutetaan:

Esimerkiksi lisätään tiedostoon metsastys.txt annetaan kaikille suoritusoikeus.

chmod a+x metsastys.txt

Lisätään käyttäjälle ja ryhmälle kirjoitusoikeus tiedostoon lintu.doc.

chmod ug+w lintu.doc

Annetaan kaikille käyttäjille lukuoikeus kotisivu-nimiseen kansioon:

chmod a+r kotisivu

Poistetaan ryhmältä ja muilta kaikki oikeudet omat-kansiossa olevaan tiedostoon oma.txt

chmod go-rwx omat/oma.txt

Asetetaan yhteinen.txt-tiedostoon kaikille lukuoikeus ja poistetaan kaikki muut oikeudet:

chmod a=r yhteinen.txt

Tämän jälkeen ei itse tiedoston omistajakaan voi muuttaa tiedoston sisältöä ennen kuin antaa itselleen tiedostoon kirjoitusoikeuden.

Yritä tehdä seuraavat:

Vaativampia tehtäviä

Seuraavat tehtävät kannattaa tehdä, jos haluat harjoitustyön komentoriviosuuden arvosanaksi enemmän kuin kolmosen (3).

Ohjelman tulostuksen edelleenohjaus

Komentorivikäytölle on tyypillistä työkaluajattelu jossa monimutkaisemmat tehtävät suoritetaan yhdistelemällä yksinkertaisia työkaluja.

Yksi tyypillinen toimenpide on ohjelman tulostuksen ohjaaminen tiedostoon eikä näytölle. Tällä saadaan komennon antama tulos jatkokäsiteltäväksi. Tulostuksen ohjaaminen tapahtuu >- ja >>-merkinnöillä.

Putkitus

Komennon tulosteen voi ohjata myös suoraan toiselle komennolle |-operaattorilla eli putkittaa tulosteen jonossa seuraavana olevalle ohjelmalle. esim. ls-komennon tulosteen voi sivuttaa näytölle putkittamalle sen less-komennolle. esim.

ls | less

Korvausmerkit

Monesti halutaan tehdä sama toiminto useammalle tiedostolle samaan aikaan. Tämä edellyttää yleensä kaikkien tiedostojen nimien listaamista jonkun komennon parametreina. Jos tiedostoja on paljon tämä on vaivalloista. Usein ongelma kierretään käyttämällä korvausmerkkejä (jokerimerkkejä, wildcards)

man

man-komennolla saat näkyville haluamasi komennon manuaalin eli käyttöohjeen. esim.

man ls

Tutki seuraavien komentojen manuaalisivuja:

Mitä kukin edellämainituista ohjelmista tekee? Kokeile.

grep

grep -komento on tärkeimpiä ja hyödyllisimpiä komentorivikomentoja. grep-komennolla voidaan poimia tiedostosta vain ne rivit joilla esiintyy haluttu merkkijono. esim. halutaan listata tiedoston rivit joista löytyy sana conf

Tulostetaan tiedostot.txt-tiedostosta rivit joilla esiintyy sana My:

grep My tiedostot.txt
        

Tulostetaan /etc/-kansion tiedostoista ne joiden nimessä esiintyy sana conf:

ls /etc/ | grep conf
        

ls-komento tekee listan tiedostojen nimistä joista grep sitten poimii halutut.

Tulostetaan /etc/-kansion tiedostoista ne rivit joilla esiintyy sana www:

grep www /etc/*
        

grep käy läpi kaikki foo-alikansion tiedostot ja tulostaa niistä ne rivit joissa haettu sana esiintyy. Saat virheilmoituksia kansioista. Kokeile komentoa myös muodossa grep -s www /etc/*. Selvitä man-komennon avulla mitä -s-vipu tekee...

Komentojen optiot (vivut)

Lähes kaikkien komentojen toimintaa voi muokata optioilla eri vivuilla. Vipu on komennon perässä yleensä välilyönnillä --merkillä erotettu kirjain tai sana, joka muuttaa komennon toimintaa. Kokeile miten ls-komennon toiminta muuttuu eri vivuilla:

            ls /etc/
            ls -l /etc/
        

Komennon ymmärtämät vivut ja niiden toiminta selviää aina ohjelman manuaalisivulta. Vaatii pientä harjoittelua, että manuaalisivujen lukeminen sujuu hyvin. Yritä selvittää seuraavien ongelmien ratkaisemiseen tarvittavat vivut:

Lisätehtäviä

Seuraavissa tehtävissä joudut soveltamaan useita eri komentoja, putkitusta, korvausmerkkejä ja komentojen vipuja. Jos haluat kurssista rvosanaksi viisi, niin sinun on syytä harjoitella näitä.

SSH-yhteys toiseen Unix-koneeseen

Tiedostojen oikeudet WinSCP:llä

Voit muokata Unix-koneessa olevien tiedostojen luku- ja kirjoitusoikeuksia WinSCP:llä.

Huom! U:-asemalla eli kotihakemistossa tiedostojen oikeuksien muokkaaminen ei toimi normaalilla tavalla.

Hyödyllisiä unix- ja komentoriviohjelmia

Jos komentorivi- ja pääteohjelmat kiinnostavat enemmän niin voit halutessasi tutustua tarkemmin seuraaviin jalava-koneesta löytyviin ohjelmiin:

Kaikki edelläluetellut ohjelmat ovat saatavilla sekä Unix/Linux-ympäristöihin että Windows/DOS-ympäristöön.

Jos sinulle jäi aikaa voit tutustua seuraaviin komentoihin:

Käyttäjien kommentit

Kommentoi Lisää kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/itkp1011/ohjaus/ohjaus1/
© Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
2019-03-06 15:15:37
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta