UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

Relevanta dokument
Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

Kort-kort om utdelade användarkonton och datormiljön på NADA

Kort-kort om utdelade användarkonton och datormiljön på NADA

Datorer och datoranvändning Föreläsningar 2014/15. Föreläsning 1 Unix. Operativsystem. Unix

Objektorienterad programmering i Java I

UNIX. Laborations-PM Anders Egneus, Henrik Lindgren, 2004, Raphael Corsoski, Erik Eliasson, Christian von Schultz, 2008.

Föreläsning 1 Unix. Datorer och datoranvändning Föreläsningar 2018/19. Operativsystem. Unix

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på:

Övningar för del I av kursen

Datorsystem och programmering

Sed och Awk. Linuxadministration II 1DV421. Monday, August 8, 11

Övningar till UNIX/Linux Grundkurs och förslag till LÖSNING

Terminal vad det är vad man kan göra med den

SMD 134 Objektorienterad programmering

Programkonstruktion med datorintroduktion, 2D1339

Föreläsning 2. Operativsystem och programmering

Introduktion till datoranvändning. Välkomna till NADA. (Numerisk Analys och DAtalogi) och kursen. Datalogi, grundkurs 1, 15hp

Datorintro för elektro på Solaris

Editering, Kompilering och Exekvering av Javaprogram

Operativsystem och användargränssnitt

Konsolfönster i Windows Momentet ingår i kursen PDA DTR1206 Lab 1 DOS Konsolfönstret

Lab 7, 48 steg till ett bättre liv i Unix-labbet

Introduktion till datormiljön och Python

Eclipse en handledning

2 Eclipse en handledning

Introduktion till programmering. Undervisning. Litteratur och examination. Lärare. Föreläsning 1

Övningar till UNIX/Linux Grundkurs och förslag till LÖSNING

Praktiska saker... Om Laboration 1. Studietips. Praktiska saker. Att studera hemifrån på PC. Seminarier & Lektioner & Handledning & Hemsida

Övning Installation av Gentoo och/eller Arch Linux

KURSMÅL WINDOWS STARTA KURSEN

Grundkurs i programmering - intro

Lathund Blanketthotell Komma igång

Introduktion till användning av linux-servern sledge och några övningsuppgifter

UNIX. 2D1339 Programkonstruktion Hösten 2001 Datorintroduktion Laboration 1. Mål. Vad laborationen går ut på. Redovisning

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program

Steg 1 Minnen, mappar, filer Windows 7

DD1310 Programmeringsteknik för Open1 och Med2 Laborationer läsåret 2014/2015

Instruktioner för att kunna programmera på skolans datorer

SF1546, Numeriska Metoder för O1 Lab0 - frivillig. (dvs uppgifterna behöver inte redovisas!)

Kom igång med. Windows 8. DATAUTB MORIN AB

Allmänt om programvaror och filer i Windows.

Tips och tricks. Några bra tips. Lägg till sökvägar

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

DD1310 Programmering för OPEN1 LAB1: Laborationer i Python läsåret 2011/2012

Introduktion till Unix och Linux

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

LABORATIONSRAPPORT Operativsystem 1 Linux

TDDC77 Objektorienterad Programmering

Datorn från grunden. En enkel introduktion. Innehåll: Inledning 1 Vad är en dator? 2 Datorns olika delar 3 Starta datorn 5 Stänga av datorn 7

Unix för Linuxanvändare

Introduktion till programmering, hösten 2011

Välkomna till NADA. Datalogi, grundkurs 1, 15hp. (Numerisk Analys och DAtalogi) och kursen. DA2001 (Föreläsning 1) Datalogi 1 Hösten / 28

Kursansvarig. Välkomna till NADA. Datorn som verktyg. Datalogi, grundkurs 1, 15hp

Välkomna till NADA. Datalogi, grundkurs 1, 15hp. (Numerisk Analys och DAtalogi) och kursen. DA2001 (Föreläsning 1) Datalogi 1 Hösten / 28

Lab1 inginfo07. Detta dokument innehåller övningar för introduktion till Media-programmets datorsystem (Mac OS X).

Parallella jobb ctrl-z emacs & more README ctrl-z jobs. %<jobnr>

