LINUX

1. Yleistä

2. Komentoja 

LUKU 5 Komentorivi

1. Yleistä

Linux on alusta lähtien tehty monen käyttäjän järjestelmäksi, jolloin jokaisella käyttäjällä on oma käyttäjätunnus, salasana ja kotihakemisto sekä kotihakemistossaan omat asetuksensa. Käyttäjätunnuksia voi luoda myös erikoiskäyttöön, esimerkiksi niin, että erikoisempia asetuksia tai uusia ohjelmia kokeilee ensin testitunnuksella, ilman pelkoa varsinaisten käyttäjien säätöjen sekoittumisesta.

Tavallisella käyttäjällä ei ole kirjoitusoikeuksia muualle tiedostojärjestelmään kuin omaan kotihakemistoon (ja muutamaan muuhun paikkaan). Siten esimerkiksi ohjelmien asentaminen koko järjestelmään (kaikkien käyttäjien käytettäväksi) ei onnistu, vaan ylläpitotoimenpiteisiin käytetään pääkäyttäjän (root) käyttäjätunnusta tai sudo-ohjelmaa, joka suorittaa komennot pääkäyttäjänä. Tällainen järjestelmä on tietoturvan kannalta hyvä, sillä mahdolliset haittaohjelmat voivat saastuttaa vain käyttäjän oman kotihakemiston. Lisäksi se hankaloittaa virusten ja haittaohjelmien leviämistä.

2. Komentoja

Linuxissa jokainen käyttäjä voi ajaa useita ohjelmia samanaikaisesti. Käynnissä voi olla esimerkiksi komentotulkki (shell eli ohjelma, joka odottaa sinulta komentoja ja yrittää suorittaa ne), postinkäsittelyohjelma, editori (tekstinmuokkausohjelma) ja uutistenlukuohjelma. Käynnissä olevia eri ohjelmia kutsutaan prosesseiksi. Eri prosessien voidaan ajatella olevan omissa ikkunoissaan. I Alkuharjoittelussa on ehkä syytä ajaa vain yhtä ohjelmaa kerrallaan.

Unix-järjestelmään kirjoittautumiseen kuuluu yleensä 2-3 vaihetta, joiden yksityiskohdat ja järjestys voivat hieman vaihdella eri järjestelmissä ja eri yhteydenottotavoissa.

Komento-oppaita netistä

- http://linux.fi/index.php/Komentorivin_perusteet
- http://wiki.ubuntu-fi.org/Ubuntun_komennot

Nämä komennot kannattaa kokeilla käytännössä

Salasanan vaihtaminen

passwd

Järjestelmä kysyy ensin vanhan salasanan ja sitten uuden salasanan kaksi kertaa.

Yhteyden lopettaminen

Istunto lopetetaan komennolla exit (jossain UNIX-versiossa myös bye tai logout käyvät). T

Yleisimmät komennot

Seuraavassa on yhteenveto useimmin käytetyistä komennoista. Komentojen tarkempi esittely on asianmukaisissa luvuissa.
 

cd alihakemisto

siirrytään hakemistopuussa alaspäin

cd ..

siirrytään hakemistopuussa ylöspäin (huomaa välilyönti)

cp tiedosto hakemisto

kopioi tiedoston

ls

listaa hakemiston tiedostot

more tiedosto

tulostaa tiedoston sivu kerrallaan

rm tiedosto

poistaa tiedoston


Picon ja Pinen muokkauskomentoja

Ctrl – A = siirry rivin alkuun
Ctrl – E = siirry rivin loppuun
Ctrl – K = poista rivi
Ctrl – U = palauta rivi
Ctrl – J = siisti kappale
Ctrl – W = etsi tekstiä
Ctrl – D = poista tekstiä kursorin oikealta puolelta
Askelpalautin = poista tekstiä kursorin vasemmalta puolelta

Tiedostotyypit

Unixin tiedostojärjestelmässä on (hieman yksinkertaistaen) seuraavantyyppisiä tiedostoja:

  • tekstitiedostoja
  • binääritiedostoja

Tekstitiedostot ovat esimerkiksi jollakin editorilla itse kirjoitettuja tekstejä, c-ohjelmien lähdekoodeja, skriptejä tai html-tiedostoja. Kaikkia tekstitiedostoja voi periaatteessa lukea tai käsitellä millä hyvänsä editorilla tai tekstitiedostojen käsittelyohjelmalla. 

Binääritiedostot ovat esimerkiksi käännettyjä Unix-ohjelmia, pakattuja tiedostoja tai PC-tiedostoja (esimerkiksi Word-dokumentti). PC-tiedostoja ei voi yleensä lukea eikä muokata Unixissa.

Tiedoston tyypin saa selville komennolla file:

file tiedosto

Tiedostojen nimet

Alä käytä tiedostonimissä seuraavia merkkejä

< > { } [ ] ( ) ' " * ^ ! \ # | & $ ? ~ ;

7-bittisissä järjestelmissä ei pitäisi käyttää tiedoston nimissä skandinaavisia kirjaimia (åäöÅÄÖ), koska ne on koodattu kielletyille erikoismerkeille. Nimien lopussa olevat tarkentimet ovat pakollisia vain harvoissa tapauksissa. Jos tiedoston nimi alkaa pisteellä, se on piilotiedosto (saadaan listatuksi komennolla ls -a). Esimerkkejä tiedostojen nimistä:

.signature

(piilotiedosto)

.signature.bak

(yllä olevan tiedoston edellinen versio)

