Komentorivi - demo 9 eli harjoitus 9

Ohje päivitetty 9.9.2016

Tämä harjoitus on tarkoitettu kurssin 3-4 op:n laajuisena suorittaville. Jos olet 2 op:n suorittaja, voit ohittaa tämän. Harjoitus on TIM-ympäristössä, koska TIM:a sovelletaan etenkin Ohjelmointi I -kurssilla informaatioteknologian tiedekunnassa. Komentoriviosaaminen on myös tärkeä asia Ohjelmointi I -näkökulmasta.

Tätä harjoitusta ennen kannattaa katsoa yleisempi komentoriviluento, josta uusimman version on tehnyt Toni Taipalus syyskuussa 2015. Kurssin luentosivuilta löytyy myös Tommi Lahtosen videotallenteet aiheesta vaihtoehtoisesti (luennot 14 tai 15).

Seuraavissa demotehtävissä voit käyttää apuna kurssin luentomonisteen lukua "Unix-käyttöjärjestelmän käytön alkeita". Pikakertauksen komennoista löydät myös luentosivuilta. 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 erilaisia oppaita mitä netistä löytyy. Monesti johonkin komentoon saa kivasti ohjeet Googlessa hakulausekkeella komennon nimi komento Linux esim. ls komento Linux

Suorakäyttökoneita, missä UNIX-komennot ja komentorivityöskentely mahdollista, ovat Jalava ja Halava. Näissä koneissa on käyttöjärjestelmänä tarkemmin Linux ja sen Redhat-versio. Seuraavassa yliopiston it-palvelujen yleisohje aiheeseen josta kannattaa kiinnittää huomioita siihen että ennen käyttöä UNIX-tila on aktivoitava salasana-palvelussa ja se on tehtävä siis ennen tätä harjoitusta viimeistään. Kts. siis.... https://www.jyu.fi/itp/ohjeet/how-to-nain-tehdaan/suorakaytto-unix

Pääteyhteys Linux-palvelimeen

  • Käynnistä Putty SSH Client. Valikkokomennolla Start | All Programs | Putty SSH tools | Putty

Luokissa Putty löytyy kätevästi Start-painiketta painamalla ja kirjoittamalla Putty ja ota läydetyistä ohjelmista se missä lukee pelkkä Putty

Kotikoneelle Puttyn voi hakea osoitteesta: http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

  • Kirjaudu käyttäjäksi IT-palveluiden jalava.cc.jyu.fi-palvelimelle seuraavien ohjeiden mukaisesti:
  • Host Name (or IP address)-kohtaan kirjoitetaan palvelinkoneen nimi. Ota yhteys jalava.cc.jyu.fi-koneeseen.
  • Port-kohdassa pitää lukea 22
  • Connection type-kohdassa pitää olla valittuna SSH
Valitse Open
Valitse Open

Aina kun otat ensimmäistä kertaa yhteyttä johonkin Linux-palvelimeen haluaa Putty varmistaa koneen luotettavuuden ja pyytää sinua hyväksymään koneen avaimen:

Hyväksy avain valinnalla Yes
Hyväksy avain valinnalla Yes

Login as-kysymykseen syötä käyttäjätunnuksesi (esim. tjlahton). Seuraavaksi Putty pyytää salasanaasi. Salasanan merkit eivät tule näkyville, vaikka kirjoitat näppäimistöllä.