Internet. En enkel introduktion. Innehåll:

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Kort om World Wide Web (webben)

DATORINTRODUKTION 2010 LABORATION 1

Eclipse en handledning

2D1311 L1 och Bio2 2001/ Laboration 1: Introduktion till Nadas datormiljö och Java Nyckelord: katalog, fil, källkod, kompilera, avlusa, program,

Xemacs, första hjälpen!

Unix. Dagens föreläsning. Unix. GUI/Textgränssnitt

Unix. Dagens föreläsning. Unix. GUI/Textgränssnitt. Syfte. Mål

SF1672, Linjär Algebra med Matlab för F1 Lab0

Introduktion till MySQL

Olika shell. Skalprogrammering. Pipor och omdirigering av strömmar

Introduktion till datateknik för språkvetare

Grundläggande datorkunskap. Kom igång med dator

Kapitel 1 Komma igång... 3

Inledande programmering med C# (1DV402) Introduktion till C#

Handbok Fjärranslutning till skrivbord. Brad Hards Urs Wolfer Översättare: Stefan Asserhäll

Introduktion till programmering och Python Grundkurs i programmering med Python

Introduktion till Linux. TDDC66 Datorsystem och programmering Föreläsning (i) Peter Dalenius Institutionen för datavetenskap

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Program. Kapitel make Program Interpreterande och kompilerande program

Datorintroduktion 2009 Föreläsning 1. Dieter Larsen (IT-chef Matematiska vetenskaper)

Föreläsning 3. Programmering, C och programmeringsmiljö

Gran Canaria - Arbetsbeskrivning knapplänkar (Mediator 8)

U N I X G R U N D K U R S Ö V N I N G S U P P G I F T E R

Programmering i C++ Kompilering från kommandoraden

Steg 1 Minnen, mappar, filer Windows 8

Introduktion till datateknik för språkvetare

Unix design. Unix är ett operativsystem från mellan 1969 och 1972, beroende på hur man räknar. Unix utvecklas fortfarande.

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Ashampoo Rescue Disc

Steg 1 Minnen, mappar, filer Windows 10

Introduktion till datorer och nätverk vid institutionen för naturgeografi och ekosystemvetenskap

Introduktion till Linux. TDDC66 Datorsystem och programmering Föreläsning 1 Peter Dalenius Institutionen för datavetenskap

Laboration 1 Introduktion till Visual Basic 6.0

DN1212, Numeriska metoder & grundläggande programmering. Laboration 1 del 1-3 (frivilliga delar) Del 1-3 (dvs upg ) behöver inte redovisas

Raspberry Pi hallonpaj Kom igång med Raspberry Pi

Handbok KDE:s Menyeditor. Milos Prudek Anne-Marie Mahfouf Lauri Watts Översättare: Stefan Asserhäll

Datorintroduktion 2010 Föreläsning 1. Dieter Modig

GUIDE FÖR POWERPOINT PRESENTATIONER MICROSOFT OFFICE, POWERPOINT 2007

Linuxadministration I 1DV417 - Laboration 1 Installation, användare och allmänt Linuxhandhavande

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

E-POST3 Ett lättanvänt e-postprogram med stöd för talsyntes

Transkript:

UNIX Introduktion UNIX Inge Frick inge@nada.kth.se De datorer ni kommer att använda här är huvudsakligen SUN-maskiner som kör Solaris. Solaris är ett Unix operativsystem. Unix intro 2005 / Copyright Inge Frick 1 Unix intro 2005 / Copyright Inge Frick 2 Datorerfarenhet Vad menar man med operativsystem Man kan nog dela upp er i fyra grupper avseende datorerfarenhet: Ingen eller mycket liten datorerfarenhet. En del av vad som sägs här är nog lite oklart, men det kommer att klarna på labbarna. Windows-användare. Detta är förmodligen den största gruppen. Macintosh-användare. Linux-användare. Det mesta som sägs här har ni sett, men en del synpunkter kan vara nya. Då man talar om ett operativsystem menar man vanligen två saker: Ett operativsystem i egentlig mening, en operativsystemkärna. I fortsättningen kallar jag detta operativsystem. En datormiljö bestående av en operativsystemkärna och ett (stort) antal program. I fortsättningen kallar jag detta datormiljö. Unix intro 2005 / Copyright Inge Frick 3 Unix intro 2005 / Copyright Inge Frick 4