pulla.ohje.rusinoiden.kera

 

pinta-ala.c

(C-ohjelma)

book.gz

(gzip-ohjelmalla pakattu tiedosto)

Pitkiä tiedostojen ja hakemistojen nimiä ei tarvitse kirjoittaa kokonaan, koska <tab> (sarkain) täydentää nimen automaattisesti (niin pitkälle kuin täydennys voidaan tehdä yksikäsitteisesti). Esimerkiksi alihakemistossa Leivontaohjeita oleva tiedosto pulla.ohje.rusinoiden.kera voidaan tulostaa komennolla

more Leivontaohjeita/pulla.ohje.rusinoiden.kera

tai lyhyemmin kirjoittamalla

more Le<tab>pu<tab>

Hakemistorakenne

Unixin tavoin LInuxin hakemistojärjestelmänä on yksi monitasoinen haarautuva järjestelmä, ns. hakemistopuu. Ylimmällä tasolla on päähakemisto eli juurihakemisto (puu on ylösalaisin!), joka jakaantuu alihakemistoihin ja nämä edelleen alihakemistoihin jne. Jokainen tiedosto sijaitsee jossakin hakemistossa. Kun ärjestelmää käytetään, käyttäjä on aina jossain hakemistossa, yleensä siinä, missä käsiteltävä tiedosto sijaitsee.

Eri levyillä sijaitsevia hakemistopuita (eri tiedostojärjestelmiä) ei Linuxissa eroteta eri levytunnusten alle kuten esimerkiksi DOSissa, vaan ne on istutettu hakemistopuun joihinkin kohtiin. Käyttäjän ei normaalisti tarvitse kiinnittää huomiota eri tiedostojärjestelmiin (poikkeuksena linkityskomento ln).

Alihakemistojen erottimena on / (ei \). Juurihakemiston merkkinä on samoin /. Kun istunto aloitetaan, käyttäjä on omassa kotihakemistossa (home directory), jonne muut käyttäjät eivät yleensä pääse. Tyypillinen kotihakemisto on esimerkiksi:

/home/myynti/mlaakso

Alla on esimerkki tyypillisestä Unixin hakemistojärjestelmästä (huomattavasti yksinkertaistettuna). Käyttäjien kotihakemistopuu home on usein jonkin toisen hakemiston (esimerkiksi usr) alipuuna.


/

juurihakemisto

+---bin

Unixin perusohjelmia

+---dev

laiteohjaimia

+---etc

järjestelmän ylläpitotiedostoja

+---lib

ohjelmoijien tarvitsemia koodikirjastoja

+---lost+found

kadonneita tiedostoja

+---sys

järjestelmän lähdekooditiedostoja

+---tmp

tilapäissäilytykseen tarkoitettu hakemisto

+---usr

 

....+---bin

lisää ohjelmia

....+---games

pelejä

....+---lib

lisää koodikirjastoja ym.

...

 

+---home

käyttäjien kotihakemistopuun ylin taso

....+---johto

johtoryhmän kotihakemistot

.......

 

....+---myynti

myyntiryhmän kotihakemistot

........+---vleino

 

...........

 

........+---mlaakso

Matti Laakson kotihakemisto

............+---Mail

Matti Laakson tallentamat kirjeet

............+---bin

Matti Laakson ohjelmat

............+---public_html

Matti Laakson www-sivut

Hakemistojen käsittely

Hakemiston luominen ja tuhoaminen
 

mkdir hakemisto

luo hakemiston

rmdir hakemisto

poistaa tyhjän hakemiston


Esimerkiksi omille teksteille voi luoda alihakemiston Tekstit:

mkdir ~/Tekstit (tekee uuden alihakemiston käyttäjän kotihakemistosta alkaen)

tai

mkdir Tekstit (tekee uuden alihakemiston siitä kansiossa, missä komennon antohetkellä ollaan)

Työhakemiston vaihtamiseen on komento cd, joka toimii melkein samalla tavalla kuin DOSissa:
 

cd alihakemisto

Siirrytään hakemistopuussa alaspäin tytärhakemistoon (suhteellinen viittaus)

cd täydellinen hakupolku

Siirrytään nimettyyn hakemistoon (absoluuttinen viittaus)

cd ..

Siirrytään hakemistopuussa ylöspäin äitihakemistoon (huomaa välilyönti)

cd

VAIHTAA KOTIHAKEMISTOON!

pwd

Näyttää työhakemiston (pwd = present working directory)

Esimerkkejä
 

cd /pub/ohjelmat/pelit

Siirrytään nimettyyn hakemistoon

cd ~/C-ohjelmat

Siirrytään käyttäjän kotihakemiston alihakemistoon C-ohjelmat

cd Mail

Siirrytään työhakemiston alihakemistoon Mail

cd ../News

Siirrytään työhakemiston viereiseen hakemistoon

Hakemiston sisältö

Hakemiston sisältö tulostetaan komennolla ls (vertaa DOSin dir).

ls [-alstF] [hakemisto]

Komentosanan perään voidaan kirjoittaa miinusmerkin perään yksi tai useampia valitsimia (options). Komento tulostaa vallitsevan työhakemiston tiedostot, jollei komennon perään ole kirjoitettu jotain toista hakemistoa. Hakemiston nimen tilalla voi olla myös maski, joka rajoittaa listausta.

Tavallisimpien valitsimien merkitys

ls

Tulostaa normaalit tiedostot ja hakemistot.

ls -a