Kirjautumisen jälkeen näet mistä ja milloin olet viimeksi kirjautunut sisään. Jalava jää odottamaan komentojasi. Kirjoitat ne aina $-,merkin perään
Kirjautumisen jälkeen näet mistä ja milloin olet viimeksi kirjautunut sisään. Jalava jää odottamaan komentojasi. Kirjoitat ne aina $-,merkin perään
  • Jos et pääse kirjautumaan jalava-koneeseen ja varmasti kirjoitit salasanasi oikein niin käy aktivoimassa unix-käyttöoikeuden tietohallintokeskuksen ohjeen mukaisesti.
  • Kirjaudu siis salasana.jyu.fi-palveluun ja napauta Activate UNIX-painiketta.
  • Jos salasana.jyu.fi:ssä lukee vain Deactivate UNIX, niin paina sitä ja sen jälkeen Activate UNIX-painike pitäisi tulla näkyviin. Napauta sitä!
  • Aktivoi samalla WWW-tilasi napauttamalla Activate WWW-painiketta, ellet ole sitä jo tehnyt.
  • Jos ssh-yhteys ei vieläkään onnistu, odota 20-30 minuuttia, koska UNIX-tilan aktivointi kestää usein tämän ajan.
  • Huomaa, että käytössä on SSH-pääteyhteysohjelma, joka näyttää vain mitä UNIX-koneessa tapahtuu. Kaikki syötteet annetaan siis näppäimistöllä! Esimerkiksi vierityspalkkia vierittämällä saa näkyviin vain menneitä komentoja. Hiirellä ei voi siirtää kohdistinta toiseen paikkaan.

Kun lopetat työskentelyn niin pääteyhteys pitää sulkea joko exit- tai logout-komennolla.

SFTP-yhteys unix-palvelimeen

  • Kotikoneella käynnistä FileZilla (Start|All Program|FileZilla

Kotikoneelle FileZillan voi hakea osoitteesta: http://filezilla-project.org/download.php?type=client

Yliopiston luokissa käytä WinSCP:ta, josta kerrotaan/kerrottiin enemmän demossa 2

  • Käynnistä WinSCP ( Start|All Programs|WinScp|WinScp)

Kirjoita Host:-kohtaan sftp://jalava.cc.jyu.fi, joka tarkoittaa, että haluat ottaa yhteyden sftp-protokollalla jalava.cc.jyu.fi-palvelimeen.

  • Täytä kohtiin username ja password tunnuksesi ja salasanasi.
Valitse Quickconnect
Valitse Quickconnect
  • Aina kun otat ensimmäistä kertaa yhteyttä johonkin unix-palvelimeen haluaa FileZilla varmistaa koneen luotettavuuden ja pyytää sinua hyväksymään koneen avaimen (vrt. Putty):
Laita ruksi kohtaan Always trust this host, add this key to the cache ja hyväksy avain
Laita ruksi kohtaan Always trust this host, add this key to the cache ja hyväksy avain
  • Jos kaikki meni oikein niin FileZilla avaa yhteyden jalava.cc.jyu.fi-koneeseen

Näyttö jakaantuu kahteen osaan. Vasemmassa laidassa (Local site:) näet käyttämäsi tietokoneen levyasemat ja oikeassa laidassa (Remote site:) näet jalava.cc.jyu.fi-koneen eli jalava.cc.jyu.fi-palvelimen tiedostohierarkian. Oletuksena näet oikeassa laidassa oman kotihakemistosi sisällön.

Jos haluat voit muokata FileZillan ulkoasuasetuksia valinnalla Edit|Settings|Interface. Kokeile erilaisia vaihtoehtoja kohdasta Layout of file and directory panes: ja jätä käyttöön mieleisesi. Position of the message log:-kohtaan kannattaa valita As tab in the transfer queue pane

Valmis SFTP-yhteys FileZilla näyttää seuraavanlaiselta:
Valmis SFTP-yhteys FileZilla näyttää seuraavanlaiselta:
Vasemmalla sinun koneesi ja Jalava-kone oikealla
Vasemmalla sinun koneesi ja Jalava-kone oikealla

Komentorivin käyttäminen

Kirjautumisen jälkeen näet komentokehotteen:

tunnus@jalava \~]\$

Komentokehotteen alussa lukee käyttäjätunnuksesi ja koneen nimi. Kehotteen lopussa vilkkuu kohdistin (kursori) odottamassa komentojasi. Komentokehote voi olla eri koneissa, ympäristöissä ja käyttäjillä eri näköinen mitä mallissa.

Kirjautumisen jälkeen olet automaattisesti kotihakemistossasi. Katso hakemistolistaus kirjoittamalla komento ls ja painamalla enter. Tutki mitä kansioita ja tiedostoja kotihakemistostasi löytyy.