Vad gör ett operativsystem? Bestämmer vilket program som skall köra på datorn vid varje tillfälle. De flesta datorer kan bara köra ett program i taget. För få det att se ut som flera program kör samtidigt växlar operativsystemet snabbt mellan ett antal program. Bestämmer vilka program som använder vilken del av datorns minne. Även här kan operativsystemet växla snabbt mellan datorns minne och hårddisken för att få det att se ut som om det finns mycket mer minne än det finns i verkligheten. Ger ett sätt att beskriva och lagra data i filer, organiserade i ett filsystem, huvudsakligen på datorns hårddiskar. Sköter in- och utmatning av data mellan datorn och yttre enheter som hårddisk, skärm, tangentbord, mus, diskettstation, cdläsare, nätverk etc. Vad mer kan operativsystem göra Diverse detaljer. Klockor, undvika kapplöpning mellan program, säkerhet mm. Vissa operativsystem (t.ex. Windows) inkluderar kommandohanteraren i operativsystemet. Vissa operativsystem (t.ex. Windows) inkluderar den grafiska miljön (fönster, menyer etc.) för program. Webbläsaren (t.ex. IE i Windows) kan vara nära integrerad med operativsystemet. Unix intro 2005 / Copyright Inge Frick 5 Unix intro 2005 / Copyright Inge Frick 6 Unix filosofi Unix är ett gammalt operativsystem, första versionen kom 1969. Unix var det första operativsystemet som skrevs i ett högnivåspråk, först B och sedan C (som utvecklades tillsammans med Unix). Resultatet är att Unix är (relativt) enkelt att flytta till nya datormodeller. Unix designades så flexibelt att Unix-miljön fortfarande är modern. Unix kan snabbt växla mellan många program som arbetar tillsammans. Detta har lett till en filosofi för programutveckling som fortfarande är giltig, inte bara i Unix utan i alla datormiljöer: Unix filosofi forts. Skriv program som gör en sak men gör det väl. För nya problem skriv nya program istället för att komplicera gamla program med ny egenskaper. Antag att utmatningen från varje program kommer att bli inmatning till ett, än så länge okänt program. Komplicera inte utmatningen med onödig information. Använd enkel text för in- och utmatning. Grafiska gränssnitt med knappar och menyer är trevliga men bör separeras från det egentliga programmet. Unix intro 2005 / Copyright Inge Frick 7 Unix intro 2005 / Copyright Inge Frick 8

Olika aspekter på Unix Vi skall diskutera olika aspekter på Unix-miljön: Filsystemet. Hur man kommer åt filer. Den grafiska miljön. Fönsterhanterare. Kommandohanteraren. Unix-kommandon. Unix intro 2005 / Copyright Inge Frick 9 Filsystem i Unix Filerna i Unix ligger i kataloger som är organiserade i en hierarki. Kataloger är också filer men med speciella egenskaper. Tillsammans bildar detta ett träd. Träd i datalogin är upp- och nervända. Ni kommer att se många träd i senare kurser. Katalogen / kallas rot-katalogen. Se exempel nästa bild. Observera att alla filer på alla hårddiskar, disketter, cdrom etc. finns i ett träd. Varje användare av Unix har en egen hemkatalog. Då man är inloggad i Unix finns alltid en aktuell katalog. Då man just loggat in är det den egna katalogen, men man ändrar sedan aktuell katalog med kommandot cd. Då jag är inloggad kan jag referera till filen unix.sxi (den här presentationen) på två sätt: En absolut adress: /home/teach/inge/kurser/intro/unix.sxi En relativ adress (relativt aktuell katalog): kurser/intro/unix.sxi Om jag med kommandot cd kurser/intro byter aktuell katalog kan jag referera till filen med unix.sxi Unix intro 2005 / Copyright Inge Frick 10 Filsystem i Unix exempel / usr lib home sbin cdrom bin teach d f ls man inge Era hemkataloger kurser Kommandon intro unix.sxi Unix intro 2005 / Copyright Inge Frick 11 Grafisk miljö i Unix Den grafiska miljön i Unix består av flera delar. Den grundläggande grafiska beskrivningen görs normalt av av programmet X11 (eller X- windows version 11). På detta byggs fönsterhanterare som hanterar fönster, menyer etc. Det finns ett stort antal fönsterhanterare att välja mellan, från stora skrivbords- (desktop) system till enkla fönsterhanterare som gör ett minimum. Skillnaden är vad som inkluderas i miljön och vad man måste göra själv. Skrivbordssystem: cde, jds (Suns version av Gnome) och kde. Enklare fönsterhanterare: fvwm, twm, tvtwm, scwm, olwm... Detta är endast några exempel, det finns flera andra. Experimentera gärna men jag rekommederar att ni börjar med cde som är lite gammal men säker eller jds som är ny men alla delar är inte klara. Unix intro 2005 / Copyright Inge Frick 12