Myös piilotetut tiedostot (nimi alkaa pisteellä).

ls -s

Tiedostojen koot (yleensä kilotavuissa).

ls -t

Listaus tuoreusjärjestyksessä.

ls -F

Tiedoston tyyppi (/ = hakemisto, * = ohjelma, muut yleensä tekstitiedostoja).

ls -l

Yksityskohtainen listaus, jossa kukin tiedosto tai hakemisto on omalla rivillään.


Valitsimia voidaan yhdistää, esimerkiksi
ls -asF.

Esimerkiksi komento ls -s tekstit/*.bak tulostaa luettelon työhakemiston alihakemiston tekstit niistä tiedostoista, joiden nimen loppuosa on .bak. Tiedostoista tulostetaan nimen lisäksi niiden koko.

Esimerkki

Esimerkki komennon ls -al antamasta listauksesta (lyhennettynä):

       

% ls -al

tyyppi  

omistaja

ryhmä

koko

päiväys        

  tiedoston nimi

drwx--x--x 

23 mlaakso

iy22095 

1536

Jul 26 12:56 .

drwxr-xr-x

250 root 

 

3584

Jun 17  14:08   ..

 

-rw-r--r-- 

1 mlaakso

iy22095

 65

 Jul 23  19:22

.rnlast

drwx--x--x

2 mlaakso

iy22095 

512  

May  6  14:48

public_html

-rw-r-----  

17 mlaakso

iy22095  

1456  

May 23  12:45

luokan.kopiot

drwxrwx---

4 mlaakso

s-osasto

512  

Mar 20  08:25 

 bin

        
Hakemiston sisältö pitkässä muodossa

Jokaisesta tiedostosta tai hakemistosta on ilmoitettu

  • tiedoston tyyppi ja käyttäjien oikeudet siihen (katso tarkemmin yllä)
  • tiedostoon viittaavien linkkien lukumäärä tai hakemiston sisältämien hakemistojen määrä (mukaan luettuna hakemisto itse ja sen äitihakemisto)
  • tiedoston omistaja
  • ryhmä, johon kuuluville voidaan määritellä laajemmat oikeudet kuin muille (eri projekteja varten voidaan perustaa ryhmiä; jokainen kuuluu yleensä ainakin yhteen ryhmään)
  • tiedoston koko tavuina
  • päiväys (koska tiedostoa on viimeksi muutettu)
  • tiedoston nimi (piste (.) viittaa hakemistoon, jonka sisältöä tutkitaan, ja kaksi pistettä (..) sen äitihakemistoon)

Oikeudet

Pitkän tiedostolistauksen (katso esimerkkiä edeltä) ensimmäinen merkki ilmaisee, onko kyseessä tiedosto (-, viiva) vai hakemisto (d, directory). Eräitä muitakin merkintöjä saattaa nähdä, esimerkiksi symbolisia linkkejä (l). Yhdeksästä seuraavasta merkistä käy ilmi

  • omistajan (user) lukuoikeus (r), kirjoitusoikeus (w) ja suoritusoikeus (x)
  • ryhmän (group) lukuoikeus (r), kirjoitusoikeus (w) ja suoritusoikeus (x)
  • muiden (other) lukuoikeus (r), kirjoitusoikeus (w) ja suoritusoikeus (x)
  • kaikki (all) lukuoikeus (r), kirjoitusoikeus (w) ja suoritusoikeus (x)

kyseiseen tiedostoon tai hakemistoon. Oikeutta ei ole, jos kyseisessä kohdassa on viiva (-).

Lukuoikeus

Jos tiedostoon tai hakemistoon on lukuoikeus, on siitä merkkinä r (read). Tiedoston lukuoikeus tarkoittaa sitä, että tiedostoa voi lukea tai sen voi kopioida. Hakemiston lukuoikeus tarkoittaa sitä, että sen sisällön voi tulostaa ls-komennolla.

Kirjoitusoikeus

Jos tiedostoa voi muuttaa, on siihen kirjoitusoikeus: w (write). Jotta tiedoston voisi siirtää tai poistaa, on oltava kirjoitus- ja suoritusoikeus siihen hakemistoon, jossa tiedosto on. Myös uuden tiedoston luonti edellyttää kirjoitus- ja suoritusoikeutta hakemistoon.

Suoritusoikeus

Jos tiedostoon tai hakemistoon on suoritusoikeus, on siitä merkkinä x (execute). Tiedostojen suoritusoikeus koskee vain ohjelmia ja skriptejä. Hakemiston suoritusoikeus tarkoittaa sitä, että hakemistossa olevia tiedostoja (tai alihakemistoja) voidaan käsitellä kyseisten tiedostojen suoritusoikeuksien puitteissa. Hakemiston suoritusoikeus ei anna lupaa tulostaa luetteloa hakemiston sisältämistä tiedostoista.

-rw-r-----   

Edellisen esimerkin tiedostoa luokan.kopiot voivat lukea omistajan lisäksi ryhmän iy22095 jäsenet. Ryhmän s-osasto jäsenillä on kaikki oikeudet hakemistoon bin. He voivat siis esimerkiksi tallentaa sinne laatimiaan ohjelmia. Hakemistoon public_html on omistajalla täydet oikeudet, kaikilla muilla suoritusoikeus. Suoritusoikeus tarkoittaa siis sitä, että muut voivat esimerkiksi lukea niitä hakemiston public_html tiedostoja (www-sivuja), joihin on asetettu lukuoikeus kaikille (rw-r--r--).

Suojausattribuutit

Tiedostojen suojausattribuuttien eli oikeuksien oletusasetuksena on yleensä
 

rw-------

eli ainoastaan omistaja pääsee lukemaan ja muuttamaan tiedostoja.

Omien tiedostojen suojausattribuuttien muuttaminen käy päinsä komennolla

chmod mode tiedosto(t)

missä

mode ilmoittaa muutettavat attribuutit, esimerkiksi:
 

u+x

user-kenttään lisätään attribuutti x

g-r

group-kentästä poistetaan attribuutti r

o=rx

other-kentän attribuutit asetetaan arvoon r-x

ugo+x

kaikille lisätään suoritusoikeus

Esimerkkejä
 

chmod ug+x ~/bin

 

chmod g+r luokan.kopiot

 

chmod u-w tarkea.muistio

 

chmod go+r ~/public_html/*.html

 

Komennon parametri voidaan antaa myös numeerisessa muodossa

chmod UGO tiedosto(t)

missä U, G ja O ovat oktaalilukuja, jotka määrittelevät omistajan, ryhmän ja muiden oikeudet. Kunkin arvo määräytyy laskemalla yhteen myönnettyjä oikeuksia vastaavat arvot seuraavasti:
 

4

lukuoikeus

2

kirjoitusoikeus

1

suoritusoikeus

Esimerkiksi komento

chmod 751 tiedosto

eli komento

chmod u=rwx,g=rx,o=x tiedosto

antaa omistajalle kaikki oikeudet, ryhmälle luku- ja suoritusoikeuden ja kaikille muille suoritusoikeuden tiedostoon.

Uusien tiedostojen ja hakemistojen suojausten oletusasetuksen voi asettaa komennolla

umask xyz

Uusien hakemistojen suojausattribuutin numeeriseksi arvoksi tulee 777-xyz. Tiedostojen suojausattribuutit lasketaan muuten samoin, paitsi että suoritusoikeutta ei aseteta. Esimerkiksi komento umask 027 asettaa hakemistoille suojauksen 750 (rwxr-x---) ja tiedostoille suojauksen 640 (rw-r-----). Komentoa käytetään yleensä alustustiedostossa .login. Seuraavassa taulukossa on tyypillisiä esimerkkejä komennon parametrin vaikutuksista.
 

umask-arvo

tiedostojen oletussuojaus

hakemistojen oletussuojaus

077

600 (rw-------)

700 (rwx------)

067

600 (rw-------)

710 (rwx--x---)

066

600 (rw-------)

711 (rwx--x--x)

027

640 (rw-r-----)

750 (rwxr-x---)

022

644 (rw-r--r--)

755 (rwxr-xr-x)

000

666 (rw-rw-rw-)

777 (rwxrwxrwx)

Tiedostojen kopiointi

Tiedostoja kopioidaan komennoilla

cp [-i] tiedosto1 tiedosto2

cp [-i] tiedosto hakemisto

Esimerkiksi komento

cp data extra

kopioi työhakemiston tiedoston data saman hakemiston tiedostoksi extra. Mikäli hakemistossa sattui ennestään olemaan extra-niminen tiedosto, se häviää. Vahingon voi välttää käyttämällä komennossa valitsinta -i. Hakupolkua ei tarvitse kirjoittaa tiedoston nimen eteen, jos tiedosto on työhakemistossa (tai se kopioidaan sinne). Jos tiedosto kopioidaan työhakemistoon samannimisenä, on kohdehakemisto kuitenkin merkittävä pisteellä (.). Seuraavalla komennolla saat esimerkiksi kopion naapurin nyyssiohjelmien alustustiedostosta (työhakemistona on siis oltava oma kotihakemisto), edellyttäen että tiedostoon ja hakemistoon on asianmukaiset oikeudet:

cp ../naapuri/.newsrc .

Naapurillasi on mielenkiintoisia tiedostoja ja hän sallii niiden kopioimisen (hakemistoilla ja tiedostoilla asianmukaiset suojaukset, esimerkiksi tiedostoilla rw-r--r--). Tarvittava komento voisi olla esimerkiksi

cp ~/../vlevo/alustus* ~/Muiden.juttuja/

Komento kopioi siis naapurin (oma kotihakemisto (~) - äitihakemisto (..) - nimetty tytärhakemisto (vlevo)) kaikki tiedostot, joiden nimen alkuna on alustus, oman kotihakemiston alihakemistoon Muiden.juttuja alkuperäisillä nimillä.

Kokonaisen hakemiston tiedostoineen ja mahdollisine alihakemistoineen voi kopioida komennolla (r = recursive)

cp -r hakemisto1 hakemisto2

Tiedostojen poistaminen

Tiedostoja poistetaan komennolla

rm [-ir] tiedosto(ja)

Poistettuja tiedostoja ei saa millään keinolla palautetuksi.

Esimerkiksi

rm kirje lasku muistio

poistaa nimetyt kolme tiedostoa. Valitsin -i (interactive) kysyy varmistusta jokaisen poistettavan tiedoston kohdalla. Tätä valitsinta on syytä käyttää erityisesti silloin, kun aiotaan poistaa joukko tiedostoja jokerimerkkien avulla. Seuraava komento poistaa työhakemistosta kaikki sinne kertyneet eri ohjelmien tekemät varmistuskopiot tiedostojen edellisistä versioista (nimen loppuun liitetty merkki ~)

rm -i *~

Ilman valitsinta -i voi pienikin kirjoitusvirhe tai väärä hakemisto aiheuttaa korjaamattoman vahingon.

Kokonaisia hakemistoja tiedostoineen ja mahdollisine alihakemistoineen poistetaan käyttämällä valitsinta -r (recursive). Jos esimerkiksi halutaan poistaa kotihakemiston alihakemisto slirp tiedostoineen ja alihakemistoineen, voi sen tehdä komennoilla

cd

ensin kotihakemistoon

rm -ir slirp

poistetaan alihakemisto kysellen (-i)

Tämän voisi periaatteessa tehdä yhdellä komennolla, rm -ir ~/slirp, mutta kotihakemistomerkin ~ käyttäminen rekursiivisessa poistokomennossa on vaarallista. Jos hakemistossa on paljon tiedostoja ja alihakemistoja, on poistaminen valitsinta -i käyttäen aika työlästä. Jos olet varma asiastasi, voit jättää sen pois. Järjestelmässä on komento rm ehkä määritelty aliakseksi rm -i, jolloin se on ensin purettava komennolla unalias rm.

Tiedostojen siirtäminen

Tiedostoja siirretään komennolla

mv [-i] tiedosto(ja) hakemisto

Jos kohdehakemistossa on sattumalta samanniminen tiedosto, se häviää uuden tiedoston tieltä, jollet käytä valitsinta -i.

Komennolla mv voi myös vaihtaa tiedoston tai hakemiston nimen

mv [-i] vanhanimi uusinimi

lrwxr-xr-x    1 root     sys          7  Feb 13 07:52  bin -> usr/bin

Symbolista linkkiä voi käyttää pääsääntöisesti samoin kuin varsinaista linkkiä. Symbolinen linkki jää osoittamaan olemattomaan tiedostoon, jos tiedosto poistetaan.

Huomautuksia ja varoituksia

Komento rm on peruuttamaton. Komennot mv, cp ja ln voivat tuhota samannimisiä tiedostoja. Käytä niitä harkiten. Kun poistat tai siirrät useita tiedostoja, on varminta käyttää valitsinta -i, jolloin sinulta kysytään varmistusta jokaisen tiedoston kohdalla. Voit esimerkiksi tehdä aliaksen del, joka toimii samoin kuin rm -i. Kirjoita komento (Korn Shell, Zsh ja vastaavat)

alias del='rm -i'

tai (C Shell ja vastaavat)

alias del 'rm -i'

Vielä parempi on, jos kirjoitat aliasmäärittelyt alustustiedostoon (.profile, .zshrc tai .cshrc; komentotulkista riippuen):

alias del 'rm -i'

alias copy 'cp -i'

alias move 'mv -i'

Eräissä Unix-järjestelmissä on järjestelmän ylläpitäjän toimesta asetettu aliakset
 

alias rm 'rm -i'

alias mv 'mv -i'

alias cp 'cp -i'

jolloin i-valitsinta ei tarvitse itse kirjoittaa eikä aloittelevalle käyttäjälle satu ehkä niin usein onnettomuuksia. Kun siirryt sitten käyttämään jotain toista järjestelmää, ole tarkkana; nämä aliakset eivät ehkä olekaan käytössä. Jos kyseinen rm alias on käytössä, on tiedostojen poistaminen hitaampaa, koska jokaisen tiedoston poistaminen on vahvistettava. Kokenut Unixin käyttäjä voi poistaa aliaksen komennolla unalias alias.

Tekstitiedoston käsittely

Unix-tekstitiedostot ovat teknisesti rakenteeltaan samanlaisia. Mitä hyvänsä tekstitiedostoa voidaan periaatteessa käsitellä millä hyvänsä tarkoitukseen laaditulla ohjelmalla. On kuitenkin järkevää valita kuhunkin tehtävään tarkoituksenmukainen työkalu. Tekstitiedostojen käsittelyohjelmat voidaan ryhmitellä esimerkiksi seuraaviin ryhmiin pääasiallisen käyttötarkoituksen perusteella:

  • editorit eli `kirjoittamisohjelmat' (emacs, vi, pico  ym)
  • sivutusohjelmat (pagers) eli `katseluohjelmat' (pg, more, less ym)
  • suodattimet (filters) eli `hakuohjelmat' (wc, cat, cut, head, tail, sort, grep, tr, sed ym)
  • tekstien automaattiseen käsittelyyn tarkoitetut ohjelmointityökalut (awk, perl, c ym)

Tiedostojen katseleminen

more

Ohjelma more on ns. sivutusohjelma (pager) eli se tulostaa näytölle tiedoston tms. `sivun' (oikeastaan näytöllisen) kerrallaan. Muita sivutusohjelmia ovat pg ja less (monipuolisin). Ohjelmaa käytetään useimmiten joko tiedoston lukemiseen:

more tiedosto

tai jonkin toisen komennon tulosteen katselemiseen sivu kerrallaan:

komento | more

Esimerkiksi pitkä tiedostolistaus voidaan lukea kaikessa rauhassa kirjoittamalla:

ls -l | more

Merkki | on ns. putkimerkki, joka ohjaa komennon tulosteen toiseen komentoon.

Pieniä apuohjelmia

Seuraavia apuohjelmia voidaan käyttää joko itsenäisesti tai komentoputkessa toisten komentojen tulosteen käsittelemiseen. Hakasuluissa olevia parametreja kirjoitetaan tarvittaessa (miinus ja yksi tai useampi parametri).

wc

wc [-lwc] tiedosto

Laskee tiedoston rivien (l, lines), sanojen (w, words) ja merkkien (c, characters) lukumäärät. Oletuksena tulostetaan kaikki.

head ja tail

head [-n] tiedosto

Tulostaa n riviä tiedoston alusta (oletuksena 10 riviä).

tail [-n] tiedosto

Tulostaa n riviä tiedoston lopusta (oletuksena 10 riviä).

cat

cat tiedostoja > tiedosto

Yhdistää useita tiedostoja yhdeksi uudeksi tiedostoksi, esimerkiksi

cat luku1 luku2 luku3 > Suuri.romaani

Jos ohjausmerkkinä on >>, niin tiedostot liitetään merkin oikealla puolella olevan tiedoston jatkeeksi, esimerkiksi

cat luku4 >> Suuri.romaani

Komentotulkki

  • Komentotulkit
    • Bourne shell -perhe
    • C-Shell -perhe
  • Mihin komentotulkkia käytetään?

Komentotulkit

Ohjelma, joka välittää käyttäjän antamia komentoja varsinaiselle käyttöjärjestelmälle, on nimeltään komentotulkki (shell). Kun käyttäjä kirjoittautuu Unix-järjestelmään, käynnistyy automaattisesti jokin komentotulkki. Tämän lisäksi käyttäjä voi käynnistää istunnon aikana lisää eri komentotulkkeja, tarpeen mukaan. Komentotulkkeja on useita erilaisia. Unixin peruskäytössä eri komentotulkeissa ei ole oleellisia eroja. Vaativassa käytössä, erityisesti komentotulkin ohjelmoinnissa (skripteissä) ja käyttöympäristön muokkaamisessa on syytä päättää, mitä komentotulkkia käyttää. Eri tehtävissä (jokapäiväisessä käytössä ja skripteissä) voi käyttää eri komentotulkkia.

Komentotulkki käynnistetään sen tiedostonimellä (katso luetteloa alla), esimerkiksi

bash

Eri komentotulkeilla on yleensä erilaiset kehotteet (prompt), esimerkiksi %, $ tai >. Komentotulkki lopetetaan komennolla

exit

Seuraavassa on lueteltu tunnetuimmat komentotulkit. Itse ohjelman nimi (siis komentotulkin käynnistyskomento on vasemmassa sarakkeessa). Komentotulkit voidaan jakaa kahteen ryhmään (suurin piirtein).

Bourne shell -perhe

sh
 

Bourne shell (alkuperäinen, rajoittunut)
 

ksh
 

Korn shell (monipuolisempi)
 

bash
 

Bash (vielä monipuolisempi)
 

zsh
 

Zsh (erittäin monipuolinen)
 

C-Shell -perhe

csh
 

C-Shell (komentotulkin ohjelmointi perustuu C-kieleen)
 

tcsh
 

Tcsh (edellistä monipuolisempi)
 

Järjestelmän ylläpitäjä on asettanut yhden komentotulkin käyttäjän oletustulkiksi. Tämän saa luetuksi passwd-tiedostosta komennolla

grep omalogintunnus /etc/passwd

Oletustulkin voi vaihtaa komennolla chsh, esimerkiksi (tarkista polku)

chsh mlaakso /bin/bash

Suositeltavia komentotulkkeja ovat bash, zsh ja tcsh.

Käynnissä olevan komentotulkin saa selville esimerkiksi komennolla

echo $SHELL

Mihin komentotulkkia käytetään?

Komentotulkin käyttö jakaantuu suurinpiirtein kolmeen eri tehtäväryhmään:

  • interaktiivinen käyttö (komentojen kirjoittaminen ja muokkaaminen, komentohistoria, hakulausekkeiden ja muuttujien käyttö, ohjelmien käynnistäminen)
  • käyttöympäristön muokkaaminen (muuttujat, aloitustiedostot)
  • komentotiedostojen (skriptien) ohjelmointi

Seuraavassa esitetyt ohjeet pätevät parhaiten komentotulkeissa bash ja zsh. Erot komentotulkkiin tcsh on pyritty esittelemään. Koska Unix-järjestelmän käyttöympäristön asetukset on mahdollista asettaa monin eri tavoin, on todennäköistä, että käyttämäsi järjestelmä toimii jossain kohdassa vähän eri tavalla.

Komentojen muokkaus ja täydentäminen

Linuxissa on monipuoliset mahdollisuudet muokata annettuja komentoja. Komentoa voi muokata korjausnäppäimellä ja nuolinäppäimillä ja . Kirjoitusvirheen korjaamiseen tarkoitettu korjausnäppäin (pyyhkii pois edellisen merkin) ei ole, ikävä kyllä, aina sama näppäin. Järjestelmästä ja/tai pääteohjelmasta riippuen korjausnäppäin on <Delete> tai <Backspace> (kirjainnäppäimistön oikeassa yläkulmassa). Kokeile! Myös näppäinyhdistelmä Control-H pyyhkii pois edellisen merkin.

Nuolinäppäimillä ja voi yleensä selailla aiemmin annettuja komentoja. Näitä voi toistaa tai muokata. Katso tarkemmin kohdasta komentohistoria.

Pitkiä komentoja tai tiedostonimiä ei tarvitse kirjoittaa loppuun saakka. Komentotulkki yrittää täydentää kirjoittamasi komennon tai tiedostonimen, kun painat <tab>-näppäintä (useimmissa komentotulkeissa). Jos täydennys ei ole yksikäsitteinen, kuuluu äänimerkki. Vaihtoehdoista saa listan näppäilemällä Control-D. Joissakin järjestelmissä saat luettelon vaihtoehdoista automaattisesti. Muita tärkeitä näppäilyjä ovat mm:

Control-C
 

keskeytä komento
 

Control-Z
 

pysäytä komento (ohjelma)
 

Control-A
 

rivin alkuun
 

Control-E
 

rivin loppuun
 

Control-K
 

tuhoa rivin loppu
 

Control-L
 

tyhjennä näyttö
 

Control-X
 

tuhoa koko rivi
 

Control-H
 

poista edellinen merkki (yleensä siis <Backspace> toimii samoin)
 

Jos vuonohjaus on käytössä, niin seuraavat näppäilyt toimivat:

Control-S
 

keskeytä näytölle tulostaminen
 

Control-Q
 

jatka näytölle tulostamista
 

Päätteen toiminta riippuu järjestelmän asetuksista. Jos sinulla on ongelmia, voit katsoa päätteen asetuksia komennolla stty -a tai stty all.

Komentohistoria

Jokainen käynnistetty komentotulkki pitää kirjaa käyttäjän antamista komennoista. Tämä ns. komentohistoria sisältää enintään tietyn määrän käynnissä olevan istunnon komentoja ja mahdollisesti myös edellisen istunnon komentoja (asetuksista riippuen). Komentohistoriasta saadaan tulostetuksi haluttu osa komennolla

history [ensimmäinen [viimeinen]]

Oletusarvoisesti komento näyttää 16 viimeisintä komentoa. Aiemmin annetun komennon saa valituksi komennolla (ksh, bash, zsh)

!numero

tai (csh, tcsh)

r numero

Lähihistorian komentoja voi helposti selailla nuolinäppäimillä ja (tai Control-P ja Control-N). Komentojen muokkaamisessa voi yleensä käyttää emacsin komentoja.

Ohjelman lopettaminen

Ohjelmat loppuvat joko automaattisesti (kun tehtävä on tehty) tai ohjelman omalla lopetuskomennolla (esimerkiksi emacs komennolla Control-X Control-C). Toisinaan on tarve lopettaa (kill) ohjelma ennenaikaisesti. Ohjelma näyttää olevan jumissa tai olet itse ohjelmoinut ohjelmaasi päättymättömän silmukan. Useimmat ohjelmat loppuvat painamalla Control-C. Jos tämä ei toimi, yritä pysäyttää ohjelma ensin painamalla Control-Z. Tämän jälkeen voit käyttää komentoa kill (katso jäljempää). Jos tämäkään ei toimi, ota koneeseen uusi pääteyhteys ja lopeta prosessit sitä kautta.

Taustalla olevien prosessien lopettamiseen tarvitaan niiden prosessinumerot (PID). Ne saa tulostetuksi komennolla

ps -u logintunnus

Komennon tulostus voisi olla esimerkiksi (lyhennettynä)

  PID ........ COMMAND

 3662 .......  make game

 7189 .......  emacs

Prosessin voi yleensä lopettaa komennolla kill PID, esimerkiksi

kill 3662

Viimeisenä hätäkeinona voi prosessin lopettamiseen käyttää komentoa kill -9 PID, esimerkiksi

kill -9 3662
 

Muita piilotiedostoja

Muita henkilökohtaisia tiedostoja ovat mm. esittelytiedostot .project ja .plan. Edelliseen tiedostoon tulee yksi rivi tekstiä, mutta jälkimmäinen tiedosto ("käyntikortti") voi olla pidempi. Kun joku toinen käyttäjä haluaa sinusta tietoja finger-komennolla, hän saa näiden tiedostojen sisällön luettavakseen. Tämä edellyttää sitä, että muilla on näihin tiedostoihin lukuoikeus ja kotihakemistoosi suoritusoikeus. Tarvittavat oikeudet saa asetetuksi esimerkiksi komennoilla chmod a+x ~ ja chmod a+r ~/.plan.

Jos haluat liittää kirjeittesi loppuun jonkin vakiotekstin (allekirjoituksen), kannattaa laatia sitä varten allekirjoitustiedosto .signature. Useimmat postinkäsittelyohjelmat osaavat liittää tämän tiedoston automaattisesti viestiesi loppuun (elm: tarkista optiot (o)). Asiallinen allekirjoitustiedosto ei saisi olla neljää riviä pidempi.

Jos haluat ohjata postisi automaattisesti toiseen osoitteeseen, voit laatia tiedoston .forward, johon kirjoitat halutun postiosoitteen.

Muita piilotiedostoja ovat esimerkiksi postiohjelman tai news-ohjelman tekemät tilapäistiedostot (esimerkiksi .letter tai .article). Ohjelmat poistavat nämä normaalisti automaattisesti. Jos ohjelma kaatuu, joudut poistamaan tiedostot itse.

Muut käyttäjät

Tietoja muista käyttäjistä

Unix-järjestelmän muista käyttäjistä voi etsiä tietoja useilla eri tavoilla ja komennoilla. Komento users luettelee tämänhetkiset käyttäjät. Komento

w [-hsu]

kertoo jokaisesta käyttäjästä mm. istunnon alkamisajan (login@), kuinka paljon aikaa on kulunut viimeisestä näppäimenpainalluksesta (idle) sekä viimeksi annetun komennon (what). Lisäksi tulostuksen otsikko kertoo koneen keskimääräisen käyttöasteen 1, 5 ja 15 minuutin ajalta (load average).

Tarkempaa tietoa käyttäjästä saa komennolla

finger tunnus

missä tunnuksena voi kokeilla käyttäjän login-tunnusta, käyttäjän sukunimeä tai käyttäjän täydellistä Internet-osoitetta, esimerkiksi

finger mlaakso

finger Laakso

finger taylor@netcom.com

Komennon tulosteessa on normaalisti mm. käyttäjän täydellinen nimi, koska käyttäjä on viimeksi ollut järjestelmässä sekä kyseisen käyttäjän tiedostojen .project ja .plan ("käyntikortti") sisältö. Oman kotihakemiston tiedostoon .plan voi kirjoittaa asiallisen esittelyn itsestään, esimerkiksi osoitetietoja.

Komentoa voi käyttää myös muodossa

finger @palvelin

Tällöin saat yleensä luettelon kaikista kyseisen koneen senhetkisistä käyttäjistä. Finger-palvelun toteutus vaihtelee eri palvelimilla.


Keskusteleminen muiden käyttäjien kanssa

Jos haluat keskustella toisen käyttäjän kanssa, voit käyttää komentoa

talk käyttäjä[@kone]

Komento tulostaa toisen käyttäjän ruudulle ilmoituksen

Message from Talk_Daemon .....

talk: connection requested by mlaakso

talk: respond with: talk mlaakso

Jos vastapuoli haluaa keskustella kanssasi, hän vastaa ohjeen mukaan. Jos vastapuoli ei vastaa, on ohjelma syytä lopettaa painamalla Control-C parin yrityksen jälkeen ([Ringing your party again]). Jos vastapuoli vastaa, päätteen ruutu jakaantuu kahteen osaan, joihin kummankin kirjoittamat tekstit tulostuvat. Yhteyden voi kumpi hyvänsä katkaista painamalla Control-C.

Viestin voi lähettää toisen käyttäjän ruudulle myös komennolla

write käyttäjä

Kirjoittamasi teksti tulostuu toisen käyttäjän ruudulle. Yhteys lopetetaan komennolla Control-D.

Yhteydenotto komennoilla talk ja write voidaan estää komennolla mesg n. Vastaavasti yhteydenotto sallitaan komennolla mesg y. Pelkkä mesg ilmoittaa, onko yhteydenotto sallittua vai ei

Pico

Pico on suosittu ja helppokäyttöinen editori yksinkertaisiin töihin. Ohjelma tulee postiohjelman pine mukana, mutta sitä voi käyttää myös erikseen. Jos käytät Unix-järjestelmää vain satunnaisesti, pico saattaa riittää tarpeisiisi. Jos kirjoitat Unixissa enemmän, käsittelet suuria tiedostoja, laadit ohjelmia, teet www-sivuja jne, on syytä opetella jokin tehokkaampi ja ohjelmoitava editori, esimerkiksi emacs.

Ohjelma käynnistetään komennolla

pico [tiedosto]

Voit välittömästi kirjoittaa. Näppäimistö toimii kuten Unixissa yleensä. Komennot annetaan muodossa Control-kirjain (^kirjain). Tavallisimmat komennot luetellaan pico-ikkunan alimmilla riveillä (katso kuvaa alla).

   UW PICO(tm) 2.5                   File: TITE.TXT

 TIETOTEKNIIKKA

 Tietotekniikan kurssin suoritus koostuu seuraavista osista:

1) Tekstinkäsittelyn harjoitustyö (tehty?)

2) Taulukkolaskennan harjoitustyö :

   - työn periaatteellinen rakenne 25.3. mennessä

   - lähtötiedot kirjoitettuna 3.4. mennessä

   - välitarkastus 22.4. mennessä

   - työ valmis 6.5. mennessä

   - korjattu työ valmis 20.5. mennessä

3) Neljä sarjaa tehtäviä, korvaavat kokeen

   Tietotekniikan koetta korvaavia tehtäviä lähetetään sähköpostilla

   neljä sarjaa, jokaisessa 10 tehtävää:

 

                               [ Read 35 lines ]

^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

Liikkuminen

Nuolinäppäimien pitäisi toimia. Muussa tapauksessa Control-F/B/N/P liikuttaa kirjoituskohtaa oikealle/vasemmalle/alas/ylös. Muita komentoja:

Control-A
 

rivin alkuun
 

Control-E
 

rivin loppuun
 

Control-V
 

näyttö alas
 

Control-Y
 

näyttö ylös
 

Control-W
 

etsi hakusanan perusteella
 


Tekstin muokkaaminen

<korjaus>
 

poistaa edellisen merkin
 

Control-D
 

poistaa seuraavan merkin
 

Ctrl-Shift-6
 

merkitsee poistettavan tai kopioitavan alueen alun (suomalainen näppäimistö)
 

Control-K
 

poistaa merkityn alueen (oletusarvona rivi)
 

Control-U
 

palauttaa viimeksi poistetun tekstin kursorin osoittamaan kohtaan
 

Tekstin kopioiminen onnistuu siten, että merkitty alue poistetaan (Control-K), palautetaan välittömästi samaan paikkaan (Control-U), siirrytään uuteen paikkaan ja palutetaan alue siihen (Control-U).


Tiedostojen käsittely

Control-R
 

luetaan tiedosto kursorin osoittamaan kohtaan
 

Control-O
 

tallennetaan työ
 

Control-X
 

lopetetaan pico
 

picon säännöllinen käyttö aiheuttaa aivoille korjaamattomia