Tietokone työvälineenä: UNIX-harjoitukset 4

pagerit

Tutkimme tällä kertaa mm. listaa englannin kielen sanoista, joka löytyy tiedostosta /usr/share/dict/words. Mitä eroa näillä on?

grep

Etsi grepillä se englannin kielen sana, johon sisältyy maaginen kirjainyhdistelmä 'erban'. Vinkki: man grep. Hakemistosta /usr/share/dict/words löytyy lista englannin kielen sanoista. Kokeile toki myös mitä grep tekee, jos sille ei anna tiedostoa.

diff

Tutki, miten NetBSD ip-paketin tarkistussumman laskentakoodi in_cksum.c on muuttunut vuosien varrella. Tiedostosta ~pooka/netinet/in_cksum-1993.c lödät version vuodelta 1993, in_cksum-2001.c on vastaavasti nykyaikainen. Huomaa kuinka kätevästi shelli globbaa tiedostot.

Voit myös halutessasi tutkia, miten ip checksum on kehittynyt alkuperäisestä 4.2BSD:ssä olleesta versiosta (in_cksum-4.2BSD.c). Huomaa kuitenkin, että 4.2BSD:n versio on VAX-arkkitehtuurille optimoitu, ja siksi siinä on enemmän eroavuuksia.

On olemassa myös ohjelma nimeltä diff3. Mieti mitä tällä voi tehdä. Ota kopio 1993 tiedostosta ja muuta sitä jollain tapaa (ei väliä vaikkei se menekään syntaktisesti oikein, tärkeintä on tehdä vähän muutoksia). Käytä nyt diff3:sta omien ja vuoden 2001 muutosten saattamiseksi yhteen tiedostoon. Milloin tälläisestä ominaisuudesta on hyötyä?

patch

Tee diff-tiedosto edellisistä (jos olet samassa hakemistossa): Sitten kopioi itsellesi vanha ip_cksum ja päivitä se äsken tekemälläsi patchilla. lopputulos näyttää: Huomaa että patch teki sinulle vanhasta tiedostosta varmuuskopion.

troff

Joskus voi joutua formatoimaan käsin manuaalisivuja, jotka normaalisti man formatoisi puolestasi. Se onnistuu komennolla groff -Tascii -man. Formatoi tällä tavalla man-sivu /usr/share/man/man1/lpr.1.gz ja uudelleenohjaa tulostus less:lle: Jos haluat tehdä man-sivusta postscript-tiedoston, se onnistuu sanomalla groff -Tps -man sivu.x. Tee esimerkiksi scp:n manuaalisivusta postscriptiä komennolla: (tekee kotihakemistoosi scp.ps -nimisen tiedoston)

printtaaminen

"Printtaa" tiedosto scp.ps (postscript-tiedostoihin käytetään aina lpr:ää): Jos haluat printata normaalin tekstitiedoston, esim. äskeisen sanalistan, tekisit seuraavasti: Muita komentoja joista on varmasti hyötyä:

säännölliset lausekkeet

Harjoittele säännöllisten lausekkeiden käyttöä esim. grepin avulla. Koita etsiä tiedostosta ainakin seuraavat patternit:

tiedostojen siirto

Opettele ohjelmien scp, ftp, wget ja lynx kättö.

lopuksi

Tuhoa ylimääräiset tiedostot kotihakemistostasi rm:llä.