tunnus@jalava \~]\$ ls
# mitenHakemistonErottaa

•Kokeile myös toimiiko koneessa dir komento.

tunnus@jalava \~]\$ dir

Dir on varsinaisesti DOS-komento mutta yliopiston IT-palveluiden Linux-koneissa on useimmille komennoille olemassa DOS-muotoa olevat vastikkeet.

  • Kokeile myös komentoa
tunnus@jalava \~]\$ ls -al

ls -al on sama komento kuin alussa kokeilemasi ls-komento mutta sille on lisäksi annettu lisäparametreja / optioita (-al), jotka saavat sen kertomaan enemmän tietoja tiedostoista ja kansioista. Parametrit erotetaan varsinaisesta komennon nimestä välilyönnillä.

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

cd ja mkdir

  • Siirry html-hakemistoon cd-komennolla.
tunnus@jalava \~]\$ cd html
tunnus@jalava \~/html]%

cd-komennolle täytyy antaa parametrina kansion nimi johon halutaan siirtyä.

◦Mikäli saat virheilmoituksen html: No such file or directory, puuttuu kotihakemistostasi linkitys kotisivuhakemistoon. Saat sen tehtyä seuraavalla ohjeistuksella (testattu 7.9.2016 ja toimivaksi todettu):

pwd-komennolla katsotaan oman kotihakemiston polku:

 [xxxx@halava ~]$ pwd

Tuloksena

 /autohome/nashome3/xxxx

tai

 /nashome3/xxxx

Sitten määritellään linkki halava-koneesta www-palvelimelle

ln-komento menee seuraavasti

xxxx@halava ~]$ ln -s /wwwhome/nashome3/xxxx/html/ ~/html

xxxx:n tilalle omatunnus

nashomen numero voi olla eri käyttäjillä erilainen koska käyttäjien kotisivut on sijoitettu eri paikkaan

Komento luo symbolisen linkin (html) www-kansioosi (W-asema). Symbolinen linkki toimii tässä tapauksessa kuten kansio ja pääset html-linkin kautta käsiksi W-asemalla oleviin tiedostoihisi.

Komento kannattaa kirjoittaa leikepöydän avulla. Kopioi komento leikepöydälle maalaamalla se hiirellä ja painamalla näppäinyhdistelmää CTRL-C. Liitä komento puttyn ikkunaan näppäinyhdistelmällä SHIFT-INSERT.

Normaalisti leikepöydältä liittäminen CTRL-V-näppäinyhdistelmällä ei toimi koska pääteyhteys varaa tuon näppäinyhdistelmän muuhun käyttöön.

Jotta voisit katsella html-kansioon tehtyjä hakemistoja myös www-selaimessa, tee nano-editorilla tiedosto .htaccess

Anna komento

nano .htaccess

Kirjoita tiedostoon vain yksi tekstirivi

Options +Indexes

ja ko. rivin perään yksi Enterin painallus rivinvaihtona.

Tämän jälkeen tallenna ja lopeta nano komennolla CTRL+X

Lisätietoja asiasta IT-palveluiden sivuilta Jos jostain syystä tulee Forbidden... -virheilmoitus, tarkista täältä vielä ohjeet.

  • Jos cd html-komento antaa vieläkin virheen niin varmista, että olet aktivoinut https://salasana.jyu.fi-palvelussa WWW-tilasi!
  • Tee html-kansioon alihakemisto tyovaline käyttäen mkdir-komentoa.

tunnus@jalava \~/html]% mkdir tyovaline

Yleensä jos komennon suoritus onnistuu niin siitä ei anneta mitään erityistä palautetta. Vain virheistä kerrotaan.

  • Tarkista ls -komennolla, että tyovaline-hakemisto on tullut html-hakemiston alle. Jos et ole tehnyt html-hakemistoon ennemmin mitään, niin komento näyttää vain tyovaline-hakemiston sekä hakemistot . (nykyinen hakemisto) ja .. (isähakemisto).
  • Kokeile siirtyä takaisin kotihakemistoon kirjoittamalla
tunnus@jalava \~/html]% cd
  • Siirry suoraan edellä tekemääsi tyovaline-hakemistoon