Fönsterhanterare, cde Fönsterhanterare, jds Unix intro 2005 / Copyright Inge Frick 13 Unix intro 2005 / Copyright Inge Frick 14 Fönsterhanterare, kde Fönsterhanterare, fvwm Unix intro 2005 / Copyright Inge Frick 15 Unix intro 2005 / Copyright Inge Frick 16

Kommandohanterare i Unix Unix är så gammalt att den ursprungliga miljön endast bestod av en terminal betående av ett tangentbord och en skrivare. Nästa steg var att ersätta skrivaren med en skärm. Interaktion med Unix bestod av kommandon skrivna på tangentbordet och svar på skärmen. I moderna grafiska miljöer finns kommandohanteraren kvar men i stället för hela skärmen är det nu ett eller flera terminalfönster. Unix styrs fortfarande till stor del med kommandon i stället för menyer och knappar. Att sätta upp den miljö man vill ha görs till stor del med textfiler. I terminalfönster körs kommandohanterare. Eftersom det inte är en del av operativsystemet, kan man välja mellan flera kommandohanterare (kallas shell): sh, csh, tcsh, ksh, bash... Här skall vi inte diskutera skillnaderna utan använda tcsh (default på våra datorer). Det intressantaste alternativet är bash. Unix intro 2005 / Copyright Inge Frick 17 Kommandon versus menyer och knappar För och nackdelar med att styra med kommandon jämfört med grafiska gränssnitt (knappar, menyer etc.): Nackdelar: Svårare att komma ihåg kommandon, speciellt i Unix som har korta kommandon som går fort att skriva. Fördelar: Uttrycksfullare. Enklare att beskriva med ett kommando vad som skall göras både för en mäniska och (särskilt) för ett program. Det kan vara möjligt att göra saker som programtillverkarna inte tänkt på. Detta kan också vara en nackdel. Bästa lösningen är oftast att ha båda möjligheterna, så att man kan använda menyer för det man glömt eller inte lärt sig och kommandon för allt annat. Det går att använda Unix i helt grafiska miljöer. Den moderna Macintosh-miljön består av en Unix-kärna med Apples grafiska miljö ovanpå. Unix intro 2005 / Copyright Inge Frick 18 Vad är ett kommando? Ett kommando är en fil som innehåller ett exekverbart program. Denna fil måste ligga i en av de kataloger där shellet (kommandohanteraren) letar efter kommandon. För att veta vilka kataloger som genomsöks skriv: >echo $PATH /home/teach/inge/bin:/bin:/usr/bin:/usr/local/bin:/usr/x11/bin > Naturligtvis kan man påverka vilka kataloger som genomsöks genom att ändra på variabeln PATH. Jag har lagt till en katalog så att jag kan lägga till egna kommandon. I verkligen är min PATH betydligt längre då jag lagt till flera moduler. Se nästa föreläsning. Unix intro 2005 / Copyright Inge Frick 19 Kommando exempel, pipe >tr a b abcabc bbcbbc ^d >tr a b > fil.txt abcabc ^d >cat fil.txt bbcbbc >echo $PATH tr : \n /home/teach/inge/bin /bin /usr/bin /usr/local/bin /usr/x11/bin > Unix intro 2005 / Copyright Inge Frick 20

