Kovalevyn käytöstä Gulam-komentotulkista käsin

Aikaisemmin ilmestyneissä artikkeleissa (1/88 ja 3/88) kerrottiin 
                     
   komentotulkeista yleensä sekä Gulamin komentotiedostoista. Nyt kes-
                     
   kitytään niihin Gulamin piirteisiin, jotka ovat erityisen olennaisia
                     
   kovalevyn käyttäjän kannalta. Kaupalliset UNIX-vaikutteiset komento-
                     
   tulkit kuten ComMedian CRAFT Shell, Beckemeyerin C-Shell ja Mark 
                     
   Williams C:n msh ovat myös käteviä työkaluja. MS-DOS -tyylinen vaih-
                     
   toehto on shareware-ohjelma Pcommand. Gulam ja Pcommand löytynevät
                     
   PD-kirjastosta ja klubin BBS:stä. 
                     
                     
                     
   Desktopissa oltaessa ikkunan otsikosta näkyy, missä levyn kansiossa
                     
   ikkunassa olevat tiedostot sijaitsevat. Otsikossa olevaa merkkijonoa
                     
   kutsutaan poluksi. Esim. polku 'C:\LEHTI\289\STOORIT' koostuu osista
                     
  
                     
   C:      loogisen levyaseman nimi
                     
   \       loogisen levyaseman juurihakemisto (aina tämän niminen)
                     
   LEHTI   hakemiston (kansion) nimi
                     
   \       erotin kahden sisäkkäisen hakemiston nimen välillä
                     
   289     hakemistossa 'LEHTI' olevan hakemiston nimi
                     
   \       erotin kahden sisäkkäisen hakemiston nimen välillä
                     
   STOORIT hakemistossa '289' olevan hakemiston nimi
                     
                     
                     
   Polku on samanlainen kuin IBM PC-yhteensopivien koneiden MS-DOSissa.
                     
   (UNIXissa levyaseman nimeä ei ole ja kenoviivan tilalla on kauttaviiva). 
                     
   
                     
   Gulamissa on määritelty lisäksi seuraavat erikoishakemistot:
                     
 
                     
     ~   kotihakemisto eli se kansio, mistä Gulam käynnistettiin
                     
     .   'senhetkinen hakemisto'
                     
     ..  'senhetkisen hakemiston' isähakemisto 
                     
                     
                     
     ( 'senhetkinen hakemisto' = hakemisto, johon polussa siihen 
                     
       asti läpikäydyt merkit viittaavat)
                     
                     
                     
   Kelvollisia polkuja ovat siis myös esim.
                     
                     
                     
     ..\..  työhakemiston isoisähakemisto
                     
                     
                     
     ~\..   kotihakemiston isähakemisto
                     
           
                     
   Isoilla ja pienillä kirjaimilla ei ole eroa polkujen nimissä
                     
   ellei polku ole osana komennon nimeä. Gulam ei tunne skandi-
                     
   naavisia merkkejä (åäöÅÄÖ), joita voi kyllä laittaa kansioiden
                     
   ja tiedostojen nimiin Desktopista käsin.
                     
                     
                     
   Gulam osoittaa valmiutensa palvella ns. promptilla eli kehoittimella.
                     
   Oletusarvo on ns. 'alikessun jämät', »». Suositeltavaa on muuttaa
                     
   kehoittimen ulkoasu sellaiseksi että siitä näkyy senhetkinen työhake-
                     
   misto (sama asia kuin aktiivisen ikkunan otsikkona oleva polku).
                     
   Tämä tapahtuu set-komennolla seuraavasti:
                     
                     
                     
     set prompt $cwd>        # $cwd = Current Working Directory
                     
                                      (eräs Gulamin shell-muuttuja)
                     
                     
                     
   Esimerkkimme hakemistossa ollessamme olisi kehoitin tällöin muotoa
                     
                     
                     
     c:\lehti\289\stoorit>
                     
   
                     
   Edellämainittu set-komento kannattaa sijoittaa gulam.g-tiedostoon,
                     
   joka suoritetaan automaattisesti aina kuin Gulam käynnistetään.
                     
   Tiedoston on oltava samassa hakemistossa kuin itse Gulam.prg:nkin.
                     
                     
                     
   Hakemistojen käsittelyyn liittyviä komentoja ovat
                     
                     
                     
     nimi     parametrit  selitys
                     
     ----     ----------  ------- 
                     
                     
                     
     cd       [work]      vaihtaa uudeksi työhakemistoksi 'work'in,
                     
                          oletusarvona kotihakemisto ~
                     
                     
                     
     dirs                 tulostaa hakemistopinon sisällön
                     
                     
                     
     makedir  uusi        tekee uuden hakemiston 'uusi'
                     
                     
                     
     popd                 vaihtaa uudeksi työhakemistoksi pinon päällim- 
                     
                          mäisen hakemiston, joka poistuu myös pinosta 
                     
                     
                     
     pushd    [game]      vaihtaa uudeksi työhakemistoksi 'game'n,
                     
                          vanha työhakemisto laitetaan pinon päällimmäi-
                     
                          seksi. Mikäli parametria ei anneta, vaihtaa
                     
                          pushdir työhakemistoksi pinon päällimmäisen
                     
                          ja pinon päällimmäiseksi hakemistoksi tulee
                     
                          vanha työhakemisto
                     
                     
                     
     pwd                  tulostaa työhakemiston nimen
                     
                     
                     
     rmdir    turha       poistaa hakemiston 'turha'. Sen on oltava 
                     
                          tyhjä, muuten komentoa ei suoriteta.
                     
   
                     
   Hakemistopino on LIFO-periaatteella (Last In, First Out) toimiva
                     
   'hakemistonimivarasto' jonne voi laittaa vanhan työhakemiston nimen
                     
   talteen pushd-komennolla ja vaihtaa samalla vaihtaa työhakemistoa.
                     
   popd palauttaa työhakemistoksi pinoon viimeksi laitetun työhakemis-
                     
   ton. Talletettuja työhakemistoja voi olla pinossa useita. Pinon
                     
   'purkaminen' tapahtuu popd:llä takaperoisessa järjestyksessä, 
                     
   viimeksi laitettu ensin.
                     
                     
                     
   cp-komennon -r -parametrilla voi viitata kätevästi rekursiivisesti
                     
   kaikkiin hakemistoihin ja tiedostoihin, jotka ovat annetun hakemiston
                     
   sisällä, esim.
                     
                     
                     
     cp -r c:\gfaprogs d:\gfaprogs
                     
                     
                     
   kopioi hakemiston gfaprogs sisältöineen C-levyltä D-levylle. cp:llä
                     
   saa kätevästi palautettua Turtlella tehdyn varmuuskopion kovalevylle.
                     
   Jos pitää palauttaa esim. D-partitio levykkeiltä, toistetaan vain
                     
   komentoa
                     
                     
                     
     cp -r +t a:\ d:
                     
                     
                     
   jokaiselle levykkeelle. cp tekee tarvittavat hakemistot, mikäli ne 
                     
   eivät ole jo ennestään olemassa ( +t -optio pitää tiedostojen päivä-
                     
   määrät ennallaan).
                     
                     
                     
   ls -komennon parametri -R aiheuttaa kaikkien annetun hakemiston
                     
   (oletuksena työhakemisto) hakemistojen sisällön rekursiivisen
                     
   listauksen, esim.
                     
                     
                     
     ls -R d:\ >prn:
                     
                     
                     
   listaa kaikkien D-levyn hakemistojen sisällön kirjoittimelle.
                     
                     
                     
   Hakemistoissa liikkuessa on syytä muistaa ns. '40 kansion bugin'
                     
   olemassaolo ja käyttää AUTO-kansiossa FOLDRXXX-apuohjelmaa, missä
                     
   XXX on riittävän suuri.
                     
                     
                     
   Ulkoinen komento on käsky, jota ei ole ohjelmoitu komentotulkin
                     
   sisään. Nämä ovat joko ohjelmatiedostoja tai komentotiedostoja
                     
   ja ne käynnistyvät omalla nimellään. Mahdolliset parametrit kir-
                     
   joitetaan komennon nimen jälkeen, esim.
                     
                     
                     
     arc x chesspics king queen rook bishop knight
                     
                     
                     
   Mikäli halutaan viitata jossain toisessa polussa olevaan tiedostoon,
                     
   tulee ensin kirjoittaa koko polun nimi ja sitten kenoviivalla ero-
                     
   tettuna itse tiedosto, esim. rm c:\datat\tekstit\huuhaa.doc. Tämä
                     
   koskee myös ulkoisia komentoja tiedostoja. Jos halutaan esim. käyn-
                     
   nistää hakemistossa c:\tp oleva ohjelma emacs.tos, tapahtuu se
                     
   komennolla:
                     
                     
                     
     c:\tp\emacs.tos
                     
                     
                     
   Itse asiassa ohjelmia tai komentotiedostoja käynnistettäessä ei 
                     
   .tos-, .ttp-, .prg- tai .g-tarkenninta tarvita. GEM-pohjaisia 
                     
   ohjelmia käytettäessä tulee käyttää gem-etuliitettä. Lisäksi on 
                     
   huomattava, että usein ohjelma vaatii, että .rsc-tiedosto on
                     
   työhakemistossa. Tällöin on syytä siirtyä ohjelman suorituksen
                     
   ajaksi kyseiseen hakemistoon, esim.
                     
                     
                     
     pushd c:\tp ; gem 1st_word ; popd
                     
                     
                     
   Tällaista komentoa varten kannattaa tehdä ns. alias-määrittely
                     
   gulam.g-tiedostoon, esim. määrittelyn
                     
   
                     
     alias ut 'pushd c:/telecomm ; gem uniterm ; popd'
                     
                     
                     
   avulla voi käynnistää UNITERM.PRG:n mistä käsin tahansa komennolla 
                     
   'ut' ja palata pääteohjelmasta takaisin alkuperäiseen työhakemistoon.
                     
 
                     
   Komentojen hakupolku, command search path on komentotulkin käytössä
                     
   keskeinen käsite. Se koostuu yhdestä tai useammasta polusta. Komento-
                     
   jen hakupolun 'varrelta' täytyy löytyä kaikki ne ulkoiset komennot, 
                     
   jotka halutaan käynnistää mistä työhakemistosta tahansa ilman että 
                     
   tarvitsee kirjoittaa koko polun nimeä. Tämä on erittäin olennainen 
                     
   helpotus etenkin kovalevyn käyttäjälle, jonka sovellusohjelmat ovat
                     
   yleensä eri hakemistoissa ja eri partitioilla. Kun hakupolku on ker-
                     
   ran määritelty, riittää, että muistaa komennon nimen. Hakupolun 
                     
   määrittelevä shell-muuttuja path asetetaan set-komennolla, esim.
                     
                     
                     
     set path c:\util,c:\tp,c:\gfa  # pilkku toimii eroittimena
                     
                     
                     
   ja sen arvon voi tulostaa komennolla
                     
                     
                     
     echo $path   # tulostaa vain path-muuttujan arvon
                     
                     
                     
       tai
                     
                     
                     
     set          # tulostaa kaikkien shell-muuttujien arvot
                     
                     
                     
   Gulam tekee käynnistyttyään erityisen taulukon (hash table) kaikista
                     
   ulkoisista komennoista, jotta sen ei tarvitsisi joka kerta ruveta
                     
   etsimään sitä hakemistoa, mistä ko. komento löytyy (homma, jonka 
                     
   MS-DOSin COMMAND.COM joutuu tekemään). Mikäli hakupolussa oleviin
                     
   ulkoisiin komentoihin tulee lisäyksiä tai poistoja, saa Gulamin 
                     
   tekemään hakutaulukon uudelleen komennolla rehash. Gulam suorit-
                     
   taa automaattisen rehashin jos hakupolussa olevia hakemistoja
                     
   lisätään tai poistetaan. Hakupolusta löytyvien ulkoisten komentojen
                     
   nimet tulostuvat Help-näppäimellä saatavan komentoluettelon lopuksi.
                     
   
                     
   On vielä syytä korostaa, että Desktop ja komentotulkki eivät ole
                     
   toisensa poissulkevia vaihtoehtoja kovalevyn käyttäjälle. Desktop
                     
   on intuitiivinen ja helpompi oppia, mutta toistuvat ja suuriin 
                     
   tiedostomääriin kohdistuvat toiminnot hoituvat usein nopeammin
                     
   komentotulkilla. Tunne 'työkalupakkisi' niin osaat valita kuhunkin
                     
   tilanteeseen parhaimmin sopivan välineen.

Takaisin

(C) Marko, Suomen Atari-sivut / ArkiSTo 2003