tunnus@jalava \~]% cd html/tyovaline

cd-komennolla voi antaa parametrina kokonaisen hakemistopolun jonka päähän halutaan siirtyä. hakemistojen nimet erotetaan toisistaan /-merkillä.

  • Kokeile siirtyä takaisin html-kansioon kirjoittamalla
tunnus@jalava \~/tyovaline]% cd ..

.. tarkoittaa aina hierarkiassa yhtä ylempänä olevaa kansiota.

  • Siirry takaisin tyovaline-kansioon
# PLUGINNAMEHERE
  • Tee tyovaline-kansioon seuraavat kolme kansiota: harkka, demot ja luennot.
  • Tutki Filezillalla millaisen kansiorakenteen olet komentorivin kautta luonut. FileZilla päivittää listauksensa valinnalla View|Refresh.
  • Kokeile myös tree-komentoa.
  • Palaa takaisin komentoriville. Siirry demot kansioon cd-komennolla.
  • Yritä siirtyä demot-kansiosta suoraan luennot-kansioon cd-komennolla. Käske siirtyä yksi taso ylemmäs hakemistohierarkiassa ja edelleen tältä tasolta luennot-kansioon.

nano

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

• Siirry tyovaline-hakemistoon Tee tyovaline-hakemistoon nano-editorilla (myös nano käy) uusi tiedosto:

Vaihtoehdot siis nano tai nano?

09 Sep 16

tunnus@jalava tyovaline]% nano testi.txt

Kirjoita tiedostoon muutama rivi tekstiä esim. nimesi ja pääaineesi tai mitä vain keksitkin

•Seuraavassa lyhyet ohjeet muistin virkistämiseksi nano-editorin käytöstä.

nanon ollessa käynnissä näkyvät yleisimmät komennot ruudun alareunassa. ^-merkki tarkoittaa ctrl-näppäimen painamista yhtä aikaa ^-merkin jälkeen tulevan kirjaimen kanssa. Esimerkiksi tiedoston tallentaminen onnistuu painamalla yhtä aikaa ctrl-näppäintä ja O-näppäintä.

  • ^G Get Help
  • ^O WriteOut
  • ^R Read File
  • ^Y Prev Pg
  • ^K Cut Text
  • ^C Cur Pos
  • ^X Exit
  • ^J Justify
  • ^W Where is
  • ^V Next Pg
  • ^U UnCut Text
  • ^T To Spell

Kursoria voi liikuttaa tekstin seassa vain nuolinäppäimillä. Hiirtä on turha yrittää käyttää koska unix-palvelimeen on vain pääteyhteys eikä unix-palvelin tiedä mitään koneellasi olevasta hiirestä.

•Tallenna tiedosto (CTRL-O). Huomaa että nano varmistaa vielä tallennustiedoston nimen (testi.txt) ja odottaa enterin painallusta.

•Tarkista cat-komennolla mitä tekstitiedostoon tallentui:

cat testi.txt

Kopiointi

•Kopioi tyovaline-hakemistosta tiedosto testi.txt hakemistoon harkka cp-komennon avulla.

•Siirry kopioinnin jälkeen tyovaline-hakemistoon, jos et ole siellä jo valmiiksi.

•Kopioi sama testi.txt-tiedosto demot-hakemistoon.

•Varmista Filezillalla että kansiorakenteesta tuli järkevä

mv

•Siirrä demot-hakemiston tiedosto testi.txt mv-komennon avulla luennot-hakemistoon.

•Varmista, että tyovaline-hakemiston alla on siirron jälkeen seuraava hakemistorakenne.

|-- demot
|-- harkka
   -- testi.txt
|-- testi.txt
 -- luennot
    -- testi.txt

•Testaa tekemiesi tiedostojen näkyminen WWW-selaimella seuraavasta osoitteesta http://users.jyu.fi/~kayttajatunnuksesi/tyovaline/ . Jos tiedostot eivät näy kyseisessä osoitteessa, niin varmista että kirjoitit osoitteen oikein.