In- och utmatning i Unix Program i Unix skriver och läser till och från filer. En fil betyder här en vanlig fil med text eller binära data, ett tangentbord, en skärm, ett annat program etc. Innan ett program kan använda en fil, måste filen öppnas, mer om det i senare programmeringskurser. Då ett program startas i Unix finns redan tre öppna filer: stdin öppet för läsning, normalt kopplat till tangentbordet stdout öppet för skrivning, normalt kopplat till skärmen stderr öppet för skrivning, normalt också kopplat till skärmen Många program använder endast dessa tre filer. Unix intro 2005 / Copyright Inge Frick 21 Omkoppling av in- och utmatning Tecknen > och < i shellet tillåter omkopplig av stdin och stdout på följande sätt: >echo $PATH > apa kör echo kommandot med stdout kopplat till filen apa >tr : \n < apa kör tr kommandot med stdin kopplat till filen apa Man kan också koppla om stderr, men det gör man vanligen inte. Program skriver vanlig utmatning till stdout, men felmeddelanden till stderr. Detta gör att om stdout kopplas till en fil så hamnar felmeddelanden fortfarande på skärmen. Man kan koppla ihop två program på följande sätt: >echo $PATH tr : \n Här blir utmatningen från echo kommandot, inmatning till tr kommandot Unix intro 2005 / Copyright Inge Frick 22 Kommando exempel, ls, pipe Kommando exempel, ls, pipe forts >ls intro emacs screens unix.pdf unix.ps unix.sxi >ls -l intro total 2149 drwxr-xr-x 2 inge usr 2048 Sep 2 16:12 emacs drwxr-xr-x 2 inge usr 2048 Sep 1 16:27 screens -rw-r--r-- 1 inge usr 300077 Sep 1 12:01 unix.pdf -rw-r--r-- 1 inge usr 1483952 Sep 1 12:01 unix.ps -rw-r--r-- 1 inge usr 404154 Sep 1 16:41 unix.sxi >ls -l intro sed 1d drwxr-xr-x 2 inge usr 2048 Sep 2 16:12 emacs drwxr-xr-x 2 inge usr 2048 Sep 1 16:27 screens -rw-r--r-- 1 inge usr 300077 Sep 1 12:01 unix.pdf -rw-r--r-- 1 inge usr 1483952 Sep 1 12:01 unix.ps -rw-r--r-- 1 inge usr 404154 Sep 1 16:41 unix.sxi Unix intro 2005 / Copyright Inge Frick 23 >ls -l intro sed 1d grep unix -rw-r--r-- 1 inge usr 300077 Sep 1 12:01 unix.pdf -rw-r--r-- 1 inge usr 1483952 Sep 1 12:01 unix.ps -rw-r--r-- 1 inge usr 404154 Sep 1 16:41 unix.sxi >ls -l intro sed 1d grep unix awk '{print $5}' 300077 1483952 404154 >ls -l intro sed 1d grep unix awk '{print $5}' awk '{sum += $1} END {print sum / NR}' 729394 Unix intro 2005 / Copyright Inge Frick 24

AFS På våra datorer används filsystemet AFS. AFS är ett distribuerat filsystem, (nästan) alla filer finns tillgängliga på nästan alla våra datorer. De flesta filer ligger på centrala servrar men av effektivitetsskäl finns en kopia av vanliga program och filer på de flesta datorer. Det här kan i princip ge problem om flera personer vill ändra på samma fil men i praktiken är problem sällsynta. Unix intro 2005 / Copyright Inge Frick 25 AFS Säkerhet I AFS finns ett säkerhetssystem där man för varje katalog kan bestämma vem som får göra vad med katalogens filer. De rättigheter som kan anges är : r Rätt att läsa innehållet i filer l Rätt att läsa katalogen, dvs visa vilka filer som finns i Rätt att skapa nya filer d Rätt att ta bort filer w Rätt att ändra i redan existerande filer k Rätt att låsa filer, så andra tillfälligt inte kommer åt dem a Rätt att ändra rättigheter Unix intro 2005 / Copyright Inge Frick 26 Unix säkerhet Unix traditionella säkerhetssytem fungerar annorlunda. Rättigheterna anges separat för varje fil, men man kan inte ange lika nogrant vem rättigheterna gäller. I Unix delas användare in i tre grupperingar avseende en fil: Ägaren av filen Filens grupp (där ägaren oftast ingår, men det är inte nödvändigt) Grupper behöver ni vanligen inte bry er om. Alla andra För varje gruppering finns det tre rättigheter (som visas av ls -l kommandot): r Rätt att läsa filen w x Rätt ändra eller ta bort filen Filen är exekverbar. Rätt att exekvera (köra) filen. Observera att man inte behöver ha rätt att läsa filen för exekvera den. Unix intro 2005 / Copyright Inge Frick 27 Säkerhet på våra datorer På våra datorer används en kombination av AFS och traditionella Unix rättigheter. För att t.ex. kunna exekvera filen myprog måste man dels ha rättighet enligt AFS att läsa filerna i katalogen där myprog ligger och dels ha rätt enligt Unix att exekvera filen. Om man inte vill att andra skall kunna läsa myprog eller andra filer i katalogen så ser man till att andra inte har Unixrättighet att läsa filerna. Genom att utnyttja kombinationen av AFS och Unix rättigheter kan man ange noga, för varje fil, vem som får göra vad. Unix intro 2005 / Copyright Inge Frick 28

