Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cat *
- TKK/Tietojenk{sittelyopin lab.
- 3.76.127 Assembler
- Kalle Hukkinen 04.03.1982
- Joitakin assembler-ohjelmointiin liittyvi{ vihjeit{:
- Viitteiden k{yt|st{
- --[l{ k{yt{ viitteennimi{, jotka ovat samoja kuin esimerkiksi
- jotkin konek{skyt.
- --[l{ k{yt{ pitempi{ viitteit{, kuin mit{ assembler tunnistaa.
- --K{yt{ viitteiss{ vain kirjain- ja numeromerkkej{.
- Aloita viite kirjaimella.
- --K{yt{ viitteit{, jotka kuvaavat merkityst{{n, siis
- esim. 'addword' eik{ 'xxx'.
- Vakiot ja lausekkeet
- --K{yt{ vakioissa selkeint{ lukuj{rjestelm{{,
- esim. laskurit desimaalisina, maskit oktaalisina
- tai hexana, ASCII-merkit merkkivakioina jne.
- --Erota data ja osoitteet.
- --Pid{ lausekkeet mahdollisimman yksinkertaisina.
- Kommentoinnista
- --Kommentin tulisi kertoa miten joku k{sky vaikuttaa
- teht{v{n suoritukseen eik{ miten se vaikuttaa keskusyksik|n
- toimintaan, siis EI n{in: "add 1 to accumulator"
- tai "hyp{t{{n alkuun", vaan n{in:
- "line feed to tty" tai "joko l{mp|tila ylitti raja-arvon?".
- --Kommentin on oltava lyhyt ja selke{
- --[l{ k{yt{ eriskummallisia lyhenteit{.
- --Kommentoi kaikki vakio- ja muuttujam{{rittelyt.
- --Kommentoi kunkin modulin tai aliohjelman toiminta,
- parametrinv{litys sek{ rekisterien k{ytt|.
- --Pid{ k{ytt{m{si terminologia yhten{isen{.
- Kommentoidessa ei tarvitse pel{t{ toistoa.
- .pl 66
- .ll 70
- .he 'TKK/Tietojenk{sittelyopin lab.''DOKUMENTOINTIOHJE'
- .fo ''-%-''
- .m2 0
- 3.76.127 Assembler
- .br
- Kalle Hukkinen 20.01.1982
- .m2 2
- .in 18
- .bl 4
- .ti 0
- Dokumentointiohjeet:
- .ti16
- 1.Ohjelmadokumentti on perusrakenteeltaan samanlainen
- kuin korkean tason kielill{ kirjoitettujen ohjelmien
- dokumentit.
- .ti16
- 2.Mit{{n erityist{ dokumentointilomakkeistoa ei tarvitse
- k{ytt{{. Suosittelen tutustumista UNIXin roff ja nroff
- tekstinmuokkausohjelmistoihin. Lyhyt kuvaus l|ytyy
- artikkelista 'UNIX For Beginners', ja
- enemm{n tietoja on manuaaleissa 'UNIX Programmer's Manual' sek{
- 'NROFF User's Manual'.
- .ti16
- 3.Dokumentin tulee selke{sti kuvata ohjelman rakenne
- modulikuvauksin, sek{ eri aliohjelmien parametriv{litys.
- .ti16
- 4.Varatut muuttuja-alueet sek{ niiden k{ytt| on selostettava.
- .ti16
- 5.Ohjelmasta tulee olla algoritmikuvaus jollain korkean
- tason kielell{ (Pascal, Simula, Algol, mutta EI Fortran)
- tai pseudokielell{. Kuvausta ei tarvitse testata tai
- k{{nt{{.
- .ti16
- 6.Hyvin kommentoitu ohjelmalistaus liitet{{n dokumenttiin.
- Assembler-ohjelmoinnissa kommentointi on ehdottomuus.
- Kommentoinnin on oltava toimenpiteit{ selkiytt{v{{,
- ei siis pid{ kertoa, ett{ siirret{{n ykk|nen rekisteriin
- nolla, vaan miksi n{in tehd{{n!
- .ti16
- 7.K{ytt|ohjeet ja esimerkit
- UNIX V6 boottaus AMPEX levylt{
- =----------------------------=
- Kaada kone HALLITUSTI, eli anna sync komento kun olet logannut
- sis{{n. Tai loggaa sis{{n projectille sync.
- HETI kun saat uudestaan promptin, ('#' tai '%') paina
- HALT nappula alas. (Valkoinen nappula prosessorissa)
- T{m{n j{lkeen pit{{ harrastaa hieman koneen ohjelmoimista
- keinukytkimilt{: Sy|tet{{n oktaalinen osoite (esim) 001000
- antamalla se keinukytkimilt{ (Nappula 9 alhaalla, muut ylh{{ll{).
- Tee seuraavan ohjeen mukaan:
- (Kaikki esiintyv{t luvut ovat OKTAALILUKUJA !!!)
- 001000 LOAD ADDRS (Lataa osoitteen 001000)
- 012737 DEP (Painetaan KERRAN punaista DEP nappulaa)
- 000013 DEP
- 176306 DEP
- 000001 DEP
- 001000 LOAD ADDRS (Lataa uudestaan osoite 001000)
- HALT -> ENABLE (Painettaessa alhaalla olevaa HALT nappulaa
- se nousee yl|s ENABLE asentoon.)
- START (Paina ja p{{st{ irti, kone k{ynnistyy
- ja j{{ ikuiseen silmukkaan)
- ENABLE -> HALT (Pys{ytt{{ koneen)
- 000000 LOAD ADDRS (Lataa osoitteen 000000)
- HALT -> ENABLE (HALT nappula ENABLE asentoon)
- START (K{ynnist{{ koneen)
- Konsolina olevalle p{{tteelle ilmestyy ( -tynee?) '@', johon
- kirjoitetaan unix ja RETURN (ilman v{lily|ntej{!)
- T{m{n j{lkeen kone k{ynnistynee normaalisti, ja kysyy
- p{iv{m{{r{n/kellonajan, jonka j{lkeen se hoitaa itse loput.
- Jos esiintyy ongelmia (esim. root device corrupted),
- ota yhteytt{ Jukiin.
- Jukka Virtanen, TeKoLa, 451-2624, U249
- Puhelin Kotiin 522558
- Levynpaikkailuesimerkki
- Kalle Hukkinen 10.03.1982
- # dcheck /dev/rrk0
- /dev/rrk0:
- entries link cnt
- 561 1 0
- 565 1 0
- 584 1 0
- # icheck /dev/rrk0
- /dev/rrk0:
- 3096 dup; inode=0, class=free
- 3102 dup; inode=0, class=free
- 1266 dup; inode=0, class=free
- 3 dups in free
- spcl 31
- files 423
- large 127
- direc 35
- indir 127
- used 3701
- free 215
- # ncheck -i 561 565 584 /dev/rrk0
- /dev/rrk0:
- 584 /tmp/atm1a
- 565 /tmp/atm2a
- 561 /tmp/atm3a
- # rm /tmp/atm*
- /tmp/atm1a (0 mode)?y
- /tmp/atm2a (0 mode)?y
- /tmp/atm3a (0 mode)?y
- /tmp/e00117 (600 mode)?
- /tmp/e00235 (600 mode)?
- # icheck -s /dev/rrk0
- /dev/rrk0:
- #
- #
- # dcheck /dev/rrk1
- /dev/rrk1:
- #
- # icheck /dev/rrk1
- /dev/rrk1:
- missing 4
- spcl 0
- files 631
- large 128
- direc 144
- indir 128
- used 3813
- free 968
- # icheck -s /dev/rrk1
- /dev/rrk1:
- #
- / T{m{ pieni esimerkkiohjelma k{{nt{{ p{{ttelt{ annetun
- / tekstirivin merkit k{{nteiseen j{rjestykseen
- / Kalle Hukkinen 26.11.1981
- buflen = 80. /puskurin pituus m{{ritell{{n vakioksi
- cr = 15 /carriage return
- lf = 12 /line feed
- .text
- main:
- mov $1,r0 /r0 sis{lt{{ nyt tiedostonumeron write-kutsua
- sys write;info;infolen / varten (tty kuvaputki = 1)
- clr r0 /r0 sis{lt{{ systeemikutsua read varten
- sys read;iobuf;buflen / tiedostonumeron (tty n{pp{imist| = 0)
- bcs ex /read-virhetilanteessa carry asettuu
- mov r0,r2 /read palauttaa r0:ssa luettujen merk. m{{r{n
- beq ex /jos se oli 0, poistutaan
- mov $iobuf,r1 /puskurin alkuosoite rekisteriin r1
- 1: movb (r1)+,-(sp) /siirret{{n merkit puskurista pinoon
- dec r0 /merkkien m{{r{n laskuri
- bne 1b /joko siirrettiin kaikki ??
- mov $iobuf,r1 /puskurin alkuosoite
- mov r2,r0 /merkkien m{{r{ oli muistissa r2:ssa
- 2: movb (sp)+,(r1)+ /siirret{{n merkit nyt k{{nteisess{
- dec r0 / j{rjestyksess{ pinosta puskuriin
- bne 2b /joko siirrettiin ?
- movb $cr,(r1)+ /pannaan puskuriin viel{ return
- movb $lf,(r1)+ / ja linefeed
- clrb (r1)+ / sek{ loppuun nul
- mov $1,r0 /r0:ssa tiedostonumero (tty kuvaputki = 1)
- sys write;iobuf;buflen /puskurin tulostus
- ex: sys exit
- .data
- info: <K{{nnet{{np{ rivin merkit v{{rinp{in \nAnna jokin teksti!\n\0>
- infolen =.-info
- .bss
- iobuf: .=.+buflen /puskurin koko on buflen merkki{
- TKK/TeKoLa UNIX-k{ytt|j{rjestelm{
- Kalle Hukkinen 17.11.1981
- Floating-point lukujen laskutoimitukset SM-4:n UNIX-assemblerilla
- Floating-point lukujen formaatti on sama kuin PDP-11
- formaatti, joka ei kuitenkaan ole yksityiskohdiltaan
- aivan sama kuin IEEE:n standardi minitietokoneiden
- floating-point esitysmuodosta. PDP-11 koneessa flo-
- tari on kaksi sanaa (32 bitti{). Ylin bitti on
- merkkibitti, kahdeksan seuraavaa ovat eksponentti
- excess-128 muodossa, ja mantissa on normalisoitu
- (ylin bitti on aina 1 ja siten n{kym{t|n) siten,
- ett{ bin{{ripiste on koko mantissan edess{, siis
- n{kym{tt|m{n bitin edess{!
- (0.5 <= mantissa < 1.0)
- K{ytett{viss{ ovat kaikki nelj{ peruslaskutoimitus-
- ta. UNIX-assembler ei kuitenkaan tunne n{it{
- nimenomaisia flotarik{skyj{, vaan generoi koodia ns.
- PDP-11 floating-point- prosessoria varten, jota taas
- ei SM-4 laitteistossa ole. Niinp{ k{skyt joudutaan
- kirjoittamaan oktaalisessa muodossa assemblerkoodin
- sekaan:
- 07500r / fadd r
- 07501r / fsub r
- 07502r / fmul r
- 07503r / fdiv r
- joissa r on siis jokin osoitinrekisteri, jonka
- osoittamassa muistipaikassa operandit ovat:
- (r) high source
- (eniten merk. osa)
- (r)+2 low source
- (r)+4 high destination
- (r)+6 low destination
- Vastaus tulee dest. operandiin (r)+4 ja (r)+6 , joka
- siis tuhoutuu.
- Esim.
- .text
- mov $oprnds,r1
- 075021 /fmul r1
- sys exit
- .data
- oprnds:047700
- 000000
- 047640
- 000000
- T{m{ pieni ohjelmaesimerkki kertoo kesken{{n flotar-
- it 047700000000 ja 047640000000, ja vastaus tulee
- j{lkimm{isen p{{lle muistipaikkaan oprnds+4, johon
- my|s r1 laskutoimituksen j{lkeen osoittaa.
- -1-
- .pl 66
- .ll 70
- .he 'TKK/TeKoLa''UNIX-k{ytt|j{rjestelm{'
- .fo ''-%-''
- .m2 0
- Kalle Hukkinen 17.11.1981
- .br
- .m2 2
- .in 18
- .bl 4
- .ti 0
- Floating-point lukujen laskutoimitukset SM-4:n UNIX-assemblerilla
- Floating-point lukujen formaatti on sama kuin PDP-11 formaatti, joka
- ei kuitenkaan ole yksityiskohdiltaan aivan sama kuin
- IEEE:n standardi minitietokoneiden floating-point esitysmuodosta.
- PDP-11 koneessa flotari on kaksi sanaa (32 bitti{).
- Ylin bitti on merkkibitti, kahdeksan seuraavaa ovat eksponentti
- excess-128 muodossa, ja mantissa on normalisoitu (ylin bitti on aina 1 ja
- siten n{kym{t|n) siten, ett{ bin{{ripiste on koko mantissan
- edess{, siis n{kym{tt|m{n bitin edess{!
- .br
- (0.5 <= mantissa < 1.0)
- K{ytett{viss{ ovat kaikki nelj{ peruslaskutoimitusta.
- UNIX-assembler ei kuitenkaan tunne n{it{ nimenomaisia
- flotarik{skyj{, vaan generoi koodia ns. PDP-11 floating-point-
- prosessoria varten, jota taas ei SM-4 laitteistossa ole.
- Niinp{ k{skyt joudutaan kirjoittamaan oktaalisessa muodossa
- assemblerkoodin sekaan:
- 07500r / fadd r
- 07501r / fsub r
- 07502r / fmul r
- 07503r / fdiv r
- .br
- joissa r on siis jokin osoitinrekisteri, jonka osoittamassa
- muistipaikassa operandit ovat:
- (r) high source
- (eniten merk. osa)
- (r)+2 low source
- (r)+4 high destination
- (r)+6 low destination
- .br
- Vastaus tulee dest. operandiin (r)+4 ja (r)+6 , joka siis tuhoutuu.
- Esim.
- .text
- mov $oprnds,r1
- 075021 /fmul r1
- sys exit
- .data
- oprnds:047700
- 000000
- 047640
- 000000
- T{m{ pieni ohjelmaesimerkki kertoo kesken{{n flotarit
- 047700000000 ja 047640000000, ja vastaus tulee j{lkimm{isen
- p{{lle muistipaikkaan oprnds+4, johon my|s r1 laskutoimituksen
- j{lkeen osoittaa.
- .pl 66
- .ll 70
- .he 'TKK/TeKoLa''UNIX-k{ytt|j{rjestelm{'
- .fo ''-%-''
- .m2 0
- Kalle Hukkinen 18.12.1981
- .br
- .m2 2
- .in 18
- .bl 4
- .ti 0
- OTSIKKO
- .ti 0
- Johdanto
- SM4 - UNIX Helppi (14.01-83 Juki)
- Olet Tkk/LK UNIX V6 :ssa.
- K{yt|ss{si on csh niminen ohjelmoitava komentotulkki.
- Koneesta p{{set ulos kirjoittamalla logout
- tai painamalla CONTROL-D :t{.
- (Muista, ett{ UNIX:issa isot ja pienet kirjaimet ovat
- eri asioita !!!)
- Yleisi{ komentoja:
- man komento
- l -l listaa hakemiston tiedostojen nimet
- pwd present working directory (nykyinen ty|hakemisto)
- who ketk{ muut seikkailevat koneessa
- ps omat ajossa olevat ohjelmat (ja PID niille)
- kill PID murhaa ohjelman (PID:in saa esim ps komennolla)
- <break> painamalla break nappulaa, siirrat
- nykyisen ohjelmasi n{enn{isesti taustalle.
- (SILTI katkeaa RUBOUT:illa !!!)
- Uusi <break> siirtyy takaisin ohjelman prosessiin.
- ^D Logout
- ed file editoi tiedostoa file
- cd dir vaihda hakemistoa
- cd .. siirry hakemistopuussa ylosp{in
- SM4 - UNIX Helppi (14.01-83 Juki)
- Olet Tkk/LK UNIX:issa.
- Jos haluat p{{st{ ulos, paina CONTROL-D :t{.
- (Muista, ett{ UNIX:issa isot ja pienet kirjaimet ovat
- eri asioita !!!)
- Yleisi{ komentoja:
- l -l listaa hakemiston tiedostojen nimet
- pwd present working directory (nykyinen ty|hakemisto)
- who ketk{ muut seikkailevat koneessa
- ps omat ajossa olevat ohjelmat (ja PID niille)
- kill PID murhaa ohjelman (PID:in saa esim ps komennolla)
- <break> painamalla break nappulaa, siirrat
- nykyisen ohjelmasi n{enn{isesti taustalle.
- (SILTI katkeaa RUBOUT:illa !!!)
- Uusi <break> siirtyy takaisin ohjelman prosessiin.
- ^D Logout
- ed file editoi tiedostoa file
- cd dir vaihda hakemistoa
- cd .. siirry hakemistopuussa ylosp{in
- TKK/TeKoLa UNIX-k{ytt|j{rjestelm{
- Kalle Hukkinen 18.12.1981
- UNIXIN K[YT\N ALKEET
- Johdanto
- T{m{n paperin tarkoitus on olla ensimm{inen johdatus
- TKK/TeKoLan SM-4 -tietokoneessa k{ytett{v{n UNIX-
- k{ytt|j{restelm{n ominaisuuksiin. T{ss{ esitet{{n
- erityisesti paikallisen TKK UNIXin erityispiirteit{
- sek{ k{ytt|{ korkeakoulun datavaihteen kautta.
- T{ydent{vi{ esityksi{ ovat Bell Laboratorion toimit-
- tamat artikkelit 'UNIX for Beginners', joka on pal-
- jolti t{m{n esityksen l{hde ja siis p{{llekk{inen,
- sek{ 'A Tutorial Introduction to the UNIX Text Edi-
- tor' ja 'Programming in C - A Tutorial'.
- Login
- Datavaihde tunnistaa ison N-kirjaimen UNIX-kutsuksi
- ja kytkee yhden SM-4 tietokoneeseen menevist{
- kahdeksasta datavaihdelinjasta p{{tteeseen. UNIX
- vastaa kirjoittamalla:
- login:
- johon vastataan omalla k{ytt{j{tunnuksella. Jos
- k{ytt{j{ on m{{ritellyt itselleen salasanan (mik{ on
- toivottavaa), kysyy UNIX sen kirjoittamalla:
- password:
- Jos salasana oli oikea, tulostaa UNIX jonkin sys-
- teemitiedoituksen sek{ promptaa prosenttimerkill{ %
- tiedoksi siit{, ett{ j{rjestelm{ on valmis vas-
- taanottamaan komentoja.
- Salasana
- Salasanan voi itselleen m{{ritell{ komennolla:
- % passwd k{ytt{j{tunnus salasana
- Samalla komennolla sit{ voi my|s muuttaa.
- -1-
- TKK/TeKoLa UNIX-k{ytt|j{rjestelm{
- Logout
- P{{teistunnon lopetus tapahtuu yksinkertaisesti
- Ctrl-D merkill{, jolloin systeemi kirjoittaa:
- logged out
- P{{tenopeus
- Jos p{{tteess{ on nopeus 2400, voidaan loggattaessa
- sis{{n muuttaa k{tev{sti nopeutta. Kun shift-N:n
- j{lkeen tulostuu 'login:', vaihdetaan heti p{{tteen
- nopeus 2400:an ja sen j{lkeen painetaan BREAK-
- n{pp{int{. T{ll|in 'login:' tulostuu uudelleen ja
- voidaan kirjoittaa k{ytt{j{tunnus. Muuksi nopeudek-
- si vaihtaminen k{y stty-komennolla.
- Erikoismerkit
- UNIX k{ytt{{ hieman erikoisia merkkej{ sy|tteen kor-
- jailumerkkein{. Edellisen kirjoitetun merkin
- pyyhkii 'risuaita' # ja koko kirjoitetun rivin
- tuhoaa 'miumau' @. Jos n{it{ merkkej{ haluaa kir-
- joittaa tekstin sekaan (esim. editorilla), on niit{
- edelt{v{n merkin oltava 'backslash' \, siis \# tai
- \@.
- Suoritettavan ohjelman keskeytt{{ RUB eli DEL
- n{pp{in, siis ei Break. BREAK:n painaminen ohjelman
- suorituksen aikana aiheuttaa sen, ett{ suoritus jat-
- kuu tausta-ajona ja itse p{{st{{n UNIXin komento-
- tasolle.
- K{yt|ss{ olevassa TKK-UNIXissa ovat k{ytett{viss{
- my|s DECist{ tutut Ctrl-S ja Ctrl-Q tulostuksen
- tilap{ist{ pys{ytyst{ varten, sek{ Ctrl-R kir-
- joitetun (ja mahdollisesti korjaillun) komentorivin
- uudelleentulostusta varten. Edellisen komennon voi
- toista kirjoittamalla 'miinus'-merkin: -<CR>
- Komento
- Komennot UNIXille annetaan promptin % per{{n ja
- p{{tet{{n RETURN tai LINEFEED n{pp{imell{. UNIXille
- voidaan kirjoittaa seuraavia komentoja my|s edel-
- lisen komennon suorituksen aikana (kuten DECille),
- mutta ero DECiin verrattuna on se, ett{ UNIX kaiut-
- taa kirjaimet v{litt|m{sti. UNIX-komennon tulkitsee
- ohjelma nimelt{ shell, ja siirt{{ suorituksen komen-
- non toteuttavalle ohjelmalle. UNIXin
- k{ytt|j{rjestelm{komennot ovat siis tavallisia suor-
- itettavia ohjelmia.
- -2-
- TKK/TeKoLa UNIX-k{ytt|j{rjestelm{
- Tiedostoj{rjestelm{
- UNIXin tiedostoj{rjestelm{ on puhtaan hierarkinen.
- Sen juuri on hakemisto nimelt{ root, joka jakautuu
- tiedostoiksi ja hakemistoiksi. Kukin hakemisto voi
- edelleen sis{lt{{ tiedostoja ja alihakemistoja, jne.
- Ainoa ero tiedostojen ja hakemistojen v{lill{ on se,
- ett{ hakemistoa voi muuttaa vain systeemi. Tiedos-
- toilla ei ole mit{{n typpi{ tai sis{ist{ rakennetta,
- ne ovat yksinkertaisesti tavujonoja. Kaikkia
- tiedostoja, ohjelmia ja I/O-laitteita k{sitell{{n
- homogeenisesti, siis laitteelle tulostetaan kuten
- tiedostoon.
- Omassa hakemistossa (tarkemmin siin{ hakemistossa,
- jossa parhaillaan ty|skentelee) voi tiedostoon vii-
- tata suoraan tiedostonimell{. T{ydellisen tiedos-
- tonimen muodostaa kuitenkin tiedostopolku l{htien
- juuresta. Juureen (root) voi viitata symbolilla / ,
- ja siit{ edelleen esim. k{ytt{j{ virtasen tiedostoon
- zap voi viitata polulla /usr/virtanen/zap. zap
- kuuluu siis hakemistoon /usr/virtanen, joka puoles-
- taan on hakemiston /usr alihakemisto. /usr on
- suoraan juurihakemiston / (=root) alihakemisto.
- Jos k{ytt{j{ virtasella on alihakemisto, jonka
- t{ydellinen (polku)nimi on /usr/virtanen/subdir, ja
- siell{ tiedosto data, voi h{n ty|skennelless{{n hak-
- emistossa /usr/virtanen viitata kyseiseen tiedostoon
- nimell{ subdir/data. Puuhierarkiassa alasp{in
- viitattaessa ei siis tarvitse k{ytt{{ koko polun-
- nime{ (mutta nime{ ei my|sk{{n t{ll|in pid{ aloittaa
- juuren symbolilla / )
- Shell
- Shell on UNIXin komentotulkki. Se on itsen{inen
- ohjelma (ei siis osa k{ytt|j{rjestelm{{), joka tulk-
- itsee k{ytt|j{rjestelm{lle annetut komennot ja luo
- niiden mukaan komennon suorittavat prosessit. Jos
- halutaan suorittaa komento tai ohjelma taustaproses-
- sina siten, ett{ ei odoteta ohjelman suorituksen
- p{{ttymist{ ennenkuin palataan shellin komento-
- tasolle, voidaan komento p{{tt{{ merkkiin &. T{ll|in
- voidaan v{litt|m{sti jatkaa p{{tety|skentely{. Jos
- taustalla ajettavassa ohjelmassa on tulostuksia, ne
- ohjautuvat kuitenkin normaalisti p{{tteelle.
- Shelliss{ on mahdollisuus muuttaa ohjelman sy|t|n ja
- tulostuksen oletustiedostoa (=p{{te). Se k{y
- operaattoreilla < ja >, joista < tiedoston nimen
- edess{ aiheuttaa sy|t|n kyseisest{ tiedostosta ja >
- tulostuksen tiedostoon. Esimerkiksi kun komento:
- cat file
- -3-
- TKK/TeKoLa UNIX-k{ytt|j{rjestelm{
- aiheuttaa tiedoston file tulostuksen p{{tteelle,
- niin komento:
- cat file1 >file2
- aiheuttaa tiedoston file1 tulostuksen tiedostoon
- file2. Lis{ksi voidaan tiedoston loppuun liitt{{
- tulostusta operaattorilla >>, t{ll|in siis tiedos-
- tossa aiemmin ollut tieto ei tuhoudu.
- Shellin er{s erikoisuus ovat ns. putket, joita
- merkit{{n operaattorilla | (pystyviiva). Putki
- poistaa usein v{liaikaistiedostojen tarpeen.
- Esimerkki: ls tulostaa hakemistolistauksen, wc
- laskee tiedostossa olevien rivien ja sanojen m{{r{n,
- rm tuhoaa tiedoston, ja haluamme tiet{{ tiedostojen
- m{{r{n hakemistollamme. Voisimme tehd{ n{in:
- ls >temp
- wc temp
- rm temp
- mutta kauniimmin asia hoidetaan n{in:
- ls | wc
- jolloin ls:n tulostus on wc:n sy|te, eik{ tarvittu
- v{liaikaistiedostoa temp.
- Useille shellin komennoille voi antaa argumentteja,
- jotka tarkemmin m{{rittelev{t suoritettavaa komen-
- toa. Ne ovat yksikirjaimisia ja niit{ edelt{{
- 'miinus' - . Esim.:
- ls -lat
- tulostaa t{ydellisemm{n hakemistolistauksen
- aikaj{rjestyksess{ (l = long, a = all, t = time)
- -4-
- TKK/TeKoLa UNIX-k{ytt|j{rjestelm{
- KOMENTOJA
- Seuraavassa er{it{ useimmin tarvittavia komentoja.
- Kaikista komennoista on t{ydellisempi kuvaus jul-
- kaisussa 'UNIX Programmer's Manual'.
- as (-) (-o objectfile) name ...
- Assembler-k{{nt{j{, josta l|ytyy tarkka kuvaus
- artikkelissa 'UNIX Assembler Reference Manual'.
- cat file ...
- Tulostaa mainitut tiedostot per{kk{in (katenoi).
- cc (-c) (-p) (-f) (-O) (-S) (-P) file ...
- C-kielen k{{nt{j{, josta on olemassa mm. artikkelit
- 'Programming in C - A Tutorial' sek{ 'C Reference
- Manual'.
- chdir directory (TKK-UNIXissa my|s: cd)
- Siirryt{{n toiseen hakemistoon.
- chmod octal file ...
- Muuttaa tiedoston suojauslukua.
- (esim. -rw-rw-rw- annetaan oktaalisena 666
- -rwxr-xr-x annetaan oktaalisena 755)
- cp (-iIvVupn) file1 file2
- cp (-riIvVupn) file ... (directory)
- Kopioi tiedoston file1 sis{ll|n tiedostoon file2,
- tai tiedoston file sis{ll|n tiedostoon
- directory/file.
- date
- Tulostaa p{iv{yksen ja kellonajan.
- db
- 'Debuggeri' assemblerohjelmien virheenselvityst{
- varten.
- diff (-) name1 name2
- Vertaa kahta tiedostoa ja tulostaa rivit, joissa on
- eroja.
- du (-s) (-a) (name ...)
- Tulostaa hakemiston k{ytt{m{n levytilan lohkoissa
- (=512 tavua).
- ed (name)
- Tekstintoimitin, 'editori', josta on kuvaus mm.
- artikkelissa 'A Tutorial Introduction to the UNIX
- Text Editor'.
- -5-
- TKK/TeKoLa UNIX-k{ytt|j{rjestelm{
- kill processid ...
- Tuhoaa prosessin, joka on esim. taustaprosessina
- j{{nyt ikuiseen silmukkaan. Tarvittavan proses-
- sinumeron saa selville ps-komennolla. Tavallisen (=
- ei tausta-) prosessin saa helpoimmin pys{ytetty{
- n{pp{imell{ RUB eli DEL.
- ld (-sulr) (-o outfile) name ...
- Lataaja, jolla useita k{{nnettyj{ objektitiedostoja
- voidaan linkitt{{ ja ladata ajokelpoiseksi tiedos-
- toksi.
- login (username)
- login-komennolla voidaan suoraan vaihtaa
- k{ytt{j{tunnusta ('logaamatta' v{lill{ ulos Ctrl-
- D:ll{).
- ls (-ltasdruifgzL) name ... (TKK-UNIXissa my|s: l)
- Tulostaa hakemistolistauksen.
- mail (-y) (-n) (person ...)
- Lukee tai l{hett{{ postia muille k{ytt{jille.
- mesg (n) (y)
- Kielt{{ tai sallii toisille k{ytt{jille puheyhtey-
- den write-komennolla.
- mkdir dirname ...
- Luo uuden alihakemiston.
- mv (-iIvVupn) file1 file2
- mv (-riIvVupn) file ... (directory)
- Antaa tiedostolle file1 uuden nimen file2, tai
- tiedostolle file nimen directory/file.
- nroff file ...
- Tekstinmuotoiluohjelma, josta on lis{tietoa ar-
- tikkelissa 'NROFF User's Manual'. Kts. my|s roff.
- opr file &
- Rivikirjoitintulostus DECsystem-20:n rivikirjoit-
- timelle (Tulostuksen k{ytt{j{tunnus on TKO.UNIX).
- passwd name password
- Asettaa ja muuttaa salasanaksi k{ytt{j{lle name
- sanan password.
- pr (-h header) name ...
- Tulostaa tiedoston siten, ett{ jokaisen sivun alus-
- sa on p{iv{ys ja tiedostonimi sek{ mahdollinen ot-
- sikko header.
- ps (alxk) (namelist)
- Tulostaa tietoa k{ynniss{ olevista prosesseista.
- -6-
- TKK/TeKoLa UNIX-k{ytt|j{rjestelm{
- pwd
- Kertoo hakemistonimen, jossa parhaillaan
- ty|skennell{{n.
- rm (-iIvVfdr) name ...
- Tuhoaa (lopullisesti) tiedostoja.
- rmdir directory ...
- Tuhoaa hakemistoja, joiden tulee olla tyhji{.
- roff file ...
- Tekstinmuotoiluohjelma, joka on kehittym{tt|m{mpi
- kuin nroff, mutta my|s helpompi k{ytt{{.
- sh (-t) (-c) (name (arg1 ...(arg9)))
- Komentotulkki shell, joka on my|s ohjelmoitavissa
- (if, goto, echo, exit, shift, sleep).
- size (object ...)
- Tulostaa objekti-tyyppisen tiedoston text-, data-
- ja bss-sektioiden koot tavuissa.
- sleep time
- Suoritus odottaa time sekuntia
- (Esim. (sleep 120; ld file1 file2)& ).
- stty (option ...)
- Tulostaa tai asettaa p{{tteen moodin.
- tty
- Tulostaa k{ytt{j{n p{{telinjan numeron
- wc (name ...)
- Laskee tiedostossa olevien rivien ja sanojen
- lukum{{r{n.
- view (-oa) (-screenlength) (-wscreenwidth) (file ...)
- N{ytt|p{{tetulostus kuvaruudullinen kerrallaan.
- Tulostus jatkuu RETURN-n{pp{imell{.
- who (am i)
- Kertoo UNIXin t{m{nhetkiset k{ytt{j{t
- write user (ttyno)
- Muodostaa yksisuuntaisen puheyhteyden k{ytt{j{{n
- user. Jotta yhteys olisi kaksisuuntainen, tulee
- my|s vastaanottajan antaa write-komento.
- -7-
- .pi /usr/bin/col
- .TM 1982-9x9 99999 99999-11
- .TL
- TKK/TeKoLa - UNIX-k{ytt|j{rjestelm{
- .AU
- Kalle Hukkinen
- .AI
- Helsingin teknillinen korkeakoulu
- .OK
- K{ytt|j{rjestelm{t
- UNIX
- .AB
- T{m{ paperi on UNIX-k{ytt|j{rjestelm{n
- esittely aloitteleville j{rjestelm{{n tutustujille.
- .AE
- .CS 10 2 12 5 6 7
- .2C
- .PP
- UNIXIN K[YT\\N ALKEET
- Johdanto
- T{m{n paperin tarkoitus on olla ensimm{inen johdatus
- TKK/TeKoLan SM-4 -tietokoneessa k{ytett{v{n UNIX-k{ytt|j{restelm{n
- ominaisuuksiin.
- T{ss{ esitet{{n erityisesti paikallisen TKK UNIXin erityispiirteit{
- sek{ k{ytt|{ korkeakoulun datavaihteen kautta.
- T{ydent{vi{ esityksi{ ovat Bell Laboratorion toimittamat
- artikkelit 'UNIX for Beginners', joka on paljolti t{m{n esityksen
- l{hde ja siis p{{llekk{inen, sek{ 'A Tutorial Introduction
- to the UNIX Text Editor' ja 'Programming in C - A Tutorial'.
- .PP
- Login
- Datavaihde tunnistaa ison N-kirjaimen UNIX-kutsuksi ja
- kytkee yhden SM-4 tietokoneeseen menevist{ kahdeksasta
- datavaihdelinjasta p{{tteeseen.
- UNIX vastaa kirjoittamalla:
- .nf
- login:
- .fi
- johon vastataan omalla k{ytt{j{tunnuksella. Jos k{ytt{j{
- on m{{ritellyt itselleen salasanan (mik{ on toivottavaa),
- kysyy UNIX sen kirjoittamalla:
- .nf
- password:
- .fi
- Jos salasana oli oikea, tulostaa UNIX jonkin systeemitiedoituksen
- sek{ promptaa prosenttimerkill{ % tiedoksi siit{, ett{ j{rjestelm{
- on valmis vastaanottamaan komentoja.
- .PP
- Salasana
- Salasanan voi itselleen m{{ritell{ komennolla:
- % passwd k{ytt{j{tunnus salasana
- Samalla komennolla sit{ voi my|s muuttaa.
- .pa
- .PP
- Logout
- P{{teistunnon lopetus tapahtuu yksinkertaisesti
- Ctrl-D merkill{, jolloin systeemi kirjoittaa:
- logged out
- .PP
- P{{tenopeus
- Jos p{{tteess{ on nopeus 2400, voidaan loggattaessa sis{{n
- muuttaa k{tev{sti nopeutta. Kun shift-N:n j{lkeen
- tulostuu 'login:', vaihdetaan heti p{{tteen nopeus 2400:an ja
- sen j{lkeen painetaan BREAK-n{pp{int{.
- T{ll|in 'login:' tulostuu uudelleen ja voidaan kirjoittaa
- k{ytt{j{tunnus.
- Muuksi nopeudeksi vaihtaminen k{y stty-komennolla.
- .PP
- Erikoismerkit
- UNIX k{ytt{{ hieman erikoisia merkkej{ sy|tteen korjailumerkkein{.
- Edellisen kirjoitetun merkin pyyhkii 'risuaita' \# ja koko
- kirjoitetun rivin tuhoaa 'miumau' @. Jos n{it{ merkkej{ haluaa
- kirjoittaa tekstin sekaan (esim. editorilla), on niit{ edelt{v{n
- merkin oltava 'backslash' \\, siis \\# tai \\@.
- Suoritettavan ohjelman keskeytt{{ RUB eli DEL n{pp{in,
- siis ei Break. BREAK:n painaminen ohjelman suorituksen
- aikana aiheuttaa sen, ett{ suoritus jatkuu tausta-ajona
- ja itse p{{st{{n UNIXin komentotasolle.
- K{yt|ss{ olevassa TKK-UNIXissa ovat k{ytett{viss{ my|s
- DECist{ tutut Ctrl-S ja Ctrl-Q tulostuksen tilap{ist{
- pys{ytyst{ varten, sek{ Ctrl-R kirjoitetun (ja mahdollisesti
- korjaillun) komentorivin uudelleentulostusta varten.
- Edellisen komennon voi toista kirjoittamalla
- \&'miinus'-merkin: -<CR>
- .PP
- Komento
- Komennot UNIXille annetaan promptin % per{{n ja
- p{{tet{{n RETURN tai LINEFEED n{pp{imell{.
- UNIXille voidaan kirjoittaa seuraavia komentoja my|s
- edellisen komennon suorituksen aikana (kuten DECille),
- mutta ero DECiin verrattuna on se, ett{ UNIX
- kaiuttaa kirjaimet v{litt|m{sti.
- UNIX-komennon tulkitsee ohjelma nimelt{ shell,
- ja siirt{{ suorituksen komennon toteuttavalle ohjelmalle.
- UNIXin k{ytt|j{rjestelm{komennot ovat siis tavallisia
- suoritettavia ohjelmia.
- .PP
- Tiedostoj{rjestelm{
- UNIXin tiedostoj{rjestelm{ on puhtaan hierarkinen.
- Sen juuri on hakemisto nimelt{ root, joka jakautuu
- tiedostoiksi ja hakemistoiksi. Kukin hakemisto voi
- edelleen sis{lt{{ tiedostoja ja alihakemistoja, jne.
- Ainoa ero tiedostojen ja hakemistojen v{lill{ on se,
- ett{ hakemistoa voi muuttaa vain systeemi.
- Tiedostoilla ei ole mit{{n typpi{ tai sis{ist{ rakennetta,
- ne ovat yksinkertaisesti tavujonoja.
- Kaikkia tiedostoja, ohjelmia ja I/O-laitteita k{sitell{{n
- homogeenisesti, siis laitteelle tulostetaan kuten tiedostoon.
- Omassa hakemistossa (tarkemmin siin{ hakemistossa, jossa
- parhaillaan ty|skentelee) voi tiedostoon viitata suoraan
- tiedostonimell{. T{ydellisen tiedostonimen muodostaa kuitenkin
- tiedostopolku l{htien juuresta. Juureen (root) voi viitata
- symbolilla / , ja siit{ edelleen esim. k{ytt{j{ virtasen
- tiedostoon zap voi viitata polulla /usr/virtanen/zap.
- zap kuuluu siis hakemistoon /usr/virtanen, joka puolestaan
- on hakemiston /usr alihakemisto.
- /usr on suoraan juurihakemiston / (=root) alihakemisto.
- Jos k{ytt{j{ virtasella on alihakemisto, jonka t{ydellinen
- (polku)nimi on /usr/virtanen/subdir, ja siell{ tiedosto
- data, voi h{n ty|skennelless{{n hakemistossa /usr/virtanen
- viitata kyseiseen tiedostoon nimell{ subdir/data.
- Puuhierarkiassa alasp{in viitattaessa
- ei siis tarvitse k{ytt{{ koko polunnime{
- (mutta nime{ ei my|sk{{n t{ll|in pid{ aloittaa juuren symbolilla / )
- .PP
- Shell
- Shell on UNIXin komentotulkki. Se on itsen{inen ohjelma (ei siis
- osa k{ytt|j{rjestelm{{), joka tulkitsee k{ytt|j{rjestelm{lle
- annetut komennot ja luo niiden mukaan komennon suorittavat
- prosessit. Jos halutaan suorittaa komento tai ohjelma
- taustaprosessina siten, ett{ ei odoteta ohjelman suorituksen
- p{{ttymist{ ennenkuin palataan shellin komentotasolle,
- voidaan komento p{{tt{{ merkkiin &. T{ll|in voidaan
- v{litt|m{sti jatkaa p{{tety|skentely{. Jos taustalla ajettavassa
- ohjelmassa on tulostuksia, ne ohjautuvat kuitenkin normaalisti
- p{{tteelle.
- Shelliss{ on mahdollisuus muuttaa ohjelman sy|t|n ja tulostuksen
- oletustiedostoa (=p{{te). Se k{y operaattoreilla < ja >,
- joista < tiedoston nimen edess{ aiheuttaa sy|t|n kyseisest{
- tiedostosta ja > tulostuksen tiedostoon.
- Esimerkiksi kun komento:
- .nf
- cat file
- .fi
- aiheuttaa tiedoston file tulostuksen p{{tteelle, niin komento:
- .nf
- cat file1 >file2
- .fi
- aiheuttaa tiedoston file1 tulostuksen tiedostoon file2.
- Lis{ksi voidaan tiedoston loppuun liitt{{ tulostusta
- operaattorilla >>, t{ll|in siis tiedostossa aiemmin
- ollut tieto ei tuhoudu.
- Shellin er{s erikoisuus ovat ns. putket, joita merkit{{n
- operaattorilla | (pystyviiva).
- Putki poistaa usein v{liaikaistiedostojen tarpeen.
- Esimerkki:
- ls tulostaa hakemistolistauksen,
- wc laskee tiedostossa olevien rivien ja sanojen m{{r{n,
- rm tuhoaa tiedoston,
- ja haluamme tiet{{ tiedostojen m{{r{n hakemistollamme.
- Voisimme tehd{ n{in:
- .nf
- ls >temp
- wc temp
- rm temp
- .fi
- mutta kauniimmin asia hoidetaan n{in:
- .nf
- ls | wc
- .fi
- jolloin ls:n tulostus on wc:n sy|te,
- eik{ tarvittu v{liaikaistiedostoa temp.
- Useille shellin komennoille voi antaa argumentteja,
- jotka tarkemmin m{{rittelev{t suoritettavaa komentoa.
- Ne ovat yksikirjaimisia ja niit{ edelt{{ 'miinus' - .
- Esim.:
- .nf
- ls -lat
- .fi
- tulostaa t{ydellisemm{n hakemistolistauksen aikaj{rjestyksess{
- (l = long, a = all, t = time)
- .PP
- KOMENTOJA
- Seuraavassa er{it{ useimmin tarvittavia komentoja.
- Kaikista komennoista on t{ydellisempi kuvaus julkaisussa
- \&'UNIX Programmer's Manual'.
- .PP
- as (-) (-o objectfile) name ...
- Assembler-k{{nt{j{, josta l|ytyy tarkka kuvaus artikkelissa
- \&'UNIX Assembler Reference Manual'.
- .PP
- cat file ...
- Tulostaa mainitut tiedostot per{kk{in (katenoi).
- .PP
- cc (-c) (-p) (-f) (-O) (-S) (-P) file ...
- C-kielen k{{nt{j{, josta on olemassa mm. artikkelit
- \&'Programming in C - A Tutorial' sek{ 'C Reference Manual'.
- .PP
- chdir directory (TKK-UNIXissa my|s: cd)
- Siirryt{{n toiseen hakemistoon.
- .PP
- chmod octal file ...
- Muuttaa tiedoston suojauslukua.
- (esim. -rw-rw-rw- annetaan oktaalisena 666
- -rwxr-xr-x annetaan oktaalisena 755)
- .PP
- cp (-iIvVupn) file1 file2
- .PP
- cp (-riIvVupn) file ... (directory)
- Kopioi tiedoston file1 sis{ll|n tiedostoon file2,
- tai tiedoston file sis{ll|n tiedostoon directory/file.
- .PP
- date
- Tulostaa p{iv{yksen ja kellonajan.
- .PP
- db
- 'Debuggeri' assemblerohjelmien virheenselvityst{ varten.
- .PP
- diff (-) name1 name2
- Vertaa kahta tiedostoa ja tulostaa rivit, joissa on eroja.
- .PP
- du (-s) (-a) (name ...)
- Tulostaa hakemiston k{ytt{m{n levytilan lohkoissa (=512 tavua).
- .PP
- ed (name)
- Tekstintoimitin, 'editori', josta on kuvaus mm. artikkelissa
- \&'A Tutorial Introduction to the UNIX Text Editor'.
- .PP
- kill processid ...
- Tuhoaa prosessin, joka on esim. taustaprosessina
- j{{nyt ikuiseen silmukkaan. Tarvittavan prosessinumeron
- saa selville ps-komennolla.
- Tavallisen (= ei tausta-) prosessin saa helpoimmin
- pys{ytetty{ n{pp{imell{ RUB eli DEL.
- .PP
- ld (-sulr) (-o outfile) name ...
- Lataaja, jolla useita k{{nnettyj{ objektitiedostoja
- voidaan linkitt{{ ja ladata ajokelpoiseksi tiedostoksi.
- .PP
- login (username)
- login-komennolla voidaan suoraan vaihtaa k{ytt{j{tunnusta
- ('logaamatta' v{lill{ ulos Ctrl-D:ll{).
- .PP
- ls (-ltasdruifgzL) name ... (TKK-UNIXissa my|s: l)
- Tulostaa hakemistolistauksen.
- .PP
- mail (-y) (-n) (person ...)
- Lukee tai l{hett{{ postia muille k{ytt{jille.
- .PP
- mesg (n) (y)
- Kielt{{ tai sallii toisille k{ytt{jille puheyhteyden
- write-komennolla.
- .PP
- mkdir dirname ...
- Luo uuden alihakemiston.
- .PP
- mv (-iIvVupn) file1 file2
- .PP
- mv (-riIvVupn) file ... (directory)
- Antaa tiedostolle file1 uuden nimen file2,
- tai tiedostolle file nimen directory/file.
- .PP
- nroff file ...
- Tekstinmuotoiluohjelma, josta on lis{tietoa artikkelissa
- \&'NROFF User's Manual'.
- Kts. my|s roff.
- .PP
- opr file &
- Rivikirjoitintulostus DECsystem-20:n rivikirjoittimelle
- (Tulostuksen k{ytt{j{tunnus on TKO.UNIX).
- .PP
- passwd name password
- Asettaa ja muuttaa salasanaksi k{ytt{j{lle name
- sanan password.
- .PP
- pr (-h header) name ...
- Tulostaa tiedoston siten, ett{ jokaisen sivun alussa
- on p{iv{ys ja tiedostonimi sek{ mahdollinen otsikko header.
- .PP
- ps (alxk) (namelist)
- Tulostaa tietoa k{ynniss{ olevista prosesseista.
- .PP
- pwd
- Kertoo hakemistonimen, jossa parhaillaan ty|skennell{{n.
- .PP
- rm (-iIvVfdr) name ...
- Tuhoaa (lopullisesti) tiedostoja.
- .PP
- rmdir directory ...
- Tuhoaa hakemistoja, joiden tulee olla tyhji{.
- .PP
- roff file ...
- Tekstinmuotoiluohjelma, joka on kehittym{tt|m{mpi kuin
- nroff, mutta my|s helpompi k{ytt{{.
- .PP
- sh (-t) (-c) (name (arg1 ...(arg9)))
- Komentotulkki shell, joka on my|s ohjelmoitavissa
- (if, goto, echo, exit, shift, sleep).
- .PP
- size (object ...)
- Tulostaa objekti-tyyppisen tiedoston text-, data-
- ja bss-sektioiden koot tavuissa.
- .PP
- sleep time
- Suoritus odottaa time sekuntia
- (Esim. (sleep 120; ld file1 file2)& ).
- .PP
- stty (option ...)
- Tulostaa tai asettaa p{{tteen moodin.
- .PP
- tty
- Tulostaa k{ytt{j{n p{{telinjan numeron
- .PP
- wc (name ...)
- Laskee tiedostossa olevien rivien ja sanojen lukum{{r{n.
- .PP
- view (-oa) (-screenlength) (-wscreenwidth) (file ...)
- N{ytt|p{{tetulostus kuvaruudullinen kerrallaan.
- Tulostus jatkuu RETURN-n{pp{imell{.
- .PP
- who (am i)
- Kertoo UNIXin t{m{nhetkiset k{ytt{j{t
- .PP
- write user (ttyno)
- Muodostaa yksisuuntaisen puheyhteyden k{ytt{j{{n user.
- Jotta yhteys olisi kaksisuuntainen, tulee
- my|s vastaanottajan antaa write-komento.
- .pl 66
- .ll 70
- .he 'TKK/TeKoLa''UNIX-k{ytt|j{rjestelm{'
- .fo ''-%-''
- .m2 0
- Kalle Hukkinen 18.12.1981
- .br
- .m2 2
- .in 18
- .bl 4
- .ti 0
- UNIXIN K[YT\\N ALKEET
- .ti 0
- Johdanto
- T{m{n paperin tarkoitus on olla ensimm{inen johdatus
- TKK/TeKoLan SM-4 -tietokoneessa k{ytett{v{n UNIX-k{ytt|j{restelm{n
- ominaisuuksiin.
- T{ss{ esitet{{n erityisesti paikallisen TKK UNIXin erityispiirteit{
- sek{ k{ytt|{ korkeakoulun datavaihteen kautta.
- T{ydent{vi{ esityksi{ ovat Bell Laboratorion toimittamat
- artikkelit 'UNIX for Beginners', joka on paljolti t{m{n esityksen
- l{hde ja siis p{{llekk{inen, sek{ 'A Tutorial Introduction
- to the UNIX Text Editor' ja 'Programming in C - A Tutorial'.
- .ti 0
- Login
- Datavaihde tunnistaa ison N-kirjaimen UNIX-kutsuksi ja
- kytkee yhden SM-4 tietokoneeseen menevist{ kahdeksasta
- datavaihdelinjasta p{{tteeseen.
- UNIX vastaa kirjoittamalla:
- login:
- johon vastataan omalla k{ytt{j{tunnuksella. Jos k{ytt{j{
- on m{{ritellyt itselleen salasanan (mik{ on toivottavaa),
- kysyy UNIX sen kirjoittamalla:
- password:
- Jos salasana oli oikea, tulostaa UNIX jonkin systeemitiedoituksen
- sek{ promptaa prosenttimerkill{ % tiedoksi siit{, ett{ j{rjestelm{
- on valmis vastaanottamaan komentoja.
- .ti 0
- Salasana
- Salasanan voi itselleen m{{ritell{ komennolla:
- % passwd k{ytt{j{tunnus salasana
- Samalla komennolla sit{ voi my|s muuttaa.
- .pa
- .ti 0
- Logout
- P{{teistunnon lopetus tapahtuu yksinkertaisesti
- Ctrl-D merkill{, jolloin systeemi kirjoittaa:
- logged out
- .ti0
- P{{tenopeus
- Jos p{{tteess{ on nopeus 2400, voidaan loggattaessa sis{{n
- muuttaa k{tev{sti nopeutta. Kun shift-N:n j{lkeen
- tulostuu 'login:', vaihdetaan heti p{{tteen nopeus 2400:an ja
- sen j{lkeen painetaan BREAK-n{pp{int{.
- T{ll|in 'login:' tulostuu uudelleen ja voidaan kirjoittaa
- k{ytt{j{tunnus.
- Muuksi nopeudeksi vaihtaminen k{y stty-komennolla.
- .ti 0
- Erikoismerkit
- UNIX k{ytt{{ hieman erikoisia merkkej{ sy|tteen korjailumerkkein{.
- Edellisen kirjoitetun merkin pyyhkii 'risuaita' \# ja koko
- kirjoitetun rivin tuhoaa 'miumau' @. Jos n{it{ merkkej{ haluaa
- kirjoittaa tekstin sekaan (esim. editorilla), on niit{ edelt{v{n
- merkin oltava 'backslash' \\, siis \\# tai \\@.
- Suoritettavan ohjelman keskeytt{{ RUB eli DEL n{pp{in,
- siis ei Break. BREAK:n painaminen ohjelman suorituksen
- aikana aiheuttaa sen, ett{ suoritus jatkuu tausta-ajona
- ja itse p{{st{{n UNIXin komentotasolle.
- K{yt|ss{ olevassa TKK-UNIXissa ovat k{ytett{viss{ my|s
- DECist{ tutut Ctrl-S ja Ctrl-Q tulostuksen tilap{ist{
- pys{ytyst{ varten, sek{ Ctrl-R kirjoitetun (ja mahdollisesti
- korjaillun) komentorivin uudelleentulostusta varten.
- Edellisen komennon voi toista kirjoittamalla
- 'miinus'-merkin: -<CR>
- .ti 0
- Komento
- Komennot UNIXille annetaan promptin % per{{n ja
- p{{tet{{n RETURN tai LINEFEED n{pp{imell{.
- UNIXille voidaan kirjoittaa seuraavia komentoja my|s
- edellisen komennon suorituksen aikana (kuten DECille),
- mutta ero DECiin verrattuna on se, ett{ UNIX
- kaiuttaa kirjaimet v{litt|m{sti.
- UNIX-komennon tulkitsee ohjelma nimelt{ shell,
- ja siirt{{ suorituksen komennon toteuttavalle ohjelmalle.
- UNIXin k{ytt|j{rjestelm{komennot ovat siis tavallisia
- suoritettavia ohjelmia.
- .ti 0
- Tiedostoj{rjestelm{
- UNIXin tiedostoj{rjestelm{ on puhtaan hierarkinen.
- Sen juuri on hakemisto nimelt{ root, joka jakautuu
- tiedostoiksi ja hakemistoiksi. Kukin hakemisto voi
- edelleen sis{lt{{ tiedostoja ja alihakemistoja, jne.
- Ainoa ero tiedostojen ja hakemistojen v{lill{ on se,
- ett{ hakemistoa voi muuttaa vain systeemi.
- Tiedostoilla ei ole mit{{n typpi{ tai sis{ist{ rakennetta,
- ne ovat yksinkertaisesti tavujonoja.
- Kaikkia tiedostoja, ohjelmia ja I/O-laitteita k{sitell{{n
- homogeenisesti, siis laitteelle tulostetaan kuten tiedostoon.
- Omassa hakemistossa (tarkemmin siin{ hakemistossa, jossa
- parhaillaan ty|skentelee) voi tiedostoon viitata suoraan
- tiedostonimell{. T{ydellisen tiedostonimen muodostaa kuitenkin
- tiedostopolku l{htien juuresta. Juureen (root) voi viitata
- symbolilla / , ja siit{ edelleen esim. k{ytt{j{ virtasen
- tiedostoon zap voi viitata polulla /usr/virtanen/zap.
- zap kuuluu siis hakemistoon /usr/virtanen, joka puolestaan
- on hakemiston /usr alihakemisto.
- /usr on suoraan juurihakemiston / (=root) alihakemisto.
- Jos k{ytt{j{ virtasella on alihakemisto, jonka t{ydellinen
- (polku)nimi on /usr/virtanen/subdir, ja siell{ tiedosto
- data, voi h{n ty|skennelless{{n hakemistossa /usr/virtanen
- viitata kyseiseen tiedostoon nimell{ subdir/data.
- Puuhierarkiassa alasp{in viitattaessa
- ei siis tarvitse k{ytt{{ koko polunnime{
- (mutta nime{ ei my|sk{{n t{ll|in pid{ aloittaa juuren symbolilla / )
- .ti 0
- Shell
- Shell on UNIXin komentotulkki. Se on itsen{inen ohjelma (ei siis
- osa k{ytt|j{rjestelm{{), joka tulkitsee k{ytt|j{rjestelm{lle
- annetut komennot ja luo niiden mukaan komennon suorittavat
- prosessit. Jos halutaan suorittaa komento tai ohjelma
- taustaprosessina siten, ett{ ei odoteta ohjelman suorituksen
- p{{ttymist{ ennenkuin palataan shellin komentotasolle,
- voidaan komento p{{tt{{ merkkiin &. T{ll|in voidaan
- v{litt|m{sti jatkaa p{{tety|skentely{. Jos taustalla ajettavassa
- ohjelmassa on tulostuksia, ne ohjautuvat kuitenkin normaalisti
- p{{tteelle.
- Shelliss{ on mahdollisuus muuttaa ohjelman sy|t|n ja tulostuksen
- oletustiedostoa (=p{{te). Se k{y operaattoreilla < ja >,
- joista < tiedoston nimen edess{ aiheuttaa sy|t|n kyseisest{
- tiedostosta ja > tulostuksen tiedostoon.
- Esimerkiksi kun komento:
- cat file
- aiheuttaa tiedoston file tulostuksen p{{tteelle, niin komento:
- cat file1 >file2
- aiheuttaa tiedoston file1 tulostuksen tiedostoon file2.
- Lis{ksi voidaan tiedoston loppuun liitt{{ tulostusta
- operaattorilla >>, t{ll|in siis tiedostossa aiemmin
- ollut tieto ei tuhoudu.
- Shellin er{s erikoisuus ovat ns. putket, joita merkit{{n
- operaattorilla | (pystyviiva).
- Putki poistaa usein v{liaikaistiedostojen tarpeen.
- Esimerkki:
- ls tulostaa hakemistolistauksen,
- wc laskee tiedostossa olevien rivien ja sanojen m{{r{n,
- rm tuhoaa tiedoston,
- ja haluamme tiet{{ tiedostojen m{{r{n hakemistollamme.
- Voisimme tehd{ n{in:
- ls >temp
- wc temp
- rm temp
- mutta kauniimmin asia hoidetaan n{in:
- ls | wc
- jolloin ls:n tulostus on wc:n sy|te,
- eik{ tarvittu v{liaikaistiedostoa temp.
- Useille shellin komennoille voi antaa argumentteja,
- jotka tarkemmin m{{rittelev{t suoritettavaa komentoa.
- Ne ovat yksikirjaimisia ja niit{ edelt{{ 'miinus' - .
- Esim.:
- ls -lat
- tulostaa t{ydellisemm{n hakemistolistauksen aikaj{rjestyksess{
- (l = long, a = all, t = time)
- .pa
- .ti 0
- KOMENTOJA
- Seuraavassa er{it{ useimmin tarvittavia komentoja.
- Kaikista komennoista on t{ydellisempi kuvaus julkaisussa
- 'UNIX Programmer's Manual'.
- .ti 0
- as (-) (-o objectfile) name ...
- Assembler-k{{nt{j{, josta l|ytyy tarkka kuvaus artikkelissa
- 'UNIX Assembler Reference Manual'.
- .ti 0
- cat file ...
- Tulostaa mainitut tiedostot per{kk{in (katenoi).
- .ti 0
- cc (-c) (-p) (-f) (-O) (-S) (-P) file ...
- C-kielen k{{nt{j{, josta on olemassa mm. artikkelit
- 'Programming in C - A Tutorial' sek{ 'C Reference Manual'.
- .ti 0
- chdir directory (TKK-UNIXissa my|s: cd)
- Siirryt{{n toiseen hakemistoon.
- .ti 0
- chmod octal file ...
- Muuttaa tiedoston suojauslukua.
- (esim. -rw-rw-rw- annetaan oktaalisena 666
- -rwxr-xr-x annetaan oktaalisena 755)
- .ti 0
- cp (-iIvVupn) file1 file2
- .ti 0
- cp (-riIvVupn) file ... (directory)
- Kopioi tiedoston file1 sis{ll|n tiedostoon file2,
- tai tiedoston file sis{ll|n tiedostoon directory/file.
- .ti 0
- date
- Tulostaa p{iv{yksen ja kellonajan.
- .ti 0
- db
- 'Debuggeri' assemblerohjelmien virheenselvityst{ varten.
- .ti 0
- diff (-) name1 name2
- Vertaa kahta tiedostoa ja tulostaa rivit, joissa on eroja.
- .ti 0
- du (-s) (-a) (name ...)
- Tulostaa hakemiston k{ytt{m{n levytilan lohkoissa (=512 tavua).
- .ti 0
- ed (name)
- Tekstintoimitin, 'editori', josta on kuvaus mm. artikkelissa
- 'A Tutorial Introduction to the UNIX Text Editor'.
- .pa
- .ti 0
- kill processid ...
- Tuhoaa prosessin, joka on esim. taustaprosessina
- j{{nyt ikuiseen silmukkaan. Tarvittavan prosessinumeron
- saa selville ps-komennolla.
- Tavallisen (= ei tausta-) prosessin saa helpoimmin
- pys{ytetty{ n{pp{imell{ RUB eli DEL.
- .ti 0
- ld (-sulr) (-o outfile) name ...
- Lataaja, jolla useita k{{nnettyj{ objektitiedostoja
- voidaan linkitt{{ ja ladata ajokelpoiseksi tiedostoksi.
- .ti 0
- login (username)
- login-komennolla voidaan suoraan vaihtaa k{ytt{j{tunnusta
- ('logaamatta' v{lill{ ulos Ctrl-D:ll{).
- .ti 0
- ls (-ltasdruifgzL) name ... (TKK-UNIXissa my|s: l)
- Tulostaa hakemistolistauksen.
- .ti 0
- mail (-y) (-n) (person ...)
- Lukee tai l{hett{{ postia muille k{ytt{jille.
- .ti 0
- mesg (n) (y)
- Kielt{{ tai sallii toisille k{ytt{jille puheyhteyden
- write-komennolla.
- .ti 0
- mkdir dirname ...
- Luo uuden alihakemiston.
- .ti 0
- mv (-iIvVupn) file1 file2
- .ti 0
- mv (-riIvVupn) file ... (directory)
- Antaa tiedostolle file1 uuden nimen file2,
- tai tiedostolle file nimen directory/file.
- .ti 0
- nroff file ...
- Tekstinmuotoiluohjelma, josta on lis{tietoa artikkelissa
- 'NROFF User's Manual'.
- Kts. my|s roff.
- .ti 0
- opr file &
- Rivikirjoitintulostus DECsystem-20:n rivikirjoittimelle
- (Tulostuksen k{ytt{j{tunnus on TKO.UNIX).
- .ti 0
- passwd name password
- Asettaa ja muuttaa salasanaksi k{ytt{j{lle name
- sanan password.
- .ti 0
- pr (-h header) name ...
- Tulostaa tiedoston siten, ett{ jokaisen sivun alussa
- on p{iv{ys ja tiedostonimi sek{ mahdollinen otsikko header.
- .ti 0
- ps (alxk) (namelist)
- Tulostaa tietoa k{ynniss{ olevista prosesseista.
- .pa
- .ti 0
- pwd
- Kertoo hakemistonimen, jossa parhaillaan ty|skennell{{n.
- .ti 0
- rm (-iIvVfdr) name ...
- Tuhoaa (lopullisesti) tiedostoja.
- .ti 0
- rmdir directory ...
- Tuhoaa hakemistoja, joiden tulee olla tyhji{.
- .ti 0
- roff file ...
- Tekstinmuotoiluohjelma, joka on kehittym{tt|m{mpi kuin
- nroff, mutta my|s helpompi k{ytt{{.
- .ti 0
- sh (-t) (-c) (name (arg1 ...(arg9)))
- Komentotulkki shell, joka on my|s ohjelmoitavissa
- (if, goto, echo, exit, shift, sleep).
- .ti 0
- size (object ...)
- Tulostaa objekti-tyyppisen tiedoston text-, data-
- ja bss-sektioiden koot tavuissa.
- .ti 0
- sleep time
- Suoritus odottaa time sekuntia
- (Esim. (sleep 120; ld file1 file2)& ).
- .ti 0
- stty (option ...)
- Tulostaa tai asettaa p{{tteen moodin.
- .ti 0
- tty
- Tulostaa k{ytt{j{n p{{telinjan numeron
- .ti 0
- wc (name ...)
- Laskee tiedostossa olevien rivien ja sanojen lukum{{r{n.
- .ti 0
- view (-oa) (-screenlength) (-wscreenwidth) (file ...)
- N{ytt|p{{tetulostus kuvaruudullinen kerrallaan.
- Tulostus jatkuu RETURN-n{pp{imell{.
- .ti 0
- who (am i)
- Kertoo UNIXin t{m{nhetkiset k{ytt{j{t
- .ti 0
- write user (ttyno)
- Muodostaa yksisuuntaisen puheyhteyden k{ytt{j{{n user.
- Jotta yhteys olisi kaksisuuntainen, tulee
- my|s vastaanottajan antaa write-komento.
- .pl 66
- .ll 70
- .he 'TKK/TeKoLa''UNIX-k{ytt|j{rjestelm{'
- .fo ''-%-''
- .m2 0
- Kalle Hukkinen 25.03.1982
- .br
- .m2 2
- .in 18
- .bl 4
- .ti 0
- YLL[PITO
- .ti 0
- Johdanto
- T{ss{ kuvataan yll{pitoon liittyvi{ yleisi{ toimenpiteit{
- sek{ tiedostoja ja ohjelmia, jotka liittyv{t yll{pitoon.
- Useimmat n{ist{ tiedostoista sijaitsevat hakemistossa /etc.
- .ti0
- Varmuuskopiot
- Varmuuskopiointeja varten on joukko komentotiedostoja,
- jotka k{ytt{v{t hyv{kseen yleist{ kopiointi- ja konversio-ohjelmaa
- 'dd'.
- Yhden levyn koko on 4800 lohkoa, joten k{ytt{j{levy{
- kopioitaessa siirret{{n koko levy.
- Systeemilevy on konfiguroitu 4000 lohkon suuruiseksi,
- joten swap-alueen koko on 800 lohkoa.
- Systeemilevylt{ ei kopioda swap-aluetta.
- /etc/b4032tape systeemilevy -> nauha
- /etc/b4800tape k{ytt{j{levy -> nauha
- /etc/backup systeemilevy -> levy
- Kaikissa edellisiss{ on kerrallaan siirrett{v{n
- yksik|n koko optimoitu siten, ett{ se on tasaluku
- levyuria.
- /mnt/doc (208)
- ikissa edellisiss{ on kerrallaan siirrett{v{n
- yksik|n koko optimoitu siten, ett{ se on tasaluku
- le
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement