Unix 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. Varför ====== 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. Hur man använder Unix Det finns två sätt att använda en Unixdator på: o X-Windows X-Windows är ett fönstersystem, ungefär som Macintoshens, med fönster och möss och så. o Textfönster. Dumma terminaler försvann inte alls på 80-talet. En sådan terminal kan man få upp i ett fönster under X-Windows. I textfönstret kan man skriva kommandon för att göra olika saker. Det kanske låter trist, men det funkar. Det är en mogen och beprövad teknik som funnits i ungefär 25 år. Det är kraftfullt och enkelt ifall man t.ex. vill göra saker upprepade gånger. Det finns visserligen AppleScript, men det är moderna saker, omogen teknik och "f-n vet om det funkar", sade Mattias. Textfönster ----------- 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". Hjälpsystemet ------------- 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 Konverteringen igen ------------------- 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: o for c in *.tiff; do ... done för varje fil som slutar på .tiff gör följade: placera den i variabeln c. o 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. Skal ---- 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". Nätverk ------- 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. X-Windows --------- 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. Frågor och svar =============== 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 o csh som skulle vara som sh fast mer likt programmeringspråket C. Ur csh utvecklades sedan tcsh. o bash som är ungefär likvärdigt med tcsh. o zsh som är skalet Skalet med alla finesser om inställningsmöjligheter man kan tänka sig o ksh som är ett skal som följer med i princip alla Unixmaskiner som köps och det är inte fritt tillgängligt som de övriga är. 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 o BSD (Berkeley Software Distribution). Ur denna utvecklades sedan SunOS. o System V (som är lite inspirerad av BSD). Ur denna har sedan utvecklats bl.a. SCO Unix och HPUX. 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.