Föredraget var inte en genomgång av vilka kommandon som finns i Unix -- det kan man köpa en bok och läsa för att lära sig, menar Mattias. Istället var det en motivation till varför Unix är bra.
Unix är framförallt operativsystemet för de lite häftigare burkarna, kanske därför att de häftigste burkarna oftast levereras med Unix. "Vi använder Unix för vi tycker att det är det mest användarvänliga systemet", sa Mattias och hänvisade de som inte tycker likadant att ringa 12 90 40 och fråga efter Jörgen Stock. Numret visade sig gå till Apple Center.
Unix är det operativsystem man behöver ifall man vill konvertera 72 tiffbilder till gif-format. Med en Mac skulle det ta ett par, tre timmars arbete med musen. På en Unixmaskin skulle det ta en halvtimme varav de första 5 minuterna skulle gå åt till att instruera datorn hur den skulle göra och resten av tiden, medan datorn arbetar, skulle Mattias kunna ägna sig åt att dricka Cola.
Det finns två sätt att använda en Unixdator på:
När man startar ett textfönster på en Unixmaskin får man logga in eftersom Unix kan hantera flera användare samtidigt. Sedan får man fram en prompt som kan se ut såhär:
jolt wing$
(Den måste naturligtvis inte se ut just såhär. Allt kan
konfigureras, eller som Mattias sade: "Jag får själv tala om vad
jag vill veta.".)
Där kan man t.ex. skriva ls
för att få se vilka filer man
har. Nu kan det vara många och de rullar fram i textfönstret och
försvinner ovanför fönstrets övre kant. Nu kommer en finess; man kan
ge utmatningen från ls
till ett annat program, nämligen
more
:
ls | more
more
är ett program som kan pausa utskriften genom att
vänta tills man trycker på mellanslag innan texten rullar ut ovanför
fönstret.
Ett annat användbart program är find
. Ett exempel:
find / -name foo\* -print
letar upp alla filer som börjar på foo och skriver ut dem. Vill man t.ex. ta bort alla filer som börjar på foo kan man skriva
rm `find / -name foo\* -print`
Här betyder backquotarna (`) att allt som find
-kommandot
producerar ska skickas som argument till programmet rm
,
vilket tar bort alla filer som det får som argument.
På detta viset kan vi koppla ihop ut- och inmatning från olika program på godtyckligt komplicerade sätt och vis för att få datorn att göra som vi vill "i all evighet, tills vi tröttnar".
En annan finess med Unix är att dokumentationen finns tillgänglig
elektroniskt m.h.a. kommandot man
. Prova t.ex.
man find
Ifall man inte vet vad kommandot man vill ha hjälp om heter kan man söka. Här letar vi t.ex. efter olika saker som har med sökning att göra:
man -k search
För att konvertera tiffbilder till gifbilder kan man göra såhär:
for c in *.tiff; do tifftopnm $c | ppmquant 256 | ppmtogif >$c.gif done
Detta har följande betydelse:
for c in *.tiff; do ... done
för varje fil som
slutar på .tiff gör följade: placera den i variabeln c
.
tifftopnm $c | ppmquant 256 | ppmtogif >$c.gif
gör om den till ett annat format ($c
betyder värdet
på variabeln c
), reducera till 256 färger och gör om
till en gif-fil. Giffilen får ändelsen .tiff.gif, men det räcker
gott.
Sådant gör Mattias ofta och därför är han glad att han kör på en Unixmaskin.
I andra operativsystem kan man på kommandorader som är sämre kan man råka ut för följande:
Man skriver in ett kommando och när man kommit halvvägs behöver man
se vad någon viss fil heter. Då får man sudda ut det man skrivit och
se vad filen heter, med t.ex. dir
. Därefter kan man
fortsätta och skriva in det man suddade ut förut.
Så fungerar det inte under Unix. I Unix kan man trycka på uppåtpil
för att få tillbaka kommandon man skrivit tidigare. Man kan börja
skriva ett filnamn och trycka på tabknappen så fyller datorn i
filnamnet eller visar vilka möjliga filer som finns. Det finns även
andra kraftfulla editeringsmöjligheter. Ifall man t.ex. ofta
konverterar från tiff- till gif-format kan man ge ett alias (ett
kortnamn) för harangen ovan (for ... done
).
Man kan skapa batchfiler (även kallade script) som sedan kan fungera som vilket annat Unixprogram som helst. När man lär sig mer om Unix upptäcker man att mycket är sådana script. Ett sådant script börjar såhär:
#! /bin/sh
/bin/sh är ett skal som alltid finns på Unixdatorer. Det finns även andra skal som t.ex. bash, csh och tcsh. Ifall man skulle råka hamna i tcsh kan man helt enkelt starta bash ifrån tcsh som vilket annat program som helst, varefter "...världen ler och Colan är kall".
En mycket användbar egenskap hos Unix är att den är helt uppbyggd av nätverk. Flera datorer kan dela på samma filsystem. Det kan visserligen Macintoshar också, men skillnaden är att i Unix kan varje dator exportera filer och man behöver inte ha en dedicerad filserver.
Det går att logga in via nätverket. Då kan man använda en dator
precis som om man sutte vid den trots att man kan vara långt borta. Är
nätverket som datorn är kopplad till Internet finns det inga
geografiska begränsningar på hur långt bort datorn som man loggar in
på kan vara. Man kan t.ex. skriva såhär för att logga in på datorn
it1-4
:
rlogin it1-4.ida.liu.se
Det finns även möjlighet att bara utföra kommandon på en annan
dator. Kommandot rsh
används då. rcp
finns
för att kopiera filer till/från en dator som inte delar samma
filsystem.
Fönstersystemet X-Windows kan utnyttja nätverk. Det kan skicka fönster, musrörelser och grafik över nätverket. På detta sättet kan man starta FrameMaker på IDA och visa fönstret på en annan dator som kanske inte har FrameMaker. Det kan gå till såhär:
export DISPLAY=jolt.infovav.se:0 imaker &
Man kan på det viset starta hela CAD-system från en dator på andra sidan jordklotet.
Q: Jag startade FrameMaker, men den klagade på att
den inte kunde öppna NEWS. Vad är felet?
A: NEWS är en utökning till X-Windows, som tagits
bort i senare versioner av X. Leta upp en nyare FrameMaker som inte
behöver NEWS.
Q: Vad är skillnaden mellan bash och tcsh?
A: De har liknande finesser, men olika syntaxer för
lite mer avancerade kommandon som for
som vi såg förut,
men de kan ungefär samma saker.
Kortfattat kan man säga såhär: Ur sh utvecklades
Dessutom finns ytterligare ett par skal: rc och es vilka inte grundar sig på samma idéer som sh och dess efterföljare.
(Här var det ett uppehåll i frågandet varvid Mattias yttrade:
"Ja, då kanske jag skulle gå igenom
mmap()
...". Då kom det lyckligtvis några frågor)
Q: Vilka olika sorters Unix finns det?
A: Unix utvecklades först av AT&T. Ur denna
utvecklades sedan
Så småningom har man enat sig om en slags industristandard som omfattar SunOS och System V.
På senare tid har det kommit olika fria Unixar som FreeBSD, NetBSD och Linux. I de två första fallen har man helt skrivit om de delar av koden som var AT&T:s och på så sätt fått en fri Unix. Linux är nyskrivet helt från grunden.
Q: Det finns två sätt att skriva en kärna på; en
liten µkärna och en stor monolitisk. Skillnader?
A: I den rikti^H^H^H^H^Hmonolitiska modellen
finns filsystem, nätverkskod m.m. i kärnan. Vill man lägga till
t.ex. ett nytt filsystem måste man kompilera om kärnan. I µkärnan är
filsystemn nätverkskod m.m. precis som program som körs.
Q: POSIX, vad är det?
A: Det är flera standarder för olika saker som
program, systemanrop, skal och specificerar vilka olika argument
m.m. som ska klaras av.