Tiedostojen ja kansioiden poistaminen (rm ja rmdir)

•Tuhoa rm-komennolla luennot-hakemiston testi.txt-tiedostot.

•Tuhoa tämän jälkeen rmdir-komennolla luennot- ja demot-hakemisto. harkka-hakemiston voit jättää jäljelle harjoitustyön sijoittamista varten :-)

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

•Kokeile ls-komennon tulosteen ohjaamista tiedostot.txt-tiedostoon kirjoittamalla:

ls > tiedostot.txt

•Tutki less-komennolla mitä tiedostot.txt-sisältää. q-näppäimellä pääset palaamaan komentoriville.

•Ohjaa tree-komennon tulostus tiedostot.txt-tiedostoon. Tutki mitä tiedostossa lukee nyt.

•>-operaattori korvaa aina tiedoston entisen sisällön uudella. Entäs jos halutaankin useamman komennon tuloste samaan tiedostoon? Silloin käytetään >>-operaattoria. Kokeile:

ls >> tiedostot.txt

•Mitä nyt löytyy tiedostot.txt-tiedostosta?

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

Komennosta pääset tiedostolistauksen jälkeen pois painamalla q. Tämän perään kokeile myös

ls | more

joka kätevä monesti.

Millä näppäinyhdistelmällä saan | (vertikaaliviiva)?

11 Sep 15 (edited 11 Sep 15)

•Kokeile mitä eroa on seuraavilla tavoilla ottaa tiedostolistaus unix-koneen /etc/-kansiosta (joka sisältää Linux-järjestelmän toimivuuden kannalta tärkeitä aseutuksia)

^ | = alt gr + < (vasemman shiftin viereinen näppäin)

12 Sep 15

ls /etc/

ls /etc/ | less

q-näppäimellä pääsee poistumaan less-ohjelmasta ja palaamaan komentoriville.

•Tulosta /etc/-kansion sisällöstä vain 10 ensimmäistä putkittamalla ls-komento head-komennolle.

ls /etc/ | head -n 10

Head-komennosta lisää näet mm. Wikipediasta

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)

•* tarkoittaa nollaa tai useampaa mitä tahansa merkkiä

◦rm *.txt tuhoaa kaikki .txt-päätteiset tiedostot