Länkar Det som gör att en fil ligger i en katalog är att det finns en länk från katalogen till filen. Pilarna i figuren är länkar. Filens namn är egentligen en egenskap hos länken och inte hos filen så egentligen borde namnet stå på pilen och inte på rektangel i figuren men man brukar rita så här eftersom det blir klumpigt annars. En fil kan ha flera länkar så att den ligger (eventuellt med olika namn) i flera kataloger och/eller flera gånger, med olika namn, i samma katalog. kurser unix.sxi En länk till unix.sxi. unix.sxi ligger i katalogen intro kurser intro intro unix.sxi Två länkar till unix.sxi. unix.sxi ligger både i katalogen intro och katalogen kurser Unix intro 2005 / Copyright Inge Frick 29 Hårda och mjuka länkar En fil kan ha hårda och mjuka länkar. En fil har minst en hård länk som den får då den skapas men den kan ha fler vilket vi dock inte tar upp här. Då man refererar till filer beter sig hårda och mjuka länkar på samma sätt men internt är det olika. En mjuk länk är egentligen en speciell sorts liten fil som innehåller en absolutreferens till den egentliga filen. Den här lilla filen ser man normalt inte. En mjuk länk anger alltså i vilken katalog filen egentligen ligger och vad den heter där. Det här har några konsekvenser: AFS-rättigheterna hos filen bestäms inte av katalogen där den mjuka länken ligger, utan där filen egentligen ligger. En mjuk länk kan vara rutten dvs referera till en fil som inte finns, precis som på WWW. På samma sätt som för en hård länk kan filen få ett nytt namn av den mjuka länken. kurser intro unix.sxi /afs/nada.kth.se/ home/teach/ inge/kurser/intro/ unix.sxi En mjuk länk Unix intro 2005 / Copyright Inge Frick 30 Program i miljön På labben kommer ni att få pröva program för några av de saker ni kommer att använda datorer till: Editering av text, se nästa bild. Webbläsare för att surfa på webben Mailhanterare för att skicka och ta emot datorbrev Nyhetsläsare för att skicka och läsa meddelanden i diskussionsgrupper. Kompilering (i detta fall kompilering av Javaprogram) Unix intro 2005 / Copyright Inge Frick 31 Editor En mycket stor del av er användning av datorer handlar om att skriva och ändra text. Det gäller både programmering och rapportskrivning. För att behandla text används en editor. I Unix-världen är det huvudsakligen två editorprogram som används, vi och emacs. Att tala om editorer brukar leda till heta diskussioner. vi är en betydligt mindre editor som speciellt är bra vid viss systemprogrammering. Många använder vi till all programmering, men det kan jag inte säga så mycket om, då jag själv är expert på emacs. Unix intro 2005 / Copyright Inge Frick 32