◦rm kukku/*.txt tuhoaa kaikki kukku-kansiossa olevat .txt-päätteiset tiedostot

•? tarkoittaa mitä tahansa yksittäistä merkkiä

◦rm ???.txt tuhoaa kaikki tiedostot joiden nimi on kolme merkkiä pitkä ja pääte on .txt

•rm *.?p? poistaa kaikki tiedostot joilla on kolmikirjaiminen pääte ja päätteen keskimmäinen kirjain on p

Tehtävät

•Listaa ls-komennolla kaikki .conf-päätteiset tiedostot /etc/-kansiosta

•Listaa ls-komennolla kaikki /etc/-kansion tiedostot joiden nimestä (ihan mistä kohtaan tahansa) löytyy sana conf

ls /etc/ | grep conf

Grep-komennosta myöhemmin tässä harjoituksessa

•Listaa ls-komennolla kaikki /etc/-kansion tiedostot joiden nimi päättyy pisteen jälkeen kahteen merkkiin.

•Listaa ls-komennolla kaikki /etc/-kansion tiedostot joiden nimi alkaa p-kirjaimella ja päättyy .conf

man

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

man ls

Tutki seuraavien komentojen manuaalisivuja:

•sort

•wc

wc voidaan laskea, kuinka monta merkkiä, sanaa tai riviä jokin syöte (esim. tiedosto) sisältää.

06 Sep 16 (edited 07 Sep 16)

•tail

By default, tail will output the last 10 lines of its input to the standard output.

06 Sep 16 (edited 07 Sep 16)

•chmod

Mitä kukin edellämainituista ohjelmista tekee? Kokeile.

grep

(lisätietoja tähän harjoituksen asioihin mm. wikipediassa)

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

Esimerkki: Tulostetaan tiedostot.txt-tiedostosta rivit joilla esiintyy sana conf:

grep conf tiedostot.txt

Tarvittaessa lisää pari riviä tiedostot.txt tiedostoon nano-editorilla. Nämä rivit sisältävät sanan conf Sitten pääset kokeilee.

Lisää esimerkkejä: Tulostetaan foo/-kansion tiedostoista ne joiden nimessä esiintyy sana www:

ls foo/ | grep www

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

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

grep www foo/*.*

grep käy läpi kaikki foo-alikansion tiedostot ja tulostaa niistä ne rivit joissa haettu sana esiintyy.

Tehtävät

•Tulosta /etc/pine.conf-tiedostosta kaikki #-merkin sisältävät rivit

grep \# /etc/pine.conf

Kokeile komentoa vielä siten, että etsii jotain muuta merkkiä.

•Tulosta /etc/-kansiosta kaikkien niiden tiedostojen nimet joiden nimessä esiintyy conf-sana

ls | grep conf(jne... keksi miten jatkuu)

Kokeile komentoa vielä siten, että se etsii samasta hakemistosta tiedostojen nimet jossa esiintyy joku muu sana

•Tulosta /etc/-kansiosta kaikkien niiden tiedostojen nimet joissa esiintyy #-merkki.

Tutustu Grepiin lisää esim. käyttäen tätä sivustoa.

ls /etc/. | grep # Kokeile myös hakusanoilla est ja konf niin havainnollistuu paremmin eli #:n tilalle kokeile näitä sanoja.

31 Aug 16 (edited 07 Sep 16)

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:

•Komento ls /etc/*.d tulostaa kaikki .d-loppuiset tiedostot mutta myös samalla tavalla nimettyjen alikansioiden sisällöt. Yritä saada ls-komento tulostamaan vain kansioiden nimet.

ls -l | grep drw toimi ainakin koska ls -l listauksessa on drw vain kansioiden nimissä

07 Sep 16

•Haluat luoda mkdir-komennolla kansiorakenteen foo/bar/foobar/barfoo. Miten se onnistuu yhdellä komennolla? Katso vihjettä esim. Wikipedia-sivustolta.

Malli tehtävään mkdir -p tmp/a/b/c Jos luot hakemistoa juuresta alaspäin jossa ekana tmp-kansio ja sitten kansiot a ja b ja c. Tämä tapahtuu senhetkisestä oletushakemistosta alaspäin. Eli jos olet tyovaline-hakemistossa komennon hakemistopolku tulee sen alaisuuteen. Kokeile komentoa ja sitten kirjoita tree niin näet tilanteen

31 Aug 16 (edited 07 Sep 16)

•man-komennon -k antaa mahdollisuuden etsiä ohjelmia avainsanan perusteella. Kokeile erilaisilla avainsanoilla mitä komentoja on käytettävissä. esim.

man -k pdf

Sekalaisia tehtäviä aiheesta

Seuraavissa tehtävissä joudut soveltamaan useita eri komentoja, putkitusta, korvausmerkkejä ja komentojen vipuja.

•Selvitä miten who-komento toimii. Kuinka monta käyttäjää on sisäänkirjautuneena jalava-koneessa?

Vastaus who -q

•Listaa jalava-koneessa paraikaa olevat käyttäjät käänteisessä aakkosjärjestyksessä käyttäjätunnuksen mukaan.

Vastaus who | sort -r

•Kuinka monta hlöä on ottanut yhteyden jalava-koneeseen ylioppilaskylästä (kortex.jyu.fi)? Vastaus: who | grep -c kortex.jyu.fi

•Tutustu w-komentoon. Kuinka monta hlöä käyttää pine-ohjelmaa jalava-koneessa?

Vastaus: w | grep -c pine Kokeile vielä selvittää irssi-käyttäjien lukumäärä

•Tulosta kaikista /etc/-kansion .conf-päätteisistä tiedostoista #-merkin sisältämät rivit aakkosjärjestyksessä

Vastaus: grep # /etc/*.conf | sort

SSH-yhteys toiseen Linux- tai Unix-koneeseen

•Voit halutessasi ottaa jo olemassaolevan SSH-yhteyden kautta yhteyttä johonkin toiseen Unix-koneeseen. Kokeile komentorivillä seuraavaa komentoa:

ssh tunnus@halava.cc.jyu.fi

Salasanakyselyn jälkeen sinulla pitäisi olla yhteys auki halava-koneeseen.

•Kirjaa itsesi ulos halava-koneesta exit-komennolla. Kirjaudu ulos myös jalava-koneesta exit-komennolla. Sulje Putty.

Tiedostojen oikeudet FileZillalla

Voit muokata Unix-koneessa olevien tiedostojen luku- ja kirjoitusoikeuksia FileZillalla.

•Etsi FileZillalla html-kansio ja edelleen sen alta tyovaline-kansio.

•Valitse tyovaline-kansiossa oleva testi.txt-tiedosto hiiren oikealla painikkeella. Valitse ponnahdusvalikosta File Permissions

Nyt pääset dialogin kautta muokkaamaan tiedoston oikeuksia
Nyt pääset dialogin kautta muokkaamaan tiedoston oikeuksia
Kuvassa perusasetukset
Kuvassa perusasetukset
  • Poista lukuoikeus (engl. read) ryhmältä (engl. group permissions) ja muilta käyttäjiltä (engl. public permissions) testi.txt-tiedostosta.
  • Käy kokeilemassa saatko tiedoston vielä näkyville selaimella päivittämällä tiedosto (Refresh/Reload). Jos saat, niin jotakin meni pieleen!
  • Anna lukuoikeus ryhmälle ja muille käyttäjille testi.txt-tiedostoon.
  • Käy kokeilemassa saatko tiedoston nyt näkyville selaimella. Nyt sen pitäisi onnistua!
  • Muuta vielä hieman luennot-hakemiston oikeuksia seuraavasti:
  • Poista luku- ja suoritusoikeus ryhmältä ja muilta käyttäjiltä luennot-hakemistosta.
  • Käy kokeilemassa saatko hakemiston sisällön vielä näkyville selaimella. Jos saat, niin jotakin meni pieleen!
  • Anna luku- ja suoritusoikeus ryhmälle ja muille käyttäjille luennot-hakemistoon.
  • Käy kokeilemassa saatko hakemiston sisällön nyt näkyville selaimella. Nyt sen pitäisi onnistua!
  • Voit tehdä myös tiedostojen kopioinnit, siirtämiset ja uudelleennimeämiset FileZillan kautta. Aina ei FileZillaa ole käytössä joten myös komentorivityöskentelyä on syytä osata!

Hyödyllisiä unix- ja komentoriviohjelmia

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

  • scp Kopioi tiedostoja koneiden välillä
  • wget Kopioi kokonaisia www-sivustoja
  • mogrify Muuntaa ja muokkaa kuvatiedostoja formaatista toiseen
  • screen Mahdollistaa ohjelmien jättämisen tausta-ajoon (esim. irc) ja useiden ikkunoiden käytön
  • irssi IRC-ohjelma
  • alpine sähköpostiohjelma
  • ps2pdf Muuntaa Postscript-tiedoston PDF-tiedostoksi
  • pdf2ps Muuntaa PDF-tiedoston Postscript-tiedostoksi

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:

awk
bc
cat
chmod
df
diff
du
echo
env
find
head
id
kill
ln
ps
pwd
scp
sed
tail
tree
touch
wc
xargs
zip

Lisäksi Windows-koneella kannattaa kokeilla komentoa cmd Tällä pääset Windowsin DOS-tilaan, jossa voit komentaa omaa Windows PC:ta kuten tässä harjoituksessa Jalava/halavaa

cmd-komennon voit kirjoittaa kun klikkaat ensin Start-painiketta (Windows 7). Ko. komennon jälkeen avautuu ikkuna DOS-komentoja varten.

Kysy luokan opettajalta lisäneuvoja mitä voisit harjoitella.

Interaktiivisia harjoituksia

Tehtävä 1

Listaa koko hakemisto

# compileShellCd

Tee uusi hakemisto ja vaihda sinne ja listaa sen sisältö

# compileShellMd

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.