Emacs Emacs är en del av GNU-projektet. GNU-projektet står för en grundläggande del av Linux-miljön. Emacs är fri programvara som kan fås för nästan alla datorer i nästan alla operativsystem. Emacs kan göra nästan allt som har med text (och i viss mån multimedia) att göra. Emacs kan bland annat: Editera text i många format. Filhantering. Det man normalt gör med shell-kommandon Hantera programmering, med kunskap om de flesta språk Hantera felmeddelanden från avlusare Köra program Mailhantering Läsa och skriva i nyhetsgrupper Webbläsare Unix intro 2005 / Copyright Inge Frick 33 Emacs forts Emacs har av både tillskyndare och belackare beskrivits som ett operativsystem förklätt till editor. Hur åstadkommer Emacs allt detta? Emacs innehåller fyra saker : Grundläggande metoder för att hantera text Viss förmåga ett hantera bilder Förmåga att köra separata program Ett inbyggt språk, Emacslisp, som har tillgång till förmågorna i de tidigare punkterna Tillsammans med Emacs hör ett stort antal moduler skrivna i Emacslisp som kan hantera allt det som nämts tidigare och mer. Unix intro 2005 / Copyright Inge Frick 34 Att lära sig Emacs Emacs kan göra mycket och det finns många många Emacskommandon, men det är ändå inte så svårt att komma igång med Emacs. Till en början räcker det att kunna några av de vanligaste kommandona. Så småningom lär man sig fler kommandon genom användning. Kommandon är tangentkombinationer. Vissa kommandon finns också i menyer, men jag rekomenderar att ni använder tangentkombinationer så mycket som möjligt, man arbetar snabbare på det sättet. Det lönar sig att investera lite tid i att lära sig Emacs ordentligt! Ni kommer att ha igen det under hela er tid vid KTH. Unix intro 2005 / Copyright Inge Frick 35 Kommandon i Emacs Emacs arbetar med buffertar. Man läser in en fil i en buffert (ett utrymme i datorns minne), arbetar med den där och sparar resultatet som en fil. Alla tangentkombinationer är kommandon för Emacs. Tangenten a är ett kommando som vanligen betyder sätt in ett a i bufferten, men som allt i Emacs kan man ställa om så att a betyder sätt in b i bufferten vilket ju inte är så praktiskt. Vanliga kommandon som inte bara sätter in ett tecken är oftast någon av följande kombinationer C-<tecken>, C-x <tecken>, M-<tecken>. C-<tecken> betyder håll ner Control-tangenten och tryck på <tecken> M-<tecken> kan göras på två sätt: tryck först på Esc-tangenten och sedan på <tecken> Håll ner en tangent (finns på båda sidor närmast mellanslagstangenten) och tryck på <tecken> Unix intro 2005 / Copyright Inge Frick 36

Då man startar Emacs ser man efter ett tag följande: Observera att ni inte skall börja skriv in text här, ni skall först öppna en fil, gammal eller ny där er text skall stoppas in. Emacs måste veta vad filen heter. Filnamnet anger vad för typ av text ni skriver så att Emacs kan ställa in rätt mod för att hantera denna typ av text. Första kommandot blir alltså: C-x C-f för att läsa in en fil Emacs start Då man startar Emacs ser man efter ett tag följande: Unix intro 2005 / Copyright Inge Frick 37 Här har vi läst in filen.fvwm2rc Nu kan vi ändra i filen och sedan spara resultatet. Emacs börja editera Unix intro 2005 / Copyright Inge Frick 38 Emacs som IDE Då man säger till Emacs att editera filen prog.java som skall innehålla ett java-program händer följande: Emacs ser namntilläget.java, tolkar det som att filen skall innehålla java och laddar en modul som vet mycket om java: Vet hur javaprogram bör formatteras Kan hitta och förflytta sig till olika delar av javaprogram Kan hantera kommentarer Kan kompilera javaprogram och hantera felmeddelanden Kan provköra program och hantera felmeddelanden Kan leta i manualer På detta sätt kan Emacs fungera som IDE (Integrated Development Environment). En skillnad mot andra IDE är att Emacs kan hantera många programmeringsspråk och potentiellt alla språk. Saknas kunskap om ett språk är det bara att skriva en ny modul. Unix intro 2005 / Copyright Inge Frick 39 Här har vi läst in Helloworld.java, kompilerat med compilekommandot i JDE menyn. Kompileringsresultatet ses i den undre vyn. Vi har med kommandot C-x ` gått till det första felet och står här. Den undre vyn visar överst det första felmeddelandet. Om det finns flera fel så tar oss kommandot C-x ` till nästa fel osv Emacs editera java Unix intro 2005 / Copyright Inge Frick 40