Linux - Friheden til at vælge

En introduktion til Linux - version 2.13

Peter Toft

Snebjørn Andersen

Kenneth Geisshirt


Indholdsfortegnelse
Forord for denne bog
1. Forord
2. Introduktion til Linux
2.1. Prisen for frihed er kompleksitet
2.2. Programmer til Linux
2.3. Linux har en stejl indlæringskurve
2.4. Linux kan alt
2.5. Linux er ikke enten-eller
2.6. Linux distributioner
2.7. Hardware
3. Copyright
4. Om forfatterne
5. Vi siger tak for hjælpen
6. Typografi
1. Hvad er Linux?
1.1. Friheden til at vælge
1.2. Åben kildetekst - Open Source
1.3. Linux er god til mange ting - samtidigt
1.4. Hvor bruges Linux i dag?
1.5. Historien bag Linux
1.6. Valg af distribution
1.7. Bøger og dokumentation
2. Linux installation
2.1. Forberedelse til installation af Linux
2.1.1. Kan min maskine bruges til Linux?
2.1.2. Gør din PC klar og lav backup
2.1.3. Hvad skal der ske
2.1.4. Opdele en DOS/Windows harddisk til Linux
2.2. Installation af Red Hat Linux 6.1 (Cartman)
2.2.1. Nyheder i Red Hat 6.1
2.2.2. Hardwarekrav
2.2.3. Installation fra CDROM
2.2.4. Kendte fejl i Red Hat 6.1
2.3. Installation af SuSE Linux 6.3
2.3.1. Nyheder i version 6.3
2.3.2. Hardwarekrav
2.3.3. Installationsvejledning
2.4. Installation af SuSE Linux 6.2
2.4.1. Nyheder i version 6.2
2.4.2. Installationen
2.4.3. Partitionering
2.4.4. Programvalg
2.4.5. Afsluttende handlinger
2.5. Efterfølgende installation af programmer med SuSE
3. Kom i gang med den grafiske brugergrænseflade
3.1. Valg af Window Manageren
3.1.1. fvwm og fvwm2
3.1.2. WindowMaker
3.1.3. Enlightenment
3.1.4. GNOME
3.1.5. KDE
4. Basal UNIX
4.1. Virtuelle konsoller
4.2. Filer og deres rettigheder
4.3. Indholdet af filer
4.4. Et par små nyttige kommandoer
4.5. On-line manualen
4.6. Joker-tegn, redirection og pipes
4.6.1. Joker-tegnet
4.6.2. Redirection
4.6.3. Pipes
4.6.4. Programmet grep
4.7. Proces-kontrol
4.7.1. ps viser processer
4.7.2. Få et bedre overblik ved at bruge top
4.7.3. At køre programmer i baggrunden
4.7.4. Dræb en proces
4.7.5. suid
4.8. Den klassiske UNIX editor vi
4.9. Videre med Linux
5. Systemadministration
5.1. Få adgang til andre diske, CDROM og floppydrev
5.1.1. CDROM
5.1.2. Læse DOS/Windows diske
5.1.3. Floppydrev
5.1.4. Automount
5.2. RPM
5.3. Opbygningen af filsystemet
5.4. Hvad er et runlevel?
5.5. Nedlukning af Linux
5.6. De grafiske værktøjer
5.6.1. control-panel
5.6.2. linuxconf
5.7. Et lydkort
5.8. Omkonfigurere Linux kernen
5.8.1. Bliv klar til at oversætte kernen
5.8.2. Oversæt Linux-kernen
5.9. Moduler
5.9.1. Hvad findes der allerede indlæst?
5.9.2. Indlæs et modul
5.9.3. Nedlæg et modul
5.9.4. Konfiguration
5.10. Linux og 3D-kort
5.10.1. Installation af 3D grafik kort under Linux
5.11. Printere
5.12. Crontab
5.13. Boot af Linux
5.13.1. LILO
5.13.2. Loadlin
5.13.3. Samtidig installation af Windows NT og Linux
5.14. Hvor finder jeg konfigurationsfilerne ?
5.14.1. /etc/passwd
5.14.2. /etc/shadow
5.14.3. /etc/group
5.14.4. /etc/gshadow
5.14.5. /etc/fstab
5.14.6. /etc/hosts
5.14.7. /etc/resolv.conf
5.14.8. /etc/inetd.conf
5.14.9. /etc/rc.d/
5.14.10. /etc/sysconfig/
5.14.11. /etc/crontab
5.14.12. /etc/sendmail.cf
5.14.13. /etc/aliases
5.14.14. /etc/printcap
5.14.15. /etc/conf.modules
5.14.16. /etc/exports
5.14.17. /etc/X11/XF86Config - /etc/XF86Config
5.15. Afsluttende bemærkninger
6. Linux applikationer
6.1. xterm
6.2. Programmerne man og info er vejen til hjælp
6.3. Programmeringsværktøjer
6.3.1. Programmering
6.4. Teksteditorer
6.4.1. nedit
6.4.2. Emacs
6.4.3. Andre teksteditorer
6.5. Tekstbehandling
6.5.1. Nem og officepræget tekstbehandling
6.5.2. TeX/LaTeX
6.5.3. LyX
6.5.4. Stavekontrol
6.6. Editere Internet hjemmesider
6.7. Filstyring
6.8. Tegneprogrammer og grafikmanipulatorer
6.9. Emulatorer
6.9.1. DOS-emulatoren dosemu
6.9.2. Windows emulatoren WINE
6.9.3. Commodore emulering
6.10. Spil
6.10.1. KDE spil
6.10.2. GNOME spil
6.10.3. Andre spil
6.10.4. Quake II
6.10.5. 3D software
6.10.6. Lincity
6.10.7. FreeCiv
6.10.8. Scrabble
6.10.9. Skak
6.11. Databaser
6.12. Regneark
6.13. Databehandling og visning
6.14. Revisionssystemer
7. Linux i store og små netværk
7.1. TCP/IP
7.1.1. En lille formaning
7.1.2. Netværksadresser
7.1.3. Sammenkobling af flere netværk
7.1.4. DNS
7.2. Modemforbindelse til Internet
7.2.1. Opsætning af PPP
7.2.2. Diald
7.3. Ethernet-kort
7.4. Netværksprogrammer
7.4.1. Ping
7.4.2. telnet
7.4.3. ftp
7.4.4. Webbrowsere
7.4.5. wget
7.5. Email
7.5.1. Fetchmail
7.5.2. Linux som postserver
7.5.3. Sortering af emails med procmail
7.5.4. Vise nye emails
7.5.5. Hente emails fra en Exchange server
7.5.6. Kryptering af post
7.6. Dele filer mellem UNIX maskiner
7.7. Linux som server i Windows-netværk (SAMBA)
7.7.1. Krypterede adgangskoder
7.8. Webserver
7.9. Internet sikkerhed
7.10. Bøger om netværk
8. Programmering under Linux
8.1. Shell-programmering
8.2. C og C++ programmering
8.2.1. Det første C program: HelloWorld
8.2.2. Det første C++ program
8.2.3. Oversættelse af flere C-filer med makefiles
8.2.4. GNU debuggeren og DDD
8.2.5. KDevelop
8.2.6. Bøger om C-programmering under Linux
8.3. Perl programmering
8.4. Tcl/Tk
8.5. Python
8.6. Java
9. Hvordan kommer jeg videre?
9.1. LUG'er
9.2. Mailing-lister
9.3. Nyhedsgrupper
9.4. Hjemmesider
A. Ingen grafik og hvorfor gik det så galt?
A.1. XF86Setup, xf86config og Xconfigurator
A.1.1. xf86config
A.1.2. XF86Setup
A.1.3. Xconfigurator
A.2. XF86Config filen
A.2.1. Tastatur
A.2.2. Mus
A.2.3. Skærm
A.3. Anvendelse af fdisk
B. Lad mig lære lidt flere UNIX/Linux kommandoer
B.1. Mere om omdirigering
B.2. En række nyttige værktøjer
B.2.1. Hvem er logget ind?
B.2.2. Søg og du skal finde
B.2.3. Hvordan ændres datomærkningen?
B.2.4. Hvilken filtype?
B.2.5. Tid og dato
B.2.6. Sortering
B.3. En række tekstværktøjer
B.3.1. Hoved og hale
B.3.2. cut og paste
B.3.3. Søg og du skal erstatte
B.4. Andre Unix kommandoer
C. Installation af Debian 2.1
C.1. Hvad er Debian
C.1.1. Det skrækkelige program dselect
C.1.2. dpkg for begyndere
C.1.3. dselect for begyndere
D. Revisionshistorie for bogen

Forord for denne bog


1. Forord

Denne bog er skrevet af erfarne Linux-folk til dem, som vil i gang med styresystemet Linux. Bogen starter med historien bag Linux og generel information om Linux.

Der er et kapitel, som viser dig, hvordan du installerer Red Hat og SuSE Linux fra CDROM. Linux er "friheden til at vælge", og bogen viser bl.a. en stribe af de grafiske brugergrænseflader, som findes til Linux.

For at du kan få mest ud af Linux, skal du kunne nogle basale UNIX-kommandoer og lidt systemadministration. Det er et meget stort emne, men bogen giver dig den mest nødvendige viden.

Der findes mange programmer til Linux, men de fleste kender du ikke, hvis du alene kommer med Windows 95/98 erfaring. Derfor præsenterer vi en række af de vigtigste programmer.

Linux er en god platform i et computernetværk, både som server og klient. Vi beskriver de basale ting, du bør vide om et netværk.

Programmering og Linux er en god kombination. Der findes en hav af oversættere (compilers) til næsten alle programmeringssprog under Linux. Vi gennemgår simple programmer og viser, hvordan du får dem til at køre.

Endelig er Internet vejen frem til mere information om Linux. Der er megen god dokumentation og mange programmer derude. Vi viser dig de vigtigste links i Linux-verdenen.


2. Introduktion til Linux

Forled ikke nogen til at køre Linux, men vejled enhver, der absolut vil.

Linux er et frit, åbent og gratis styresystem. Et styresystem er det program, der styrer computeren. Du kender sikkert allerede DOS, MacOS, OS/2 og Microsoft Windows 95/98/NT/2000. Styresystemet Linux er meget mere stabilt end Windows. Det går simpelthen ikke ned hele tiden, og det kan mange flere ting, hvis du forstår at udnytte det. Men Linux er ikke "et bedre Windows". Linux er et UNIX-lignende styresystem og derfor meget forskelligt fra Windows. Dette må du gøre dig klart, før du hopper med på vognen og skifter til Linux, dvs. kender du ikke til UNIX, kommer du til at lære en masse nyt!

I dette afsnit vil vi forsøge at være mere objektive mht. Linux, for selvom Linux er spændende for os Linux-brugere, er det måske ikke interessant for dig. Vort udgangspunkt er at fortælle, på hvilke områder Linux er interessant, og samtidigt at gøre opmærksom på, at Linux måske ikke passer til dig.


2.1. Prisen for frihed er kompleksitet

Når du bruger Linux, kan du i høj grad skræddersy dit system efter dine egne ønsker og behov. Du kan f.eks. få mange forskellige grafiske brugergrænseflader af høj kvalitet, mange forskellige gratis programmer, du lovligt kan kopiere, og du kan vælge imellem forskellige udgaver af Linux med forskellige hjælpeværktøjer inkluderet. Det er det, vil kalder for "friheden til at vælge".

Du kan bruge Linux til alt muligt, lige fra server i en multinational virksomhed til pc'eren hjemme på skrivebordet. Men fleksibilitet og valgfrihed har en pris.

Hvis du vil have den flotteste grafiske brugergrænseflade og de nemme konfigurationsværktøjer, er du nødt til at sætte dig ind i, hvilke der findes, og måske prøve nogle forskellige for at finde ud af, hvad du synes bedst om. Dvs. du må selv installere dem, eksperimentere med mulighederne og evt. afinstallere dem igen.

Man kan sige, at øget kompleksitet er prisen for den mangfoldighed, Linux besidder. En af fordelene er, at du har valgmulighederne. Du kan sætte alt op selv, men oftest behøver du ikke at sætte dig ind i alt - normalt vil programmer og brugergrænseflader have standardindstillinger, som kan bruges som et godt udgangspunkt.

Installation af Linux kan være sværere end Windows - men det er reelt kun, fordi flere af de ting, du spørges om, er uvante. Har du installeret Linux, er driften derimod nemmere. Du kan (foruden sikkerhedsopdateringer) køre med det samme system i flere år.

Nu skal det heller ikke lyde, som om du skal prøve alt selv. Start med, hvad du har installeret, og så kan du senere ændre det, hvis du har lyst. Nærværende bog indeholder endvidere mange forslag til, hvordan du kan sætte din Linux-maskine op.


2.2. Programmer til Linux

Det er vigtigt at forstå, at du ikke kan køre de samme programmer under Linux som under Windows. Der findes heldigvis et hav af programmer til Linux, men en stor del af dem er rettet imod de mere teknisk orienterede brugere. En del af de programmer, vi kender fra Windows, er dog på vej i Linux-versioner, og enkelte findes allerede. Mange af de programmer, der findes til Linux, er gratis til privat brug. En stor del er endog - som Linux selv - helt gratis og åbne, også til kommerciel brug.

Du bør tænke over, hvad du primært vil bruge din computer til, før du bestemmer dig for at skifte til Linux. Findes dine favoritprogrammer ikke til Linux, eller kan du ikke finde erstatninger, som du er tilfreds med, så lad være med at skifte til Linux.

I det følgende tager vi nogle specifikke programtyper frem.


2.2.1. Office-pakker

Der findes forskellige office-pakker (kontorpakker) til Linux. Vi kan her nævne et par udbredte office-programmer til Linux. ApplixWare kan købes, mens de to andre kan hentes gratis fra Internet:

  • WordPerfect 8: Et godt produkt, som desværre har et par irriterende fejl (fonte, dårlig sprog-understøttelse og dårlig grafisk tegning af billeder).

  • ApplixWare: Velfungerende office-pakke, som dog ikke har alle Microsoft Office 97 features. ApplixWare er til gengæld meget mere stabil.

  • StarOffice: God office-pakke, som kræver en del hukommelse for at køre godt. Minder om Microsoft Office 97 og kan både læse og skrive Microsoft Office 97 formater.

  • KOffice: KDE-projektets frie Office-pakke. Den er ikke færdig endnu, men bliver nok interessant omkring sommeren 2000.

  • GNOME: GNOME-projektet arbejder målrettet med en række kontorprogrammer, f.eks. regnearket Gnumeric og tekstbehandleren AbiWord. Efteråret 2000 vil sikkert fremvise mange nyheder fra denne kant.

Hvis din hverdag er centreret omkring Microsoft Office dokumenter alene, bør du nok vente med at skifte til Linux. For selvom alle office-programmerne vil læse Microsoft Office dokumenter, kan det være svært at være 100% kompatibel med Microsoft, da Microsoft ikke følger åbne standarder og har implementeret lukkede filformater.

Skal du skrive breve og f.eks. foredrag alene, har Linux de office-programmer, du skal bruge. Dine problemer vil typisk opstå, hvis du arbejder sammen med andre, som ikke bruger Linux.

Corel som har en store Linux indsats i gang har nu Corel Office Suite 2000 i betatest, så i løbet af år 2000 kommer der en Linux-udgave af deres office-pakke. Indtil videre må vi dog nøjes med Word Perfect 8.


2.2.2. Email og Internet

Internet og email er intet problem med Linux. Du kan bruge din Linux maskine lige så nemt som Windows, hvis du skal surfe på Internettet og læse elektronisk post. Du kan sikkert få glæde af Netscape Communicator til dette. Mht. at læse elektronisk post er der mange programmer til Linux af høj kvalitet, og det er helt sikkert, at der er et, som passer til din smag for grafik og konfigurationsmuligheder.

Hvis du skal lave avancerede websider, er Linux perfekt for dig. Ikke alene har du en lang række gratis værktøjer til rådighed, men du kan prøve det hele af hjemmefra, da Linux kommer med en komplet webserver.


2.2.3. Spil

Et område, hvor Linux står meget svagt, er spil. De nyeste spil kommer enten ikke til Linux eller kommer med ret stor forsinkelse. Flere af de spil, som så kører under Linux er dem, som køres via en Windows emulator. Der er flere detaljer, f.eks. på http://www.linuxgames.com. Den svage udbredelse af spil til Linux skyldes, at Linux i højere grad har været gearet til netværk og som udviklingsplatform og ikke tidligere har appelleret så meget til den brede befolkning.

Et andet problem har nok været, at Linux distributioner kom med forskellige standardbiblioteker, og den stadige udvikling gjorde, at man ikke kunne være sikker på, hvad Linux var dagen efter. Dette er heldigvis blevet meget bedre nu, hvor Linux er stabil og yder godt. Samtidig rykker en officiel Linux standard nærmere (Linux Standard Base - se http://www.linuxbase.org).

Spil til Linux kommer først, når og hvis Linux bliver en meget stor succes med bred accept. Dvs. når de firmaer, der laver spillene, kan se, at der er penge at hente, fordi mange vil købe spillene til Linux.

Der er dog undtagelser. Firmaet ID Soft, som udviklede Wolfenstein, DOOM, Quake og andre spil, har haft stor glæde af Linux; faktisk har de udviklet flere af spillene under Linux og så bagefter flyttet koden til Windows. Derfor findes mange af ID Soft spillene til Linux, og de kører rigtig godt. Loki Software er nu også begyndt at oversætte spil til Linux, bl.a. Civilization-serien, så meget ser nok anderledes ud om et år. Der findes også masser af mindre spil svarende til, hvad der kendes fra Windows, såsom Tetris, minesweeper og forskellige kabaler.

Er du meget til spil, bør du nok mindst have Windows installeret på samme maskine som Linux.


2.2.4. Grafisk brugergrænseflade

Der er en del forskellige grafiske brugergrænseflader til Linux, som alle tilbyder spændende muligheder. Det er ikke sådan, at du behøver at bruge dem, men du har muligheden for at vælge netop den, som du synes tilbyder mest. Vi vil nævne et par relevante systemer.

  • KDE er et meget succesrigt projekt, som har meget stor fart på. KDE tilbyder alle de små ting, du er vant til fra Windows: Ikoner, "drag and drop features", grafisk filhåndtering mv., samt masser af praktiske småprogrammer, som f.eks. post-it sedler, cd-afspiller, små spil og meget mere. Hvordan KDE ser ud, er meget op til dig selv, da der er masser af konfigurationsmuligheder. Det er dog ikke alle programmer, der er lavet til at udnytte KDE's muligheder optimalt. Find KDE på http://www.kde.org

  • GNOME er fremtidens frie desktopmiljø, baseret på netværksobjekter. GNOME er et desktopmiljø, der tilbyder applikationerne nogle muligheder for at køre på en integreret måde, ligesom de gør i Windows. GNOME er stadig kun under udvikling, men GNOME-teamet er ved at være klar med færdige produktionssystemer nu. Tempoet er meget højt, og allerede nu er så store dele færdige, at den eksperimenterende bruger kan få meget sjov ud af at lege med systemet. Du kan læse meget mere om GNOME på http://www.gnome.org.

  • Enlightenment er en såkaldt Window Manager. Den har ikke alt det i sig, som KDE har, men er mere beregnet til at styre, hvordan grafikken ser ud. Enlightenment kan køre oven på GNOME og udnytte dens faciliteter. Den kan også køre alene. Enlightenment er et meget futuristisk projekt med elementer som er helt unikke. Grafikken er meget speciel, men spændende. Startes et tekst terminal vindue, kommer vinduet flyvende fra siden, og her har du bitmap-grafik til at danne baggrund for teksten i vinduerne. Baggrundsbilleder er standard. De er dog ikke statiske, men kan være dynamiske effekter såsom flammer, der bevæges, ringe i vand, som udbredes med tiden etc. Enlightenment er godt på vej frem, men mangler stadig mange ting. Beta-versioner kan hentes fra http://www.enlightenment.org

Der findes masser af andre Window Managers, f.eks. Afterstep og Window Maker samt Fvwm 95 - læs mere om dem rundt om på Internettet.


2.2.5. Programmering

Her går vi måske lidt væk fra den almindelige bruger, men der er dog mange, der programmerer lidt på deres hjemmecomputer. Til denne gruppe findes der masser af gode programmeringsværktøjer til Linux, og der findes oversættere og fortolkere til næsten ethvert programmeringssprog: C, C++, Fortran, Perl, Python, Java, Tcl/Tk, Ada og Pascal.

Visuelle værktøjer som Delphi, Visual Basic og Visual C++ findes dog ikke til Linux, men der er et par gode grafiske debuggere (f.eks. DDD), og integrerede udviklingsmiljøer er på vej til Linux. Netop nu er KDeveloper og Code Warrior kommet til Linux i de første udgaver.


2.2.6. Netværk

Linux kan fungere som server i hjemmenetværket, hvis du har sådan et. Den kan sagtens være name-, DHCP-, fil-, print- og web-server, og endda klare alle opgaverne på samme tid. Linux kan også være en meget kraftig filserver for Windows og Mac. Hvis Linux-maskinen er sat rigtigt op og administreres fornuftigt, er Linux langt mere sikker på et netværk, end Windows er. For den erfarne UNIX administrator er det nemt at få overvågning og firewall sat op, så der lukkes af for de kendte sikkerhedshuller. Virus er heller ikke et reelt problem.


2.2.7. Teknisk dokumentation

Der findes fremragende Linux-programmer til teknisk dokumentation. Tekstformateringsprogrammet LaTeX er meget anvendt på universiteter, idet specielt formler kommer til at se langt mere professionelle ud, end hvad du kan lave med f.eks. Word. Skal du skrive f.eks. 100 eller 200 sider, er LaTeX et sikkert, professionelt og stabilt valg - langt bedre end f.eks. Word. Hvis du er villig til at sætte dig ind i noget sværere, kan du til gengæld også opnå virkeligt flotte resultater.


2.3. Linux har en stejl indlæringskurve

Linux er et styresystem, der er opbygget helt som andre UNIX systemer - såsom AIX, HP-UX, Solaris og Irix. Det er udviklet af programudviklere primært til programudviklere.

På Windows kommer du hurtigt i gang, men du kommer aldrig videre end "i gang". Eller, hvis du vil videre end i gang, går indlæringskurven nærmest lodret, for så skal du til at lære, hvordan Windows fejler og præcist hvordan under hvilke forhold, hvilket varierer fra maskine til maskine. Fordi Linux er så konsistent, som det er, kan du bruge din viden omkring Linux på stort set alle Linux maskiner - hver gang. På grund af Windows' inkonsistens bliver det utroligt svært at blive "rigtigt god" til Windows. Linux er både utroligt komplekst, men også utroligt simpelt, fordi hver lille "ting" udfører sin egen lille velafgrænsede opgave. Og ikke nok med det; har du lært noget af logikken bag Linux, kan den let overføres til de andre UNIX'er.

Linux er designet helt anderledes end f.eks. Windows. En Windows bruger kan genbruge en del af sin DOS/Windows erfaring på Linux - men bestemt ikke alt. Linux er beregnet til, at flere personer kan bruge computeren på en gang, evt. over et netværk. Derfor skal du logge ind på systemet med et brugernavn og et password (kodeord). Nogle synes, at det er lidt besværligt, når computeren bare skal bruges af en person derhjemme. Men Linux er indrettet med sikkerhed i højsædet, og det giver nogle fordele. Du kan ikke komme til at ødelægge systemfiler, når du er logget ind med dit almindelige brugernavn. Hvis du kommer til at køre et program med virus i, kan dette heller ikke ødelægge systemfilerne, hvis du kører det som almindelig bruger. Kun hvis du er logget ind som "administrator" (som har brugernavnet root), kan du få adgang til at ødelægge eller ændre systemets centrale dele.

Desuden kan det være smart, hvis du har en familie, at de forskellige familiemedlemmer har hvert deres brugernavn. På den måde kan hver person have sin foretrukne grafiske brugergrænseflade og opsætning, og det er let at holde styr på de forskellige familiemedlemmers filer. Linux gør det muligt, at ethvert medlem af familien har et "privatliv" på computeren, dvs. lillebror kan ikke læse storesøsters kærestebreve (hvilket storesøster typisk vil være glad for).

Mange ting er ganske anderledes bygget op i Linux end i Windows, og du skal regne med, at du ikke kan alt med Linux samme dag, du har installeret det. Du kommer til at skulle læse om Linux og spørge andre om hjælp - der er til gengæld mange, som gerne vil hjælpe. Som regel er der masser af hjælp at hente via Internettet, enten via nyhedsgrupper (newsgroups) eller hos en af de mange Linux-grupper (LUG'er) - se Kapitel 9.


2.4. Linux kan alt

UNIX og Linux er i virkeligheden baseret på, at du skriver kommandoer til computeren, ligesom man gjorde i DOS. Du kan gøre "alt" med systemet fra en kommandolinje i Linux; det er meget mere avanceret end DOS. Der er så mange smarte kommandoer i Linux-systemet, som kan sammensættes og hurtigt løse problemer, som ellers kunne tage tid. Det er bla. her, Linux er overlegen i forhold til Windows. Windows er i langt højere grad baseret på, at du må finde dig i, at du kan nogle bestemte ting på en bestemt måde, og der er andre ting, du bare ikke kan. Linux er måske sværere, men man kan "alt".

Har du ikke lyst til at lære tekstbaserede kommandoer overhovedet, er Linux måske lige på kanten til at være interessant for dig.

Du kan dog komme langt med grafiske værktøjer i Linux, og den daglige brug kan sagtens foregå uden at taste kryptiske kommandoer ind - også installation og afinstallation af nye programmer kan køre grafisk. Men skal du selv installere specielle programmer og konfigurere systemet, kommer du ikke uden om kommandolinjen.


2.5. Linux er ikke enten-eller

Findes dine favoritprogrammer endnu ikke til Linux, og vil du alligevel gerne i gang med at prøve Linux, findes der råd. Det er muligt at køre både Linux og Windows på den samme computer.


2.5.1. Dual boot

Der er flere muligheder. Den mest udbredte er at køre dem hver for sig. Dvs. du ved opstart af computeren vælger, om du vil starte Linux eller Windows. Dette kaldes dual boot. Starter du Windows, kan du kun køre Windows programmer og læse dine Windows data. Starter du Linux, kan du kun køre Linux programmer, men du kan læse og skrive både på Windows drevene og Linux filsystemet.


2.5.2. Virtual machine

Den anden mulighed er at starte Linux og derefter starte Windows i et vindue under Linux, hvor det kører på en såkaldt virtuel maskine - dvs. hele processoren og kobling til maskinen emuleres. Dette kan gøres med programmet VMware, som kan findes på http://www.vmware.com VMware koster $299 (dog billigere for bl.a. studerende).

Så kan du køre dine Windows programmer samtidigt med, at du kører dine Linux programmer - og principielt kan alle programmer køre. VMware kræver naturligvis, at Windows er installeret på computeren, og prisen er, at din maskine skal være ret kraftig - både CPU (gerne mere end 266 MHz Pentium II) og RAM (gerne 128 MB).


2.5.3. Windows emulering

En tredje mulighed for at køre Windows programmer under Linux er at bruge en Windows emulator under Linux. Der findes f.eks. en, der hedder WINE, som kan findes på http://www.winehq.com. Det er ikke alle Windows programmer, der kan køre under WINE.


2.6. Linux distributioner

Der findes en og kun en type Linux-kerne - men forskellige Linux distributioner (i skrivende stund findes der mindst 75 forskellige). Det kan godt virke forvirrende i starten, at du skal vælge. Fælles for alle distributionerne er, at de kører med den samme stabile og fleksible Linux-kerne, som egentlig er det, der hedder Linux. Kernen er den centrale del af systemet, som håndterer processer, adgang til disk og meget andet. Forskellene mellem de forskellige distributioner består i, at det er forskellige firmaer/organisationer, der står for udgivelsen. De vælger, hvilke programmer der skal følge med, og lægger det på en CDROM.

En af de væsenligste forskelle er installationsprogrammet og sværhedsgraden af dette. En anden forskel er konfigurationsværktøjerne og måden, man lettest installerer nye programmer på. Normalt kan de samme programmer dog køre på alle Linux-distributioner.

De mest kendte distributioner er:

  • Red Hat Linux (http://www.redhat.com): God for begyndere, meget udbredt. GNOME og KDE er med. En variant af Red Hat hedder Mandrake.

  • SuSE Linux (http://www.suse.com): God for begyndere, mange skærmkort understøttet. Udgives af tysk firma, men kan køre med dansk eller engelsk sprog. KDE og GNOME er med.

  • Debian GNU/Linux (http://www.debian.org): Engelsk. Noget sværere at installere, men til gengæld er Debian i den ægte frie softwares ånd. Den udgives af en organisation og ikke et firma, og der er ikke kommercielle interesser involveret.

  • Calderas OpenLinux (http://www.calderasystems.com): Udgives af firmaet Caldera Systems. Den kan ikke kopieres frit, eftersom Caldera leverer en række kommercielle programmer, f.eks. StarOffice, BRU (backup) og PartitionMagic. Distributionen er ret nem at gå til, men mangler de tekstbaserede værktøjer, som andre Linux-distributioner har. Desuden kræver OpenLinux 2.2 en del ydelse af maskinen og installationen kan være problematisk, men til gengæld så er installationen grafisk hele vejen og ser godt ud.

  • Stormix (http://www.stormix.com): Ret ny distribution baseret på Debian. Skulle være ret nem at installere og har et administrationssystem med (SAS).

  • Corel Linux (http://linux.corel.com): Ret ny distribution baseret på Debian. Er virkelig fokuseret på Linux som et alternativ på kontorpc'en. Installationen er meget nem og brugergrænsefladen lægger sig tæt op ad Windows 98, så tidligere Windows-brugere straks føler sig hjemme.

Typisk kan Linux-distributioner hentes gratis ned fra Internettet, men dette kan ikke anbefales, da de fylder meget - ofte 500 MB og derover. Man kan som regel få fat i en CDROM til 50-100 kr eller låne en gratis. De fleste Linux-distributioner kan i øvrigt kopieres lovligt til andre interesserede. Mange EDB-blade har fra tid til anden en Linux CDROM med i bladet.


2.7. Hardware

Det er ikke al hardware, der fungerer under Linux. Dette skyldes, at de fleste hardware-producenter ikke udvikler drivere til Linux, som de gør det til Windows. Ligesom spilproducenterne vil de først gøre det, når forbrugerne kræver det. Derfor er de fleste drivere til Linux udviklet af dygtige frivillige programmører ligesom Linux selv. Men det kan være svært eller umuligt at skrive en driver, hvis producenten ikke vil ud med detaljerne omkring, hvordan hardwaren fungerer. Desuden skriver folk som regel mest drivere til den hardware, de selv har adgang til. Derfor er det en god ide at kontrollere, om din hardware er understøttet, før du beslutter dig for at skifte til Linux. Oplysningerne kan som regel findes på Internettet. Søg efter Linux og så navnet på din hardware.

Du kan dog roligt regne med, at de såkaldte Win-modems og Win-printere ikke kører under Linux. Om printere er af en sådan type kan oftest ses på om den ikke er DOS-kompatibel og ikke har noget hukommelse.


3. Copyright

Denne bog er skrevet og redigeret af Peter Toft, Snebjørn Andersen og Kenneth Geisshirt, som har copyright på bogen. Bogen kan findes i opdateret form på SSLUG's hjemmesider: http://www.sslug.dk/linuxbog/. Bogen er udgivet under Open Contents License [OPL], der er helt analog til GNU General Public License.

Alle er velkomne til at trykke bogen og tjene de penge på salget, som de ønsker. Eventuelle indtægter er os uvedkommende, men vi vil være glade for at vide, at den udgives. Licensen kan findes på http://www.opencontent.org/opl.shtml. Nogle dele af bogen er skrevet af andre forfattere, hvilket er nævnt i afsnit 5.

Kommentarer, ris og ros og specielt fejl og mangler bedes sendt til linuxbog@sslug.dk.

MSDOS (DOS), Microsoft, Windows 95/98, Windows NT og Windows 2000 er registrerede varemærker ejet af Microsoft Corporation.

UNIX er et registreret varemærke ejet af The Open Group.

Linux er et registreret varemærke ejet af Linus Torvalds.

Alle andre varemærker er ejet af deres respektive firmaer.


4. Om forfatterne

Vi, forfatterne, har anvendt Linux i flere år og har stor erfaring med det. Vi er medlemmer af Skåne Sjælland Linux User Group (SSLUG), som er en uafhængig og non-profit svensk/dansk organisation, der søger at udbrede kendskabet til Linux. Det er gratis at være medlem af SSLUG, og organisationen findes på Internettet på http://www.sslug.dk Vi har skrevet denne bog fordi den kunne være til glæde for andre.

Peter Toft er civilingeniør og har en ph.d.-grad fra DTU. Han har kørt Linux dagligt siden 1994. Aktiv foredragsholder om Linux i Danmark og Sverige. Bestyrelsesformand for SSLUG. Medorganisator ved Linux98 og Open Networks 99 konferencerne. Hjemmeside http://www.sslug.dk/~pto

Kenneth Geisshirt er cand.scient. fra Københavns Universitet og har en ph.d.-grad i kemi fra RUC. Han har anvendt Linux siden 1993 og har givet talrige foredrag om Linux. Tidligere medlem af bestyrelsen for SSLUG, medorganisator ved Linux98 konferencen og aktiv i DKUUG. Hjemmeside http://www.sslug.dk/~kneth

Snebjørn Andersen er en erfaren programmør på mange styresystemer og er netværksspecialist. Aktiv Linux-bruger siden 1995. Han er endvidere med i redaktionen af SSLUG's hjemmesider.


5. Vi siger tak for hjælpen

Vi har haft stor glæde af mange SSLUG-medlemmers støtte, rettelser og forslag til forbedringer - bliv ved med dette. Specielt vil vi nævne:

  • Hanne Munkholm for introduktionen til bogen, som er skrevet af Hanne Munkholm og Peter Toft og udgivet som artiklen "Linux på hjemme-computeren - er Linux noget for dig?". Artiklen er under OPL-licens og findes på http://www.sslug.dk/artikler/ErLinuxNogetForDig.html. Hanne Munkholm takkes også for en stribe gode rettelser og for udlån af Tux.

  • Lars Madsen for afsnittet om Samba.

  • Lars Lyngby Nielsen for afsnittet om NT bootloader og for igennem mange omgange at have rettet en stribe fejl og mangler.

  • Jesper Laisen for en gennemgribende revision af hele bogen mht. sprog og specielt kommaer.

  • John B. Jacobsen for at have skrevet hovedparten af afsnittet om installation af Debian 2.1.

  • Forlaget GLOBE for en stor sproglig revision.

  • SuSE i Tyskland og USA for at sende os billeder af SuSE installation.

  • Kaare Rasmussen fra SuSE Danmark for det oprindelige afsnit om installation af SuSE og sponsorat af SuSE 6.0.

  • Ole Tange for en stor indsats med mange rettelser og for afsnittet om DNS.

  • Rolf Larsen for gentagne gange at have læst bogen fra ende til anden og aflevere en stribe rettelser til hele bogen.

  • Søren Lund og Jan Kofoed for håndtering af Microsoft Wheelmouse og fejlfinding.

  • Arne Haaning for en masse nyttige UNIX/Linux kommandoer, som vi tog med.

  • Mogens Kjær for en Red Hat 6.1 CDROM.

  • Claus Sørensen for sproglige rettelser i forordet.

  • Hans Schou for en utrættelig kamp for at rette i bogen og at udgive den.

  • Katja Blankensteiner for en lang stribe sproglige rettelser og en støtte igennem hele projektet.

  • Stephan Kaas Johansen for at have skrevet afsnittet om 3D kort, og hvordan man får 3D til at køre under Linux. Stephan har også skrevet en dybere forklaring af filtræet.

  • Henrik Carling og Xantus AB for sponsorering af CDROM-drev.

  • Torben Fjerdingstad for at finde en stribe fejl.

  • Jonas Nielsen for en stribe forbedringer, bl.a. vi og emacs kommandoer.

  • Morten S. Nielsen for at finde en række fejl og mangler.

  • Carsten Svaneborg for at finde en række fejl og at give gode input til nye ting.

  • Lars Sørensen for mere forklaring omkring de grundlæggende UNIX ting.

  • Ole J. Utnes for at generere PDF filer af bogen igennem mange versioner af bogen. Ole er fra Norge, og det gør det bare sjovere. Vi takker Ole mange gange.

  • Peter Stubbe for en stribe rettelser.

  • Rune Christensen for at finde fejl samt hjælp til nyt grafisk layout til hjemmesiden for bogen.

  • Brian Graversen for hjælp med True Type font server.

  • Stig Linander for en stribe rettelser og afsnit om jokertegnet og shell.

  • Hans Christian Andersen for at hjælpe en del til afsnittet om fips og partitionering.

  • Mads Bondo Dydensborg har i en mail til sslug-teknik lavet vejledning til opsætning af kppp, som også er anvendt i bogen.

  • Kristian Støchkel, Jan Vestergaard Larsen, Niels Damgaard, Frank Damgaard, Henrik Lundquist, Poul Petersen, Anders Ebbesen, Allan Jacobsen, Jacob Sparre Andersen, Jesper Møller, Henrik Christian Grove, Anders Melchiorsen, Lars Scheele Jensen, Niels Kristian Bech Jensen, Jørgen I. Østergaard, Thomas Mørch, Olav Pedersen, Michael Jacobsen, Jens Bygum, Martin Lykke, Dan Windekilde, Jakob Hilmer, Morten Olsen, Niels Sandmann, Palle Arentoft, Peter Seidler, Thomas Petersen, Svend Erik Venstrup-Nielsen, Ingvar Blychert, Rune Tønnesen, Niels Damgaard, Jacob I. Christensen, Allan Olesen, Gunner Poulsen, Rune Tonnesen, Birger Langkjer, Danni Finne, Erik Søe Sørensen, Carsten Nordstrøm Jensen, Kristian Stoechkel, Klaus Hebsgaard og Knud Haugaard Sørensen for at finde småfejl eller komme med mindre (men gode) tilføjelser.

Du kan i Appendiks D finde en liste over alle de revisioner, som bogen har været igennem.


6. Typografi

Vi vil afslutte indledningen med at nævne den anvendte typografi.

  • Navne på filer og kataloger skrevet som foo.bar

  • Kommandoer, du udfører ved at taste, skrives som help

  • Der er flere steder i bogen, hvor vi viser, hvad brugeren taster, og hvad Linux svarer. Det vil se ud som:

     Det her taster brugeren
    Det her svarer Linux


Kapitel 1. Hvad er Linux?

1.1. Friheden til at vælge

Der foregår en revolution på PC-fronten i disse dage, hvor DOS omsider er død og er blevet afløst af nye styresystemer - i høj af grad Windows 98, NT og 2000. På UNIX-fronten er Linux på vej frem med stor hastighed. Analyser af computermarkedet viser, at antallet af Linux-installationer fordobles hvert år (i 1998 havde Linux en vækst på 212%). I industrien og i forretningsverdenen er det i øjeblikket umiddelbart kun Windows NT og Linux, der har fremgang. Linux er derfor et system, som i styrke og antal installationer må tages seriøst af alle. Mange oplever det også som et frisk pust og et reelt alternativ til Microsofts monopollignende status.

Der kan være mange grunde til, at du kan have glæde af Linux. Her er et par grunde:

  • Linux er et reelt alternativ til andre systemer - såsom Windows NT og 2000. Alle undersøgelser peger på, at Linux er på vej frem - og i et forrygende tempo.

  • Linux er stabilt og har været stabilt i flere år på trods af et ekstremt højt udviklingstempo.

  • For en systemadministrator er Linux suverænt, da det er nemt at vedligeholde.

  • Vil du lære, hvordan netværk, oversættere, firewalls, CGI-scripts, Java, web-servere osv. virker, er Linux perfekt. Du har endda kildeteksten til programmerne, så du kan pille i dem alle, rette fejl eller implementere netop den funktion, du mangler.

  • Linux er sikkert. Du kan kun rode med systemet, hvis du er systemadministrator. Som almindelig bruger kan du kun ødelægge dine egne ting og ikke konfigurationsfiler.

  • Linux er højtydende og kræver ikke megen RAM eller CPU, men det er alligevel en del bedre til multitasking end f.eks. Windows 95/98 og NT.

  • Linux er en god udviklingsplatform. Installerer du en Linux distribution, har du med det samme alle de værktøjer, du behøver til at udvikle softwareløsninger; blandt andet C, C++, Fortran, Java, CGI, PHP, HTML og SQL.

  • Linux er en god server - også for andre systemer. Du kan nemt bruge en ældre PC som kraftig server for et netværk bestående af UNIX, Windows, Mac og Novell Netware.

  • Linux har både gratis og kommerciel support. Der er allerede nu en række konsulenter og flere store velanskrevne firmaer i Danmark, som tilbyder professionel support.

  • En Linux-maskine kan du gøre til, hvad du vil. Skal den kun kunne anvendes til få ting og være ekstremt sikker (f.eks. en firewall), kan den sættes op til det. Skal den kunne håndtere mail, være webserver, newsserver, ftp-server, filserver for Windows klienter og andet - samtidigt - kan den det.

  • Udvikling af Linux applikationer sker i et meget højt tempo. Der kommer dagligt mange nye udgaver af Linux applikationer, og mange store firmaer understøtter nu officielt Linux - bl.a. Intel, SUN, Corel, IBM, DELL og Oracle.

  • Linux er virkelig gennemtænkt. Du vil meget sjældent opleve frustrationen over, at systemet har en underlig fejl, som du bare må leve med (f.eks. at maskinen fryser tilfældigt). Software er generelt skrevet med stor omtanke, er gennemarbejdet og har stor funktionalitet.


1.2. Åben kildetekst - Open Source

Linux er ikke som meget andet software ejet af et firma, men i stedet beskyttet under GNU General Public License (GPL). GPL betyder, at softwaren må kopieres, så længe man ikke hindrer dens frie bevægelighed. Man skal altid stille kildeteksten (source code) til rådighed for alle, der måtte ønske det. Meget andet UNIX software er også under GPL eller lignende licenser.

På det seneste er GPL ved at blive suppleret af begrebet Open Source, som er blevet introduceret for at gøre det klart, at det handler om åben adgang til kildeteksten. Open Source er i høj grad det ord, som du vil høre mange gange som fællesnævner for programmer, der er frigivet under en licens, som gør det muligt at kopiere, modificere og videregive kildeteksten til programmet. Der er flere typer licenser, som gør et program til et Open Source program. GPL er et godt eksempel på en Open Source licens.

I modsætning til mange firmaers udvikling af software udvikles Linux-programmer af mange mennesker, der rundt om i verden deler interesser og laver Open Source programmer til glæde for os alle - også selv om man i et udviklingsteam aldrig har set hinanden. De, der deltager i udviklingen af et Open Source program, modtager som sjældent penge for deres indsats, men får til gengæld opmærksomhed og beundring fra os brugere bagefter. De viser samtidig en potentiel arbejdsgiver, hvor dygtige de er. På grund af det enorme omfang, som Internettet har opnået, eksisterer der nu et hav af udviklingsprojekter, som låner kode af hinanden og leverer fri software af høj kvalitet - ofte med en meget lille udviklingstid.

Linux-programmer er oftest beskyttet som Open Source, og dermed har alle gratis adgang til program og kildetekst. Det betyder dog ikke, at al software til Linux nødvendigvis skal være Open Source og gratis. Det er frit for enhver at fremstille kommercielle programmer og sælge disse til Linux-brugere. Professionelle programmer som matematikprogrammer (Matlab og Mathematica), officepakker (ApplixWare og StarOffice) og programmer fra Corel sælges til Linux. Faktisk har Corel meddelt, at Linux nu er en af de platforme, der skal understøttes fuldt ud. Allerede nu findes WordPerfect til Linux, og andre af Corels produkter er på vej. Oracle og Informix er meget store firmaer inden for databaser, og begge har Linux-versioner af deres software. Intel har ligeledes meldt ud, at de støtter Linux. Det skal også nævnes, at det meget kendte program Netscape Navigator startede som kommercielt program, men bliver i dag videreudviklet som Open Source.

Linux-verdenen er kendetegnet ved en åbenhed og tolerance, hvor grænser og kulturskel ikke er væsentlige. Det er normalt nemt at finde ud af, hvem der har skrevet et program, og du kan kontakte vedkommende direkte per e-post. Med lidt interesse og engagement kan du hurtigt komme i dialog med programmøren og være med til at skabe Linux-programmernes fremtid. Internettet er blevet en global arbejdsplads (og legeplads) med kommunikation som bærende element.

Du kan læse mere om Open Source på følgende steder:


1.3. Linux er god til mange ting - samtidigt

Linux er i sig selv lavet til at udnytte netværk. Da Linux er et styresystem, der er født med multitasking og designet til at give stor ydelse, kan du uden større problemer samtidigt køre webserver, remote login, udbydelse af anonym FTP, anvendelse af diske på andre maskiner, udnyttelse af netværksprintere, email-server, newsgroup-server, søge i databaser og surfe på Internettet.

Linux er et 32-bit styresystem til PC og andre platforme (64-bit til Alpha), som enten kan erstatte DOS/Windows fuldstændigt eller installeres på samme maskine som disse. De basale operationer er normalt tekstbaserede, men efterhånden er der også mulighed for at benytte grafiske værktøjer. Fra Microsoft-verdenen kender de fleste problemet med, at installation af et program meget ofte skal afsluttes med en genstart af maskinen, hvilket er kedeligt, hvis der skal tredive sikkerhedsopdateringer på maskinen. Linux er derimod nemt at vedligeholde for en erfaren systemadministrator, da nye programmer normalt kan installeres over netværket. Systemadministratoren skal således ikke fysisk i nærheden af maskinen. En anden stor fordel er, at Linux-maskinen kan opgraderes, mens den kører uden at skulle genstartes.

I modsætning til Windows 95/98 kører programmerne under Linux i ægte multitasking. Hvis et program er gået ned, kan det blot afsluttes fra Linux uden, at dette påvirker stabiliteten af de øvrige programmer. På den enkelte Linux-maskine kan flere personer dele maskinen (også på samme tid) og undgå det rod, der tit opstår på en DOS/Windows PC med forskellige opsætningsfiler, der ændres uden central styring. På enhver Linux-maskine er der en "superbruger", kaldet root, som er administrator af maskinen. Kun root kan ændre den generelle opsætning. Hver bruger oprettes på lige fod med andre og har normalt ikke rettigheder til at slette eller ændre i andre brugeres filer og slet ikke systemets filer. Den enkelte bruger kobler sig på med sit brugernavn og en privat adgangskode. Hvis man ikke har adgangskoden, kan man ikke komme ind på maskinen.

I UNIX-verdenen hedder det grafiske vinduesystem X Window System (i daglig tale X), og det følger også med til Linux. X-systemet er meget stabilt og er teknisk set forud for andre alternativer. Den store fordel ved X er, at du via en netværksforbindelse kan koble dig på andre UNIX-arbejdsstationer og køre programmer på disse maskiner. Programmerne kan være grafisk baserede, og det grafiske output vises på din skærm. Hver enkelt bruger kan vælge sin egen opsætning, så programmerne kører med de vante farver, skrifttyper osv.

For at køre Linux med grafisk brugergrænseflade kræves mindst en 386 PC med 8 MB hukommelse og minimum 50 MB harddisk. Normalt vil du dog få meget større glæde af Linux-maskinen med 16 eller 32 MB hukommelse; f.eks. vil en 166 MHz Pentium PC med 32 MB hukommelse og 500 MB harddisk give en potent UNIX-arbejdsstation. Den arbejder hurtigt, du får masser af programmer, og systemet er meget stabilt - altsammen for meget få penge. Det skal også nævnes, at nok har de fleste en Intel baseret maskine, men Linux kører også fint på mange andre platforme.


1.4. Hvor bruges Linux i dag?

Linux er i dag installeret af mange teknisk interesserede mennesker hjemme og/eller på arbejdet. Mange installerer Linux og erstatter eller supplerer Windows med Linux - enten på grund af de nye muligheder, der ligger i Linux, eller på grund af utilfredshed med f.eks. Windows programmers manglende stabilitet.

Mange firmaer bruger Linux som filerserver for Windows-klienter. Pga. af stor ydelse og en endnu bedre stabilitet kommer Linux her ind og overtager Windows NT funktioner - og gør det bedre. Mange firmaer ønsker webservere med database tilgang, som skal kunne yde meget. Også her er Linux et godt valg.

Internetudbydere anvender hyppigt Linux på grund af god skalerbarhed, høj driftsikkerhed, let vedligeholdelse og en meget hurtig adgang til nyheder om sikkerhedsproblemer og løsninger på disse. World Online A/S (tidligere Image Scandinavia) er en af de største internetudbydere i Danmark og bruger Linux som platform.

På flere universiteter og andre læreanstalter er Linux blevet meget udbredt på grund af adgangen til gratis programmer og muligheden for at lave flerbrugersystemer til mange studerende. Mange firmaer kører Linux i dag, enten for at få gode udviklingsplatforme, som filservere eller som oftest som firewalls til at afskærme firmanetværk mod Internettet.

Internationalt er Linux kernen i store WAN (Wide Area Network) systemer. Her kan nævnes IKEA, US Postal Services, NASA og CERN, der alle er karakteriseret ved, at de ikke nemt kunne få opfyldt specialiserede ønsker hos de etablerede edb-leverandører. I stedet har de valgt at få fuld adgang til hele systemkoden og derefter lave præcis det system, de ønsker.

En række danske firmaer - anført af Dansk Data Elektronik, SuperUsers, Kampsax Technology og Plomus - sælger specialløsninger og konsulent-tjenester baseret på Linux. Den mest kendte succeshistorie er nok TeVefonen på TV-2's tekst-tv, som blev lavet af den danske afdeling af Grundig TV i samarbejde med 2M Electronic, der også udvikler betalingstv-løsninger til hoteller på Linux. En anden succes historie er printerserver firmaet I-data, som baserer mange produkter på Linux.


1.5. Historien bag Linux

Hele projektet tog sin begyndelse på et universitet i Finland omkring 1990. Linus Torvalds tog et UNIX kursus på universitetet. Da han ikke havde råd til at købe en kommerciel UNIX, valgte han at bruge Minix. Minix er skrevet af professor Andrew S. Tanenbaum ved Vrije Universitetet i Holland. Kildeteksten til dette system fulgte med, men Linus var ikke tilfreds med det - hverken design eller performance. Hans projekt, som den hacker han jo er, gik derfor ud på at lave en bedre Minix end Minix. I øvrigt ville Linus først have kaldt det for FREIX, en kombination af freak og UNIX, men personen, som administrerede ftp-serveren, hvorfra Linus offentliggjorde systemet syntes, at Linux var bedre.

I modsætning til andre var Linus visionær og havde en god timing. Den 25. august 1991 indbød han gennem en nyhedsgruppe på det meget spæde Internet andre til at deltage i projektet. Han overdrev ikke om, hvad han havde lavet indtil da: "...it will probably never support anything other than AT-harddisks". Der er sket meget siden, hvor Linus og mange tusinde softwareudviklere fra hele verden har været med til at skabe et professionelt multitaskingsystem. I dag er der understøttelse af en utrolig stor mængde hardware og til mange platforme ud over PC.

Kendetegnet for det nye Linux-projekt var, at det skulle være et frit UNIX-lignende styresystem til Intel 80386 maskiner, og at enhver skulle have lov til at arbejde med kildeteksten og lave tilføjelser. Hvis andres tilføjelser til kildeteksten gjorde, at Linux virkede bedre, blev en ny version af Linux frigivet med tilføjelserne.

Linux version 0.01, der blev frigivet 17. september 1991, kunne oversættes på en Minix-maskine og var ikke andet end et stykke legetøj. Tingene tog dog hurtigt fart: 5. oktober 1991 blev Linux version 0.02 annonceret - en kommandofortolker (BASH) og en frit tilgængelig C-oversætter (GNU C compiler) kørte, men ikke meget mere. Linux var stadig afhængig af Minix, og Linus' vurdering var på det tidspunkt, at det nok mest var et hobbyprojekt, da Linus forventede, at en anden fri UNIX - med navnet HURD - snart ville blive frigivet. HURD skulle være bedre designet end Linux, men er i skrivende stund stadig ikke klar til almindelig brug! Mottoet er tilsyneladende: "Den, der venter på noget godt, venter aldrig for længe". I mellemtiden har historien vist, at Linux var værd at satse på

Kort før julen 1991 blev version 0.11 frigivet, og nu var Linux et selvstændigt system. Minix var ikke længere nødvendig. På det tidspunkt blev der frigivet nye versioner ca. hver 14. dag eller oftere. Kernen var hverken fejlfri eller fuldt udviklet. Det var virkelig et system fra dengang, hvor "Mænd var mænd og skrev deres egne device-drivere" - citat Linus Torvalds.

Derefter gik det slag i slag under dygtig ledelse af Linus selv. Allerede to år senere havde Linux virkelig taget form. Der var allerede på det tidspunkt gratis Linux-distributioner til rådighed på Internettet. På den måde kunne man nu installere styresystemet, et hav af UNIX-værktøjer, LaTeX (til at skrive rapporter) samt oversættere til Pascal, C, og C++. X vinduesystemet kørte næsten stabilt. Selve kernen var i starten af 1994 ved at nå den magiske version 1.00, som var det første stabile mål. Siden hen er udviklingstempoet mangedoblet, og nye kerner kommer ofte. Normalt er det ikke nødvendigt at følge med dette tempo, men det understreger den rivende udvikling, der er i gang. Understøttelse af ny hardware kommer meget hurtigt. Udviklingen sker jo i en dynamisk verden med nem og hurtig kontakt vha. e-post mellem alle, som deltager i udviklingen af fremtidens Linux-systemer.

Det kan nævnes, at i 1992 var der ca. 1000 personer, som kørte Linux, og kildeteksten til Linux kernen var på ca. 40.000 linjers tekst. I dag (januar 2000) med Linux kerne 2.2.14, er kerneteksten vokset til over 1.5 millioner linjer, og den indeholder over 42 millioner tegn. Antallet af Linux-brugere er tilsvarende vokset til mellem 10 og 20 millioner.

Endelig skal det retfærdigvis også nævnes, at Linux aldrig har fået så stor succes, hvis det ikke var for GNU software (se GNU logoet i Figur 1-2). GNU er en samling af højkvalitetssoftware, udviklet af Free Software Foundation (FSF). FSF ledes af Richard M. Stallman (RMS), som startede og er hoveddrivkraft i udviklingen af GNU Emacs (en stærk editor) og GNU C compileren. GNU software er i dag et vigtig hjørnesten af alle Linux distributioner.


1.6. Valg af distribution

Vi har i denne bog primært set på installation af de to Linux distributioner Red Hat og SuSE til PC.

Selv om man kan køre Linux på mange platforme - PC, PowerPC, Sparc, Alpha og flere andre - er Intel kompatible PC'ere så udbredte, at vi har valgt at fokusere på dem. Desuden er der hertil efterhånden en hel stribe Linux-distributioner, dvs. en samling af Linux programmer, der sammen med Linux-kernen udgør et fuldstændigt system med enormt mange værktøjer og programmeringssprog.

Vi har valgt Red Hat og SuSE, fordi de begge er nemme distributioner at gå til for en begynder og at de er udbredte - dvs. der er mange folk som kan hjælpe dig med at installere. Både Red Hat og SuSE har en markedsandel på omkring 30 %. For den mere erfarne er de to distibutioner stadig et godt valg. Af andre kendte distributioner er der Slackware - som har været god, Mandrake - som er en Red Hat variant og Debian - som ikke er helt nem at installere, men som er teknisk rigtig god og drevet af en stor non-profit organisation :-) I Appendiks C kan findes mere information om at få installeret Debian. Corel Linux og Open Linux fra Calera er også værd at følge. Corel Linux er baseret på Debian og kan blive særdeles interessant de næste par måneder.

De fleste af distributionerne kommer med en licens, som gør at du frit må kopiere Linux CDROM'erne, men se dig lidt for. Debian er fri - og kan altid kopieres frit. SuSE, Red Hat og Corel har alle en 1-CD version, der kan kopieres frit. Open Linux fra Caledera må ikke kopieres og både Red Hat og SuSE sælger store værker med 5-6 CDROM'er, hvor der på nogle af skiverne er ikke-frie programmer du ikke kan kopiere lovligt.


1.7. Bøger og dokumentation

Før du skal igang med at installere, vil vi nævne, at der på en Red Hat CDROM findes en hel del dokumentation. Filen /doc/rhmanual/manual/index.htm er starten på en bog, hvor der står en masse om installation og drift af et Red Hat system. En bog "Red Hat - getting started" kan du finde på samme CDROM under /doc/rhgsg/gsg/index.htm. Generelt indeholder kataloget /doc/ en masse nyttige informationer.

På en SuSE 6.1 evaluation CDROM kan du under /docu/ finde en bog om SuSE, dog primært på tysk. En engelsk version findes også som tekst-fil eller PostScript.

Vi kan også nævne, at du måske kan have glæde af nogle bøger om Linux generelt:

  • Matt Welsh and Lar Kaufman: Running Linux, O'Reilly & Associates, Inc.

  • Volkerding et al: LINUX-Configuration and Installation M & T Books 1998, IDG Books.

  • Linux Secrets: Naba Barkakati, IDG Books.

  • Essential System Administration: AEleen Frisch, O'Reilly & Associates, 2nd edition

  • Linux - teori og praksis for pc-brugere, Christian Hildebrandt-Nielsen Teknisk Forlag 1999 (med 2 cdrommer).


Kapitel 2. Linux installation

I dette kapitel vises, hvordan du installerer Red Hat 6.1 og SuSE 6.2 og 6.3. Først er vist, hvordan Red Hat installeres og dernæst SuSE - begge er virkelig gode distributioner og lige nemme. Der er i det følgende skrevet mest om Red Hat, men det er faktisk kun, fordi SuSE folk også kan have glæde af at læse de mange generelle kommentarer, som i øjeblikket er skrevet under Red Hat installationen.

Grunden til at både SuSE 6.2 og 6.3 er med i dette kapitel er at SuSE 6.3 er meget anderledes at installere end forgængeren.

En anden distribution, som kan have din interesse, er Debian, som ikke bør være den første, du starter med, men det er måske den, du ender med. Du kan finde en installations-vejledning til Debian i Appendiks C.


2.1. Forberedelse til installation af Linux

Installation er den del af Linux, som mange mener er mest besværlig. En del folk har igennem tiderne prøvet et par gange, før det hele spiller. Fortvivl ikke, gå bare i gang. Har du tekniske problemer, er der sikkert hjælp at hente i din nærmeste Linux bruger gruppe. Dette kan du se mere om i Kapitel 9.


2.1.1. Kan min maskine bruges til Linux?

Før du tænker på at installere, er det meget klogt, at du undersøger, om din hardware er understøttet i Linux. Du kan f.eks. i Windows bruge lidt tid under dit "kontrolpanel"/"system" og skrive ned, hvilke typer hardware enheder du har på systemet og hvilke adresser, der bruges til netkort, grafikkort, lydkort og andet. Har du dette klar, bliver det nemmere at komme igennem installationen.

Generelt er det de helt nye grafikkort, som kan være et problem, og nogle laptops ligeså - men ellers kan langt de fleste maskiner køre Linux.


2.1.2. Gør din PC klar og lav backup

Hvis du starter med en Windows 95/98 maskine og skal have Linux installeret på den samme harddisk som Windows, skal du have delt harddisken op i to dele - en til hvert sit styresystem. Har du en anden harddisk, som kan bruges til at lægge Linux ind på - f.eks. en gammel 800 MB disk, så gør dette, for det er en del nemmere.

I Windows er det klogt at køre en fejlsøgning på disken og derefter en defragmentering. Dette finder du under egenskaber for disken under "Denne computer" (Windows på dansk). Evt. kan du skanne efter dårlige sektorer under DOS med ScanDisk. Finder du fejl på disken nu, er det måske tegn på, at du hellere bør købe en ny harddisk til Linux.

Før du går videre, vil det være en god ide at udskrive alle system oplysninger om computeren for at lette installation og evt. fejlfinding. Dette gøres ved at gå ind i "Denne computer" og derefter trykke på Kontrolpanel. Dobbeltklik på System og vælg fanebladet "Enhedshåndtering". I bunden af vinduet vælges udskriv. Det kan anbefales at udskrive samtlige systemoplysninger.

Det er nu, du bør tage en backup af de vigtige data på din disk. Det bør ikke gå galt, hvis du læser videre og går forsigtigt frem. Fik vi nævnt, at du bør tage backup ? :-)


2.1.3. Hvad skal der ske

Kort fortalt: Før du installerer Linux, skal der være en partition til rådighed, der er stor nok til at rumme det hele (samt en swappartition). Hvor stor er et spørgsmål om, hvad du vil tage med i installationen - se de følgende afsnit. I løbet af Linux installationen vil der blive lejlighed til at repartitionere så meget, du har behov, for inden for den plads, der nu er blevet til rådighed.

DOS/Windows (i det følgende kaldet DOS) har programmet fdisk.exe. Linux har programmerne fdisk og disk-druid. Alle programmerne er tilfredsstillende beskrevet i deres respektive dokumentationer.

Hvis du har Windows installeret, og ønsker at bevare det, efter at Linux er blevet installeret, så kan du først køre fdisk.exe i en DOS skal (ikke DOS vindue) til at skaffe pladsen på harddisken, som Linux skal bruge, og derefter bruge et af de to Linux programmer i løbet at installationsfasen. Det skyldes, at DOS har en tendens til at tage magten over hele maskinen. Hvis du derfor ved hjælp af fdisk.exe først skaber den plads som Linux skal have, går det uden problemer, da Linux udmærket kan eksistere sammen med andre styresystemer.

Fips er et DOS-program, som leveres sammen med distributionen, og som kan formindske en bestående (DOS) partition, så der kan blive plads til Linux. På Red Hat CDROM'er findes det i kataloget dosutils. Før Fips køres, skal partitionen være defragmenteret, og før defragmentering skal systemfiler markeres, så de kan flyttes rundt på harddisken. Hvis Windows9x er installeret, skal du bruge dens defragmenteringsprogram og ikke et, der ellers kan køre under DOS uden Windows (defrag eller Norton's speeddisk).

Selvom vi gennemgår brugen af Fips, skal vi indrømme, at et program som Partition Magic er langt bedre, og det kan downloades fra Internet. Det er gratis i en prøveperiode.

Hvis du har disketter og/eller CDROM, så du til enhver tid kan geninstallere dine DOS programmer, kan du slette alt på disken og genopbygge alt på en ren disk. Først DOS programmerne og derefter Linux.

Det kan også være fristende at gå den lettere vej, nemlig at reservere en hel harddisk til Linux, så du i en overgangstid kan veksle mellem en DOS disk og en Linux disk.

Skulle det i løbet af anstrengelserne blive nødvendigt at fjerne en mislykket Linux installation fra harddisken og begynde forfra med DOS, vil du få brug for at have en DOS boot diskette, som blandt andet skal indeholde DOS fdisk.exe. Fdisk kan køre med en (udokumenteret) option fdisk /mbr, som kan fjerne de registreringer, Linux måtte have lagt i diskens master boot record (det vil vi minde dig om et par gange).


2.1.4. Opdele en DOS/Windows harddisk til Linux

Harddisken skal nu deles mellem Linux og Windows. Dette gøres ved, at du indsætter din Linux CDROM og finder DOS-programmet fips.exe, som du skal starte under DOS - IKKE under Windows eller OS/2. Læs i øvrigt dokumentationen til Fips! Har du to versioner af fips.exe, så brug den nyeste (fips20).

Programmet fips vil vise dig, at du har en partition med Windows (det er det mest normale). Tryk return for at komme til næste skærmbillede. Lav gerne en backup til en formatteret diskette ved at trykke y (for yes) to gange.

Nu vil Fips fortælle, at den foreslår at dele disken i to partitioner, så du skal nu til at vurdere, hvor meget plads du vil bruge på hver af de to partitioner. Brug venstre og højre pil til at ændre fordelingen, hvor Old partition er størrelsen på din Windows partition. Husk, at du bør lave noget fri plads til udvidelse af Windows programmer, selvom du nok senere hen vil mene, at du hellere vil have pladsen under Linux. Det er dit valg. Tryk derefter c for continue, og derefter genstartes maskinen med mindre plads under Windows. Din ekstra DOS partition skal senere slettes for at give plads til mindst en Linux partition og en Linux swappartition.

Vi kan lige nævne, at hvis du har en Windows 95 installeret, som er fra før 1996 (final beta release), så er der set problemer (for Windows 95), hvis Linux installeres på "extended partitions". Problemet eksisterer ikke med officielt releasede Windows versioner - det er kun final beta og tidligere, der har problemer.


2.2. Installation af Red Hat Linux 6.1 (Cartman)

Version 6.1 (Cartman) er seneste Red Hat version. Der er lagt meget stor vægt på brugervenligheden; både i forbindelse med installationen og den daglige administration af systemet. Langt det meste af, hvad der tidligere krævede stor indsigt i formatet af diverse konfigurationsfiler, kan nu håndteres ved hjælp af det grafisk baserede værktøj control-panel eller det nye linuxconf, der ikke kun kan køres via den grafiske brugergrænseflade i X Window systemet, men også kan fungere rent tekstbaseret eller via et web-interface.

Ud over at være nem at installere og administrere må Red Hat Linux også siges at være fuldstændigt med hensyn til udvalget af applikationer. Alle traditionelle Linux-programmer plus en hel del nye ligger klar til at installere fra CDROM'en.


2.2.1. Nyheder i Red Hat 6.1

I modsætning til Red Hat 6.0 er der nu mulighed for grafiske installationsmenuer. Det svarer til hvad Caldera OpenLinux 2.2 har, men meget bedre udført.

Linux 2.2.12 kernen er med. Der er en væsentlig forbedring i performance for SMP maskiner (fler-processor systemer), og der er bedre understøttelse for RAID (diskmirror systemer). Der er bedre udnyttelse af Pentium I, II og III og tilsvarende for AMD og Cyrix processorer.

Ligesom i Red Hat 6.0 er de professionelle grafiske brugergrænseflader GNOME (se http://www.gnome.org) og KDE (se http://www.kde.org) begge med. KDE er nået til version 1.1.2. Det er mere krævende systemer, men fuldt på højde med f.eks. Windows (faktisk bedre).

Der er nu væsentlig bedre interface til "Select individual packages", dvs. at du selv styrer, hvilke programmer du vil have installeret. Normalt vælger du kun kategorier af programmer.

X-grafik systemet er opdateret til version 3.3.5, bl.a. RIVA TNT, Riva TNT2, RIVA 128 og Permedia 2 er nu understøttet.

Nu kan du også installere via HTTP. (Installation over netværk via NFS, ftp og SMB er også understøttet).

Der er lavet lidt nye scripts til at starte f.eks. webserver og NFS op under boot sekvensen. Dog ligesom i Red Hat 6.0 vil man med et grønt "OK" se, at hver funktion er startet op uden problemer eller med rødt "Failed" se, at den service ikke kunne startes. Meget nyttigt!


2.2.2. Hardwarekrav

Red Hat Linux 6.1 til PC stiller følgende hardwarekrav:

  • en Intel 32-bit CPU (80386 eller senere). Intel-kompatible typer af andet fabrikat, f.eks. AMD K6 eller K7 kan også sagtens bruges.

  • mindst 8 MB RAM, meget gerne 16 MB eller mere. For GNOME og KDE kan anbefales 32 MB RAM eller mere.

  • systembus af typen PCI, ISA, EISA eller VLB.

  • minimum 100 MB ledig plads på harddisken. En typisk installation bruger omkring 500 MB, men du kan sagtens bruge mere plads. På den maskine vi arbejder ved lige nu, bruges der knap 600 MB på selve systemet, dokumentation og programmer. Ud over plads til selve systemet skal der naturligvis også være plads til rådighed for brugerne til deres private filer af forskellig slags.


2.2.3. Installation fra CDROM

I denne gennemgang af installationen vil vi gå ud fra, at der installeres fra et lokalt CDROM-drev. Der er som nævnt nedenfor andre måder at gøre det på, men denne metode er både simpel og tilgængelig på langt de fleste moderne PC'ere.

Hvis din maskine er af ny dato, kan den boote direkte fra CDROM'en. Du skal så ind og vælge CDROM-drevet som første boot-drev i BIOS- opsætningen. Ved samme lejlighed kan du i øvrigt slå en eventuel virus-beskyttelse fra. Den forhindrer skrivning i boot-sektoren og er en udmærket sikkerhedsforanstaltning i det daglige, men hvis vi skal installere LILO (se nedenfor), er vi faktisk nødt til at have lov til dette. Skal du opgradere så er det uhyre nemt i grafisk mode - du vælger tastatur og enkelte andre ting, og så kører det. Vi ser dog her på installation.

Hvis du ikke kan boote fra CDROM-drevet, må du i stedet bruge en bootdiskette. Den kan laves i DOS ud fra programmet RAWRITE.EXE (der sikkert ligger under /DOSUTILS på din CDROM) og filen boot.img (der ligger under /images).

Image-filen overføres til disketten ved hjælp af DOS-programmet RAWRITE.EXE, der også ligger på CDROM'en i /dosutils. Læs RAWRITE3.DOC for nærmere detaljer.

Som eksempel på fremstilling af en bootdiskette fra en DOS-prompt med CDROM-drevet E:. Diskettedrevbogstavet er A:. Disketten formatteres, så alle data på den er slettet

C:\WINDOWS\> format A: /u
Dernæst fremstilles bootdisketten til Linux med kommandoen
C:\WINDOWS\> E:\DOSUTILS\RAWRITE -f E:\images\BOOT.IMG -d a


2.2.3.1. Installation

Når systemet er startet op, og Linux er indlæst, vises en velkomstmeddelelse og en boot: prompt nederst i skærmbilledet. De allerfleste kan her nøjes med at trykke Enter for at fortsætte installationen i grafisk tilstand.

Der vises nu en dialogboks, der giver mulighed for at vælge, hvilket sprog installationsprogrammet skal bruge. Dansk var tidligere med (i Red Hat 5.2), nu kan du f.eks. vælge "English".

Så skal der vælges en tastaturtype. Et almindeligt dansk PC-tastatur hedder i denne sammenhæng "Generic 102-key (intl) PC" og Layout sættes til "Danish".

Vælg derefter din mus. Med de fleste nye maskiner er den en PS/2. Kan du finde en tre-knaps mus er det klart at foretrække til Linux. har du kun en to-knaps mus, så husk at trykke nederst at den tredie knap skal emuleres (at man trykker både højre og ventre vil så svare til et tryk på midterste knap af en tre knaps mus). Serielle porte hedder /dev/ttyS plus et tal startende fra nul. COM1 i DOS svarer til /dev/ttyS0. Læs evt. videre i Appendiks A. Tilsvarende sidder mus med PS/2 stik (lille rundt stik) i /dev/psaux

Nu vises et reklame billede for Red Hat, og derefter kommer vi til installationstyperne. Som vist på Figur 2-5 er der fem forskellige muligheder. Vi vælger "Install Custom System".

  • "Install GNOME Workstation"

    GNOME er et desktopmiljø, som er omtalt i afsnit 3.1.4. Vælger du denne opsætning styres opsætning automatisk og der slettes automatisk Linux diskplads til installationen. Lav backup før du vælger dette.

  • "Install KDE Workstation"

    KDE er et desktopmiljø, som er omtalt i afsnit 3.1.5. Vælger du denne opsætning styres opsætning automatisk og der slettes automatisk Linux diskplads til installationen. Lav backup før du vælger dette.

  • "Install Server System"

    Dette er til en server - alle diske slettes. Alt installeres automatisk - og alle diske vil slettes og anvendes til Linux.

  • "Install Custom System"

    Denne mulighed er sværere, men giver dig fuld kontrol med installationen.

  • "Upgrade Existing Installation"

    Til opgradering fra en tidligere version af Red Hat.

Derefter skal vi til at inddele og formattere harddisk partitioner. Først lidt information af mere generel karakter.


2.2.3.2. Partitioner og filtræet

I Linux arbejder du ud fra et filtræ, som det kendes fra Windows og DOS. Filtræet kan deles ud over flere partitioner på harddisken eller blot ligge på en enkelt harddisk-partition. Læs i øvrigt http://www.pathname.com/fhs/announce-2.0.html.

Tip! Du kan efter installationen med man 7 hier læse mere om filtræet.

Tabel 2-1. Oversigt over filtræet.

FiltræForklaring
/Toppen af katalogstrukturen ("Min Computer" i Windows).
/binHer er de mest nødvendige system kommandoer gemt.
/bootDette katalog er reserveret til system kernen. Men nogle Linux distributioner vælger at placere kernen i roden, dvs. /.
/devIndeholder alle device filer, dvs. adgang til alle enheder går igennem dette.
/etcDette katalog indeholder system opsætningsfilerne, såvel som filerne, der er ansvarlige for systemets opstart, og grafik systemets opsætning (noget lignende filerne CONFIG.SYS og AUTOEXEC.BAT).
/homeDette er kataloget for alle brugerkonti. Ja, Linux giver mulighed for, at mange personer kan arbejde på den samme computer samtidigt - uden at blande dem sammen. Linux er et flerbruger styresystem. Vi kan anbefale, at man opretter en bruger til de mest normale jobs og kun bruger root til administration, da du som root ved en fejl kan komme til at slette vigtige filer, hvilket ville være umuligt som almindelig bruger.
/libIndeholder systemets delte filer. Linux sparer hukommelse ved at lægge kode, som bruges af mange programmer, ind i en fil, kaldet "shared library" - svarende til DLL'er i Windows. På den måde vil der kun eksistere en kopi af filen i hukommelsen, når den bliver brugt.
/optSuSE anvender dette katalog til at installere store programpakker, såsom KDE og StarOffice. Hvis du installerer SuSEm skal du derfor sørge for, at dette katalog har en del plads.
/lost+foundDu har måske prøvet at bruge Norton Utilities til at genskabe en fil, som er tabt i en defekt del af harddisken. Vær mere rolig under Linux. Hvis harddisken laver fejl, vil systemet selv forsøge at genskabe filerne, og hvis det ikke kan finde ud af, hvor i filtræet filen var placeret, vil den blive placeret i /lost+found.
/mntHvis du vil have adgang til en CDROM, ZIP drev eller floppy, er det som regel denne del af filsystemet, du får adgang til.
/proc Dette katalog, indeholder en hel del information om de kørende programmer og Linux-kernens status.
/rootSuperbrugerens hjemmekatalog.
/sbinHer ligger de avancerede kommandoer til system adminstration, og af sikkerhedsgrunde skulle det kun være muligt for system administratoren (root) at få adgang til dette katalog.
/tmpProgrammerne bruger dette katalog, som den normale placering for midlertidige filer og affald. Som regel sletter systemet dem, når det starter op. 
/usrHer ligger de fleste programmer - såvel som dokumentation og biblioteker.
/usr/localAlt andet specifikt for den enkelte maskine, f.eks. bør du lægge dine egne tilføjede programmer herunder.
/varIndeholder en mængde midlertidige filer, som gemmer systembeskeder, brugernes post, printerjobs osv.

Der kan være yderligere dele af filtræet, såsom en Windows disk som man ofte giver tilgang til via /dos eller /dosc.

Nu er vi nået så langt, at vi skal til at beslutte os for, hvilke partitioner der skal oprettes, for at Red Hat Linux har et sted at blive installeret. Har du kørt fips.exe tidligere og har to DOS partitioner, skal du slette den nye DOS partition, som er tom.

Du er temmelig frit stillet med hensyn til antallet og størrelsen af partitionerne. Hvis du kører uden swap-partition, kan du simpelt hen installere alt på en enkelt root-partition ("/"). Mange bruger fire eller fem partitioner. Denne fordeling er ret udbredt og efter vor mening også både fornuftig og fleksibel:

  • en swap-partition. Størrelsen kan diskuteres i det uendelige og afhænger meget af, hvad du har tænkt dig at bruge systemet til. Et eller andet sted mellem 16 MB og 127 MB. En tommelfingerregel siger, at swap-partitionens størrelse skal være det dobbelte af den fysiske hukommelse. Har du 32 MB RAM og derover, kan du måske nøjes med en swap-størrelse, som svarer til RAM størrelsen. Et råd til dig er, at normal anvendelse af Linux ikke kræver over 64 MB, dvs. summen af fysisk hukommelse plus swap. Du kan dog lave mange swappartitioner, hvis du vil, og de kan laves på et senere tidspunkt, evt. bundet til en stor swapfil, som det kendes fra Windows. Du skal bemærke, at swap-partitioner ikke placeres i filtræet. Man kan således ikke gå et bestemt sted hen og se swap indholdet, men det er blot mere hukommelse for systemet (du kan med kommandoen free senere se, hvordan hukommelsen anvendes).

  • en partition på 20 MB til /boot, som lægges før cylinder 1024 på disken. Ældre BIOS-typer har en fejl, som gør dette nødvendigt. Denne partition bør du kun lave, hvis du vil køre LILO - læs mere i afsnit 5.13.1

  • en partition på 300-500 MB til rodkataloget, dvs. /, men installerer du SuSE, skal du dertil lægge plads til /opt, som kan indeholde yderligere 200MB, hvis du installerer KDE og StarOffice. Med Red Hat installeres disse programmer under /usr.

  • en partition på 300 MB til 1 GB til /usr

  • en partition til /home, størrelse afhængig af antal brugere og deres behov.

Installerer du alle pakker som custom, skal du regne med at bruge mindst 1 GB.

Harddisk-nummerering i Windows og Linux er forskellige. I Linux kaldes alle systemenheder - som f.eks. harddiske - for devices og har fortløbende bogstavnavne. De ligger alle i kataloget /dev

Første IDE disk = /dev/hda

Anden IDE disk = /dev/hdb

Tredje IDE disk = /dev/hdc

Fjerde IDE disk = /dev/hdd

Første SCSI disk = /dev/sda osv.

Partitioner på en disk har numre svarende til disken, f.eks. er /dev/hda2 den anden partition på den første IDE disk.

Til at oprette partitionerne anvendes ikke længere fdisk. Der er et nyere og lidt venligere program som Red Hat Linux tilbyder - det er integreret direkte i de grafiske installationsmenuer. Dette er vist på Figur 2-6. Har du på et senere tidspunkt brug for at partitionere din harddisk, så kan du læse om fdisk i afsnit A.3.

Du vælger "Add" og sætter så "Mount Point" til "/" og "Size" til den størrelse du ønsker på rod-partitionen. Tilsvarende gøres eventuelle andre Linux Native partitioner. Der laves også en Linux Swap partition med "Add". I det følgende vindue (ikke vist her), skal du angive hvilke partitioner, som skal formatteres. Det skal alle de nye Linux native partitioner. Vælg for en sikkerhedsskyld også at checke for "Bad Blocks".

Nu skal der vælges, hvor de forskellige partitioner skal bruges i Linux filtræet. Linux native partitionen vælges til root-niveau. Skriv / ud for denne. Det kan nævnes, at du også kan køre med flere partitioner og så have separate /usr og /home. Vi vælger dog kun her den simple udgave med en Linux partition. DOS partitioner kan f.eks. lægges ind som /dosc og /dosd osv. Swap partitionen skal ikke lægges ind i fil-træet.


2.2.3.3. LILO bootmanager

Du kan nu installere LILO, som er et program, som kan boote DOS/Windows såvel som Linux. Vil du ikke ændre på din nuværende boot-metode, så lad være. DOS programmet loadlin kan senere installeres til at lave en bootmenu i starten af Windows boot sekvensen. Du kan indtil da boote på den bootdisk, du kan lave i det vindue du kan se på Figur 2-7 - vælg dette. Dernæst kan du lave en bootdisk på en tom diskette. Gør dette, og gem den et sikkert sted.

MBR er det første boot-spor af din harddisk - hvor du måske ønsker at kunne boote andre styresystemer. Læs evt. først afsnit 5.13.

Modsat er LILO et godt og lille program med mange konfigurationsmuligheder. Vælg at installere i Master Boot Record, hvis LILO skal styre alt boot fra nu af. Du kan slutteligt tilføje parametre til boot, så Linux nemmere kan finde hardware. Normalt er dette ikke nødvendigt.

Tip: Fortryder du senere dette, så brug i DOS fdisk /mbr for at slette LILO.

Du bør måske læse den mini HOWTO om LILO, som kan findes under Linux Documentation Project på http://sunsite.auc.dk/ldp

Har du brug for at slette eller ændre din LILO opsætning, kan du læse mere i afsnit 5.13. Hvis du skal køre Linux og NT på samme maskine, bør du læse afsnit 5.13.3.


2.2.3.4. Videre med installationen

I næste vindue vælges tidszone til "Europe/Copenhagen" ved at klikke på Danmark.

Du skal nu vælge en god adgangskode (password) for systemadministrator-kontoen (root). Det må ikke være et navn, der kan findes i en ordbog, heller ikke simple ting, som andre kan vide om dig. Brug hellere mere indviklede ting som forbogstaver fra en remse, f.eks. kan "Ole sad på en knold og sang" blive til kodeordet "Osp1kos". Brug store OG små bogstaver samt tal. Brug mindst 7 tegn og meget gerne 8 tegn. Et password på 3 tegn kan knækkes på under et sekund på en PC, og fire tegn på langt under et minut. For 8 tegn tager det lang tid!

Du kan alt som root - også slette alt. Du bør derfor kun bruge din root konto til systemarbejde. Start med at lave brugerkonti til dig selv og evt. andre med det samme. Vi bruger her daisy som login navn for at lave en konto til brugeren "daisy". Tryk på "Add" for hver "Account" du tilføjer.

Nu spørges du om, du vil køre NIS, bruge shadow passwords og MD5 passwords. Er du usikker, så brug hvad der er valgt. NIS skal du dog ikke bruge med mindre din systemadministrator siger dette (NIS er noget med netværks check af din identitet og MD5 handler om forhøjet sikkerhed af passwords på systemet).


2.2.3.5. Hvad skal installeres?

Næste trin for installation via CDROM, at maskinen finder listen over, hvad der kan installeres.

  • Printer Support: Programmer til at skrive ud på egen printer eller netværksprinter.

  • X Window System: Vinduesystemet til Linux (og andre systemer). Vælges dette ikke, er der ikke ret meget grafik.

  • GNOME: Lækker grafisk brugergrænseflade, som også er krævende for dit system.

  • KDE: Som GNOME, men KDE er lidt længere fremme end GNOME og stiller lidt mindre krav til dit system.

  • Mail/WWW/News Tools: Mail/News og web browser programmer.

  • DOS/Windows Connectivity: DOS emulator.

  • Graphics Manipulation: Grafikkonvertering og tegneprogrammer.

  • Games: Grafiske spil - ikke det meste hippe, men mogle kan være sjove.

  • Multimedia support: Lyd styringsværktøjer og andet sjov.

  • Console Multimedia: Samme, men kun til tekst konsoller.

  • Networked Workstation: Vælg dette, hvis din maskine skal ind i et lokalnetværk.

  • Dialup Workstation: Opkoblings-programmer til Modem.

  • News Server: Hvis maskinen skal være server for nyhedsgrupper.

  • NFS Server: Hvis maskinen skal kunne være filserver for andre UNIX maskiner.

  • SMB (Samba) Connectivity: Vælges, hvis maskinen skal kunne være filserver for Microsoft Windows maskiner.

  • IPX/Netware(tm) Connectivity: Opkobling mod Netware maskiner.

  • Anonymous FTP/Gopher Server: Vælges, hvis maskinen skal være FTP server.

  • Web Server: Installerer verdens mest udbredte webserver, Apache.

  • DNS Name Server: Vælges hvis maskinen skal være navneserver.

  • Postgres (SQL) Server: Her kan du få en SQL Database server.

  • Networked Management Workstation: Flere netværksprogrammer

  • TeX Document Formatting: Tekstformatteringssystem, som er perfekt til tekniske dokumenter.

  • Emacs: Teksteditoren over dem alle.

  • Development: Oversættere (compilere) og andet udviklings software.

  • Kernel Developer: Kildetekst til Linux kernen.

  • Utilities: En bunke værktøjer.

  • Everything: Ok - jeg tager det hele! Kan være en dårlig ide idet du åbner en masse funktioner i netværket du ikke måske ikke har styr på.

Du kan med knappen "Select individual packages" vælge under-grupper, som vist på Figur 2-9. Pakker med et rødt "check-mark" bliver installeret. Du kan måske være specielt interesseret i at finde den danske ordbog "ispell-danish" under "Applications"/"Text"

Du kan nu blive bedt om at vælge et par pakker ekstra, for at dine valg kan fungere. Normalt er det støtte biblioteker, som skal med. Accepter normalt dette.


2.2.3.6. Opsætning af video hardware

Nu er vi ved at være igennem. Vælg så grafikkortet. Er du i tvivl, kan du altid vælge standard VGA og senere få sat det bedre op. Linux har support for rigtig mange grafikkort (men for de allernyeste kort skal du nok ud på Internettet http://www.xfree86.org eller http://www.xig.com for at finde drivere, da de måske ikke er med på CDROM'en).

Vælg derefter skærmtype. Har du ikke en kendt skærm, skal du finde din skærmmanual, så du kan se, hvor meget den kan klare. Du skal vælge, hvilken grafikdybde der skal vises. 8 bit er måske tilstrækkeligt, men 16 er godt (men langsommere). Dybden fortæller, hvor mange farver, der kan vises samtidigt (8 bit svarer til 256 farver, 16 bit til 65536). Læs evt. videre i Appendiks A. Skærm og grafikkort testes nu, og du vil forhåbentlig se en grafisk skærm. Du kan vælge, om du vil køre med grafisk login (X-systemet) eller ej - dette er op til dig.

Der kommer også spørgsmål, om grafisk login skal anvendes. Er du usikker på om dit grafik kort er understøttet, så lad være med at vælge dette. Modsat så er det meget lækkert at have det grafiske login.

Nu er vi klar til den pause - som passer fint med at alle pakkerne skal installeres. Det kan tage sin tid alt efter hvor "grådig" du er og hvor hurtig din maskine er. Der står dog altid på skærmen, hvor lang tid der ca. er tilbage.

Nu er du færdig - maskinen kan bootes i Linux!


2.2.3.7. Nu skal vi køre Linux

Tryk return, og maskinen booter - enten via LILO eller din bootdisk. En lang tur, men nu kan der køres Linux.

Hvis du valgte grafisk login, kan du nu logge ind via den bruger konto, du lavede til dig selv eller som root. Du kan hoppe fra den grafiske login skærm til en tekst baseret (f.eks. hvis du har grafik problemer), ved at trykke "Ctrl-Alt-F1". Log f.eks. ind som brugeren root og skriv det password, som du valgte tidligere.


2.2.4. Kendte fejl i Red Hat 6.1

Den oprindelige Red Hat 6.1 havde flere fejl eller uhensigsmæssigheder, som kan ses på http://www.redhat.com/corp/support/errata. Pakkerne kan findes på ftp://updates.redhat.com/6.1/i386/. Bl.a. bør du opdatere følgende pakker:

  • ppp-2.3.10-3.i386.rpm - For at du kan få dialup til Internet til at virke.

  • initscripts-4.70-1.i386.rpm - En del fejl i de basale opstarts-skriptfiler (tag ikke ældre versioner end denne).

  • timetool-2.7.1-1.noarch.rpm - Der var fejl i den originale pakke, der bruges til at sætte tiden i computeren.

  • For at du kan få kppp til at virke, så erstat indholdet af /etc/pam.d/kppp med dette (det er dog en svækkelse af sikkerheden på din maskine).

    #%PAM-1.0 
    auth sufficient /lib/security/pam_permit.so 
    session optional /lib/security/pam_xauth.so
    account required /lib/security/pam_permit.so

  • For at du kan få din printer til at virke, skal du tilføje følgende linie til /etc/conf.modules:

    alias parport_lowlevel parport_pc


2.3. Installation af SuSE Linux 6.3

SuSE Linux version 6.3 installeres og konfigureres ved hjælp af det medfølgende systemværktøj, YaST2 (Yet another System Tool - version 2). YaST overflødiggør i udstrakt grad nødvendigheden af tidligere tiders nøjagtige kendskab til alle mulige konfigurationsværktøjer og -filer. Du slipper f.eks. for at skulle anvende fdisk til at skabe partitionerne, idet yast har et fornuftigt bruger interface til dette.

SuSE Linux findes i to udgaver. En officiel købeversion med seks CDROM'er, som indeholder over 1300 programpakker. Dette gør SuSE til den Linux-distribution, der har de fleste programmer og værktøjer med. Der findes også en evaluation version på en CDROM. Ordet "evaluation" betyder i denne sammenhæng ikke noget med, at man kun må bruge den i begrænset tid eller andet. En SuSE 6.3 evaluation CDROM svarer i omfang og niveau til en Red Hat 6.0. Installationen af den officielle er ikke meget forskellig fra evalueringsudgaven, men der er selvfølgelig meget mere med den store officielle købeversion.


2.3.1. Nyheder i version 6.3

Den største nyhed i SuSE 6.3 er klart at du kun kan installere via grafiske menuer. I forhold til 6.2 er det klart nemmere. For begynderen er SuSE 6.3 rigtig god, men for den erfarne Linux bruger er det klart et tilbageskridt, idet man kun har få valgmuligheder.

SuSE Linux 6.3 baserer sig på version 2.2.13 af Linuxkernen, hvor SuSE Linux 6.2 benyttede 2.2.10.

Både KDE og GNOME (begge meget succesrige grafiske brugergrænseflader) er nu standard i SuSE. SuSE er klart den Linux distribution, som har mest support og integration med KDE, hvor Red Hat tilsvarende har det med GNOME.

Som i Red Hat 6.1 er der nu også profiler, dvs. at man kan vælge, at maskinen skal installeres til et givet formål. Installation er lige så nem som Red Hat og er meget fleksibel.

Der er en ny udgave af X-serveren, XFree86 version 3.3.4. Denne udgave drejer sig først og fremmest om understøttelse af en del nye grafikkort, såsom S3 Trio3D, Voodoo Banshee og Voodoo 3, SiS530/620, Trident Blade 3D, Nvidia Riva TNT2 og Matrox G400. Tilsvarende er der Glide support med til SuSE Linux. SuSE har lavet et grafisk konfigureringsværktøj til Xfree86, SaX (SuSE advanced XF86 configuration tool).

Med hensyn til Office systemer er SuSE god. KDE office pakken følger med, og hvis du køber den fulde SuSE pakke, kan du også installere Wordperfect 8 og/eller StarOffice 5.1 (begge er omtalt i afsnit 6.5.1. Desuden er der demo versioner af ApplixWare og VMWare med.

Sikkerhedsmæssigt er SuSE på højde med Red Hat, idet man har fået PAM systemet fuldt integreret og dermed på niveau med Red Hat med hensyn til password-sikkerhed.


2.3.2. Hardwarekrav

SuSE Linux 6.3 stiller følgende krav til hardware:

  • En Intel 32 bit-kompatibel CPU (80386 eller senere). Der er efterhånden god understøttelse af andre mærker end Intel, f.eks. AMD.

  • Mindst 8 MB RAM, men 16 MB eller derover anbefales.

  • 30 MB fri diskplads, men vil du bruge det til noget reelt, bør du regne med 150 MB - mindst! Det koster at installere alle de programmer, og 500 MB - 1 GB er ikke et dårligt udgangspunkt.


2.3.3. Installationsvejledning

SuSE Linux startes enten direkte fra CDROM'en eller fra den medfølgende diskette. Hvis din PC ikke understøtter bootbare CDROM'er, og du ikke har den originale bootdiskette, kan du lave en bootdiskette ved hjælp af DOS-programmet RAWRITE.EXE, der ligger i kataloget /dosutils/rawrite på CDROM'en. Læs, dokumentationen i RAWRITE3.DOC for at se, hvordan programmet benyttes. Læs hvilken kerne-fil du skal bruge i /disks/README, men som standard kan du bruge /disks/eide01

Du starter altså fra CDROM eller diskette. Der bør starte en grafisk menu, hvor du vælger sprog under installationen. Dansk er desværre ikke med, men vælg f.eks. "Engelsk (GB)". Under "keyboard layout" vælges "Danish" og "Timezone" vælges til "Europe/Denmark". Husk at trykke "Apply" og evt. test dit keyboard.

Nu kan du i næste menu vælge mellem "Automatic installation" eller "Guided installation". I venste menu kan du læse om hvad valgmulighederne betyder. Automatic er således nem - men der laves en del valg for dig. Vi vælger "Guided installation".

I næste menu skal du vælge hvilke partitioner, som SuSE må bruge til at installere Linux på. De valgte partitioner vil blive slettet. Bemærk at de partitioner som vælges skal ligge i forlængelse af hinanden.

I næste menu vælger du hvor meget software, der skal installeres. Under basis software kan du vælge mellem "Mimumum", "Default" og "Almost everything". Det er mængden af software som skal ind. Vi tager "Default". I menuen herunder kan du vælge som vist på følgende billede

Desuden kan du installere kildetekster til programmer ved at sætte et hak i "Install available sources".

Dernæst skal du vælge hvor LILO (startup systemet) skal installeres. Hvis du har en Windows startup kørende så lad være med at vælge "on C:" - men start f.eks. med at lave en boot disk, og senere (efter selve installationen) kan du så lave starten direkte fra harddisk.

Du skal du skrive navn (fornavn og efternavn), login navn til dig selv og password. Dette skal du huske!

I næste menu skal du skrive root password. Dette skal du huske!

I næste menu "Confirm installation" bliver du nu bedt om at sige ok for hvad der skal installeres. Check om den mængde software du vil hælde ind er mindre en de frie partitioner, som anvendes til Linux. (Der er også en mulighed for at "Save settings to floppy disk" - dette bruges hvis du vil lave samme setup på et senere tidspunkt).

Næste menu er RØD - Sidste chance for at fortryde - ellers kører installationen.

YaST2 begynder nu at installere programmerne, mens den viser, hvor langt den er nået. Alt efter maskintype, er det måske passende tid til at tage en stor kop kaffe. Lader du din maskine checke disken for defekter, kan det med de nye store diske godt tage 20 minutter eller måske længere at få overstået bare check-delen.

Når den er færdig skal du kun acceptere at boote systemet. Husk at tage SuSE CDROM ud før du booter (ellers genstarter du installationen). Når du så er startet op igen, skal SuSE CDROM'en anvendes igen. Bemærk at hvis du har installeret LILO som opstartssystem på C: så kan du afinstallere LILO ved at skrive lilo -u /dev/hda1 (eller en anden partition - se skærmen og noter).

Nu kan du tune din grafiske XWindow konfiguration og SaX er startet (desværre på tysk). Du kan komme ud af programmet ved at trykke på "Konfiguration abschliessen". Dette vil måske blive bedre snart i forholde til den beta-version, der har været anvendt til at skrive dette afsnit.

Nu skal du have en pause igen - SuSE konfigurerer nu automatisk alle de installerede program pakker. Dette kan tage et par minutter.

Nu er vi klar til at logge ind som root eller som din egen konto.

Når du har fuldført installation af pakker i SuSE og har dit system til at køre, så vil du sikkert på et tidspunkt overveje at fjerne nogle programmer og/eller tilføje nye programpakker. I Red Hat anvender man rpm-programmet (Se afsnit 5.2), og det kan du også gøre i SuSE, men SuSE har et godt program til at vedligeholde systemet, herunder installere/fjerne pakker. Programmet hedder yast, og det køres af root. Start dette op. Er menuen på tysk, så tag andet menupunkt, og i den følgende menu første punkt. Vælg nu engelsk.

Du mangler nu at få opsat dit netkort, printer og måske andre enheder. Dette gøres via yast. Se mere i i afsnit 2.5.


2.4. Installation af SuSE Linux 6.2

SuSE Linux version 6.2 installeres og konfigureres ved hjælp af det medfølgende systemværktøj, YaST (Yet another System Tool). YaST overflødiggør i udstrakt grad nødvendigheden af tidligere tiders nøjagtige kendskab til alle mulige konfigurationsværktøjer og -filer. Du slipper f.eks. for at skulle anvende fdisk til at skabe partitionerne, idet yast har et fornuftigt bruger interface til dette.

SuSE Linux findes i to udgaver. En officiel købeversion med seks CDROM'er, som indeholder over 1300 programpakker. Dette gør SuSE til den Linux-distribution, der har de fleste programmer og værktøjer med. Der findes også en evaluation version på en CDROM. Ordet "evaluation" betyder i denne sammenhæng ikke noget med, at man kun må bruge den i begrænset tid eller andet. En SuSE 6.2 evaluation CDROM svarer i omfang og niveau til en Red Hat 6.0. Installationen af den officielle er ikke meget forskellig fra evalueringsudgaven, men der er selvfølgelig meget mere med den store officielle købeversion. Desuden kan det nævnes, at hvis du har en SuSE 6.1 CDROM, er installationen ikke ændret, og indholdet er heller ikke markant anderledes, så bare du kan også trygt installere en SuSE 6.1.


2.4.1. Nyheder i version 6.2

SuSE Linux 6.2 baserer sig på version 2.2.10 af Linuxkernen, hvor SuSE Linux 6.1 benyttede 2.2.5. Der er en del forbedringer for maskiner, der er meget belastede. Desuden er hele systemet opbygget omkring GLIBC 2.1 ligesom Red Hat 6.0.

Både KDE 1.1.1 og GNOME 1.0 (begge meget succesrige grafiske brugergrænseflader) er nu standard i SuSE. SuSE er klart den Linux distribution, som har mest support og integration med KDE, hvor Red Hat tilsvarende har det med GNOME.

Som i Red Hat 6.0 er der nu også profiler, dvs. at man kan vælge, at maskinen skal installeres til et givet formål. Installation er lige så nem som Red Hat og er meget fleksibel.

Der er en ny udgave af X-serveren, XFree86 version 3.3.4. Denne udgave drejer sig først og fremmest om understøttelse af en del nye grafikkort, såsom S3 Trio3D, Voodoo Banshee and Voodoo 3, SiS530/620, Trident Blade 3D, Nvidia Riva TNT2 og Matrox G400. Tilsvarende er der Glide support med til SuSE Linux. SuSE har lavet et grafisk konfigureringsværktøj til Xfree86, SaX (SuSE advanced XF86 configuration tool).

Med hensyn til Office systemer er SuSE god. KDE office pakken følger med, og hvis du køber den fulde SuSE pakke, kan du også installere Wordperfect 8 og/eller StarOffice 5.1 (begge er omtalt i afsnit 6.5.1. Desuden er der demo versioner af ApplixWare og VMWare med.

Sikkerhedsmæssigt er SuSE blevet opgraderet i forhold til version 6.1, idet man har fået PAM systemet fuldt integreret og dermed på niveau med Red Hat med hensyn til password-sikkerhed.


2.4.2. Installationen

SuSE Linux startes enten direkte fra CDROM'en eller fra den medfølgende diskette. Hvis din PC ikke understøtter bootbare CDROM'er, og du ikke har den originale bootdiskette, kan du lave en bootdiskette ved hjælp af DOS-programmet RAWRITE.EXE, der ligger i kataloget /dosutils/rawrite på CDROM'en. Læs, dokumentationen i RAWRITE3.DOC for at se, hvordan programmet benyttes. Læs hvilken kerne-fil du skal bruge i /disks/README, men som standard kan du bruge /disks/eide01

Du starter altså fra CDROM eller diskette. Når installationen er i gang, skal du først vælge sprog og skærmtype. Valgene gælder kun under installationen, så du kan vælge engelsk og farve (antager, at det er en farveskærm). Du skal nu vælge keyboard type - og her vælger du dansk.

Derefter kommer du til hovedmenuen for installationen. Hvis du har noget hardware, der kræver indlæsning af moduler eller drivere, kan det ske i punktet Kernel modules (hardware drivers). Det vil dreje sig om alle de enheder, der ikke er med i den standardkerne, der ligger på disketten eller CDROM'en, typisk SCSI eller PC-kort, som skal bruges under installationen.

Du kan prøve at lade SuSE finde alle dine kort for dig ved at vælge Automatic module detection. Der går lidt tid med, at computeren prøver at indlæse de forskellige moduler. Når den er færdig, viser den en liste med de moduler, den har indlæst. Hvis der er nogen, du ikke ønsker indlæst, kan du fjerne dem med punktet Remove loaded modules.

Så er vi klar til at rulle! Du kan nu vælge Start Installation / system, og i den menu, vi viser på Figur 2-21, vælger du CDROM. Nu finder SuSE Linux din CDROM, og der kommer nu en menu, hvor du vælger Install Linux from scratch, fordi det lige præcis er det, vi skal. Du vil nok vælge at installere fra CDROM, men du kan også gøre det via ftp, NFS eller en anden harddisk.


2.4.3. Partitionering

Så skal din harddisk partitioneres. Under installation af Red Hat er omtalt, hvorfor der skal partitioneres, og hvor mange partitioner, der skal være. YaST vil selv forsøge at lave den optimale partitionering med en boot-partition på mindst 2 MB, en swappartition på det dobbelte af den fysiske hukommelse (dog ikke mere end 128 MB), og resten er til rod-partitionen. Hvis du har nogle partitioner i forvejen, vil de dog blive bevaret, medmindre du vælger at bruge hele disken til nye partitioner. Læs under installation af Red Hat for mere information om partitionering.

Du får nu et skærmbillede, som ligner dette:

Hvis du vil lave noget om i partitioneringen, er det nu, det skal ske. Senere vil det blive noget mere besværligt. Men pas på! Hvis du fjerner en partition, sletter du alle data på den. Du skal ligesom ved Red Hat installationen have mindst en Linux native partition og en til Linux swap. Læs afsnit 2.2.3.2.

Når du er tilfreds med partitionerne, vælger du Continue. Derefter skal du fortælle, hvor de forskellige partitioner skal befinde sig i filsystemet. Der skal altid være en rod - så du starter med at tildele rodsystemet /. (Da du nok kører engelsk keyboard, kan vi afsløre at / ligger på minus-tasten).

Hvis du har lavet flere partitioner (eller hvis du f.eks. har flere harddiske), kan du tildele andre dele af filsystemet disse partitionener. Se evt. kapitlet om installering af Red Hat, hvor der forklares indgående om filsystemer. Husk at vælge med "F4", hvor de enkelte partitioner skal være i filtræet, og vælg med "F6", hvilke partitioner der skal formatteres (alle med Linux, hvis du laver en ny Linux installation).


2.4.4. Programvalg

Din harddisk er nu klar til Linux. Det er tid til at beslutte, hvilken profil du vil installere. Med SuSE 6.1 og 6.2 er der under "Load Configuration" 5 mulige valg: "Almost Everything", "Development system", "Minimum", "Network (server)" og "default". I SuSE 6.2 er der nu også kommet tre nye profiler til "Gnome system", "KDE system" og "Multimedia system". Dette er dog ikke vist på næste billede, der stammer fra en beta version af 6.2. Vælg den, der passer dig bedst, og vend tilbage efter, du har trykket add.

Ud fra profilen, som du vælger under load configuration, kan du under Change/create configuration ændre de egentlige programmer, der skal installeres. Her har den erfarne bruger store muligheder for at styre, hvad der sker. Vælg Change/Create configuration, og se følgende valgmuligheder:

SuSE har opdelt de over 1300 programpakker i forskellige emnerelaterede grupper, der er en slags programfamilier. Dette svarer meget godt til den opdeling som Red Hat anvender. Dermed er det nemmere at vælge de enkelte pakker inden for f.eks. netværk, spil eller programudvikling. Det er her, man normalt kan bruge lang tid med at vælge programpakker - fristelserne er store, lidt ligesom for barnet i legetøjsbutikken!

  • a Linux Basis System

  • ap Tekst baserede programmer

  • beo Extreme Linux - Beowulf, dvs. support af klynger af Linux maskiner.

  • d Udviklingsværktøjer (C, C++, Lisp, etc.)

  • doc Dokumentation

  • e Emacs - teksteditoren over dem alle

  • emu Emulatorer

  • fun Spil og sjove ting

  • gnm GNOME (GNU Network Object Model Environment) - Grafisk desktop

  • gra Alt muligt inden for grafik

  • kde KDE (K Desktop Environment) - En anden god grafisk desktop, som SuSE støtter godt op om

  • kpa KDE programmer, som er under udvikling (KDE alpha)

  • n Netværks programmer (TCP/IP, UUCP, Mail, News)

  • pay Kommerciel software, som ikke følger med enkel CD versionen (evaluation CDROM)

  • sec Sikkerheds relateret software

  • snd Lyd relaterede programmer

  • spl Stavekontrol programmer og databaser (inkl. dansk)

  • tcl Tcl/Tk/TclX, Tcl-sproget og Tk-Toolkit til X

  • tex TeX/LaTeX og støtteprogrammer

  • x X Window System - XFree86 (tm) 3.4 - X11 er det basale grafik system

  • x3d 3D programmer til X11 og tekstmode

  • xap X Applikationer

  • xdev Udviklingsprogrammer til X11 programmer

  • xsrv Mange forskellige X Servers (XFree86 (tm) 3.4)

  • xv XView (OpenLook, Applikationer)

  • xwm Andre grafiske bruger grænseflader

Når du har valgt de programmer, du vil installere (eller hvis du er tilfreds med SuSE's forslag, der bestemt er ganske godt at starte med), trykker du på F10 to gange, til du ender i installationsmenuen. Der er her en Check mulighed, hvor det valideres, at alle afhængigheder (for manglende biblioteker osv.) bliver checket.

Nu kan du vælge Start installation. YaST begynder nu at installere programmerne, mens den viser, hvor langt den er nået. Alt efter maskintype, er det måske passende tid til at tage en stor kop kaffe. Lader du din maskine checke disken for defekter, kan det med de nye store diske godt tage 20 minutter eller måske længere at få overstået bare check-delen.

Når den er færdig, skal du vende tilbage til hovedmenuen. Det gør du ved at vælge "Main menu". Fra hovedmenuen skal du vælge sidste punkt med afslutning.


2.4.5. Afsluttende handlinger

Der kommer en række spørgsmål til sidst, hvor du først skal vælge, hvilken kerne du vil installere. Vælg den samme, som fik dig startet med installationen, eller hvis du er i tvivl, så vælg standardkernen.

Du skal svare "Yes" til spørgsmålet om at lave en boot diskette. Det kan altid betale sig at have en diskette at starte fra. Du skal indsætte en diskette i diskettedrevet, give den en passende label og gemme den et sikkert sted.

Du skal ikke konfigurere LILO på nuværende tidspunkt. Det kan du gøre senere. Derimod kan du konfigurere CDROM-drevet, vælge tidszone, indtaste maskin- og domænenavn og evt. installere netværk. Hvis du er i tvivl om netværk, kan det godt betale sig at vente med det, til du har haft Linux kørende et stykke tid og har fået mere erfaring. Du skal måske lige vide, at et loopback netværk er et, hvor du ikke kører med netværkskort, men har installeret netværks programmer. NFS server vil du også blive spurgt om - det er, at din maskine kan dele netværksdrev med andre UNIX kompatible maskiner. Vent også bare med dette.

Nu er tiden kommet, hvor Linux kan boote. Det vil den gøre. Hvis du har installeret fra den originale distribution og valgt programmer, der ikke ligger på den første CDROM, vil de blive installeret fra de følgende CDROM'er. Du bliver bedt om at indsætte de relevante CDROM'er efter tur.

Derefter skal du give superbrugeren root et password og oprette en normal bruger, som du skal bruge til alt normalt arbejde. Du bør også læse tidligere i dette kapitel om, hvorfor du ikke bør være systemadministratoren root mere end højst nødvendigt.

Endelig kan du installere modem og mus, og til slut vil YaST køre en del konfigurationsscripts i baggrunden.

De vil faktisk bruge et godt stykke tid på at blive færdige, så det vil være en god ide at se dig lidt omkring i systemet nu. Lad være med at lukke for systemet, inden konfigureringsscriptene er færdige; de vil blot starte igen næste gang, du tænder for systemet. Du kan se, hvordan det går med dem ved at taste Alt-F9 (du vender tilbage til den første skærm med Alt-F1).

Som sagt: SuSE systemet er nu klar til brug! Du skal også vide, at SuSE ligesom Red Hat anvender RPM-pakkeformatet, dvs. man kan normalt installere Red Hat programmer direkte under SuSE og omvendt.


2.5. Efterfølgende installation af programmer med SuSE

Når du har fuldført installation af pakker i SuSE og har dit system til at køre, så vil du sikkert på et tidspunkt overveje at fjerne nogle programmer og/eller tilføje nye programpakker. I Red Hat anvender man rpm-programmet (Se afsnit 5.2), og det kan du også gøre i SuSE, men SuSE har et godt program til at vedligeholde systemet, herunder installere/fjerne pakker. Programmet hedder yast, og det køres af root. Hvis du installerer på samme måde som ved den første installation - sikkert fra CDROM - så kan du direkte vælge "Choose/Install packages" for at gå videre. Vil du installere via netværk eller ændre sprog/keyboard, vælger du "Adjustments of install".

Har du valgt "Choose/Install packages", kommer følgende skærm op. Vil du installere/fjerne pakker, så gå direkte videre med "Change/create configuration". Vil du se på, hvad du har installeret, vælger du "Package information". Det øverste menu punkt, "Load configuration", svarer til de profiler, som du kunne vælge under installationen, dvs. her kan du nemt få valgt store grupper af pakker.

Har du valgt "Change/create configuration", kan du gå ind og rette de enkelte program-grupper, f.eks. "fun", som vi går videre med. Du kan i bunden af billedet, se hvor meget diskplads du har brugt og tilsvarende har tilbage.

Nu er du nået frem til at kunne installere programmerne. Du kan se, hvilke programmer, der allerede er installeret - idet det er markeret med et "i". Med mellemrum kan du sætte et "X" til at markere, at programmet skal installeres. I bunden af vinduet kan du se en kort beskrivelse af, hvad programmet indeholder og fylder. Forlad menuen med "F10", og gentag for de andre programgrupper, hvis du har lyst til dette.

Trykkede du "F10" fra den menu, vi viste på Figur 2-28, sker der et check af, hvad du har indtastet, og du kommer derefter tilbage til den menu, vi viste på Figur 2-27. Menuen har nu fået et par nye valgmuligheder. Med "What if" kan du se, hvad dit valg vil medføre, og du laver installationen af de valgte pakker ved at vælge "Start Installation".

Nu laves den egentlige installation af programmer. For hver pakke vises, hvor hurtigt den installeres. Efter disse vil yast lave en gennemgang af systemet og opdatere en masse lister. Der går lidt tid - nyd en kop kaffe, og du er færdig med at installere.

Den viste procedure til at installere programmer i SuSE kan gentages mange gange og er faktisk ret god sammenlignet med, hvad Red Hat tilsvarende har af installationsværktøjer.


Kapitel 3. Kom i gang med den grafiske brugergrænseflade

Når du nu har installeret Red Hat eller SuSE som beskrevet i installationskapitlet, har du også fået installeret X-serveren, dvs. det basale software, som skal til for at vise grafik. Oven på X (grafiksystemet), som sørger for, at grafikvinduer kommer op på skærmen, kører der en "window manager". Window managerens funktion er at give vinduerne udseende - f.eks. knappernes placering og menuer. Vi har alle forskellige ønsker til udseende, og Linux lader det være op til den individuelle smag. Hver bruger kan vælge sin egen window manager og opsætning af denne med menuer, farver og meget mere.

Der findes mange andre window managers, og de er alle forskellige. Grunden til, at der findes mange forskellige window managers, er, at brugerne af Linux har forskellig smag, og her er der uendeligt mange muligheder for personlig opsætning. Yderligere kan du til de fleste af de følgende systemer finde "themes", dvs. grafiske udseender, på http://www.themes.org

Lad os se noget grafik. Log ind, f.eks. som brugeren daisy i en tekstbaseret terminal, og skriv

[daisy@linus daisy]$  startx

Blev du mødt af et grafisk login vindue, så skal du blot logge ind som root og startx bruger du ikke (her).

Er alt gået godt under installationen, bør du i Red Hat eller SuSE se KDE eller GNOME for første gang, alt efter hvad du valgte under installationen. Har du ikke fået lavet en bruger konto til dig selv, er det nu, du skal gøre det med kommandoen adduser eller linuxconf.

I det følgende vil vi omtale de valg af grafisk brugergrænseflade, du har direkte mulighed for (der er mange andre).

Startede grafikvinduerne op uden problemer, så gå direkte videre. Hvis det ikke gik godt, eller du er mere interesseret, kan du læse mere i Appendiks A.


3.1. Valg af Window Manageren

Der findes utroligt mange forskellige window managers, og der kommer hele tiden nye til.


3.1.1. fvwm og fvwm2

Tidligere var fvwm2 (og forgængeren fvwm) den window manager, man brugte, med mindre andet var sat op. Den er hurtig, bruger kun meget få systemressourcer (hukommelse og CPU) og er utrolig stabil. Desværre er der ikke ret stor udvikling mere i fvwm2, så grafisk konfiguration er der ikke. Du retter selv i en tekstfil, hvad der skal være i menuer, hvilke farver osv. du ønsker.

Da udviklingen af fvwm gik i stå, byggede en gruppe programmører videre på den og resultatet blev fvwm2. Videreudviklingen har bl.a. menubar (som Windows 95) og bedre support for programmer, som kører som menuknapper (såsom ur).

I fvwm2 er der menuer i knappen, som du finder nederst i venstre hjørne. Der vælges med musen, og hvis du trykker uden for menubjælken med muse-tasterne, kan du få forskellige menuer op. Bemærk, at der under Desktop i nederste højre hjørne er et 2x3 felt, som altid vil vise, hvor de enkelte programmer er startet. Der er en virtuel arbejdsflade, der er 6 gange så stor som skærmen. Du kan starte, flytte og hoppe mellem de forskellige skærme efter behov og dermed godt have en del programmer kørende samtidig uden, at det bliver alt for rodet. Det er nok nyt for mange, men med lidt tilvænning er det meget anvendeligt.

For fvwm2 er der en række funktioner bundet i museknapperne:

  • Venstre museknap: Menuer med programmer, som kan startes.

  • Midterste museknap: Menu, hvor man kan lukke (afslutte), flytte eller skalere det aktive programvindue.

  • Højre museknap: Menu med alle vinduer vises for nem overgang mellem programmerne.

  • Ctrl-piletasterne: Hop mellem delene af den virtuelle arbejdsflade. Følg med under Desktop, hvor det aktuelle udsnit er vist.

  • Alt-piletasterne: Flyt en del af den virtuelle arbejdsflade. Følg med under Desktop, hvor det aktuelle udsnit er vist.

Ønsker du at kunne køre fvwm2, skal du gøre følgende i et tekst-vindue. X må ikke køre - tryk "Ctrl-Alt-Backspace" for at stoppe X, eller brug "exit" for pænt at lukke ned til tekst-vindue.

[daisy@linus daisy]$  echo "exec fvwm2" > ~/.Xclients
[daisy@linus daisy]$  chmod +x ~/.Xclients
[daisy@linus daisy]$  startx

Alle de window managers, vi viser, har en standardopsætning, som kan ændres til en personlig opsætning. For fvwm2 kan du begynde med at kopiere /usr/X11R6/lib/X11/fvwm2/system.fvwm2rc til ~/.fvwm2rc.

Kort fortalt kan du i begyndelsen af filen sætte farver og default fontstørrelse anderledes. Der er noget dokumentation om dette i selve filen . Hvis du starter et terminal vindue op - programmet xterm - kan du skrive man fvwm2 for at komme i gang, men alt er manuelle rettelser af ~/.fvwm2rc. For f.eks. KDE, GNOME og WindowMaker kan konfigurationen ske grafisk.


3.1.2. WindowMaker

I dette projekt har man set meget på window manageren fra NextStep systemet. I lang tid var AfterStep (som dengang hed Bowman) et spændende alternativ til fvwm. Menuer kan laves til at starte applikationer, men der er ikke support for drag-and-drop desktop værktøjer. Udviklingen går også i retning af WindowMaker, som virker ret lovende. Der kan findes mere information på http://www.windowmaker.org

En af de spændende ting med (bl.a.) WindowMaker er muligheden for at have mange "themes", dvs. temaer for udseendet af vinduerne. Fra http://www.themes.org kan du nemt installere nye udseender til baggrund, menuer og ikoner. Er du i et andet humør i morgen, kan du skifte hele udseendet af skærmen i et snuptag. Der er endvidere et grafisk konfigurationsværktøj med til at styre opsætningen.

Brugeren skal første køre wmaker.inst og svare, at det er .xinitrc, som skal ændres, og næste gang X startes med startx, vil du køre Window Maker.


3.1.3. Enlightenment

Enlightenment er et meget futuristisk projekt med elementer, som er helt unikke. Grafikken er meget speciel - men spændende. Startes en xterm, kan den komme flyvende fra siden, og du kan have bitmap-grafik til at danne baggrund for teksten i terminalen. Baggrundsbilleder er standard. De er dog ikke statiske, men kan have dynamiske effekter såsom flammer, der bevæges, ringe i vand, som udbredes med tiden etc. Enlightenment er godt på vej frem, men mangler stadig mange ting. Beta-versioner kan downloades fra http://www.enlightenment.org. Enlightenment er den window manager, som oftest køres under GNOME.


3.1.4. GNOME

GNOME er fremtidens frie desktop miljø, baseret på CORBA netværksobjekter. GNOME er egentlig ikke en window manager, men langt mere, og kan køre en window manager, der kan udnytte GNOME's muligheder, såsom Window Maker og Enlightenment. Udviklingsprojektet er i gang og kører godt frem, men GNOME teamet er ikke klar med færdige produktionssystemer endnu. Tempoet er meget højt og har allerede nu passeret den magiske release 1.0, så det er ved at være interessant for alle. Derfor kommer både Red Hat og SuSE med GNOME pakker. Arbejdet og nyeste versioner kan findes hos http://www.gnome.org

Vi vil i dette afsnit fortælle lidt mere om GNOME. Omtalen vil på ingen måde være udtømmende, idet GNOME er et meget komplekst system, som er i stadig udvikling.


3.1.4.1. Lidt om filosofien bag GNOME

For at forstå GNOME bedre er det vigtigt at forstå lidt af filosofien bag GNOME. GNOME er en forkortelse for GNU Network Object Model Environment. Det betyder, at GNOME består af en række små netværksorienterede objekter. Objekterne (eller komponenterne) udfører velafgrænsede opgaver. Dette ligger klart i tråd med den gamle UNIX-tradition, hvor et hvert program udfører en lille men velafgrænset opgave. GNOME's netværksorientering er implementeret vha. Corba (se http://www.omg.org), som er et af de store buzz words i den internationale edb-verden i disse år.


3.1.4.2. Panelet

Som alle moderne desktop-miljøer kommer GNOME med et panel, som i standard indstillingen er placeret i bunden af skærmen. Figur 3-5 viser et eksempel på et panel.

Yderst til højre og venstre ses to små pile. Trykker du på dem, minimerer du panelet. Trykker du på et minimeret panels fil, kommer vinduet frem igen i almindelig stor størrelse.

Næstyderst til venstre finder du et fodaftryk (GNOME's logo) med en pil, der peger opad. Trykker du på fodaftrykket, popper GNOME's hovedmenu op. Som ny GNOME-bruger er det sjovt at gå på opdagelse i alle disse programmer.

Panelet kan indeholde såkaldte applets. En applet er et lille program, hvis grafiske output vises i panelet. Du kan tilføje en applet ved at gå ind i Panel-undermenuen og finde "Add applet". Blandt de sjovere er "Game of Life", mens der af de mere praktiske er flere ure og post-tjekkere at vælge imellem. En god applet (som er med i Red Hat 6.0 standardindstillingen) er pager applet. Den gør det muligt at have flere virtuelle skærme. Der kommer hele tiden nye applets til, så det er en god ide at følge med på GNOME's hjemmeside.

Ud over applets kan du tilføje knapper, som starter programmer (launcher) eller hele undermenuer (drawer).


3.1.4.3. Konfiguration

Konfigurationen af GNOME kan ske grafisk. Med GNOME følger GNOME Control Center, hvor du kan ændre på indstillingerne.

Eftersom GNOME er tema-baseret (engelsk themes), er det meget let at gøre dit arbejdsmiljø personligt.


3.1.4.4. Lyd og grafik

Mange af programmørerne bag GNOME er meget glade for lyd og grafik. Derfor findes der rigtig god understøttelse for det i GNOME allerede i dag. I GNOME Control Center kan du slå lydunderstøttelse til, som betyder, at du får mange lydeffekter ved forskellige hændelser, f.eks. når du minimerer panelet. Men al det kræver naturligvis, at du har et lydkort.

Har du en CDROM i din computer, kan du overveje om du ikke vil høre musik mens du arbejder. Til GNOME finder du programmet gtcd, som er en enkel cd-afspiller.

Du har også mulighed for at se på billeder vha. programmet Electric Eyes. Programmet understøtter de mest udbredte grafik-formater.

Desværre følger programmet ggv ikke med i GNOME version 1.0 (og derved ikke med Red Hat 6.0), idet det stadig er for ustabilt. Programmet er i stand til at vise dig, hvad en Postscript fil indeholder, dvs. du kan se, hvordan den ser ud, inden du printer den.


3.1.4.5. PIMs

Personal Information Managers (eller bare PIMs) er små programmer, som holder styr på din personlige data. Til GNOME finder du en hel række.

gnomecal er et kalender-program. Du har mulighed for at gemme aftaler og tilbagevendende begivenheder. Standardindstillingen er en dagsoversigt, men du kan også se på en uge, en måned eller et år ad gangen. En lækker funktion er TO DO lister, dvs. du kan sætte alle dine deadlines ind i din kalender. gnome-cal benytter vCalendar formatet, som er en officiel Internet-standard for kalender-systemer, f.eks. kan du let synkronisere din PalmPilot med din stationære computer!

Har du brug for at holde styr på adresser, er programmet gnomecard nok noget for dig. Programmet er ikke specielt avanceret; det er bare en adressebog.

Vi synes også at gtt (GTimeTracker) bør nævnes. Programmet er et simpelt tidstagerprogram. Arbejder du på flere projekter eller opgaver, er det ofte rart at holde øje med, hvor megen tid du bruger på hvad. Du kan oprette projekter, og du kan starte og stoppe uret.


3.1.5. KDE

KDE er en ny stor stjerne i Linux-verdenen. KDE er et meget succesrigt projekt, som har meget stor fart på. KDE tilbyder en stærk ramme for en moderne window manager og god support for de applikationer, som kan drage fuld nytte af KDE's struktur. KDE er meget professionel med bl.a. "drag and drop features" og filemanager, som samtidig er en ftp- og web-browser.

KDE er bygget på et kommercielt startet grafisk bibliotek (Qt fra Troll Tech), som i starten ikke var frit, men gratis til udvikling af Linux programmer. I november 1998 kom så nyheden om, at Troll Tech nu ville frigive Qt under en fri licens, der falder indenfor Open Source definitionen. Dette gjorde accepten af KDE meget større i mange Linux kredse. KDE og nye applikationer kan downloades fra http://www.kde.org

Det er nemt at anvende KDE (version 1.1 eller 1.1.1) under Red Hat og SuSE, da det er en del af det, du valgte under hovedinstallationen. Du mangler kun at lave en lille ændring for, at KDE vælges, når X startes op. Prøv at skrive less /etc/X11/xinit/xinitrc i et xterm vindue. Du kan nede mod bunden af dette tekst program (indholdet kaldes shell kode) se, at der står noget med at $HOME/.Xclients, som vil blive kørt (exec), hvis den findes (-f).

if [ -f $HOME/.Xclients ]; then
    exec $HOME/.Xclients
Dette er systemets opstart af X-grafik, og du kan læse, at du skal lave et lille "hack" for at få valgt KDE. Bare læs videre.

Vi sætter kommandoen startkde ind i filen $HOME/.Xclients, hvilket er det samme som ~/.Xclients. Skriv følgende

[daisy@linus daisy]$  echo "startkde" > ~/.Xclients
[daisy@linus daisy]$  chmod +x ~/.Xclients
Du kan nu gå ud af X og den nuværende window manager (Find Exit i menuerne, eller tryk "Ctrl-Alt-Backspace". Nu bør du være tilbage i tekst-konsollen, hvor du tidligere loggede ind via brugernavn og password. For at starte KDE skriver du bare startx, og når du her første gang har trykket dig igennem et par oplysninger, kører du KDE. Næste gang, du skal køre KDE (under X), skal du blot skrive startx.


3.1.5.1. Lad os se nærmere på KDE

Når KDE er startet op, er der ikoner i venstre side, hvor du kan starte programmer - og det er kun et enkelt klik med musen, som skal bruges her.

Først skal du se i bunden af skærmen. Menu-baren er god - lad os lige se på indholdet fra højre mod venstre. Først er der et ikon, hvor du kan starte et terminalvindue op. I dette vindue kan du skrive kommandoer til Linux og starte programmer. Dernæst er der fire felter, som er virtuelle arbejdsfelter. Rigtig smart system! Videre mod venstre findes et kryds og en hængelås, som er til at afslutte KDE henholdsvis skærmlås. Næste ikon er en hjælpefunktion, dernæst en søgefunktion til at finde filer. Næste funktion vil starte kcommandcenter, som er vist på Figur 3-11.

Med kcommandcenter kan du sætte meget af KDE op grafisk. Det er ikke så svært, så brug lidt tid der. Vi mangler nu de sidste tre ikoner på Figur 3-10. Først er der et link til at starte kfm op hjemme, dvs. KDE filemanager op i eget hjemmekatalog. Næstsidste ikon giver dig en oversigt over de virtuelle arbejdsområder og alle de programmer, du har startet op - så kan du let flytte over til netop det program, du ønsker. Sidste ikon, som er det vigtigste, giver en menu med en lang række af de almindelige KDE programmer, du kan starte op. Den første menu, der kommer frem, kan ses på Figur 3-12.

Et meget lille og anvendeligt program i KDE er knotes, som anvendes til at lave små notater - huskesedler - som gemmes også til næste gang, du starter KDE op. Et eksempel kan ses på Figur 3-13.

Igen skal vi lige se på kfm, som er vist på Figur 3-14. Her er det indholdet af /usr/bin, som er vist. Bemærk, at du kan udskifte file:/usr/bin med http://www.sslug.dk, og så har du en web-browser, eller med ftp://sunsite.auc.dk, så har du et ftp kopieringsprogram, som du endda kan kopiere direkte mellem en ftp konto og et andet kfm-vindue.

Nye programmer kan nemt startes ved at føre musen ud på baggrundstapetet (wallpaper) og trykke på højre musetast (du skal dog lige bemærke, at du i denne menu har en del muligheder - leg selv med dem). Vælg Ny og Application. Skal det f.eks. være Emacs, du vil have et nemt start ikon til, så angiv Emacs.kdelnk. Et nyt vindue kommer op som vist på Figur 3-15. Under fanebladet "Kør" kan du vælge nyt ikon ved at trykke på det lille ikon. I feltet "Kør" skal du skrive stien til programmet - i dette tilfælde /usr/bin/emacs %f. Hvis du ikke ved, hvor Emacs findes, så kan du skrive which emacs i et terminal-vindue. Du har måske gættet det - %f betyder filnavn, og har du det med, kan du trække filer grafisk hen på Emacs-ikonet for at editere filen.

KDE udvikler sig hurtigt, og du kan følge udviklingen på http://www.kde.org. Planen er, at der kommer en release 2.0 omkring forår 2000, hvor en fuld officepakke er med (koffice), som virker meget lovende. Vi kan glæde os!!!


Kapitel 4. Basal UNIX

Linux er et UNIX-lignende styresystem med alle dets fordele og ulemper. UNIX' historie går tilbage til slutningen af 1960'erne, hvor en gruppe forskere ved AT&T's forskningslaboratorium eksperimenterede med computerens uanede muligheder.

Dengang UNIX var ungt, var der ikke noget, der hed grafiske brugergrænseflader og mus. Næh, brugeren sad foran en tekstterminal og tastede alle kommandoer ind. Denne noget primitive måde at arbejde med en computer på, genfinder vi i moderne UNIX, og eftersom Linux er et UNIX-lignende styresystem, har du naturligvis også mulighed for at indtaste kommandoerne på dit tastatur. Begynder du at bruge Linux seriøst, vil du dog nok finde ud af, at tekst-kommandoerne ikke er en primitiv arbejdsform - men langt mere effektivt og hurtigere end Windows måden.

Nu må du ikke tro, at det kun er af gammel vane, at UNIX-brugere taster deres kommandoer ind på en kommandolinje; faktisk er det muligt at udføre endda meget komplekse opgaver med meget lidt tastearbejde. Dette skyldes, at der med UNIX altid følger et hav af hjælpeprogrammer med. Lad os give dig et eksempel - bare rolig, vi forventer ikke, at du allerede nu kan gennemskue, hvordan det fungerer, men vi vil bare vise dig, hvor lidt tastearbejde der skal til for at udføre store opgaver. Lad os antage, at du har en hjemmeside liggende på maskinen www.andeby.dk. Du er en produktiv person med mange interesser, så din hjemmeside består af mange html-filer. En dag flytter du, og din hjemmeside skal skifte maskine - din nye maskine hedder www.kongeh.org. Dit problem er, at du skal rette alle links på dine sider. I UNIX (og dermed også Linux) kan det gøres ganske let. Du udfører blot kommandoen:

 find . -type f | egrep -i '\.html?$' |\
   xargs perl -i -pe 's/www\.andeby\.dk/www\.kongeh\.org/gi' 

Når du udfører kommandoen, bliver alle filer, som ender på "html" (bl.a. også "HTML" og "htm"), fundet (find). Du benytter et program ved navn perl til at foretage selve søg-og-erstat-proceduren. Dette eksempel er nok lidt for avanceret til vores lille bog her, men vi håber, at du nu kan se, hvor kraftfuld en enkel kommandolinje kan være i UNIX.

Når du indtaster kommandoer på en kommandolinje, benytter du dig af et program, som i daglig tale omtales shellen (eng. "shell"). Der findes mange forskellige shells, men BASH (Bourne Again SHell) er den mest udbredte under Linux. Shellen fortolker hvad du skriver, og udfører de kommandoer, du ønsker.

Vi kan også fra starten fortælle dig, at store og små bogstaver ikke er det samme for filnavne. Du kan også godt bruge meget lange filnavne, og der er ikke den samme DOS-opbygning med fil-endelser på maksimalt tre bogstaver (CONFIG.SYS osv.). I modsætning til Microsoft Windows vises alle filer med * og ikke *.* - dertil kommer skjulte filer .* - dette er ret vigtigt.

Du skal også lege lidt med tasterne pil-op og pil-ned, som løber igennem de gamle kommandoer igen. Ctrl-A og Ctrl-E bruges til at gå til starten og slutningen af en linje.

Tabulator-funktionen er utroligt rar, hvis man skal skrive lange filnavne igen og igen. Ved at skrive den første del af en kommando eller et filnavn og trykke på den én gang, prøver shellen at gætte, hvad du mener. Er der kun én mulighed skriver shellen denne mulighed. Er der flere muligheder, kan du trykke på tabulator igen og få vist alle mulighederne.

Hvis du skriver

tou<TAB> sikke_et_langt_filnavn
skulle det gerne blive til
touch sikke_et_langt_filnavn
idet der ikke er andre kommandoer, der begynder med 'tou'
tou<TAB> sik<TAB>
Det fungerer i øvrigt ved, at shellen i første "ord" leder efter en eksekverbar fil i de biblioteker, som er angivet i systemvariablen $PATH eller i den sti, som angives foran selve kommandoen. Efter kommandoen ledes der efter filnavne i det angivne bibliotek.


4.1. Virtuelle konsoller

Nu skal du til at lære kommandoer til Linux. Faktisk har du allerede lært en kommando - startx, som fik X til starte op. Der, hvor du i den simple tekstmode skrev startx, kalder vi for konsollen. Linux' konsollen er i virkeligheden ikke så primitiv, som du tror.

Der er faktisk mere end en konsol. Linux konsolsystem består af en række virtuelle konsoller. Du skifter mellem dem ved at trykke på ALT og en funktionstast mellem F1 og F7 hvor "Alt-F7" dog er tilbage til den grafiske X skærmflade, hvis den er startet op. Hvis du står i X og skal tilbage til de tekstbaserede konsoller, skal du bruge "Ctrl-Alt-F1" op til "Ctrl-Alt-F6". Linux er et ægte multitasking system, så du kan bare logge ind på flere terminaler og arbejde. I hver konsol kører der en shell, som fortolker dine kommandoer. Linux er - som vi allerede har sagt mange gang - meget fleksibelt, så faktisk kan du have forskellige shells kørende i forskellige konsoller!


4.2. Filer og deres rettigheder

En harddisk i Linux er opbygget i et hierarki af kataloger (eng. "directory"), underkataloger samt filer. På den måde adskiller Linux sig hverken fra UNIX, MS-DOS eller Windows 95/98. En del af katalogerne har forskellige formål, f.eks. er alle brugernes filer placeret i underkataloger til /home. Filer ejet af brugeren daisy vil ligge i kataloget /home/daisy eller i underkataloger til dette. Kataloget /home/daisy kaldes i daglig tale for hjemmekataloget for daisy (eng. "home directory").

Når du logger ind på din Linux-maskine, vil du blive mødt af en kommando-prompt, dvs. en linje der ligner dette

[daisy@linus daisy]$ 

Dit hjemmekatalog er som sagt stedet, hvor dine filer og underkataloger ligger placeret. Linux er et flerbrugersystem, og det er derfor vigtigt at kunne holde styr på, hvor de enkelte brugeres filer er. Kommandoen pwd (eng. "print working directory") fortæller dig, hvor i katalogstrukturen du p.t. er.

[daisy@linus daisy]$  pwd
/home/daisy

I det ovenstående eksempel er du i kataloget /home/daisy. Dette katalog er dit hjemmekatalog. Der er to vigtige ting at bemærke. Du skal dels lægge mærke til, at Linux (generelt UNIX) bruger en / (slash) og ikke en \ (backslash) i stier, som det kendes fra Windows. Det er også vigtigt, at du husker at store og små bogstaver er forskellige i Linux. Filerne Linux.html og linux.html er således ikke den samme.

Det er let at oprette underkataloger, f.eks. kan du oprette et underkatalog ved navn MitKatalog ved at skrive:

[daisy@linus daisy]$  mkdir MitKatalog

Kommandoen, som opretter et underkatalog, hedder med andre ord mkdir (eng. "make directory"). I Linux er der forskel på små og store bogstaver, og det er faktisk en god ide at bruge stort begyndelsesbogstav i dine egne underkataloger, mens filer begynder med et lille bogstav. Du kan nu skifte katalog vha. kommandoen cd (eng. "change directory"). Lad os skifte til kataloget MitKatalog:

[daisy@linus daisy]$  cd MitKatalog
[daisy@linus daisy]$  pwd
/home/daisy/MitKatalog
[daisy@linus daisy]$  cd ..
[daisy@linus daisy]$  pwd
/home/daisy
[daisy@linus daisy]$ 

Som du kan se af ovenstående kommando-serie, skifter du til et katalog et niveau højere oppe i strukturen ved at skrive cd .. Husk, at der skal være mellemrum efter cd. I Linux betyder .. altid kataloget et niveau højere oppe (nogle gange kaldt forældrekataloget - eng. "parent directory"). Hvis du ønsker at slette et tomt underkatalog, der altså hverken indeholder filer eller underkataloger, kan du bruge kommandoen rmdir (eng. "remove directory").

[daisy@linus daisy]$  rmdir MitKatalog
[daisy@linus daisy]$ 

Lad os nu se på indholdet af dit hjemmekatalog. Kommandoen ls viser indholdet af det aktuelle katalog. Kommandoen har dette lidt mærkelige navn, fordi det er en forkortelse af det engelske "list". Korte og lidt kryptiske kommandonavne er typisk for Linux. Hvis ls er din første kommando på dit nye Linux system, er resultatet noget kedeligt:

[daisy@linus daisy]$  ls
[daisy@linus daisy]$ 

Det er nu ikke så svært at forstå: du har jo ingen filer eller underkataloger i dit hjemmekatalog endnu. Og dog, det er ikke helt rigtigt, for skriver du ls -a ~, ser du, at der er et par filer, der starter med punktum og ligger i ~ (hjemmekataloget). Den lille krøllede dims ~ hedder i øvrigt en "tilde".

[daisy@linus daisy]$  ls -a
.              .Xdefaults     .bash_profile
..             .bash_logout   .bashrc

Filer, der starter med punktum, anvendes oftest til at gemme din opsætning for de enkelte programmer. De skal normalt ikke ændres særlig tit, og derfor vises de først, når du tilføjer -a som argument til ls.

Vi vil skynde os at lære dig en vigtig Linux kommando: cp. Denne kommando kopierer (eng. "copy") en fil. Vi kopierer filen passwd fra kataloget /etc til det aktuelle katalog (kaldet .), som p.t. er vores hjemmekatalog:

[daisy@linus daisy]$  cp /etc/passwd .
[daisy@linus daisy]$ 

Hvis du nu udfører ls kommandoen igen, ser du, at der nu er dukket en fil ved navn passwd op i dit hjemmekatalog:

[daisy@linus daisy]$  ls
passwd
[daisy@linus daisy]$ 

Langt de fleste Linux-kommandoer kan udføres med forskellige funktioner slået til eller fra. Denne ekstra funktionalitet i en kommando styres oftest vha. en option. I UNIX-verdenen gives en option typisk til kommandoen ved at angive en bindestreg og et bogstav. ls kommandoen har en nyttig option, som viser indholdet af et katalog i langt format (derfor bruges bogstavet l for det engelske "long").

[daisy@linus daisy]$  ls -l
-rw-r--r--   1 daisy    daisy         652 Jul 14 22:32 passwd
[daisy@linus daisy]$ 

Lad os forklare linjen bagfra. Det sidste, du ser, er filens navn, som jo er passwd. Inden da kan du læse, hvornår filen blev oprettet eller sidst blev ændret. Vi kopierede filen den 14. juli kl. 22.32. Tallet 652 fortæller, hvor mange bytes filen fylder.

De to gange daisy er vigtige at forstå. Alle filer og kataloger i et Linux-system har en ejer og tilhører en gruppe. Ejeren er en af brugerne på systemet, mens en gruppe består af en eller flere brugere. En bruger kan godt tilhøre flere grupper. Gruppebegrebet i Linux er særligt smart, hvis man arbejder i et firma, hvor der eksisterer flere afdelinger, idet hver afdeling kan have deres egen gruppe. I gamle dage (SuSE og tidligere versioner af Red Hat) tilhørte alle brugerne den samme gruppe, men i Red Hat Linux har man valgt at lade hver bruger have deres egen gruppe af sikkerhedsmæssige grunde. Som du kan se, ejes filen passwd af brugeren daisy og er tilknyttet gruppen daisy.

1-tallet fortæller at der en 1 reference til filen. Det kryptiske "-rw-r--r--" handler om rettigheder. Som allerede nævnt har alle filer og kataloger en ejer og er tilknyttet en gruppe. Det er netop, hvad disse kryptiske tegn fortæller noget om. Det første tegn er filtypen, dvs. om det er en fil "-" eller et katalog "d". De andre ni tegn falder i tre grupper, som er rettigheder for ejeren, gruppen og alle andre. Et "r" fortæller, at det er tilladt at læse (eng. "read") en fil, et "w" betyder, at det er tilladt at skrive (eng. "write") til filen, dvs. ændre og evt. slette filen. Et "x" er en smule mere kompliceret: hvis det drejer sig om en fil, er det tilladt at udføre den (eng. "execute") som program, og hvis der er tale om et katalog, er det tilladt at se indholdet af kataloget.

passwd er - som du ser - en fil, hvor ejeren (brugeren daisy) har tilladelse til at læse og skrive, mens gruppen daisy har ret til at læse. De samme rettigheder gælder for andre brugere, som ikke er med i gruppen daisy.

Det er naturligvis muligt at ændre på en fils rettigheder. Til dette formål bruger du kommandoen chmod (eng. "change mode"). Lad os ændre rettigheder på filen passwd, så gruppen kan skrive i filen:

[daisy@linus daisy]$  chmod g+w passwd
[daisy@linus daisy]$  ls -l
-rw-rw-r--   1 daisy    daisy         652 Jul 14 22:32 passwd

Det lille "g" betyder gruppe, dvs. vi ønsker at ændre på gruppens rettigheder. Hvis det var ejeren, skulle vi bruge "u" (eng. "user"), mens et "o" betyder andre (eng. "other") og alle sammen kan ændres med "a" (eng. all). Bogstavet "w" betyder, at vi vil ændre på skriverettighederne, og et "+" betyder, at vi vil tillade det, mens et "-" vil forbyde det. Grupper kan oprettes, så kun nogle kan bruge dit program eller læse og/eller skrive i dine filer.

Rettighederne kan også skrives som et tal bestående af tre cifre. Det første ciffer fortæller om rettigheder for ejer, det andet for gruppen og det sidste for alle andre. Read (r) tillægges værdien 4, write tillægges værdien 2 og execute tillægges værdien 1. Hvis vi ligger disse værdier samme får vi fra eksemplet ovenfor 6, 6 og 4 - altså 664.


4.3. Indholdet af filer

Indtil nu har du arbejdet med filer, men du har stadig ikke set på deres indhold. Indholdet af tekstfiler kan let vises. Kommandoen cat viser indholdet af en fil, f.eks. kan vi se indholdet af passwd ved at skrive:

[daisy@linus daisy]$  cat passwd
daemon:*:2:2:daemon:/sbin:
adm:*:3:4:adm:/var/adm:
lp:*:4:7:lp:/var/spool/lpd:
sync:*:5:0:sync:/sbin:/bin/sync
shutdown:*:6:0:shutdown:/sbin:/sbin/shutdown
halt:*:7:0:halt:/sbin:/sbin/halt
mail:*:8:12:mail:/var/spool/mail:
news:*:9:13:news:/var/spool/news:
uucp:*:10:14:uucp:/var/spool/uucp:
operator:*:11:0:operator:/root:
games:*:12:100:games:/usr/games:
gopher:*:13:30:gopher:/usr/lib/gopher-data:
ftp:*:14:50:FTP User:/home/ftp:
nobody:*:99:99:Nobody:/:
daisy:x:501:501:Daisy,,,,:/home/daisy:/bin/bash

cat er, som du ser, meget let at bruge, men kommandoen har en dårlig side: hvis filens indhold fylder mere end en skærmside, kommer filen alt for hurtigt over skærmen, og bagefter ser du kun den sidste side (dvs. det antal linjer, som kan vises på din skærm). Kommandoerne less og more er derfor mere velegnede, da det er muligt at bladre frem og tilbage i filen. Kommandoen viser en side ad gangen, og du kan bladre frem ved at trykke på f (eng. "forward") eller mellemrum og tilbage ved at trykke på b (eng. "backward"), og i less kan pil op og ned også anvendes.


4.4. Et par små nyttige kommandoer

Du har allerede set, hvordan du kan kopiere filer og se indholdet af dem. Nu kan det tænkes, at du finder ud af, at en fil skal have et andet navn, dvs. den skal omdøbes. Til dette formål har du kommandoen mv (eng. "move").

[daisy@linus daisy]$  cp passwd nyFil
[daisy@linus daisy]$  mv nyFil megetNyFil
[daisy@linus daisy]$  ls -l
-rw-rw-r--   1 daisy    daisy         652 Jul 14 22:32 passwd
-rw-rw-r--   1 daisy    daisy         652 Jul 14 22:34 megetNyFil

I eksemplet ovenfor tager vi først en kopi af filen passwd, og kopien døber vi nyFil. Bagefter omdøber vi filen til megetNyFil. Som kommandoens navn antyder, kan den mere end bare omdøbe filer: den kan flytte dem til andre steder i filsystemet. Eksemplet nedenfor viser dig, hvordan du flytter filen megetNyFil til kataloget MitKatalog.

[daisy@linus daisy]$  mkdir MitKatalog
[daisy@linus daisy]$  mv megetNyFil MitKatalog
[daisy@linus daisy]$  cd MitKatalog
[daisy@linus MitKatalog]$  ls -l
-rw-rw-r--   1 daisy    daisy         652 Jul 14 22:34 megetNyFil
[daisy@linus MitKatalog]$  cd ..
[daisy@linus daisy]$  ls -l
-rw-rw-r--   1 daisy    daisy         652 Jul 14 22:32 passwd

Nu kan det tænkes, at du vil slette filen megetNyFil. Kommandoen rm er lige det, du mangler (rm (eng. "remove").

[daisy@linus daisy]$  cd MitKatalog
[daisy@linus MitKatalog]$  ls -l
-rw-rw-r--   1 daisy    daisy         652 Jul 14 22:34 megetNyFil
[daisy@linus MitKatalog]$  rm megetNyFil
[daisy@linus MitKatalog]$  ls -l
[daisy@linus MitKatalog]$ 

Du skal være meget forsigtig med at bruge mv og rm, idet der ikke er nogen mulighed for at fortryde. Hvis du vil blive spurgt, om det er rigtigt, at du vil flytte/slette, kan du tilføje et i-flag, og ovenstående eksempel bliver til

[daisy@linus MitKatalog]$  rm -i megetNyFil
rm: remove `megetNyFil'?

Her kan du så svare y for ja, og n for nej. En videregående bemærkning: Du kan endda lave aliaser alias rm='rm -i' ; alias mv='mv -i' og gemme dette i din ~/.bashrc, og så vil det altid bruges sikkert.


4.5. On-line manualen

Det er naturligvis umuligt at huske alle kommandoer og deres options. Dette faktum har man i UNIX-kredse erkendt for mange år siden, og manualerne til mange kommandoer og programmer ligger derfor på computeren. Et programs manual kaldes i UNIX-verdenen for dets man page - man står for "manual".

For at se manualen for et program, bruger du programmet man. Lad os se på et eksempel. Hvis du vil læse manualen til ls, skal du taste:

[daisy@linus daisy]$  man ls

Linux vil nu vise dig manualen. Langt de fleste manualer består af en række faste afsnit: "Name", "Synopsis", "Description", "Options", "Bugs" og "See also".

  • "Name" giver nok sig selv: det er navnet på programmet.

  • "Synopsis" viser hvordan programmet bruges. Det, der vises i kantet parentes, er valgfrie parametre.

  • "Description" er en kort beskrivelse af programmets virkemåde.

  • "Options"-afsnittet opremser alle de options, programmet har. Du har allerede set, at ls har en option -l, men programmet har faktisk mange andre.

  • "Bugs"-afsnittet fortæller dig, om der er kendte fejl i programmet eller ting, du skal passe på. I Linux-verdenen er programmørerne ikke bange for at indrømme, at intet program er fejlfrit.

  • Endelig fortæller afsnittet "See also" dig, hvilke andre man-sider, der er værd at læse for bedre at forstå, hvordan programmet bruges.

Det er ikke altid til at huske, hvad en kommando præcist hedder i Linux. Du sidder og kan ikke huske, hvad en bestemt kommando hedder, men du kan huske, at den har noget med mail at gøre. Til at lede alle man-siderne igennem har du kommandoen apropos.

[daisy@linus daisy]$  apropos mail
MIME (1)             - Multipurpose Internet Mail Extensions
Rnmail (1)           - a program for replying via mail
aliases (5)          - aliases file for sendmail
biff (1)             - "be notified if mail arrives and who it is from"
cmail (6)            - an email chess helper
faces (1)            - visual mail, user and print face server.
fetchmail (1)        - fetch mail from a POP, IMAP, or ETRN-capable server
formail (1)          - mail (re)formatter
logrotate (8)        - rotates, compresses, and mails system logs
mail (1)             - send and receive mail

Der kan være mange steder i man-siderne, hvor et ord indgår. Som du kan se, får du en kort beskrivelse med, som kan få dig til at huske, hvilket program du leder efter.

Tallene, som står i parentes i eksemplet fra før, fortæller dig, i hvilket afsnit (eng. "section") i den samlede manual den enkelte man-side står. De forskellige afsnit indeholder forskellige typer man-sider, f.eks. er afsnit 1 om programmer, som almindelige brugere kan bruge, mens afsnit 8 indeholder manualer for systemadministratoren. Hvis du ønsker en kort introduktion til et afsnit af den samlede manual, slår du op på intro's man page, dvs. ønsker du at læse lidt om, hvad afsnit 3 indeholder, udfører du man 3 intro.

Tip: Før du kan bruge apropos, skal du som brugeren root en gang for alle have indekseret alle manual-siderne ved at køre kommandoen /usr/sbin/makewhatis. I øvrigt er man en god måde at komme i gang med manual-sider.


4.6. Joker-tegn, redirection og pipes

Vi vil i dette afsnit se på et par af systemets mere smarte funktioner, som gør livet lettere for dig som bruger.


4.6.1. Joker-tegnet

Forestil dig, at du har mange filer, som du gerne vil slette. Du kan naturligvis skrive rm filnavn for hvert enkelt navn, men bare med 5-10 filer bliver du hurtigt træt af det. Redningen er joker-tegnet. Lad os antage, at du har tre filer i et katalog, og at du gerne vil slette dem alle. Nedenfor ser du hvordan.

[daisy@linus EtKatalog]$  ls
 aaa  bbb   ccc
[daisy@linus EtKatalog]$  rm *
[daisy@linus EtKatalog]$  ls
[daisy@linus EtKatalog]$ 

Alle filer er det samme som *. Hvis du i stedet havde skrevet a*, betyder det alle filer som begynder med a.

[daisy@linus NytKatalog]$  ls
 aaa  abb   ccc
[daisy@linus NytKatalog]$  rm a*
[daisy@linus NytKatalog]$  ls
 ccc
[daisy@linus NytKatalog]$ 

Stjernen, også kaldet joker-tegnet, kan bruges overalt. F.eks. betyder a*b alle filer, der begynder med a og slutter på b, hvilket vil inkludere filerne ab, aDuErGodb, men ikke en fil med navnet abe. Joker-tegnet kan bruges sammen med alle de mest almindelige kommandoer i Linux, f.eks. viser nedenstående eksempel, hvordan du viser alle filer, der begynder med ad i kataloget /usr/bin

[daisy@linus daisy]$  cd /usr/bin
[daisy@linus bin]$  ls ad*
/usr/bin/addftinfo /usr/bin/addr /usr/bin/addr2line

Det er værd at bemærke, at jokertegn ekspanderes af shellen ("kommandofortolkeren") - ikke af applikationen. Det har bl.a. den store fordel, at jokertegn altid fungerer - og fungerer konsistent på tværs af applikationer.

Et meget simpelt eksempel: Et katalog indeholder 3 filer: file1, file2 og myfile. Skriver du: ls *, vil shellen først ekspandere *-tegnet og derefter kalde ls med: ls file1 file2 myfile. Output fra ls er blot:

[daisy@linus test]$  ls
file1   file2   myfile
og ls laver således et yderst banalt arbejde.

Men der er flere muligheder i dette. Et eksempel: For at se forskellen mellem file1 og file2 kan du skrive: diff file1 file2. Men du kan også nøjes med at skrive: diff f* og således lade shellen ekspandere f* til file1 file2.

Somme tider kan denne konsekvente ekspansion af joker-tegn dog være en ulempe.

Et eksempel: Et katalog indeholder 2 filer:

[daisy@linus film]$  ls
dogme95.zip      film_index.html

Du kan også bruge zip-filer under Unix, og du kan se indholdet af zip-filen ved f.eks. at skrive:

[daisy@linus film]$  unzip -v d*
Archive:  dogme95.zip
 Length  Method   Size  Ratio   Date    Time   CRC-32     Name
 ------  ------   ----  -----   ----    ----   ------     ----
  14853  Defl:N    5224  65%  10-27-98  16:12  944a4af4   festen.html
  14844  Defl:N    5401  64%  11-14-98  19:53  e55c1636   idioterne.html
   1941  Defl:N    1024  47%  03-12-99  22:12  5ecb7d23   mifune.html
 ------          ------  ---                              -------
  31638           11649  63%                              3 files

Nu vil vi pakke festen.html ud af zip-filen. Det er den eneste fil i zip-filen, der starter med f, så under DOS kunne man blot skrive: unzip d* f*. Men prøver man det under Unix, går det galt:

[daisy@linus film]$ unzip d* f*
Archive:  dogme95.zip
caution: filename not matched:  film_index.html
Hvorfor det? Fordi der i kataloget i forvejen ligger en fil, der matcher f*, så shellen vil ekspandere både d* og f* og kalde unzip med: unzip dogme95.zip film_index.html.

Du bliver som minimum nødt til at skrive: unzip d* fe*. Der er ingen fil i kataloget, der matcher fe*, så shellen vil kun ekspandere d* og kalde unzip med: unzip dogme95.zip fe*. Det overlades nu til unzip at ekspandere fe*.

Det bør også nævnes, at mange programmer understøtter en ekstrem sej syntaks, kaldet regulære udtryk (eng. "regular expressions"), til alt inden for mønstergenkendelse af tekst, du kan f.eks. slette alle dine filer, der starter med bogstaver mellem a og g ved at skrive rm [a-g]*

Det siger vist sig selv, at du skal passe meget på, når du skal slette - for du kan ikke fortryde. Regulære udtryk er beskrevet i afsnit 7 i manualen under navnet regex.


4.6.2. Redirection

Det er ikke altid hensigtsmæssigt at få outputtet fra en kommando skrevet direkte på skærmen. Hvis du skriver ls /usr/bin, vil du forstå hvorfor. Derfor er det muligt at omdirigere output (eng. "redirect"). Til det formål bruger du tegnet > til at omdirigere outputtet til en fil.

[daisy@linus daisy]$  ls /usr/bin > usrbin.dir
[daisy@linus daisy]$  less usrbin.dir

Du kan også sende skreven tekst ind til et program som forventer tastetryk. Nedenstående lille program svarer "y" på et spørgsmål som "Interaktivkommando", beder brugeren at svare på.

#!/bin/sh
Interaktivkommando <<EOF
y
EOF

4.6.3. Pipes

Som du så i det foregående afsnit, kan du omdirigere outputtet til en fil. Nu kan du med rette spørge, hvorfor du skal omdirigere til en fil, hvis du kun skal se på den en gang? Svaret på dit spørgsmål er ligefremt: det behøver du heller ikke. Du kan nemlig sætte en pipe op. Ordet "pipe" betyder på engelsk ikke blot en pibe, man ryger tobak i, men også et rør, som kan bruges til at lede væske fra et sted til et andet. I Linux betyder det, at outputtet fra et program bruges som input til et andet. Lad os give et lille eksempel:

[daisy@linus daisy]$  ls /usr/bin | less

Den lodrette streg (|) sætter en "pipe" op. Outputtet fra ls /usr/bin bruges som input til less. Det er naturligvis muligt at sætte en række pipes op efter hinanden og på den måde slippe for en masse midlertidige filer.


4.6.4. Programmet grep

Ofte vil du fra kommandoer som cat, ls og find få alt for meget information, og oftest ved du godt, at det kun er en begrænset del af de viste linjer tekst, du er interesseret i. Hvis du f.eks. kun skal bruge de linjer af /etc/passwd, der indeholder navnet daisy, kan du bruge grep til at begrænse outputtet med.

[daisy@linus daisy]$  cat /etc/passwd | grep daisy 
daisy:x:501:501:Daisy,,,,:/home/daisy:/bin/bash

4.7. Proces-kontrol

Når du starter et program op, bliver det til et kørende program. Et kørende program kaldes i UNIX-sammenhænge for en proces (eng. "process"). Hver proces har en unik indikator, som er et heltal. Vi kalder denne indikator for PID, hvilket kommer af det engelske "Process IDentifier".


4.7.1. ps viser processer

Hvis du vil se, hvilke programmer du har kørende, kan du bruge kommandoen ps. ps er en forkortelse for "process".

[daisy@linus daisy]$  ps
  PID TTY STAT TIME COMMAND
  435  2   S   0:00 /bin/login -- daisy
  436  2   S   0:00 -bash
  447  2   R   0:00 ps
[daisy@linus daisy]$ 

Ovenstående dialog viser, at der er et kørende program (ps) og to sovende (/bin/login og bash). At et program er kørende, ser du ved, at der under STAT står et "R" (for "running"), mens et sovende program i status-feltet har et "S" (for "sleeping"). En sovende proces er en proces, som er blevet startet, men ikke er aktiv, og nu står og venter på at blive aktiveret. Feltet, hvor der står TTY, viser, fra hvilken terminal programmet blev startet. I Linux kan du skifte mellem flere virtuelle konsoller, og hver virtuel konsol opfattes som en terminal.


4.7.2. Få et bedre overblik ved at bruge top

Som du så i foregående afsnit, kan ps bruges til at få et overblik over, hvilke processer du har kørende. Problemet er, at du kun får et statisk billede. Hvis du er interesseret i et mere dynamisk billede af din computers processer, kan du bruge programmet top. top opdaterer skærmen hvert femte sekund. Ved at trykke på "i" skifter du mellem "non-idle mode" og almindelig mode. I "non-idle mode" ser du kun de processer, som er aktive, mens du i almindelig mode ser alle. Du afslutter top ved at trykke på "q".

top leverer mange oplysninger, og derfor er det spændende at bruge programmet. Endvidere er det værd at læse programmets man-page.


4.7.3. At køre programmer i baggrunden

Alle de kommandoer, vi har præsenteret dig for i dette kapitel, har taget meget kort tid at udføre. Antag, at du ønsker at køre et program (lad os kalde det ventetid), som tager en time at udføre. Hvis du nu startede programmet op på kommandolinjen, kunne du ikke udføre andre kommandoer i en time, da du ikke kunne komme til at taste nye kommandoer ind. Det er naturligvis ikke så smart, især ikke da Linux er et ægte multitasking styresystem!

Du kan løse dit ventetidsproblem ved at udføre ventetid i baggrunden. For at udføre et program i baggrunden sætter vi et & efter kommandoen.

[daisy@linus daisy]$ ventetid &
[1] 585
[daisy@linus daisy]$ ps
  PID TTY STAT TIME COMMAND
  435  2   S   0:00 /bin/login -- daisy
  436  2   S   0:00 -bash
  447  2   R   0:00 ps
  585  2   R   0:02 ventetid
[daisy@linus daisy]$ 

Programmet ventetid kører nu samtidig med, at du kan indtaste og udføre nye kommandoer. Grunden til, vi siger, at programmet kører i baggrunden, er, at du ikke sidder med det ved din konsol (som vi så kalder for forgrunden).

Det kan i øvrigt nævnes at glemte du &, så kan du trykke Ctrl-z og så har du suspenderet jobbet (eng. "suspended"). Med fg (eng. "foreground") og bg (eng. "background") kan du styre hvad er aktivt.


4.7.4. Dræb en proces

Nu kan det ske, at du har fået startet et program op, som du bliver træt af. Du vil altså gerne afbryde det, inden det er kørt færdigt. UNIX-verdenen er barsk, for man taler ikke om at afbryde en proces, men om at slå den ihjel (eng. "kill"). Når du vil slå en proces ihjel, kan du bruge kommandoen kill. Som argument til kill giver du PID. Nedenfor er vist et eksempel.

[daisy@linus daisy]$ ps
  PID TTY STAT TIME COMMAND
  435  2   S   0:00 /bin/login -- daisy
  436  2   S   0:00 -bash
  447  2   R   0:00 ps
  585  2   R   2:34 ventetid
[daisy@linus daisy]$ kill 585
[daisy@linus daisy]$ ps
  PID TTY STAT TIME COMMAND
  435  2   S   0:00 /bin/login -- daisy
  436  2   S   0:00 -bash
  763  2   R   0:00 ps

Det skal også nævnes, at enkelte gange kan en proces være kørt helt i skoven, og så må du tage kraftigere skyts i brug. I stedet for kill PROCESNUMMER kan du bruge kill -9 PROCESNUMMER.


4.7.5. suid

Normalt vil det være sådan, at når du starter et program op, f.eks. kommandoen ls, vil Linux køre dette program som den bruger, der startede programmet. Nogle gange kan det være nødvendigt at give en bruger flere rettigheder uden at skulle give personen superbrugerstatus, dvs. root-status.

Suid (set user id) et et begreb (ikke program), som giver mulighed for, at du kan udføre et program, som om du var en anden bruger. Dette bruges normalt til at give almindelige brugere rettigheder til at udføre programmer, som om de var superbrugeren (root).

[daisy@linus daisy]$ chmod +s FILNAVN
Når kommandoen FILNAVN udføres, vil Linux-kernen køre programmet med rettighederne for brugeren, der ejer filen, og ikke som brugeren, der starter programmet.

Dette kan f.eks. ses ved programmet ping, der skal være suid root. Dette skyldes, at det kun er root, der kan åbne den slags netværksforbindelse, som ping bruger.

[daisy@linus daisy]$ ls /sbin/ping
-rwsr-xr-x   1 root     root        14804 Apr  7 23:21 /bin/ping

Suid er den største sikkerhedssynder på et UNIX-system. Det er f.eks. en dødssynd at lave shell scripts suid root, da det er muligt for en bruger at narre scriptet til at efterlade en superbruger shell. Jo færre suid filer du har på dit system jo bedre, men nogle ting er nødt til at være suid root for at fungere. Du kan se hvilke filer, der er suid root med følgende kommando:

[daisy@linus daisy]$ find / -user root -perm +4000

Se mere i artiklen http://www.sslug.dk/artikler/Linux_sikkerhed/rootaccess.html om problemer med Suid.


4.8. Den klassiske UNIX editor vi

Indtil videre har du set, hvordan du kan manipulere filer, men det er ofte meget nyttigt at kunne redigere i en tekstfil. Naturligvis findes der et hav af meget sofistikerede editorer til UNIX, men vi er meget enkel at bruge (dette vil du helt sikkert ikke mene i starten). Som gamle UNIX-folk vil vi forfattere give dig det råd, at du lærer at bruge vi og bruger editoren til at foretage mindre rettelser i filer. Editoren vi (som udtales vi-aj) har eksisteret i mange år, og det er nok en af de mest udbredte editorer i verden. Grunden er bl.a., at vi findes på alle UNIX systemer og er så lille, at den næsten altid startes op uanset belastning af maskinen. En pine for nybegynderen, en nydelse for den erfarne.

Lad os antage, at du vil skrive en eller anden tekst, og du vil have, at filen skal hedde minFil.txt. Editoren vi startes på følgende måde:

[daisy@linus daisy]$  vi minFil.txt

Til at begynde med står der intet andet end en masse ~-tegn, med en tilde per linje. Dette betyder, at disse linjer ikke eksisterer i filen endnu. vi arbejder i et af to modes: indsæt- eller kommando-mode. Trykker du på i, når du er i kommando-mode, går du over i indsæt-mode, mens du skal trykke på Escape, hvis du ønsker at komme i kommando-mode. Du kan se, hvilket mode du er i ved at se nederst på skærmen: når der står -- INSERT --, er du i indsæt-mode. vi har en række funktioner, som du kan bruge i kommando-mode. Her er de mest almindelige.

Tabel 4-1. Oversigt over de mest anvendte vi-kommandoer.

KommandoForklaring
i Skift til indsæt-mode. Nu kan der føjes til filen, fra hvor man står.
a Skift til indsæt-mode med append. Nu kan der føjes til filen, efter der hvor man står.
o Skift til indsæt-mode (open line) og indsæt ny linie.
ESC Skift tilbage til kommando-mode.
h j k l I kommando-mode virker disse som pile-tasterne til at flytte rundt i filen.
x Slet bogstav.
X Slet bogstav til venstre for markør.
dw Slet ord (delete word).
dd Slet linje.
3dd Slet tre linjer startende med linjen, du står i.
u Fortryd sidste ændring.
/tekst Søg efter "tekst". Tryk / eller n for at søge videre.
4Y Kopier 4 linjer til buffer startende med linjen, du står i (yank).
p Indsæt fra buffer (put). Dette virker både efter yank og delete ordrerne.
J Slet linjeskift (join).
: set numberVis linienumre.
: set nonumberVis ikke linienumre.
<n>GGå til linie <n>.
Ctrl-gViser nuværende linienummer
: %s/STR1/STR2/gSøg og erstat STR1 med STR2.
ZZ Gem filen, og stop editoren.
:w Gem filen.
:w <NAVN> Gem filen som <NAVN>.
:e <NAVN> Hent filen <NAVN>.
:q! Stop vi uden at gemme filen.

Nok er vi en teksteditor, som er meget udbredt i UNIX-verdenen, men du kan også læse lidt frem; der er alternativer, som er nemmere, såsom pico og nogle, som kan meget mere, såsom emacs. Begge omtales i afsnit 6.4.


4.9. Videre med Linux

Vi har samlet en stribe andre nyttige kommandoer i Appendiks B. Men dermed skal du ikke tro, at vi har vist dig alle muligheder i Linux. Dette kapitel yder på ingen måde Linux og UNIX retfærdighed. Der er meget at lære, men fordelen er, at du hele tiden lærer noget nyt, men ikke behøver at være ekspert for at komme i gang. Der findes naturligvis et hav af bøger om UNIX generelt - både gode og dårlige.

Vi vil her kun anbefale to: Introduktion til UNIX af Knud Jørgen Kirkegaard og Torben Krog, Teknisk Forlag og Göran Andersons bog på svensk (http://www.sslug.dk/gnulinux).

Desuden kan du måske have glæde af John Ray: Linux på 10 minutter fra IDG, som dog er noget overfladisk. Tilsvarende kan du måske også have glæde af Linux for dummies af Phil Hughes, som er udkommet på IDG. Disse to bøger er begge på dansk.


Kapitel 5. Systemadministration

Systemadministration er alle de opgaver, som handler om at vedligeholde hardware og software på en computer.

I UNIX-verdenen består systemadministration ofte i at rette i en masse forskellige konfigurationsfiler. Konfigurationsfilerne er rene tekstfiler, og det vigtigste værktøj til systemadministration er vi (eller en anden editor). Red Hat har lavet om på dette: der findes nu administrationssoftware, som er grafisk. Under overfladen bruges dog stadig rene tekstfiler. Vi vil i dette kapitel primært benytte os af Red Hats grafiske værktøjer.

Systemadministration foretages af systemadministratoren, dvs. af brugeren root, som også kaldes for superbrugeren (eng. "super user"). Du kan enten logge ind som root eller skifte til denne med programmet su (ordet hemmelig vises ikke på skærmen).

[daisy@linus daisy]$ su - root
Passwd: hemmelig
[root@linus /root]# 

Ved at skrive "su - root" i stedet for blot "su root" sikrer vi os, at alt er glemt om brugeren (daisy), som skiftede til systemadministrator ("su" og "su root" er i øvrigt det samme). Typisk har en bruger en del opsætning, f.eks. omkring e-mail, og denne opsætning bør du ikke "kende" til som root. Bemærk også, at prompten ændrede sig, da du blev root. Dollar-symbolet blev til et hash-tegn. Da root har lov til alt på maskinen, bør du være meget omhyggelig med, om du er root eller almindelig bruger. Måske tror du, at det er smart at være root og kunne alt - det er forkert! Som root kan du komme til at skrive rm -rf /, og så er hele dit Linux-system væk! For ikke at risikere at lave unødige fejl, bør du lave en brugerkonto til dig selv, også selv om du har root-passwordet. Skift kun til superbruger, hvis det er absolut nødvendigt, og skift tilbage til din almindelige brugerkonto hurtigst muligt.

Der eksisterer to varianter af UNIX: System V (udtales "system fem") og BSD (Berkeley Software Distribution). For en almindelig bruger er der ikke den store forskel; den ligger hovedsagelig i, hvor de forskellige konfigurationsfiler er placeret i filsystemet, og hvordan opstartssekvensen (boot) foregår. Red Hat (og de fleste Linux-distributioner) har valgt side og hører til System V familien, men låner lidt fra BSD.


5.1. Få adgang til andre diske, CDROM og floppydrev

Linux er lidt anderledet bygget op end Windows med hensyn til at læse og skrive fra de eksterne enheder (devices), såsom CDROM og floppydrev. Af sikkerhedshensyn kan du ikke få adgang til noget, uden at root har hjulpet dig. I Linux vil man mounte et drev for så derefter at kunne læse og skrive fra det. Dit CD-drev vil det selvfølgelig kun være muligt at læse fra.


5.1.1. CDROM

Først en gang Linux-gymnastik, som kun skal gøres en gang på din maskine. Skift til root ved at skrive su - root. Kontrollér, at dit CDROM-drev er fundet korrekt, og tillad alle at læse dit CDROM drev:

[root@linus /root]#  ls -al /dev/cdrom
lrwxrwxrwx   1 root  root  3 Sep  4 14:31 /dev/cdrom -> hdd
[root@linus /root]#  chmod a+r /dev/hdd
I eksemplet befinder CDROM-drevet sig på den sekundære IDE-bus som slave. Du skal ændre chmod-kommandoen alt efter, hvor dit CDROM-drev sidder.

Redigér filen /etc/fstab med pico -w /etc/fstab eller lignende. Du har sikkert en linje, der starter med /dev/cdrom. Den skal du ændre til

/dev/cdrom    /mnt/cdrom   iso9660  noauto,ro,user,exec   0 0
Første kolonne viser det device (/dev/cdrom), dvs. den enhed, som du vil kunne tage fat i. Næste kolonne viser det sted i filtræet, hvor den skal kunne ses. I eksemplet har vi valgt /mnt/cdrom.

Tredje kolonne beskriver filformatet, her er det iso9960 til en CDROM. Fjerde kolonne indeholder nøgleord, der beskriver egenskaber ved CDROM-drevet. 'noauto' betyder, at CDROM-drevet ikke automatisk mountes, når maskinen startes op. 'ro' betyder read-only. 'user' gør det muligt at mounte CDROM'er som almindelig bruger. 'exec' gør det muligt at køre Linux-programmer fra CDROM. Betydningen af de to nuller kan du finde frem til ved at udføre kommandoen man mount, eller ved at læse afsnit 5.14.5.

Nu er du klar til at teste det. Stop som root ved at trykke Ctrl-D i den terminal, du arbejder i. Læg f.eks. din Red Hat CDROM i dit CDROM drev, og skriv

[daisy@linus daisy]$  mount /mnt/cdrom
Nu bør du kunne skrive df /mnt/cdrom for at se, hvor meget data der ligger på skiven. Du kan nu kopiere og læse fra din CDROM. Når du er færdig med at læse din CDROM, kan du ikke bare tage den ud. Du skal først skrive
[daisy@linus daisy]$  umount /mnt/cdrom
Du skal også vide, at du sagtens kan bruge f.eks. /cdrom som stedet, du mounter din CDROM. Du skal bare først lave biblioteket med mkdir /cdrom og gøre ovenstående med den nye sti. Endelig findes der systemer til Linux (Automount og AMD), hvor du mere eller mindre direkte kan lægge din CDROM i drevet og få adgang til data uden at skulle bruge specielle kommandoer, men det skal sættes op særskilt.


5.1.2. Læse DOS/Windows diske

Tilsvarende, som med CDROM drevet, kan du automatisk føje din DOS/Windows diske til Linux-filtræet, som f.eks. /dosc/ og/eller /dosd/.

Redigér filen /etc/fstab med pico -w /etc/fstab eller lignende. Under installationen har du måske sat dine DOS/Windows diske ind, så de kan ses fra Linux, men her er alligevel et eksempel på /etc/fstab.

/dev/hda1    /dosc   msdos  defaults   0 0
/dev/hda3    /dosd   vfat   defaults   0 0
Den første linje tager /dev/hda1, dvs. første partition på den første IDE hardddisk, som antages her at være en MSDOS formatteret partition, og lægger den ind som /dosc. Tilsvarende med /dev/hda2, dvs. anden partition på den første IDE harddisk, som her antages at være en vfat formatteret partition, dvs. en Windows partition, hvor der anvendes lange filnavne. Ved næste reboot har du adgang til dine DOS/Windows partitioner på denne måde - men gider du ikke at gøre dette (Det er jo ikke WinNT), så skriv mount -a som root, så er alt mountet. Har du brug for at kunne skrive på dine DOS/Windows diske, så prøv at skrive man mount i et terminal vindue.


5.1.3. Floppydrev

For at kunne læse dine DOS floppydiske skal du gentage ovenstående med få ændringer (msdos i stedet for iso9660 og rw i stedet for ro). Der er dog en langt nemmere måde: installer RPM pakken mtools fra din Red Hat CDROM (dette er nøjere beskrevet under RPM i næste afsnit).

[root@linus /root]#  rpm -i mtools-3.9.1-5.rpm
Har du mtools på din CDROM med andet versionsnummer, går det nok alligevel.

Giv læse- og skriveadgang til /dev/fd0

[root@linus /root]#  chmod a+rwx /dev/fd0
Med man mtools kan du se, at du reelt har fået de gamle MSDOS kommandoer, som bare har fået et m foran. Du kan bruge mdir, mcopy, mcd osv. Du kan endda bruge a: som i MSDOS. For at kopiere hele disketten til det bibliotek, du står i, skal du skrive
[daisy@linus daisy]$  mcopy a:* .
Med mtools har du også mulighed for at bruge lange filnavne, der passer med Windows 95, og du skal ikke tænke på mount og umount. Rigtig nyttige programmer.


5.1.4. Automount

I Red Hat 6.1 og SuSE 6.3 er der mulighed for, at du - som i Windows og lignende - kan få mountet eksterne enheder, såsom CDROM og floppydisk automatisk. Det er nemt - du skal blot installere autofs-pakken. (Snart kommer supermount pakken, som er endnu smartere).

[root@linus /root]#  rpm -ivh autofs-3.1.3-2.i386.rpm
Sørg først for, at autofs startes op i det runlevel, du normalt arbejder i (oftest 3, hvilket i øvrigt står i /etc/inittab). Dette gøres ved at starte control-panel og vælge ikonet med trafiklys på - eller direkte starte tksysv op. Du føjer blot autofs til runlevel 3.

Derefter skal du se i /etc/auto.master, der viser, at /misc nu er under kontrol af automounteren. Går du ned i /misc, bliver der mountet enheder automatisk. Der er et timeout på 60 sekunder i standardopsætningen - dvs. 60 sekunder, efter du har besøgt f.eks. din CDROM, vil maskinen automatisk køre umount for dig. Filen /etc/auto.misc er så der, hvor du skriver hvilke af dine eksterne enheder der automatisk skal mountes. Filen kan f.eks. se ud som følger, for at din CDROM og floppydrev automatisk mountes i /misc/cdrom hhv. /misc/floppy

cdrom           -fstype=iso9660,ro      :/dev/cdrom
floppy          -fstype=auto            :/dev/fd0
Der er mange muligheder her, og er du doven, kan du endda lave et link fra roden, så /cdrom peger på /misc/cdrom, og du kan så anvende /cdrom til at læse filer fra din CDROM. Tilsvarende kan det gøres for /floppy. Har du problemer med rettigheder, læs lige de forrige afsnit.


5.2. RPM

Gennem mange år har UNIX systemadministratoren skullet hente nye programmer hjem med kildetekst og derefter oversætte og installere. Det gik oftest nemt, men kunne fra tid til anden være meget svært. Hvad værre var, man kunne typisk ikke afinstallere programmer uden at have 100 pct. styr på installationsfasen og styr på at andre programmer ikke anvendte samme biblioteker. Alt i alt ganske problematisk og uden reel mulighed for at kunne opgradere systemet løbende.

Firmaet Red Hat og andre er i de senere år gået over til at oversætte programmer en gang for alle og så distribuere programpakker, der indeholder binær kode, biblioteker, manualsider og andet. Fordelen ved disse programpakker er, at systemet kan holde eksakt styr på, hvad der er installeret. Alle pakker checkes for afhængigheder, og du kan afinstallere pakker igen, hvis andre pakker ikke påvirkes af det. Red Hats format for programpakker kaldes RPM, som er en forkortelse for "Red Hat Package Management".

Tabel 5-1. Miniguide i at anvende rpm-programmet.

KommandoForklaring
rpm -i pakke_version.rpm Installér pakken
rpm -ivh pakke_version.rpm Installér pakken med status vist. Tilføj option --nodeps hvis pakken skal installere uden at check for manglende støtte pakker.
rpm -qip pakke_version.rpm Viser information om den pakke, som kan installéres.
rpm -e pakke Afinstallér den installerede pakke.
rpm -q pakke Viser version af den installerede pakke.
rpm -qf filnavn Viser, hvilken RPM-pakke filnavnet kom fra.
rpm -ql pakkenavn Viser, hvilke filer der blev installeret med RPM-pakken.
rpm -qa Viser alle installerede RPM-pakker.
rpm -ql pakke Viser alle filnavne indeholdt i pakken.
rpm -Va Check alle RPM-installerede filer for ændringer siden installation af pakkerne.

Lad os illustrere styrken i RPM programmet: Du sidder på en maskine som systemadministrator og opdaterer alle Linux maskinerne i dit netværk med en kommando - og endda med krypteret transmission, så ingen kan lytte med. Det er simpelthen administratorens drøm af et system. Nemt, sikkert og stabilt. Hvis alle maskiner, der skal opgraderes, er nævnt i filen /etc/serverlist, vil nedenstående magiske linje (ja, det er avanceret - men sejt, ikke sandt) opgradere vim-pakken, som hentes fra ftp-serveren SERVER. Alle maskiner bliver lige opgraderet i et hug!

[root@linux /root]# cat /etc/serverlist | \
    xargs -l1 -i= -r ssh = rpm -U ftp://SERVER/vim-4.6-4.i386.rpm


5.3. Opbygningen af filsystemet

Linux-systemer er på mange måder meget standardiserede forstået på den måde, at diverse kataloger bruges til det samme. Vi fortalte mere om dette i installationskapitlet.

Som allerede nævnt i afsnit 2.2.3.2, indeholder kataloget /etc konfigurationsfiler til dit Linux-system. Filerne er vitale for dit Linux-system, så vær derfor forsigtig, når du vha. en teksteditor retter i filerne. Vi vil foreslå, at du altid først laver en kopi af den fil, du vil ændre, dvs.

[root@linus /etc]# cp hosts hosts.orig
[root@linus /etc]# vi hosts

Hvis der skulle gå noget galt, kan du altid bruge den oprindelige udgave af filen.

[root@linus /etc]# cp hosts.orig hosts

5.4. Hvad er et runlevel?

Et runlevel er den tilstand, som computeren kører i. Det lyder måske lidt abstrakt, men i virkeligheden betyder det bare, at du kan starte din computer op på en række forskellige måder. På en måde minder det om det system Microsoft benytter sig af, idet Windows 95 kan startes op i f.eks. fejlsikret tilstand. Når computeren skiftes til et bestemt runlevel, udføres en række programmer. Hvilke programmer, der kører ved skift til f.eks. runlevel 3, bestemmes af, hvilke scripts der er placeret i kataloget /etc/rc.d/rc3.d.

[daisy@linus daisy]$ ls /etc/rc.d/rc3.d
K30mcserv    K40snmpd	  K55routed    K75gated     K80random	 K95nfsfs
K96pcmcia    K97network   S01kerneld   S30syslog    S40atd	 S40crond
S40portmap   S50inet	  S55named     S60lpd	    S75keytable  S80sendmail
S85sound     S99local

Alle de scripts, som begynder med stort K, bliver udført, når du forlader dette runlevel (K står for Kill), mens de, der begynder med stort S, udføres, når du skifter til et runlevel (S står for Start). Tallet bagefter fortæller, i hvilken rækkefølge de skal udføres.

Det er ikke svært at finde ud af, hvilket runlevel din computer er i. Nedenfor er vist hvordan.

[root@linus /root]# /sbin/runlevel
N 3

3-tallet viser dig, at din computer er i runlevel 3. Det er muligt at skifte runlevel uden at lukke computeren ned, men N'et viser, at der intet tidligere runlevel er, dvs. computeren har været i runlevel 3, siden den blev tændt. Du skifter runlevel med kommandoen telinit. Du bør altid synkronisere dine harddisk (tømme filsystemernes buffere) inden du skifter runlevel, dvs. kør sync et par gange lige inden, du skifter runlevel med telinit.

Runlevel 3 er det mest almindelige. Skemaet nedenfor viser betydningen af de forskellige runlevels.

Tabel 5-2. Runlevels

RunlevelBetydning
0Lukker systemet ned (shutdown -h now)
1Enkeltbrugertilstand (Single-user mode)
2Flerbruger-tilstand uden NFS
3Flerbruger-tilstand med NFS
4Bruges ikke
5Starter op i X11
6Genstart computeren (reboot)

Som det fremgår af skemaet, er runlevel 6 det samme som at genstarte computeren, dvs. når systemadministratoren genstarter computeren ved at bruge kommandoen reboot, skiftes der til runlevel 6.

Single-user mode er et meget nyttigt runlevel. Hvis det sker, at du kommer til at konfigurere et eller andet forkert en dag - ja, det vil ske på et eller andet tidspunkt! - og din computer låser under opstarten, kan du starte den op i single-user mode og foretage diverse rettelser.

I filen /etc/inittab angives hvilket runlevel, der er default runlevel.


5.5. Nedlukning af Linux

En Linux maskine er, som du nok allerede har forstået, et meget stort system med mange muligheder. Du skal også være meget opmærksom på, at en Linux maskine må man ikke bare slukke for - den skal lukkes pænt ned.

Som vi viste i afsnit 5.4, er runlevel 0 det samme som at lukke ned. En generel, men lidt besværlig måde at lukke en UNIX-maskine på, er at skifte til root og skrive init 0 eller telinit 0

[daisy@linus daisy]$ su -
Passwd: hemlig
[root@linus /root]# init 0
Det er dog nemmere at stoppe den grafiske brugerflade med en exit til tekst-login konsoller (evt. kan "Ctrl-Alt-Backspace" bruges) og så trykke "Ctrl-Alt-Delete", når du er i en tekst-konsol.

Du skal dog en gang for alle lave en ændring, så "Ctrl-Alt-Delete" kommer til at medføre at Linux lukkes ned. Ændres intet, genstarter systemet (og du vil nok her synes, at det er sjovt, at det minder om den mest kendte DOS kommando). For at få maskinen til at stoppe (kaldes Halt), skal du ændre i /etc/inittab

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
så der kommer til at stå
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -h now
Du kan selvfølgelig være fræk, så maskinen slet ikke kan stoppes fra keyboardet med "Ctrl-Alt-Delete", f.eks. kan du ændre /etc/inittab til
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:echo "No reboot for you my friend!\n"
Dette er uhyre praktisk, hvis din maskine står et sted, hvor der er mange pilfingre, f.eks. edb-lokalet på en skole!


5.6. De grafiske værktøjer

Som allerede nævnt i indledningen til dette kapitel findes der til Red Hat 6.1 grafiske værktøjer til systemadministratoren. Vi vil her koncentrere os om control-panel og linuxconf.


5.6.1. control-panel

Som root kan du foretage systemarbejde via control-panel.


5.6.1.1. control-panel startes op

At starte control-panel op er let. Du taster ganske simpelt programmets navn på kommandolinjen. På figuren nedenfor er hovedmenuen vist. Programmet er i virkeligheden en række forskellige programmer.

[root@linus /root] control-panel

5.6.1.2. Opret en ny bruger

En af systemadministratorens vigtigste opgaver er at administrere brugere, dvs. oprette nye brugere og nedlægge gamle. I tidligere af Red Hat (version 5.0 og 5.1) havde control-panel et godt værktøj til netop denne opgave. Bruger du Red Hat 6.1 findes dette værktøj ikke, men du kan bruge linuxconf til at administrere brugere - se afsnit 5.6.2.

Som sagt, bruger du tidligere udgaver af Red Hat, finder du dette værktøj som den første knap i hovedmenuen (et smilende ansigt). Ved at trykke på den får du et nyt vindue, som er vist nedenfor.

Du kan oprette en ny bruger ved at trykke på "Add" knappen. Lad os oprette en ny bruger, som ønsker brugernavnet pingo og i virkeligheden hedder Frederik. Figuren nedenfor viser denne situation. En række af felterne har systemadministratoren selv udfyldt, men control-panel er kommet med en række forslag, f.eks. vil bruger-ID (brugernr.) blive foreslået. Når du er færdig med at indtaste alle oplysningerne, trykker du på "Done" knappen.

Som root kan du på et vilkårligt tidspunkt skifte en brugers kodeord ved at skrive passwd BRUGERNAVN, og du kan faktisk også nemt oprette en bruger ved at skrive adduser BRUGERNAVN. Derefter skal du bruge passwd BRUGERNAVN.


5.6.1.3. Stil uret

control-panel kan også bruges til at stille din computers ur. Du finder denne funktion som den anden i control-panel. Du kan ændre både klokken og datoen. For at ændre noget trykker du først på det, du vil ændre, f.eks. måneden. Derefter bruger du de to pile, og når du er færdig, trykker du først på "Set System Clock" og derefter på "Exit Time Machine".

Det kan også være praktisk er kunne en system kommando her. Skal du sætte BIOS uret til 2. Januar år 2000 kl. 23:44, så kan du gøre følgende:

[root@linus /root] hwclock --set --date="01/02/2000 23:44:00"
[root@linus /root] hwclock --hctosys


5.6.1.4. Runlevel editoren

Vi har tidligere i dette kapitel diskuteret runlevels, og hvordan de bruges og konfigureres. control-panel giver os et enkelt værktøj, nemlig runlevel editoren. Du finder den som den anden knap fra oven i hovedmenuen. Figuren nedenfor viser, hvordan runlevel editoren ser ud.

Som du ser, kan du konfigurere runlevel 2 til 5. Foroven står de tjenester, som skal startes, når din computer går ind i det givne runlevel, mens der forneden er anført de tjenester, som skal lukkes, når din computer forlader et runlevel. Til venstre finder du de mulige tjenester, som kan startes op i hvert runlevel. Hvis du vil føje en tjeneste til et runlevel, begynder du med at trykke på den ønskede tjeneste til venstre. Derefter trykker du på "Add". Der kommer nu et lille vindue frem, og i det kan du vælge, hvilket runlevel den ønskede tjeneste skal startes op eller lukkes ned i.


5.6.2. linuxconf

Programmet linuxconf køres af root, og det bruges til at udføre system administration på Linux maskinen. Programmet er meget omfattende, men nemt at bruge. Du kan konfigurere brugerkonti, grupper, alt om netværk, email spam filtrering, PPP og meget andet.

Et smart trick med programmet er, at du kan køre det via en webbrowser. Din systemadministrator kan således administrere din maskine fra en anden vilkårlig maskine, som måske kører et helt andet styresystem. Start linuxconf i en xterm, og vælg [Config] -> [Networking] -> [Misc] -> [Linuxconf network access], og "activate the changes". Nu kan du via http://DINMASKINE:98 administrere maskinen (dette kræver ikke at Apache webserveren kører). Har du et lille lukket netværk, er det smart, men du skal vide, at netværkstrafikken kan aflyttes, og dine kodeord transmitteres i klar tekst via dit netværk. Du må aldrig sende passwords i klar tekst for maskiner, der er direkte på Internettet. Det er alt for usikkert.


5.7. Et lydkort

Mange mennesker har lydkort i deres computer, og Linux understøtter naturligvis en række af de lydkort, som du kan købe til en personlig computer. For at lette opsætningen af lydkort følger der med Red Hat et simpelt men godt program til dette formål: sndconfig. I dette afsnit vil du se, hvor let det er. Lydkortet, vi bruger som eksempel, er et Plug-n-play SoundBlaster 32 fra Creative Labs.

Du starter programmet ved at taste sndconfig på kommandolinjen. Programmet er designet til at køre i text mode, og du kan selv vælge, om du vil benytte dig af en xterm eller bruge konsollen. Første skærmbillede ser ud som vist nedenfor.

Du fortsætter ved at trykke på ENTER. Det næste skærmbillede, som du ser nedenfor, fortæller, hvilket lydkort sndconfig har fundet, i dette tilfælde et SoundBlaster 32 - som forventet. Du bør naturligvis tjekke, om programmet finder det rigtige.

Det tredje skærmbillede tillader, at du vælger et lydkort. Hvis nu sndconfig ikke har været i stand til at finde dit lydkort, kan du nu vælge det rette. Vi vælger naturligvis vores SoundBlaster 32 lydkort. Du kan bevæge markøren vha. piletasterne, og du flytter markøren ned til OK og CANCEL ved at trykke på TAB-tasten.

Det er nu tid til at vælge indstillinger for lydkortet. Her er det typisk lettest, hvis du kender dem på forhånd, så du ikke behøver at gætte dig frem. Det er reelt de samme oplysninger, som du i Microsoft Windows 95 finder under "egenskaber for enheder".

Når du har valgt de rigtige indstillinger, vil sndconfig afspille en kort lydsekvens for dig. Når du hører denne, betyder det, at lydkortet er korrekt konfigureret.

Gik det helt galt med dit lydkort, kan det være, at du ikke har den rette Linux kerne og modulerne til dette. Du kan læse videre i de følgende afsnit om, hvordan kernen oversættes.


5.8. Omkonfigurere Linux kernen

Kernen er det program, der styrer computeren. Den består af en række forskellige funktioner, og vi vil i dette afsnit diskutere, hvordan du kan omkonfigurere kernen, så den kommer til at passe bedre til din computer. Sagen er nemlig den, at den kerne, som følger med f.eks. Red Hat 6.1, indeholder en række funktioner, som du måske ikke har brug for. Ved at omkonfigurere kernen slipper du for at spilde en masse hukommelse (og måske tid). Du kan måske også mangle support for en hardware del, f.eks. USB (Universal Serial Bus). Den er netop for nylig kommet med i Linux kernen, hvorfor du kan blive nødt til at lave en ny Linux kerne.

Vores gennemgang af kernekonfiguration er overfladisk, dvs. vi vil ikke gå i detaljer med, hvad de enkelte funktioner kan, men forklare dig, hvordan en konfiguration foregår.

Et par bemærkninger omkring drivere til Linux er på sin plads. Drivere kan eksistere på to måder under Linux; som en del af kernen eller som et modul. Hvis driveren er en del af kernen, ligger den fast i hukommelsen hele tiden, men et modul indlæses først i det øjeblik, der er brug for det - ja, faktisk kan et modul også fjernes fra hukommelsen, når der ikke er brug for det længere (se afsnit 5.9). Det er klart en fordel at benytte moduler, hvis man ikke har megen hukommelse.


5.8.1. Bliv klar til at oversætte kernen

Første trin til at lave din egen kerne er at se, om du fik installeret hele kildekoden til Linux kernen. Der er to muligheder; enten fra den installations-CDROM du har, eller fra en helt ny kildetekst.

Hvis du vil installere kildekoden til kernen, så skriv

[root@linus /root]#  rpm -ivh /cdrom/RedHat/RPMS/kernel-headers-2.2.5-15.i386.rpm
[root@linus /root]#  rpm -ivh /cdrom/RedHat/RPMS/kernel-source-2.2.5-15.i386.rpm
Dette gør, at kildeteksten lægges ind i /usr/src/linux.

I øvrigt kan det tilrådes at lade /usr/src/linux være et symbolsk link til et versionsafhængigt underkatalog:

[root@linus /root]#  ls -l /usr/src/linux
lrwxrwxrwx   1 root root   11 Jan 31 12:01 linux -> linux-2.2.5
drwxr-xr-x  17 root root 1024 Jan 25 21:22 linux-2.0.36
drwxr-xr-x  15 root root 1024 Jan 31 20:45 linux-2.2.5
På denne måde er det nemt at teste forskellige versioner af Linux kernen. Antag, at du vil opgradere til kerne 2.3.1, som du henter hjem fra Internettet, dvs. nu vil du installere kildeteksten selv (uden RPM). Start med at lave et nyt katalog og et symbolsk link til det nye katalog (du skal være root).
[root@linus /root]#  rm /usr/src/linux
[root@linus /root]#  mkdir /usr/src/linux-2.3.1
[root@linus /root]#  ln -s /usr/src/linux-2.3.1 /usr/src/linux
Gå (cd) ned til /usr/src/linux og læs README. Her er forklaret, hvordan du oversætter kernen. Du bør altid også læse /usr/src/linux/Documentation/Changes, som beskriver, hvordan dit system bør være konfigureret, for at du kan oversætte kernen.


5.8.2. Oversæt Linux-kernen

For det første skal du skifte til kataloget /usr/src/linux, hvor kildeteksten til kernen er placeret. Skriv nu make xconfig. Du vil nu se et vindue som det nedenfor.

Som du kan se, er der en række punkter, som du kan konfigurere. Du kan nu trykke på "General Setup", og du vil få et vindue som nedenfor. I langt de fleste punkter i menuen kan du vælge mellem "y", "m" og "n". Vælges "y", bliver funktionen en del af kernen, mens "n" betyder, at den ikke kommer med. Hvis du vælger "m", bliver den ikke en del af kernen, men funktionen vil eksistere som et modul. Som du også kan se, er der mulighed for at få en forklaring ved at trykke på knappen "help". Når du har konfigureret kernen, trykker du på "Save and exit".

Du er nu klar til at generere en ny kerne. Der er en række skridt, som du bare skal følge. Den fjerde kommando antager, at du bruger LILO som boot-loader. Selve oversættelsen af kernen (tredje kommando) og moduler (femte kommando) kan godt tage en rum tid afhængigt af, hvor meget du har taget med, og hvor hurtig din computer er.

[root@linus /root]#  cd /usr/src/linux
[root@linus linux]#  make dep
[root@linus linux]#  make clean
[root@linus linux]#  make zlilo
[root@linus linux]#  make modules
[root@linus linux]#  make modules_install

Hvis du ikke anvender LILO, så erstat make zlilo med make bzImage, og bagefter kan du finde den nye Linux kerne i /usr/src/linux/arch/i386/boot/bzImage. Du kan teste den nye kerne ved at kopiere den til floppy og boote fra denne. Brug cp /usr/src/linux/arch/i386/boot/bzImage /dev/fd0 for at teste på denne måde. Er du tilfreds med den nye kerne, kan du kopiere kernen til /boot og rette i LILO's konfigurationsfil - læs mere i afsnit 5.13.1.

Moduler laves til kernen svarende til kernens versionsnummer under /lib/modules, dvs. for kerne 2.3.1 gemmes de i /lib/modules/2.3.1 Nu spørger du måske om, hvorfor man i det hele taget laver en kerne og så moduler. Dels kan kernen blive mindre og derfor ofte hurtigere. Men er der fejl i et modul, kan man hurtigt rette i modulets kildetekst, genoversætte koden og starte modulet påny - uden at genstarte maskinen!


5.9. Moduler

Moduler (eller mere korrekt: indlæsbare kerne-moduler) er en af de mere smarte ting ved Linux. Kort fortalt er et modul en driver, som systemadministratoren (root) kan indlæse og nedlægge, mens maskinen kører, dvs. du kan indlæse en driver uden at genstarte. I dette afsnit vil vi introducere det mest basale omkring moduler.

Modul-systemet blev skrevet om til kerne version 2.2 (som følger med Red Hat 6.1 og SuSE 6.3). Vi vil antage, at du har en version 2.2 kerne. Du kan evt. tjekke det ved at skrive uname -r. For en standard-installation af Red Hat 6.1 vil din maskine svare "2.2.12-20".


5.9.1. Hvad findes der allerede indlæst?

Inden vi går i krig med at indlæse moduler, kan det være rart at vide, hvilke der allerede er indlæst. For at finde ud af det skal du bruge kommandoen lsmod, som er en forkortelse for "list modules". Kommandoen kan udføres af alle brugere, men vær opmærksom på, at kommandoen ligger i kataloget /sbin, og at almindelige bruger ikke har dette katalog med i deres søgesti. Derfor skal du skrive /sbin/lsmod, hvis du ikke er logget ind som systemadministrator (root).

[root@linus /root]#  lsmod
Module                  Size  Used by
ppp                    18316   0  (autoclean)
slhc                    4328   0  (autoclean) [ppp]
autofs                  9028   1  (autoclean)
nfs                    29944   1  (autoclean)
lockd                  30856   1  (autoclean) [nfs]
sunrpc                 52356   1  (autoclean) [nfs lockd]
nls_iso8859-1           2020   1  (autoclean)
nls_cp437               3548   1  (autoclean)
vfat                   11516   1  (autoclean)
fat                    25664   1  (autoclean) [vfat]
awe_wave              157804   0 
sb                     33204   0 
uart401                 5968   0  [sb]
sound                  57208   0  [awe_wave sb uart401]
soundlow                 300   0  [sound]
soundcore               2372   7  [sb sound]

Tabellen, som lsmod producerer, indeholder navn på modulet, hvor meget hukommelse det bruger, hvor mange programmer der bruger modulet, samt om der er andre moduler, som bruger modulet. Tag nu ppp-modulet: det fylder 18315 bytes, og ingen programmer eller andre moduler benytter det (logisk, idet forbindelsen til Internet-udbyderen er lukket ned).


5.9.2. Indlæs et modul

Typisk ligger moduler i et underkatalog til /lib/modules. På en standard-installation af Red Hat 6.0 hedder underkataloget 2.2.5-15 efter kernen (husk svaret fra uname). Nede i /lib/modules/2.2.5-15 finder du en række underkataloger. Alle modulerne er grupperet efter deres anvendelse, f.eks. indeholder underkataloget cdrom drivere til CDROM drev (alle andre end ATAPI-drev). Til at indlæse et modul bruger du kommandoen insmod, som er en forkortelse for "install module". Du kan kun indlæse moduler som systemadministrator. Nedenfor viser vi, hvordan du kan indlæse en driver til HPFS (OS/2's filsystem).

[root@linus /root]#  insmod hpfs

Det fine ved modul-systemet er, at du kun behøver at angive navnet på modulet; insmod finder selv ud af, hvor det er placeret.

Det kan være, at du kommer til at angive det forkerte modul, dvs. du forsøger at indlæse et modul til et stykke hardware, som du ikke har. Nedenfor forsøger vi at indlæse driveren til et Intel EtherExpress Pro/100 kort; et kort, som ikke sidder i maskinen.

[root@linus /root]#  insmod eepro100
/lib/modules/2.2.5-15/net/eepro100.o: init_module: Device or resource busy


5.9.3. Nedlæg et modul

Det kan ske, at du bliver træt af et modul eller blot i længere tid ikke har brug for det, og du derfor gerne vil nedlægge det igen. Der er to måder, du kan gøre det på. Den første kræver simpel tålmodighed: efter 60 sekunder vil ubrugte moduler automatisk blive nedlagt. Dette søger en dæmon ved navn kerneld for. Den anden måde er at gøre det selv. Til denne metode skal du bruge kommandoen rmmod ("remove module").

[root@linus /root]#  rmmod hpfs

Kigger du i kataloget /lib/modules/2.2.5-15, ser du filen modules.dep. Denne fil skal du ikke pille ved - den bliver automatisk genereret under opstart af Linux (næste gang din maskine booter, se efter linjen "Finding module dependencies" - på det tidspunkt genereres filen). Filen indeholder information om, hvilke moduler et modul afhænger af. Filen er en tekstfil, så du kan bladre i den vha. less eller more.


5.9.4. Konfiguration

Når vi taler om moduler, findes der en meget vigtig fil, som systemadministratoren kan rette i, nemlig /etc/conf.modules. Det skal lige siges, at filen bliver rettet af mange af de værktøjer, som vi omtaler i dette kapitel, f.eks. sndconfig, så måske kommer du aldrig selv til at rette i den. Lad os se på indholdet af en ikke helt ualmindelig conf.modules.

# /etc/conf.modules
alias parport_lowlevel parport_pc
pre-install pcmcia_core /etc/rc.d/init.d/pcmcia start
alias sound sb
pre-install sound insmod sound dmabuf=1
options opl3 io=0x388
alias midi awe_wave
post-install awe_wave /bin/sfxload /etc/midi/GU11-ROM.SF2
options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330

Syntaksen for filen er som følger: først et nøgleord, derefter et navn på et modul og til slut en række parametre.

Lad os begynde med det "lette" nøgleord først. Det lette nøgleord er "alias". Et alias betyder simpelthen, at når systemet spørger efter et modul, mener systemet i virkeligheden et andet. Det lyder lidt mærkeligt, men det er meget nyttigt. Et alias som alias eth0 eepro100 vil betyde at når Linux forsøger at initialisere ethernettet (eth0), skal driveren eepro100 bruges. Ofte kan Linux ikke automatisk defektere indstikskort i gamle maskiner, og det kan derfor være nyttigt at fortælle Linux, hvilket netkort der sidder i maskinen. Har du et gammelt kort, tilføjer du derfor en "alias"-linje som passer til dit kort.

Et andet nøgleord er "options". Her kan systemadministratoren angive en række options til en driver/modul. I det ovenstående eksempel på conf.modules står der f.eks. options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330. Denne linje fortæller modulet sb en række ting - i dette tilfælde de relevante oplysninger omkring et Sound Blaster lydkort (f.eks. at I/O adressen er 220, og interruptet er 5).

Nøgleordet "pre-install" fortæller modul-systemet, at før et modul indlæses skal et andet modulet være indlæst. Alt hvad der kommer efter modulets navn, tolkes som en kommando med tilhørende options. Ligeledes findes "post-install", som angiver en kommando, der skal udføres efter modulet er indlæst.


5.10. Linux og 3D-kort

Som så mange andre styresystemer understøtter Linux 3D-kort. I Linux bliver 3D grafikken produceret efter et system, der hedder OpenGL. OpenGL er netop frigivet i Open Source form fra SGI. Indtil dette skete var Mesa en meget anvendt emulering.

OpenGl er et grafisk standard bibliotek, som bruges af programmer til at kommunikere med 3D grafikkortet. OpenGl blev udviklet af SGI (Silicon Graphics), til at bruge i deres meget kraftige grafiske arbejdsstationer. OpenGl blev introduceret i 1992 og er med tiden blevet et af de mest brugte 2D og 3D grafiske API (application programming interface). I dag bliver OpenGl varetaget af en uafhængig sammenslutning af firmaer inden for 3D-branchen.

Hvis man ønsker at skrive en driver til et 3D grafikkort, som gør brug af OpenGl teknologien, kræver det, at man skal betale for en licens og for en bekræftelse på, at driveren er kompatibel med OpenGl.

Linux brugere har alligevel mulighed for at bruge OpenGl bibliotekerne ved hjælp af det før omtalte Mesa.

Mesa er et 3D grafisk bibliotek, som indeholder et API, der minder uhyre meget om det, man finder i OpenGl.

Mesa er en såkaldt "Open Source" klon af OpenGl, som er gratis at downloade og bruge. For at bruge 3D grafikkort i Linux bliver man først nødt til at installere den Mesa driver, som passer til éns grafikkort. Mesa understøtter (på nuværende tidspunkt) følgende grafiske chips:

  • 3dfx Voodoo1, Voodoo2, Voodoo Rush, Voodoo Banshee, Voodoo3

  • nVidia

  • Amiga Warp3D

  • (Matrox G200, driverne til dette kort indeholder en modificeret Mesa)

Når dette er gjort, vil programmer, som skal bruge 3D kortet, køre vha. Mesa biblioteket. Læs mere om Mesa på http://www.mesa3d.org og om OpenGl på http://www.opengl.org

Som du kan se er det langt fra alle 3D-grafikkort, som understøttes i Linux. Dette skyldes, at det er "private", som (indtil videre) laver de fleste af driverne til Linux, hvilket også gør, at de ikke er nær så stabile og hurtige som dem til Windows.

De bedst understøttede 3D-kort er nok 3Dfx kortene. Der kommer heldigvis hele tiden nye drivere, først og fremmest til de store fabrikanters 3D-kort.


5.10.1. Installation af 3D grafik kort under Linux

5.10.1.1. 3Dfx

3Dfx var blandt de første 3D-kort, som blev tilgængeligt, for Linux brugere. Dette skyldes, at 3Dfx kortene kører med et system, som hedder Glide, der har været ret nemt at få overført til Linux. Der findes to forskellige typer af Glide drivere til Linux:

Der findes en, som understøtter Voodoo1, Voodoo2 og Voodoo Rush, der findes på http://glide.xxedgexx.com/3DfxRPMS.html)

Og en der understøtter Voodoo Banshee og Voodoo3 kan findes på http://glide.xxedgexx.com/3DfxRPMS_vb_glibc.html)

Voodoo Banshee og Voodoo3 er både et 2D og 3D kort, så når du installerer denne driver, bliver din 2D-driver i X også opdateret. Når du har hentet den driver, som du skal bruge, skal den installeres. Dette gøres således efter du har hentet Glide RPM pakken.

[root@linus /root]#  rpm -Uvh Glide*.rpm

Når dette er gjort skal Mesa installeres. Mesa findes på http://www.mesa3d.org) og ligger i to tar.gz filer (MesaLib og MesaDemos), som begge skal downloades. Når de to filer er hentet og udpakket, skal Mesa compiles (oversættes). Læs dokumentationen inden du går i gang:

[root@linus mesa]#  make linux-glide

Du skal nu finde ud af, hvor i dit system de færdigt oversatte filer skal kopieres hen, derefter skal du gøre som følger:

[root@linus mesa]#  cd include/
[root@linus include]#  cp -r GL/ /usr/include/
[root@linus include]#  cd ../lib
[root@linus lib]#  cp -d * /usr/lib/
[root@linus lib]#  ldconfig

Nu skulle dit 3Dfx kort virke uden problemer. Hvis du ønsker at teste dit 3Dfx kort, skal du skrive:

[root@linus lib]#  /usr/local/glide/bin/test3Dfx

Nu skulle der gerne komme et roterende 3Dfx-logo.

Bemærk! Da din nuværende installation kommunikerer direkte med 3Dfx-kortet, bliver du nødt til at køre dine 3Dfx applikationer som root. Da dette kan være irriterende og samtidigt kan udgøre en sikkerhedsrisiko, findes der en måde, hvorpå man kan undgå dette problem. Dette gøres med et såkaldt 3Dfx kernel module. Når først dette modul er installeret, vil de programmer (og spil), som skal bruge 3DFx-kortet, kommunikere via /dev/3Dfx. Denne løsning har ydermere den fordel, at du kan bestemme, hvem der skal have adgang til kortet, men det har samtidig den ulempe, at hastigheden på 3Dfx-kortet bliver nedsat en smule.

Det omtalte modul er at finde på http://www.xs4all.nl/~carlo17/3dfx/. For at installere det skal du downloade tar.gz-filen, og skrive følgende:

[root@linus /root]#  mkdir dev3dfx
[root@linus /root]#  cd dev3dfx/
[root@linus dev3dfx]#  tar -zxvf ../Dev3Df*.tar.gz
[root@linus dev3dfx]#  make
[root@linus dev3dfx]#  cp 3dfx.o /lib/modules/`uname -r`/misc
[root@linus dev3dfx]#  mknod /dev/3dfx c 107 0
[root@linus dev3dfx]#  insmod 3dfx

Derefter skal du redigere dit init-scripts under /etc/rc.d således, at kommandoen insmod 3dfx bliver kørt, hver gang du booter din computer.

Ved hjælp af programmet GlideControl, som er at finde på http://www.ling.ed.ac.uk/~oliphant/gc/, kan man indstille dit Voodoo1 eller Voodoo2 kort under Linux.

Skulle der være problemer, kan det være en god ide at kigge forbi the 3Dfx Linux newsgroup, som er at finde på news://news.3dfx.com/3dfx.glide.linux. Skriv et venligt spørgsmål til denne newsgroup, vent en dags tid eller noget i den stil, og dit svar skulle være kommet. En anden - efter sigende - rigtig god hjemmeside til at komme igang er http://www.3dfxgamers.com/.


5.10.1.2. nVidia Riva chipsæt

nVidia er et af de eneste firmaer, som officielt selv er ved at udvikle Linux-drivere til deres grafik-chipsæt.

Deres drivere er at finde på http://www.nvidia.com/Products.nsf/htmlmedia/software_drivers.html. Yderligere information om installation af disse drivere er også at finde på denne side. Man skal dog lige være opmærksom på at disse drivere er på udviklingsstadiet, så de er ikke nær så hurtige og fejlfrie som dem, du muligvis kender fra Windows.


5.10.1.3. Matrox G200

Matroxs G200 chipsættet har for 3D delens vedkommende i en del tid været understøttet i X. For nylig frigav Matrox specifikationer til 3D delen, hvilket har medført, at der er kommet nogle midlertidige drivere. De kan hentes på http://www.on.openprojects.net/glx/. Læs den FAQ fil, som ligger på siden, for at finde ud ad, hvordan du installerer driverne.

Installationen indeholder en modificeret udgave af Mesa samt et "glx" modul, som gør det muligt for X at arbejde med Mesa (OpenGl) kommandoer. Ifølge rygter skulle Mesa blive en del af X, fra og med XFree86 version 4.0. G200 driverne er under kraftig udvikling og er ligesom nVidas drivere ikke særligt hurtige eller stabile. Så sørg for at læse dokumentationen, før du går i gang.


5.11. Printere

Skal du tilføje en printer, du kan skrive ud på, og du anvender Red Hat, skal du lige som root sætte printeren op med printtool. Det første billede, du møder, viser, hvor mange printere, der allerede er sat op. I dette tilfælde kun en.

Vælger du nu "Add", skal du vælge, hvor printeren findes. Netværksprintere og printere på egen maskine er understøttet. Vi vælger en lokal printer til dette eksempel. Vælger du en netværksprinter, skal du have information fra din netværksadministrator om printertype og adresse.

Linux vil for lokale printere automatisk detektere, hvilken device der ser ud til at have en printer tilkoblet.

Nu mangler vi bare at angive typen af printer, tryk derfor på "Select" ud for "Input Filter".

Nu vælger du typen af printer. Winprintere kan du godt glemme, men mange gode printere er understøttet, og har du en PostScript printer, er det slet intet problem. Husk at vælge grafik-opløsning og papirstørrelse. Klik-feltet "Fix stair-stepping text" bør du vælge - det er for at klare den forskellige fortolkning af linjeskift i UNIX kontra DOS-verdenen.

Efter at have trykket på "OK", er du tilbage i hovedmenuen for printeropsætning og kan vælge at udskrive test-sider. Håber det virker.

Nu bør f.eks. din netscape kunne udskrive og tilsvarende din gv (til PostScript filer). Du kan udskrive tekstfiler med lpr FILNAVN, og du bør nok læse man-siderne for lpr, lprm, lpq og lpc.

Til at udskrive tekstfiler, f.eks. C-kode, kan du med fordel installere a2ps, som laver meget pæne udskrifter, der viser kode syntaks. Du finder a2ps på http://www.inf.enst.fr/~demaille/a2ps


5.12. Crontab

Crontab er et smart system til automatisk at køre programmer på givne tidspunkter, såsom daglig backup. Det er en standarddel af et UNIX system og er derfor altid med i Linux.

Man kan få kørt vilkårlige programmer på vilkårlige tidspunkter, f.eks. hvert minut, time, dag, ugedag eller månedsdag. I filen /etc/crontab retter man normalt ikke, men denne fil viser, at der køres jobs hver time fra /etc/cron.hourly til tilsvarende hver dag, uge og måned via /etc/cron.daily, /etc/cron.monthly og /etc/cron.weekly. For en almindelig bruger er det normalt, at man føjer de kommandoer man vil have kørt på et givet tidspunkt, til filen ~/.crontab og kører kommandoen crontab ~/.crontab.

Syntaksen for alle disse crontab filer er den samme: En kommando per linje og i rækkefølge fra venstre mod højre, minut (0-59), time (0-23), månedsdag (0-31), måned (0-12), ugedag (0-7, hvor 0 og 7 begge er søndag) og endelig den kommando du vil have udført. Hvert felt adskilles af et mellemrum, og hvis man vil have, at f.eks. alle dage køres programmet, så indsæt en "*" for månedsdag og måned.

Vi giver nu et eksempel, hvor vi hver morgen kl. 7 fra mandag til fredag sender brugeren root en mail med, hvor meget load der er på maskinen.

0 7 * * 1-5 uptime | mail root
Brug man -a crontab til at læse mere om crontab.


5.13. Boot af Linux

Som tidligere skrevet kan Linux fint eksistere sammen med Windows 95/98 eller Windows NT. Hvad angår Windows 95/98, skal du se på LILO eller Loadlin som bootloader, men med hensyn til Windows NT kommer der i det følgende en vejledning i at anvende Linux sammen med Windows NT's OS Loader.


5.13.1. LILO

Mange vil allerede under installationen af Red Hat have installeret LILO som boot-manager. Senere kan det være, at du vil have mulighed for at boote med en ny kerne eller lignende. Du skal så ændre i opsætningsfilen /etc/lilo.conf, hvor der står en del for hvert af de styresystemer, der kan bootes. Når du har rettet, skal du køre /sbin/lilo som root, hvor efter rettelserne har effekt.

Et eksempel på /etc/lilo.conf kan være

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/zImage
        label=linux
        root=/dev/hda3
        read-only
image=/boot/vmlinuz-2.0.35-2
        label=linux2
        root=/dev/hda3
        read-only
other=/dev/hda1
        label=dos
        table=/dev/hda
I eksemplet bootes på første IDE harddisk (hda). En bootloader lægges i bootsektoren (kan cleares med fdisk /mbr i DOS), og der bootes efter 5 sekunder på den første af de tre muligheder. Der er her to muligheder for at boote Linux med to forskellige kerner (linjerne med image). Begge booter med root partition på /dev/hda3. Feltet "label" er det, du ser på skærmen som boot-valgmulighed. Den sidste mulighed i eksemplet er, at DOS bootes på den første partition (hda1) på første IDE disk.

Lilo kan en hel del, men kan være et lige så besværligt værktøj, som det kan være suverænt. Du bør måske læse den mini HOWTO om LILO, som kan findes under Linux Documentation Project på http://sunsite.auc.dk/ldp. Specielt kan det være at de to options "restricted" or "password" er værd at forstå.


5.13.2. Loadlin

En anden mulighed er at boote i Windows 95 og der lave en bootmanager via COMMAND.COM og AUTOEXEC.BAT filerne. Først hentes DOS programmet LOADLIN fra ftp://sunsite.auc.dk/pub/os/linux/sunsite/system/boot/dualboot/lodlin16.tgz

Vi har installeret loadlin i c:\linux\loadlin (loadlin kan downloades i zip-format og pakkes ud som vanligt med pkunzip eller winzip). Vor Linux-kerne har vi kopieret til c:\linux med navnet vmlinuz, og i nedenstående autoexec.bat har vi vores root-partition på /dev/hda3 (tredje partition på hoveddisken). Du skal rette i linjen c:\linux\loadlin\loadlin c:\linux\vmlinuz root=/dev/hda3 ro svarende til din konfiguration.

I det følgende skal du erstatte indholdet for Windows 95 (Win95) med det, som du selv har. Linux har reelt kun noget i AUTOEXEC.BAT

CONFIG.SYS

[MENU]
MENUITEM=Win95
MENUITEM=Linux
MENUDEFAULT=Linux,5

[Win95]
DEVICE=C:\UCD\UCDIDE.SYS /D:UCD0001
DEVICE=C:\WINDOWS\SETVER.EXE
DEVICE=C:\WINDOWS\HIMEM.SYS
DOS=HIGH
device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
Country=045,850,C:\WINDOWS\COMMAND\country.sys

[Linux]

AUTOEXEC.BAT

GOTO %CONFIG%

:Win95
rem - By Windows Setup - C:\WINDOWS\COMMAND\MSCDEX /D:UCD0001
@ECHO OFF
PROMPT $p$g
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\DOS;
SET TEMP=C:\DOS
mode con codepage prepare=((850) C:\WINDOWS\COMMAND\ega.cpi)
mode con codepage select=850
keyb dk,,C:\WINDOWS\COMMAND\keyboard.sys
GOTO END

:Linux
c:\linux\loadlin\loadlin c:\linux\vmlinuz root=/dev/hda3 ro
GOTO END

:END


5.13.3. Samtidig installation af Windows NT og Linux

Windows NT og Linux kan sagtens være installeret på samme maskine, det eneste lidt problematiske er boot-proceduren. Du kan vælge mellem at boote i Lilo bootmanageren eller at boote i NT's bootmanager. Det helt ideelle vil være, at begge bootmanagere kan boote begge systemer. Denne løsning kan man kalde 'den ideelle dualbootløsning'.

Når Windows NT installeres, bliver Master Boot Recorden (MBR) på harddisken altid overskrevet, således at NT's egen bootloader får kontrol med opstarten af maskinen. Når Linux installeres, får du en valgmulighed: du kan vælge at overskrive MBR med LILO, eller du kan vælge at installere LILO på en harddiskpartition.

Det er netop det, vi skal udnytte til at dualboote mellem LILO og Windows NT's OS Loader. Vi er ikke interesserede i at miste muligheden for at starte op i Linux ved hjælp af LILO, så det kan betragtes som en forebyggende handling at acceptere tingenes tilstand, det vil sige at placere Windows NT's OS Loader i MBR og at placere LILO på en passende primær partition. Derfor skal du svare NEJ til at placere LILO i Master Boot Recorden (MBR). LILO bør i stedet placeres på den primære partition, Linux er installeret i.

Når du vælger at installere LILO på en harddiskpartition i stedet for i Master Boot Recorden (MBR), er det nødvendigt at fremstille en bootdiskette til Linux, enten som en del af installationen eller efter installationen, men under alle omstændigheder før Linux lukkes ned. Ellers får du svært ved at starte op i Linux igen! Bootdisketten kan fremstilles efter installeringen med Linux-kommandoen mkbootdisk. Husk at have en formatteret diskette parat. Disketten skal være formatteret 'unconditional', så der ikke ligger information skjult på den, for eksempel FORMAT /U A: i en DOS-prompt eller Linux-kommandoen fdformat. Det er vigtigt, at disketten er 100% fri for fysiske fejl!

Eksempel:

[root@linus /root]# fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
[root@linus /root]# ls -l /lib/modules
total 1
drwxr-xr-x 10 root root 1024 Dec 1 22:40 2.0.36-0.7
lrwxrwxrwx  1 root root   23 Dec 3 13:22 preferred -> /lib/modules/2.0.36-0.7

preferred peger på kataloget 2.0.36-0.7. Det benyttes i mkbootdisk-kommandoen:

[root@linus /root]# mkbootdisk 2.0.36-0.7
Insert a disk in /dev/fd0. Any information on the disk will be lost.
Press <Enter> to continue or ^C to abort:

Microsoft anbefaler, at C-drevet under Windows NT kører FAT. Det giver muligheder for fejlfinding, der ikke eksisterer på et NTFS-drev. En uventet, men glædelig sideeffekt af dette er, at Linux kan mounte C-drevet. Det giver blandt andet mulighed for den ideelle dualboot-løsning beskrevet i dette afsnit.

Standard-installationen af Red Hat-udgaven af Linux konfigurerer dualboot-muligheden for Linux's bootmanager LILO automatisk. Det eneste, du skal gøre, er at acceptere de to bootmuligheder 'dos' eller 'Linux'. Når LILO starter, kan du trykke på TAB-tasten for at få en oversigt over boot-mulighederne. Typisk kan du vælge mellem 'Linux' og 'dos'. Når du vælger 'dos', starter LILO Windows NT's OS Loader.

Det lidt mere omstændelige er konfigurering af Windows NT's OS Loader, så LILO kan startes fra Windows NT's OS Loader. Windows NT's OS Loader benytter sig af filreferencer i filen C:\BOOT.INI.

Eksempel på BOOT.INI:

[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(3)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINNT="NT Workstation 4.00 SP3"
multi(0)disk(0)rdisk(0)partition(3)\WINNT="NT Workstation 4.00 SP3 [VGA mode]" /basevideo /sos
C:\="Windows 95"

Når NT-systemet med denne BOOT.INI startes op, har brugeren fem sekunder til at fravælge default-opstarten af WINNT.

Filen skal nu tilrettes, så Linux også bliver en valgmulighed.

Skriv i DOS/NT:

C:
CD \
ATTRIB -s -r BOOT.INI
EDIT BOOT.INI

Tilføj følgende linje:

C:\BOOTSECT.LNX="Linux - Red Hat Distribution 6.0"

Sæt derefter filens attributter igen:

ATTRIB +s +r BOOT.INI

Filen BOOTSECT.LNX skal fremstilles fra Linux. Først skal vi finde frem til navnet på Linux-partitionen i Linux. Udfør kommandoen df. Notér navnet på filsystemet for rod-disken ("/"). I det følgende ses på et eksempel med to SCSI diske (deraf sda og sdb).

Eksempel:

[root@linus /root]# df
Filesystem         1024-blocks  Used Available Capacity Mounted on
/dev/sda2             692011  356539   299728     54%   /
/dev/sda1             618288  424384   193904     69%   /dos
/dev/sdb1             208592  196616    11976     94%   /dos2
/dev/sdb3             513808  426136    87672     83%   /dos3

Navnet på Linux-partitionen er forskelligt fra system til system. I eksemplet ovenfor er navnet på Linux-roddisken /dev/sda2. Nu skal BOOTSECT.LNX fremstilles. Dette gøres ved at kopiere 512 bytes fra starten af Linux-partitionen /dev/sda2 til filen BOOTSECT.LNX. Udfør kommandoerne:

[root@linus /root]#  dd if=/dev/sda2 of=/bootsect.lnx bs=512 count=1
[root@linus /root]#  mv /bootsect.lnx /dos/bootsect.lnx

Har du ikke adgang til den DOS-partition, hvor du booter fra (eller er det NTFS formatteret), kan du i stedet kopiere filen ud på en floppy disk med brug af mcopy.

[root@linus /root]#  dd if=/dev/sda2 of=/bootsect.lnx bs=512 count=1
[root@linus /root]#  mcopy /bootsect.lnx a:

Genstart derefter din maskine. Hvis du vælger at reinstallere LILO i Linux, skal du huske at fremstille en ny BOOTSECT.LNX-fil.

Nu kan Linux' bootmanager startes fra Windows NT's OS Loader, således at du kan opnå valgfrihed - også med Windows NT!

Hvis du vil vide meget mere om MBR-placering, bootmanagere og partitioner, kan det anbefales at læse HowTo-guiden om LILO. På Red Hat Linux-CD'en hedder filen /doc/HOWTO/mini/LILO


5.14. Hvor finder jeg konfigurationsfilerne ?

Dette afsnit vil beskrive, hvilke filer der er relevante at kende i et Linux system. Det er normalt at gemme konfigurationsfiler i /etc, så du kan have glæde af at læse de enkelte filer igennem, når du er blevet lidt erfaren i at styre Linux. Vi vil i dette afsnit give dig et overblik over de vigtigste konfigurationsfiler, så du selv kan forstå, hvad der foregår.


5.14.1. /etc/passwd

Filen /etc/passwd indeholder en linje per bruger, som har login på maskinen. Brugeren root har også en linje her. Kun hvis man kører NIS (tidligere kendt som yellow pages), kan man lade ekstra brugere være styret af andre servere.

Et eksempel på en linje af passwd filen er

daisy:x:500:501::/home/daisy:/bin/bash
Der står, at brugeren daisy er bruger nummer 500 på maskinen (ikke, at der faktisk er 500). Daisy er med i gruppe nummer 501, hvilket er styret af /etc/group. Brugeren daisy har hjemme-katalog i /home/daisy og starter med /bin/bash som login-shell. Det lille x betyder, at man kører med shadow-passwords, dvs. at password står i /etc/shadow, og denne fil kan ikke læses af andre end root - dvs. shadow passwords er en sikring af dine passwords.


5.14.2. /etc/shadow

Formatet af shadow filen følger passwd-filen, en linje per bruger. Et eksempel er

daisy:$1$/hbYueDa$46ggNKFugoDABWOJZ3xvz0:10784:0:99999:7:::       
For brugeren daisy står der det krypterede password. For Red Hat er det længere end for SuSE, idet Red Hat anvender en bedre krypteringsmåde. Derefter vises antal dage siden 1/1-1970 for sidste ændring af password. Antal dage siden sidste ændring af password. Antal dage før udløb af password skal der sendes en advarsel (her 99999). Sidste anvendte felt (7) er antal dage siden 1/1 1970 til kontoen bliver lukket. Endelig er der et felt som ikke anvendes.

Hvis dn maskine ikke kører shadow passwords, og vil du dette, så kør /usr/sbin/pwconv som brugeren root. Tilsvarende findes /usr/sbin/pwunconv til at få passwords gemt i selve password filen og ikke shadow-filen.


5.14.3. /etc/group

Hver person er med i en eller flere grupper, og dette bruger man til at udskille, hvem der har adgang til hvilke dataområder. Kommandoen chmod g+w fil vil f.eks. gør, at andre brugere, som er i sammen gruppe som ejeren af filen, kan skrive i fil. Hver linje i /etc/group svarer til en gruppe. Et eksempel på en gruppe kan være

kongeh:x:1000:daisy,henri,dykker,landmand
Dvs. gruppen "kongeh" har gruppe ID nummer 1000, og "x" betyder, at et eventuelt password for gruppen (anvendes ved skift til ny gruppe med newgrp) findes i shadowfilen /etc/gshadow. Hvis "x" blev fjernet anvendes gruppe password ikke. Til sidst på linjen står der de login-navne (fra password-filen) som er medlemmer af gruppen.


5.14.4. /etc/gshadow

Filen /etc/gshadow følger nøje /etc/group med en linje per gruppe.


5.14.5. /etc/fstab

Filen /etc/fstab indeholder information om de disk-partitioner, som skal eller kan mountes ved systemopstart. Et eksempel kan være

/dev/hdb2               /                       ext2    defaults        1 1
/dev/hda1               /dosc                   vfat    defaults        0 0
/dev/hdb3               /home                   ext2    defaults        1 2
/dev/hdb1               swap                    swap    defaults        0 0
/dev/fd0                /mnt/floppy             vfat    noauto,user,rw  0 0
/dev/cdrom              /mnt/cdrom              iso9660 noauto,user,ro  0 0
none                    /proc                   proc    defaults        0 0
none                    /dev/pts                devpts  mode=0622       0 0  
De to sidste linjer er noget, Red Hat automatisk selv har sat op, det ser vi bort fra. Dernæst kan vi se, at der er to harddiske i maskinen hda og hdb. Den sekundære harddisk på første IDE controller, dvs. hdb har tre partitioner. Swap partitionen er sat op på den første partition /dev/hdb1 og de to næste partitioner på hdb, dvs. /dev/hdb2 og /dev/hdb2 er af typen ext2 (Linux type), og de mountes i rækkefølge som vist yderst til højre, dvs /dev/hdb2 (roden) før /dev/hdbb (brugerens hjemmekatalog i /home). De to sidste linjer viser, at en almindelig bruger (user) kan mounte CDROM og floppy, men at det ikke gøres automatisk (noauto) under opstart. CDROM vil efter mount /mnt/cdrom kunne findes under /mnt/cdrom. Se i øvrigt afsnit 5.1, og brug man mount.


5.14.6. /etc/hosts

Hosts-filen anvendes ofte på maskiner, som ikke har nameserver til rådighed. Man skriver en IP-adressse, det fulde netværknavn og et eventuelt alias. Et eksempel kan være:

127.0.0.1       localhost           localhost.localdomain
172.17.0.1      daisy.kongeh.dk     daisy
172.17.0.2      henri.kongeh.dk     henri
172.17.0.3      dykker.kongeh.dk    dykker
172.17.0.3      landmand.kongeh.dk  landmand
IP-adressen 127.0.0.1 er en speciel loopback adresse, som ikke anvendes til andet end, at Linux kernen hurtigt kan kommunikere med sig selv. De fire maskiner daisy, henri, dykker og landmand har fået IP adresser i 172.17.*.*, som er et lukket net - dvs. de adresser er garanteret ikke-eksisterende på Internettet.

Uden DNS (nameserver) bruger systemet automatisk hosts-filen ved ssh, telnet, ftp, ping osv.


5.14.7. /etc/resolv.conf

Resolver-filen viser, hvilken maskine der er nameserver, så man kan slå en vilkårlig adresse op på Internettet. Et eksempel kan være

search kongeh.dk
nameserver 129.142.6.64
nameserver 129.142.6.65
Første linje (search) viser domæne navnet for netværket. De to næste linjer er to nameservere (danpost-maskiner). Laver du Internet opkobling til din egen ISP, skal du have nogle andre IP-adresser end de viste. Se også afsnit 7.2.1.


5.14.8. /etc/inetd.conf

Denne fil er vigtig for din netværksikkerhed, idet den viser en stribe af de services, som Linux maskinen tilbyder netværket. Du vil f.eks. finde disse linjer:

ftp     stream  tcp     nowait  root    /usr/sbin/tcpd  in.ftpd -l -a    
telnet  stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd  
som viser, at du modtager ftp og telnet logins. Hvis du kan undvære disse services, så udkommentér dem ved at sætte et # foran dem. Næste gang du genstarter maskinen (eller inet dæmonen), kan man ikke logge på den måde. Prøv man inetd for at læse mere.


5.14.9. /etc/rc.d/

I kataloget /etc/rc.d/ findes styringen af, hvilke programmer, der automatisk startes op, når maskinen startes. Der er lidt forskel mellem Red Hat og SuSE, men begge har samme struktur, kaldes SysV (udtales system fem), i modsætning til BSD.


5.14.9.1. Red Hats opstartsfiler

Red Hat har følgende indhold af /etc/rc.d/

init.d  rc.local    rc0.d  rc2.d  rc4.d  rc6.d
rc      rc.sysinit  rc1.d  rc3.d  rc5.d         
hvor rc0.d op til rc6.d er kataloger med links for hvert af de syv runlevels. Links laves til init.d, der indeholder script-filer, som starter programmerne. Se i øvrigt afsnit 5.4.

Filen rc.sysinit ændrer man oftest ikke, idet den styrer opstart af keyboard, check af filsystemer, mounter swap og andet basalt.

I filen rc.local kan man selv tilføje kommandoer, som skal startes efter de almindelige programmer.

Alle de ovenstående filer kan læses af alle på et Red Hat system, mens SuSE har valgt, at kun root kan læse de filer.


5.14.9.2. SuSE opstartsfiler

SuSE kan have følgende indhold af /etc/rc.d/

README      cron        kbd         random      rcS.d       skeleton
apmd        dummy       kerneld     rc          reboot      ssh
at          gpm         lpd         rc0.d       route       syslog
autofs      halt        network     rc1.d       routed      xdm
boot        halt.local  nfs         rc2.d       rpc
boot.d      inetd       nfsserver   rc3.d       rwhod
boot.local  init.d      pcmcia      rc4.d       sendmail
boot.setup  inn         pcnfsd      rc5.d       serial
cdb         ipfwadm     powerfail   rc6.d       single           
Som det ses, er der kataloger rcX.d (hvor X går fra 0 til 6), med links for hvert af de syv runlevels, ligesom Red Hat. I modsætning til Red Hat er der i SuSE intet init.d katalog, og script-filerne, der linkes til, findes direkte i /etc/rc.d/. Indhold af hver af opstarts filerne, f.eks. autofs, er kommandoer til at starte, stoppe, checke og genstarte den pågældende service. Man skriver således /etc/rc.d/autofs stop for at stoppe autofs og tilsvarende /etc/rc.d/autofs start for at starte den igen.


5.14.10. /etc/sysconfig/

I Red Hat er kataloget /etc/sysconfig/ vigtigt.

apmd   console  keyboard  network          sendmail   static-routes
clock  init     mouse     network-scripts  soundcard           
For Red Hat vil alle filer i dette katalog indeholde konfigurationsparametre og er koblede til filerne i /etc/rc.d/init.d. F.eks. vil mouse indeholde muse-type.

Et skridt længere nede i filtræet finder du kataloget /etc/sysconfig/network-scripts, som f.eks. kan indeholde

chat-ppp0   ifcfg-ppp0   ifdown-ppp    ifup-plip    network-functions
chat-ppp1   ifcfg-ppp1   ifdown-sl     ifup-post
chat-ppp2   ifcfg-ppp2   ifup          ifup-ppp
ifcfg-eth0  ifdown       ifup-aliases  ifup-routes
ifcfg-lo    ifdown-post  ifup-ipx      ifup-sl          
Her er alle skript filer til at starte PPP-forbindelser og netkort op og tilsvarende lukke ned. Har du en meget underlig opkobling til Internet, ender du med at skulle rette i filer her.


5.14.11. /etc/crontab

Crontab systemet og filstyring er forklaret i afsnit 5.12.


5.14.12. /etc/sendmail.cf

Sendmail er mail programmet til Linux - et stykke tid endnu. Konfigurationsfilen til sendmail er notorisk svær, og du bør ikke rette ret meget i din. Du kan dog med fordel rette feltet DS til

DSsmtp.ISP.dk
hvis du sender mail til din Internet-udbyder, og denne har en hurtig mailforwarder - ofte kaldet en SMTP maskine, i eksemplet kaldet "smtp.ISP.dk".


5.14.13. /etc/aliases

Hvis du har brug for at have nem adgang til at lave mail-aliaser, så emails til dronningen@kongeh.dk automatisk bliver videresendt (forwarded) til daisy@kongeh.dk, og måske vil du have at alle emails til root skal ende hos daisy, så kan du i /etc/aliases nemt anføre dette.

dronningen: daisy
root: daisy
Efter du har redigeret filen, skal du køre newaliases kommandoen.


5.14.14. /etc/printcap

For hver printer vil programmet printtool i Red Hat tilføje en linje til /etc/printcap med definition af printeren, såsom

##PRINTTOOL3## LOCAL POSTSCRIPT 600x600 a4 {} PostScript Default 1
lp:\
        :sd=/var/spool/lpd/lp:\
        :mx#0:\
        :sh:\
        :lp=/dev/lp0:\
        :if=/var/spool/lpd/lp/filter:
Her er "sd" spool-directory. Printeren sidder på /dev/lp0, og der printes med filter som vist med "if". Der er mere forklaring i afsnit 5.11.


5.14.15. /etc/conf.modules

Denne fil indeholder opsætning og parametre til de moduler, som kan læses ind og ud af systemet uden at reboote. Der er mere forklaring i afsnit 5.9.


5.14.16. /etc/exports

Hvis din maskine skal køre NFS, dvs. kunne være disk server for andre UNIX maskiner, skal du i /etc/exports skrive, hvilke kataloger du vil lade andre mounte. For at det virker, skal du have "portmap" og "nfs" kørende.

Desuden skal du anvende man exports for at lære syntaks af /etc/exports. Som eksempel viser vi, hvordan du lader alle maskiner læse (ikke skrive) fra din CDROM, som du her har mountet fast på /mnt/cdrom. Derudover lader vi maskiner i domænet kongeh.dk mounte hele /usr/local/ med både læse- og skrive-rettigheder, så alle maskinerne kan lægge ny software ind her og softwaren anvendes så på alle klient-maskinerne. Husk, at du måske også skal tænke over sikkerheden, når du distributerer data over netværket. Giv kun adgang til data til de personer, som skal have den adgang.

/mnt/cdrom      *(r)
/usr/local      *.kongeh.dk(rw)


5.14.17. /etc/X11/XF86Config - /etc/XF86Config

I Red Hat er den basale Xwindow-konfigurationsfil XF86Config lagt i /etc/X11/XF86Config, og tilsvarende i SuSE er den i /etc/XF86Config. Syntaksen findes ved at skrive man XF86Config, men der er mere hjælp i Appendiks A.


5.15. Afsluttende bemærkninger

For lige at huske det bør du i Red Hat 6.1 kunne få rettet op på problemer med danske bogstaver ved at lave filen /etc/sysconfig/i18n med følgende indhold

LANG=da
LINGUAS=da
LC_ALL=da_DK
SYSFONT=lat0-sun16
SYSFONTACM=iso15

Der er meget mere i systemadministration, end dette korte kapitel har præsenteret. Til Linux findes der især to dokumenter, som er gode at læse, nemlig "System Administrator's Guide" (SAG) og "Network Administrator's Guide" (NAG) - begge kan downloades fra http://sunsite.auc.dk/ldp og findes på din Red Hat CDROM. De er en del af Linux Documentation Project (LDP). Red Hat's hjemmeside indeholder endvidere en række gode tricks og nyttige oplysninger. Den bedste bog om UNIX systemadministration er uden tvivl Æleen Frisch's "Essential System Administration" udgivet af O'Reilly.


Kapitel 6. Linux applikationer

Til Linux findes der en stor mængde applikationer. Det går lige fra små smarte tekstformateringsprogrammer med få linjers kode og op til meget store tekstbehandlingssystemer. De allerfleste programmer til Linux er gratis og beskyttet af en Open Source lignende licens. Men som man måske ikke skulle tro, kan der købes programmer til Linux. Af hensyn til det frie og uafhængige grundlag for Linux vil disse aldrig udgøre kernen i et Linux-system, men de vil altid være mulige tilføjelser.

Programmer som ApplixWare og Matlab er kommercielle og sælges kun i binær form, som det kendes fra andre styresystemer. En variant af denne salgsform findes for kontorpakken StarOffice. Den kan downloades gratis fra Internettet til personlig brug, men det må ikke videregives, og da det fylder ca. 65 MB, kan firmaet bag StarOffice (SUN) tjene på at sælge den på CDROM. Database-firmaer som Oracle og Informix har frigivet udgaver af deres systemer til Linux, og de er ikke Open Source.

Corel meddelte i oktober 1998, at WordPerfect bliver frigjort til gratis download i en næsten 100% fuld version (den er gratis for private, mens firmaer må betale). Programmet skal registreres inden for 3 måneder. Programmet findes kun i binær form, men det er et meget flot træk af et firma, som har meldt ud, at Linux er en kerneplatform, som skal understøttes. Lige før jul 1998 kom så den gratis version. Mere end 250.000 Linux brugere havde efter en uge downloaded denne version af WordPerfect. Se mere på http://linux.corel.com.


6.1. xterm

Med Linux skal du hyppigt køre programmer med en stribe parametre, som skal indtastes. Derfor er xterm vigtig at kende. Programmet xterm er et simpelt grafisk program, hvor du kan skrive kommandoer til den valgte shell (typisk bash).

Der er et par funktioner i xterm, som er uhyre nyttige at kende. Tryk Ctrl og venstre/midterste museknap over en xterm for at sætte en række indstillinger, f.eks. om der skal være scroll-bar på vinduets kant og lignende. Ctrl og højre musetast anvendes til at ændre fontstørrelsen efter behov. Du skal også vide, at du kan afslutte din shell (bash), dvs. den fortolker, som håndterer, hvad du skriver af kommandoer, ved at trykke Ctrl-D eller skrive exit.

Både til GNOME og KDE findes der særlige programmer, som i funktionalitet minder om xterm. Til GNOME findes f.eks. gnome-terminal. Ved at benytte gnome-terminal, når du bruger GNOME, får du en mere ensartet brugergrænseflade. Du vil endvidere bemærke en række menupunkter øverst i vinduet. Her kan du indstille din gnome-terminal på mange forskellige måder, f.eks. kan du have et grafikbillede som baggrund. Til KDE findes der tilsvarende kvt og konsole.


6.2. Programmerne man og info er vejen til hjælp

I UNIX-verdenen kan du ofte få hjælp ved at skrive programnavnet efterfulgt af -h eller --help, men det er mere normalt at læse manualen ved at skrive man eller info til at få hjælp til programmerne. Info-systemet er en forløber for HTML-kode med links og menuer, men det er rent tekstbaseret. Det er hurtigt at vise dokumentation på denne måde, men det er ved at blive erstattet af HTML.

UNIX-programmet man er meget praktisk at kende for at lære at bruge de mange options, der ofte findes til programmerne. Som eksempel kan du se dokumentationen for man-programmet ved at skrive man man på en kommandolinje.

NAME

man - format and display the on-line manual pages
manpath - determine user's search path for man pages

SYNOPSIS

man [-acdfhkKtwW] [-m system] [-p string] [-C config_file]
[-M path] [-P pager] [-S section_list] [section] name  ...

DESCRIPTION
man  formats  and displays the on-line manual pages.
Dette viser, at brugeren kan skrive man PROGRAMNAVN og få yderligere funktionalitet ved at tilføje ekstra flag, såsom man -w PROGRAMNAVN, som viser, hvilken fil der indeholder man-siden.

Under X kan du også bruge en grafisk udgave af man. Dette program hedder xman. Du behøver ikke fortælle xman på kommandolinjen, hvilket program du ønsker at læse manualen til. Endvidere kan GNOME's hjælpesystem også vise dig man pages. GNOME's hjælpesystem finder du i menuen i panelet (den med fodaftrykket).


6.3. Programmeringsværktøjer

6.3.1. Programmering

Til Linux findes de førende programmeringssprog C og C++, hvor 32 bit oversætteren GNU C/C++ compiler anvendes (gcc og g++). Der er givet flere eksempler på, hvordan du kommer i gang med at programmere i Kapitel 8.

Udover C og C++ findes der bl.a. Lisp, Java, Ada, Scheme, Assembler, Smalltalk, Tcl/Tk, Python, Perl, awk, sed og oversættere fra Pascal eller Fortran til C. Kommercielle C, C++ og Fortran 77/90 oversættere kan også købes, f.eks. leverer Portland Group en hel række (se http://www.pgroup.com).

Hvert af sprogene har sine stærke (og svage) sider og har fundet anvendelse på en række områder. I dag ser det ud til, at Perl står meget stærkt. Perl er et fortolket sprog, som ikke er effektivt til store numeriske beregninger, men uovertruffent til at lave programmer, der skal foretage reformattering af tekst. Med ret simple kommandoer kan du hurtigt lave programmer, som i C ville fylde flere hundrede linjer. Eksempler er givet i afsnit 8.3.

Til hurtigt at lave programmer med et GUI (grafisk brugergrænseflade) har Tcl/Tk og Python også fået stor udbredelse. Mere om disse i programmeringskapitlet.


6.4. Teksteditorer

I Linux er tekstbehandling ofte nødvendig. For eksempel når konfigurationsfiler skal tilrettes. Derfor er det vigtigt at vide noget om, hvordan tekster kan manipuleres med forskellige teksteditorer. Hvilke muligheder giver de forskellige teksteditorer. Hvilke begrænsninger har de enkelte teksteditorer. Hvornår skal jeg bruge vi? Hvilke andre editorer kan benyttes?


6.4.1. nedit

Hvis du er ude efter en enkel editor, som ikke kræver ret meget tilvænning, bør du se på nedit, som følger med SuSE 6.2, men ikke Red Hat 6.0. (Begge kører RPM-format, så det er ofte muligt at installere fra en SuSE CDROM på en Red Hat maskine).

Programmet nedit kan, som det er vist på næste figur, lave syntaks-fremvisning (highlight). Der er en del muligheder i nedit, og alligevel er den nem at gå til, så vi kan varmt anbefale den. Der er dog også grund til at lære f.eks. vi, pico og/eller emacs senere, idet nedit ikke kan køre uden X Window System. Med andre ord, hvis du skal editere en fil i Linux tekstmode, er det godt at kunne lidt andet. Desuden er nedit normalt ikke installeret på andre UNIX-systemer, men emacs er ofte og vi er altid.


6.4.2. Emacs

I en klasse for sig selv er Emacs (emacs) og søster-programmet XEmacs (xemacs), som begge kan utroligt mange ting, men kræver meget hukommelse (den eksekverbare fil i X udgave er på ca. 2,3 MB). XEmacs er relativt enkel at bruge, idet der er både menuer og kommandoer - Emacs har ikke helt så smarte knapper, men kun tekstmenuer. Desværre følger kun Emacs og ikke XEmacs med de fleste udgaver af Red Hat, men XEmacs findes som Red Hat pakker, og det er let at installere den.

Emacs og XEmacs har syntaks-highlighting til næsten alle programmeringssprog (også Matlab og LaTeX), hvilket gør dem meget lækre at arbejde med. Syntaksen i koden forstås, så indrykning af f.eks. C-kode sker automatisk, og koder vises med enten forskellige skrifttyper og/eller farver.

XEmacs og Emacs kan konfigureres gennem et meget slagkraftigt makrosystem, så programmering eller tekstbehandling kan tilpasses ud fra næsten alle ønsker. Hvis det måtte ønskes, kan Emacs styre næsten alt. Du kan fra Emacs oversætte C-programmer, du har editeret, og køre debugger direkte fra Emacs. Du kan sende og modtage elektronisk post gennem Emacs. Der er endvidere mulighed for at starte en kommando-skal op i Emacs, hvorfra programmer kan udføres. Alt dette kan køres samtidig med editering af et vilkårligt antal filer. Mange siger tit "Emacs kan bl.a. alt", og pånær at lave kaffe er det ikke modsagt. Til teksteditering og programmering er Emacs en Rolls Royce.

Start Emacs op ved at skrive emacs, hvad enten du er i en tekst-mode eller i en grafisk brugerflade. Emacs har menuer, hvorfra mange af funktionerne kan styres. Ud for hver funktion står også en tastaturkode. Derfor lærer du hurtigt at styre Emacs, også hvis du foretrækker tastaturkoder. Her gives en kort oversigt over de mest anvendte tastaturkoder. Ctrl står for Control-tasten, og Meta står for Meta-tasten, der i Linux er lig med Alt-tasten (eller Escape).

Tabel 6-1. Oversigt over de mest anvendte emacs-kommandoer.

KommandoForklaring
Ctrl-x Ctrl-f Find fil (til indlæsning). Indtast navnet på den ønskede fil, eller anvend tabulator til at få fil-liste, og brug musen (midterste knap) til at vælge. Hvis filen ikke findes i forvejen, vil den blive oprettet. Bemærk, at Ctrl-x f er noget helt andet!
Ctrl-x k Dræb buffer. Anvendes til at fjerne den indlæste fil.
Ctrl-x Ctrl-s Gem fil med samme filnavn.
Ctrl-x Ctrl-w Gem fil med nyt filnavn.
Ctrl-s Søg efter det, du angiver. Der skal ikke trykkes return til sidst. Tryk Ctrl-s for at søge til næste fremkomst af det valgte mønster.
Meta-% Søg og erstat (tryk Alt-Shift-5). Til de enkelte steder, hvor der kan erstattes, kan tastes y for erstat, n for spring videre og endelig kan tastes ! (udråbstegn) for at erstatte alle kommende forekomster.
Markering af tekst Dette kan ske ved at trykke venstre museknap ned og trække ned over teksten. Teksten er nu i en editerings-buffer.
Ctrl-_ Undo.
Ctrl-x 1Vis kun en ramme i vindue.
Ctrl-x 2Del aktuelle vindue i to rammer, som kan bruges til at redigere forskellige filer.
Ctrl-q TEGNQuote - bruges til at indtaste f.eks. linieskift Ctrl-M (Skriv Ctrl-q Ctrl-M).
Ctrl-w Klipper markeret tekst til editeringsbuffer. Sker hurtigere med et dobbeltklik på højre museknap.
Ctrl-y Yank text, dvs. indsæt tekst. Bemærk, at dette kan ske hurtigere med midterste museknap.
Meta-q Formater tekst til at fylde linjerne ud. Meget anvendelig til almindelig tekst, hvis linjerne er delt meget skævt. Emacs kan også genkende formler, som ikke vil blive ombrudt.

Det kan også nævnes, at Ctrl-venstre museknap giver en oversigt over filer, der er indlæst. På den måde kan du hoppe mellem filerne, du har indlæst. Med Ctrl-højre museknap kan der ændres skærmfont. Bemærk, at Emacs kan og bør sættes op til brugeren. Dette gøres i en .emacs fil, der gemmes i hjemmekataloget. Her er et eksempel på indholdet af en .emacs-fil. Du kan nøjes med de første fire linjer til at begynde med. Senere kan du bygge videre på standardindstillingerne - alt efter dine ønsker.

;De første fire linjer vil gøre, at de danske bogstaver virker rigtigt.
(standard-display-european t)
(set-input-mode (car (current-input-mode))
  (nth 1 (current-input-mode))
  0)


;Bind nogle gode funktioner til Ctrl- og musetasterne
;;Ctrl-venstre mus giver menu over åbne filer
;;Ctrl-midterste mus viser afsnit i filen som der kan hoppes til
;;    For C-filer er det alle funktioner (cool).
;;Ctrl-højre mus for at vælge font
(global-set-key [\C-down-mouse-1] 'mouse-buffer-menu)
(global-set-key [\C-down-mouse-2] 'imenu)
(global-set-key [\C-down-mouse-3] 'mouse-set-font)

;; Praktiske short-cuts for home, end, Ctrl-left/right og delete tasterne
(define-key global-map [home]    'beginning-of-line)
(define-key global-map [end]     'end-of-line)
(define-key global-map [C-left]  'backward-sexp)
(define-key global-map [C-right] 'forward-sexp)
(define-key global-map [delete] 'delete-char

;;Følgende kommando gør at emacs virker (dvs. backspace virker), i tekstmode 
;;(hvilket man i X kan opnå ved at skrive "emacs -nw").

(keyboard-translate ?\C-h ?\C-?)
(define-key global-map "\C-x?" 'help)

;Meta-g for goto linje nummer
(global-set-key "\M-g" 'goto-line)

;Vis linje og kolonne numre
(setq line-number-mode t)
(setq column-number-mode t)

;For C og HTML filer skal filerne vises med smart farvning
(setq c-mode-hook 'font-lock-mode)
(setq html-mode-hook 'font-lock-mode)

;Filer der ender på .c og .h er c-filer og .html er HTML-filer
(setq auto-mode-alist
  (append '(("\\.c$"  . c-mode)
            ("\\.h$"  . c-mode)
            ("\\.html$" . html-mode)
            ) auto-mode-alist))

Nu et lille sidespring. Historien går, at der i 80-erne var mange UNIX-folk, som var stærke vi-fanatikere, og der var måske lige så mange emacs-freaks. For at få afklaret en gang for alle, hvilken editor der var bedst, blev der afholdt en dyst i paint ball, hvor vi-holdet fik en kneben sejr. Dette bør naturligvis efterprøves en dag, da emacs har udviklet sig meget siden da.

Vi kan endvidere anbefale at købe en bog om Emacs, f.eks. SAMS Teach yourself Emacs in 24 hours af Jesper Pedersen, fra forlaget SAMS.


6.4.3. Andre teksteditorer

Til Linux findes også vim, som er en udvidelse af vi. (Linux har bare normalt et link mellem vi og vim - de er det samme). Lidt større editorer er joe, jed og jove. Disse tre er editorer, som ikke kræver voldsomt meget hukommelse og er tilpasset forskellige tastatur-koder kendt fra DOS, såsom Wordstar (Turbo Pascal) koderne. De findes ofte på UNIX systemer, men er ikke så interessante.

Der er nok mange, som har vænnet sig til at bruge simple teksteditorer til Windows som WordPad, og installeres nedit, har man næsten samme enkle interface, men nedit kan mere end WordPad, bl.a. highlighting af C kodesyntaks, så du nemt kan finde rundt i dine programmer.I KDE findes KWrite (skriv kwrite) som bl.a. har syntaks highlighing og er meget enkel at bruge. Til GNOME findes gedit og gnp. Sidstnævnte minder nok mest om Microsoft Windows notepad, men den er samtidig en simpel HTML-editor.


6.5. Tekstbehandling

Inden for tekstbehandling er der dels Officepakker med WYSIWYG, men også tekstsætningssystemer som TeX/LaTeX, hvor du skal oversætte teksten for at kunne printe den.


6.5.1. Nem og officepræget tekstbehandling

6.5.1.1. WordPerfect

WordPerfect 8 kan købes til Linux fra Corel for rimelige penge. Se mere på http://linux.corel.com. Programmet kan endda downloades gratis i en næsten fuld version - firmaer skal dog betale. I Danmark er der et mirror på ftp://ftp.dkuug.dk/pub/wp8/download.htm.

Man skal enten downloade en stor fil, på ca. 24 MB, eller syv mindre, med størrelser, som er vist nedenfor.

Filstørrelse Dato         Filnavn

3085030      Dec  9 20:35 gui00.gz
1081936      Dec  9 20:35 gui01.gz
3917065      Dec  9 20:35 gui02.gz
4108057      Dec  9 20:35 gui03.gz
3683725      Dec  9 20:35 gui04.gz
3937517      Dec  9 20:35 gui05.gz
3536191      Dec  9 20:35 gui06.gz
Brug ncftp ftp://ftp.dkuug.dk/pub/pub/wp8/gui00.gz og tilsvarende for de andre filer, når du downloader, idet du bare kan genstarte samme kommando og downloade videre på filerne, hvis du ikke blev færdig. Du starter ikke forfra, men fortsætter fra, hvor du slap.

Dernæst er det klogt at lave et midlertidigt katalog til filerne, som udpakkes.

[daisy@linus daisy]$  mkdir wptemp
[daisy@linus daisy]$  mv gui0?.gz wptemp
[daisy@linus daisy]$  cd wptemp
[daisy@linus wptemp]$  gunzip *
[daisy@linus wptemp]$  tar xvf gui00
[daisy@linus wptemp]$  tar xvf gui01
[daisy@linus wptemp]$  tar xvf gui02
[daisy@linus wptemp]$  tar xvf gui03
[daisy@linus wptemp]$  tar xvf gui04
[daisy@linus wptemp]$  tar xvf gui05
[daisy@linus wptemp]$  tar xvf gui06
[daisy@linus wptemp]$  sh Runme
  Did you unzip and untar the files you downloaded? (y/n) y
Du får dernæst et vindue op, hvor du skal læse og acceptere en licens. Du skal vælge, hvor du vil installere WP8. Du kan f.eks. få din root (er det dig selv?) til at lave et katalog og lade dig, med navn daisy, blive ejer deraf, og dermed skrivbart for dig:
[daisy@linus wptemp]$  su - root 
[root@linus root]#  mkdir /usr/local/wp8
[root@linus root]#  chown daisy /usr/local/wp8
Kan du ikke dette, skriv da, at programmet kan bruge /home/daisy/wp8 (hvis du hedder daisy).

Efter et par ekstra trivielle tryk er WP8 nu installeret, og du kan starte WP8 ved at skrive /usr/local/wp8/wpbin/xwp. Senere kan du så lave et link eller alias for at få nem adgang til xwp. Efter installationen kan du slette dit wptemp-katalog med rm -rf wptemp, og filen gui00.gz og tilsvarende op til nummer 06 kan slettes efter fuldendt installation.

Corel har annonceret, at Linux er en af de platforme, der vil blive satset på i fremtiden, og vi kan således forvente, at der kommer flere og nye Linux programmer fra den front allerede i 1999.


6.5.1.2. StarOffice

StarOffice er et stykke imponerende software, og det kan downloades gratis til personligt og ikke-kommerciel brug fra http://www.sun.com. Tidligere var StarOffice ejet af StarDivision http://www.stardivision.com, men firmaet blev opkøbt af SUN.

StarOffice kræver ret meget RAM (gerne mere end 64 MB) og fylder ca. 150 MB når det er installeret, men så får du også tekstbehandling, regneark og editering af HTML filer. Programmet i version 5.1 kan læse og skrive Microsoft Word 97, Excel og PowerPoint filer. Import af WordPerfect filer op til version 8.0 er også understøttet. StarOffice er opridelig udviklet i Tyskland og findes i flere sprogversioner inklusive en engelsk version - der er ikke en dansk version og der er heller ikke dansk stavekontrol med. Det er en god engelsk-sproget (eller tysk-sproget) produkt. På følgende billede er den engelske version vist.

Installation af StarOffice kræver at du enten har købt en CDROM med StarOffice 5.1 eller downloadet den fra Internet. Har du downloadet den kæmpe tar-fil, så skal du først pakke den ud med

[daisy@linus daisy]$  tar xvf so51_lnx_01.tar
Dette danner automatisk underkataloget so51inst, hvor alt ligger klar til installationen. Har du StarOffice fra CDROM, så mount din CDROM (læs afsnit 5.1.1 og afsnit 5.1.4). Du installerer normalt StarOffice til en person - ellers skal du se på en netinstallation. Dette er beskrevet i SETUP.PDF som følger med StarOffice under /documentation-kataloget.

Skift til din egen bruger konto under installationen og vi vælger at installere StarOffice under /home/daisy/Office51.

[daisy@linus daisy]$  cd /mnt/cdrom/linux/office51
[root@linus office51]$  ./setup

Nu kommer der en grafisk installationsmenu op, hvor man reelt blot skal trykke "Next" et par gange. Derefter udfylder du information om dig selv og vælger mellem tre installationer. Standard Installation fylder 165 MB under installationen og ca. 150 MB efter. Næste skærm skal du sæ vælger hvor StarOffice installeres. Vi vælger som det foreslås /home/daisy/Office51 (hvor daisy erstattes af dit eget login-navn). Du vil så blive spurgt om Java support - svar bare nej her, hvis du ikke ved noget om dette. Til sidst installeres så endelig StarOffice på dit Linux system. StarOffice integreres direkte med KDE, så kører du med KDE laves automatisk opsætning så StarOffice kommer med i dine programmenuer.

Prøv derefter StarOffice ved at skrive

[daisy@linus daisy]$  Office51/bin/soffice &
Kører du ikke KDE, så kan du med fordel tilføje ~/Office51/bin til din søgesti (i din .profile). Gør du dette kan du blot skrive soffice for at få startet StarOffice.

Det skal nævnes, at der har været problemer med at få installeret StarOffice under Red Hat 6.0, og du bør ikke prøve at installere versioner tidligere end 5.1 af StarOffice, og under Red Hat 6.0 skal du ikke installere de ekstra biblioteker (primært glibc), som du kan få installeret. Det kan også nævnes at tidligere versioner fra StarDivision krævede en registreting af brugeren før installation på StarDivisions hjemmeside - og her virkede nogle versioner af Netscape ikke - kun Microsoft Explorer. Dette er heldigvis kun historie (men relevant for dem som har downloaded StarOffice tidligere fra StarDivision). StarOffice vil nu selv bede dig om du vil registrere dig - efter installationen.

Figur 6-6 viser en Excel fil, som er importeret direkte til StarOffice. Der var lidt problemer med de danske bogstaver og den font, som var valgt. Fonten havde ikke æ,ø og å. Det er normalt nødvendigt at installere ekstra fonte til programmet.


6.5.1.3. ApplixWare

Fra firmaet Applix kan man købe ApplixWare (applix), som ikke kræver alt for meget RAM (virker hurtigt og let med 32 MB) og tydeligt er blevet oversat til Linux af meget dygtige folk. Det er nemt at installere på et Red Hat system, og det virker meget stabilt. ApplixWare er en god Officepakke, der indeholder WYSIWYG tekstbehandling, regneark, en PowerPoint-agtig præsentationspakke, grafikpakke, email-håndtering og fil-browser. ApplixWare læser og skriver direkte Word og WordPerfect filer, og det indbyggede regneark er kompatibelt med Excel (mere om dette senere). ApplixWare kan endda også anvendes til at skrive HTML sider.


6.5.1.4. Præsentationer med MagicPoint

En af de ting, der har være savnet længe til Linux, er ordentlige præsentationsprogrammer, svarende til PowerPoint til Windows. Ud over, hvad ApplixWare og StarOffice tilbyder, er MagicPoint også et interessant program til foredragspræsentationer. MagicPoint er Open Source og kan downloades gratis fra http://www.Mew.org/mgp/.

MagicPoint er ikke som PowerPoint et program, hvor du både redigerer og præsenterer i en integreret pakke. I stedet skriver du en tekstfil med præsentationen, f.eks. kan en side skrives som

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%PAGE

SSLUG
Skåne Sjælland Linux User Group
%left
%bgrad 0 0 100 0 0 "#202080" "#202020"
%image "ssluglogo.png" 1900x1500
%leftfill

	I 1997 500% vækst
	I 1998 over 1000% vækst.
	Danmarks næststørste IT organisation
	Verdens største LUG (?) - over 3700 medlemmer.

%center
%image "medlem-year220599.png" 1000x850
Tekstfilen køres så af MagicPoint (mgp), og tilsvarende præsentationsside ser ud som følger:


6.5.2. TeX/LaTeX

Til tekstformatering af tekniske rapporter er WYSIWYG endnu ikke normen, for i langt større udstrækning anvendes TeX (tex) og LaTeX (latex). LaTeX producerer professionelt udseende tekniske dokumenter. Specielt vil matematiske tegn og formler blive sat meget flot op i forhold til alle gængse WYSIWYG programmer. Nedenfor ser du et eksempel på en LaTeX-fil.

\documentclass[11pt]{article}
\usepackage[latin1]{inputenc}

\begin{document}

\title{Linux og LaTeX}
\author{Hr. P. Rogram}
\date{5/9-99}
\maketitle

\section{Linux}
Dette afsnit skal omhandle Linux.

\subsection{Latex}
\LaTeX{} er super til tekniske rapporter med formler, såsom
$\sum_{i=0}^N i^2$.

\end{document}

Oversæt Latex filen linux.tex til linux.dvi (skriv latex linux.tex i en shell). Dvi-filen kan vises med programmet xdvi, som den vil komme til at se ud på printeren. Et skærmbillede svarende til eksemplet kan ses på Figur 6-9.

En dvi-fil kan normalt ikke printes direkte ud. Du oversætter den til PostScript fil med følgende kommando

[daisy@linus daisy]$  dvips linux.dvi -t a4 -D 600 -o linux.ps

Ud kommer i dette tilfælde filen linux.ps med 600 DPI opløsning i A4-format. Denne fil kan udskrives på en PostScript printer. Det kan nævnes, at selvom du ikke har en PostScript printer, kan du få Red Hats printerstyring til at konvertere automatisk til printerens format vha. programmet GhostScript (gs).

Vil du se en PostScript fil, inden du printer den, kan du selv benytte GhostScript, men de fleste vil nok hellere benytte den grafiske brugergrænseflade gv, som vist på Figur 6-10. Det kan også nævnes, at programmet gv også kan læse PDF filer. På det følgende billede ses pingvinen Tux, som er Linux' maskot.


6.5.3. LyX

Flere har igennem tiden tænkt, at det er synd, at man skal "kode" LaTeX igennem en tekst-editor, såsom Emacs (som er meget velegnet til dette). Det er specielt synd, idet den endelige LaTeX udskrift er meget flottere end noget office-produkt kan fremstille. Derfor har nogle dygtige programmører lavet en grafisk editor, hvor du skriver som i et andet office-program, men der laves LaTeX kode, eller rettere LyX kode, som kan konverteres af programmet selv til LaTeX. Du kan importere eps-billeder og vise dem uden problemer. Interfacet kunne være bedre, men er absolut anvendeligt.

Der er en KDE variant at LyX, kaldet KLyX, som ser bedre ud end LyX. KLyX kan hentes fra http://www.devel.lyx.org/~ettrich/klyx.html.

Vil du vide mere om LaTeX, kan vi anbefale dig bøgerne LaTeX - a document preparation system af Leslie Lamport og The LaTeX Companion af Michel Gossens m.fl. Endvidere er en gruppe danske LaTeX-brugere gået i gang med at skrive en bog om LaTeX. Bogen kommer under samme licens som denne bog, og du kan få mere at vide på http://sunsite.auc.dk/latexbog/.


6.5.4. Stavekontrol

Til stavekontrol på amerikansk og/eller dansk er programmet ispell virkelig godt. Det fungerer interaktivt og kan endog forstå LaTeX-syntaks, så du ikke hele tiden skal checke dig igennem formateringskoder. Ispell kan kaldes fra en kommandolinje, hvor du giver filnavnet på teksten, der skal checkes igennem som argument - se også man ispell. Ispell kaldes også direkte fra Emacs og har endda en menu, der viser de mulige funktioner.

Danske ordbøger følger desværre ikke med Red Hat 6.0, men det er heldigvis ikke svært at få dem installeret. Skåne Sjælland Linux User Group har påtaget sig opgaven at vedligeholde både danske og svenske ordbøger. Du skal downloade filen idanish-1.3.0.tar.gz, som du finder på Internettet http://www.sslug.dk/locale/ispell/idanish-1.3.0/idanish-1.3.0.tar.gz. Når du har hentet filen, skal du udføre følgende kommandoer som root:

[root@linus /root]#  mv idanish-1.3.0.tar.gz /usr/lib/ispell
[root@linus ispell]#  cd /usr/lib/ispell
[root@linus ispell]#  tar zxvf idanish-1.3.0.tar.gz
[root@linus ispell]#  cd idanish-1.3.0
[root@linus ispell-1.3.0]#  buildhash dansk.datalista dansk.aff dansk.hash
[root@linus ispell-1.3.0]#  cp dansk.aff dansk.hash /usr/lib/ispell
[root@linus ispell]#  cd .. 
[root@linus ispell]#  rm -rf idanish-1.3.0 
[root@linus ispell]#   

Du kan nu udføre stavekontrol på dansk af filen minTekst ved at udføre kommandoen ispell -ddansk minTekst.


6.6. Editere Internet hjemmesider

Til at lave HTML hjemmesider har du flere muligheder. Du kan selvfølgelig altid starte din favorit editor og skrive dine hjemmesider med denne. De fleste editorer har ikke meget speciel understøttelse af HTML, men Emacs kan forstå syntaks og farvekode filerne (brug Alt-x html-mode og Alt-x font-lock-mode). Tilsvarende har KWrite samme muligheder.

Ønsker du at kunne editere HTML direkte i grafik mode, er der mulighed for at bruge den indbyggede editor i Netscape. WordPerfect8 og StarOffice har tilsvarende muligheder for at kunne udskrive dokumenterne til HTML, men du har ikke samme fleksibilitet, som hvis du skrev det med netscape eller en almindelig editor. Programmet Amaya fra World Wide Web Consortium (W3C) er også en mulighed. W3C er den officielle organisation bag WWW, og Amaya er deres browser og HTML-editor. Bruger du Amaya, er du sikker på, at dine hjemmesider opfølger de formelle standarder!


6.7. Filstyring

Til Linux findes forskellige filstyringsprogrammer med grafisk brugergrænseflade. Mange er slet ikke på højde med Norton Commander eller Windows Explorer, men de er anvendelige; enkelte er dog bedre end gode!

Programmet xfilemanager giver mulighed for at se og anvende programmer gennem ikoner. En tekstfil kan således trækkes over på en editor, som så startes med den givne fil. En anden mulighed er xfm, der har et lignende interface. I øjeblikket kommer en del nye filemanagers i beta-test af langt højere kvalitet. Blandt andet er en Linux-explorer lavet til KDE klar med integreret fil-, web- og ftp-manager, svarende til Explorer i Microsoft Windows 98.

For folk med DOS baggrund findes der en god Norton Commander klon, Midnight Commander (mc). Det kan dog nævnes, at Midnight Commander har et par ekstra funktioner, f.eks. kan du mounte diske fra andre maskiner og kopiere frem og tilbage. Tilsvarende nemt er det at koble til anonym ftp-konti.

I mc har du farvekoder og symboler til at angive, om filen kan eksekveres (grøn og *), et symbolsk link (reference til anden fil angives med @), kataloger (fed skrift og /) eller en core fil (levn fra et program, der døde - rød skrifttype). Folkene bag Midnight Commander står også bag et filhåndteringsprogram til GNOME, gmc.

XFTP (xftp) bør også nævnes. Programmet er perfekt til at overføre filer fra en maskine til en anden via ftp. Svarende til Midnight Commander har du de to maskiner i hhv. venstre og højre side af vinduet og med musen vælges, hvad der skal kopieres. Programmet kan også kopiere rekursivt. Desværre bliver programmet ikke længere vedligeholdt og findes ikke normalt i de udbredte Linux-distributioner.

Du bør også se på tkdesk og filerunner til filstyring.


6.8. Tegneprogrammer og grafikmanipulatorer

Tegneprogrammer til Linux er ikke så langt fremme som til Windows, men også på den front er der stærke tiltag. Fra den kommercielle front har Caldera annonceret Corel Draw til Linux, og ApplixWare har en anvendelig tegnedel, men en række gratis programmer kan måske også bruges.

Programmet xfig er et vektorbaseret tegneprogram. Du tegner, editerer og fjerner grafiske former såsom ellipser og rektangler. Programmet minder om det gamle DrawPerfect (nu Presentations fra Corel). Programmet kan gemme PostScript filer, som direkte kan importeres i LaTeX. ApplixWare laver ligeledes vektorbaseret grafik.

Ønsker du et bitmap-baseret tegneprogram uden mange smarte features, er xpaint nemt at gå til, men det kan ikke ret meget.

Uden sammenligning er the GNU Image Manipulation Program, også kaldet GIMP (gimp), det bedste valg til avanceret redigering og fremstilling af pixelbaseret grafik. Du kan tegne, skrive, lægge skygger, lave farvegradienter og næsten ufatteligt meget andet. Programmet er under en Open Source licens, har modulbaseret struktur og et kraftfuldt makrosprog. Dette har tiltrukket mange programmører, som tilføjer moduler til glæde for os andre. Udviklingen inden for GIMP har været og er stadig stor, så i dag er the GIMP på fuldt professionelt niveau - og ganske gratis.

I lighed med andre komplicerede programmer i professionel kvalitet kan GIMP være svær at komme helt ind på livet af. Heldigvis findes der en glimrende brugervejledning med gennemgang af programmets funktioner og mange eksempler på, hvordan diverse grafiske effekter kan laves. Den kan ses på http://manual.gimp.org, hvorfra den også kan downloades i flere forskellige formater. Det er en ganske omfattende sag, PDF-versionen fylder således hele 591 sider.

Programmet xv er et meget smart og nemt shareware program med X (Motif) interface til at vise og manipulere bitmap billeder. Programmet understøtter de fleste gængse grafikformater (inklusiv konvertering til PostScript og eps-filer) og har en del billedredigeringsmuligheder. Programmet er også godt, hvis du ønsker at gemme screen shots. Programmet var tidligere med Red Hat, men er det ikke længere. Du kan dog installere RPM pakken med xv fra f.eks. Red Hat 5.2 eller finde den på Internet.

Desuden kan man have glæde af ImageMagick, der ligesom xv kan vise og konvertere mellem et utal af grafikformater. Specielt er det nemt og effektivt til at konvertere grafik via kommandolinje ordrer (f.eks. convert fil.jpg fil.gif).


6.9. Emulatorer

En emulator er et program, som gør det muligt at afvikle programmer skrevet til en anden computer eller styresystem. Vi vil i dette afsnit se på en række forskellige emulatorer, som du kan benytte under Linux.

Med hensyn til emulatorer kan Linux køre SCO programmer (en kommerciel UNIX-variant) gennem det, der hedder iBCS biblioteket (Intel Binary Code Standard). Dette giver adgang til en del ekstra kommercielle database-programmer.

Har du en kraftig (gerne 128 MB RAM) og hurtig PC (gerne mere end 266 MHz Pentium II), kan du bruge VMware, som laver en emuleret processor og kobling til maskinen. Så kan du køre dine Windows programmer samtidig med, at du kører dine Linux programmer - og principielt kan alle programmer køre. VMware kræver naturligvis, at Windows er installeret på computeren. VMware findes på http://www.vmware.com


6.9.1. DOS-emulatoren dosemu

Mangler du specifikke DOS programmer under Linux, kan du få en DOS emulator (dos (konsol-orienteret) og xdos (X-baseret)), således at du under Linux kan eksekvere DOS programmer. Programmet kan sågar køre grafikprogrammer (f.eks. Windows 3.1) - dog ikke nyere Win32 programmer. Du kan f.eks. anvende DOS-emulatoren til at køre Gyldendals røde ordbøger.

DOS-emulatoren består egentlig af to dele. Den ene del gør det muligt at afvikle DOS programmer under Linux, mens den anden del er selve styresystemet DOS. Der følger en DOS ved navn FreeDOS med, men du kan i princippet bruge din egen, f.eks. hvis du en gang har købt DOS og stadig har installationsdisketterne liggende. I det følgende vil vi dog kun benytte FreeDOS. Begge dele er indeholdt i dosemu-pakken.

Lad det være sagt med det samme: den version af DOS-emulatoren, som følger med Red Hat virker ikke. Grunden er den simple, at Red Hat har valgt at benytte den nyeste version. Men denne version er for udviklerne, dvs. den er fuld af fejl og mangler. Derfor skal du først nedgradere dit system til den stabile version. Nedenfor ser du, hvordan du gør det.

[root@linus root]# rpm -e dosemu-freedos-0.99.10-4
[root@linus root]# rpm -e xdosemu-0.99.10-4
[root@linus root]# rpm -e dosemu-0.99.10-4
[root@linus root]# rpm -i dosemu-0.98.8-1.i386.rpm

Filen dosemu-0.99.8-1.i386.rpm kan du downloade fra ftp://sunsite.auc.dk/pub/os/linux/sunsite/system/emulators/dosemu. For at få DOS-emulatoren til at virke skal du have DOS installeret. Nedgraderer du som anvist ovenfor, kan du let få en gratis DOS (FreeDOS). Du skal blot omdøbe filen hdimage.first.rpmsave i kataloget /var/lib/dosemu til hdimage.first.

[root@linus root]# cd /var/lib/dosemu 
[root@linus dosemu]# mv hdimage.first.rpmsave hdimage.first

Eftersom du under DOS kan rode direkte med hardware (som du ikke som almindelig bruger under Linux kan), kan kun root køre DOS-emulatoren. Hvis du ønsker at ændre dette, skal du rette i filen /etc/dosemu.users. Den RPM-fil, som du har installeret som anvist ovenfor, tillader at alle bruger den, så du skal ikke rette noget.

Under en standard installation af dosemu-pakken oprettes et billede af en harddisk. Billedet emulerer c-drevet. Dette billede finder du (under Red Hat 6.0) som /var/lib/dosemu/hdimage.first. Det er let at hente og gemme filer på dette billede fra Linux. Du skal blot føje linjen

drive g:  file="/var/lib/dosemu/hdimage" Offset=8832
til /etc/mtools.conf, og nu kan du bruge mcopy, mdir osv.

Vil du vide mere om DOS-emulatoren, er http://www.dosemu.org et godt sted at begynde. FreeDOS finder du på http://www.freedos.org


6.9.2. Windows emulatoren WINE

Der har længe været programmeret på WINE (http://www.winehq.com) - en Windows emulator til Linux - og projektet virker mere lovende nu efter lang tids stilstand. På grund af Microsofts lukkede politik er det ikke alt, teamet har kunnet få tekniske detaljer på, og derfor er det langtfra sikkert, at du kan få nyere Windows programmer til at køre på denne måde under Linux.

WINE er på ingen måder et færdigt produkt endnu, men det er muligt at finde "snapshots" af WINE rundt om på Internettet. Nedenfor viser vi, hvordan et "snapshot" fra den 28. marts 1999 installeres (filen er fundet på ftp://sunsite.auc.dk).

[daisy@linus daisy]$  su -
Password: 
[root@linus root]#  rpm -i wine-990328-1.i386.rpm

Inden du kan komme i gang med at bruge WINE, bør du se lidt på konfigurationen af WINE, som sker i filen /etc/wine.conf. Du skal først og fremmest tilrette filen, så stier til dine Microsoft Windows kataloger er korrekte. Når du ønsker at køre et Windows-program, bruger du kommandoen wine (efterfulgt af navnet på det program, du ønsker at køre). Nedenfor ser du et eksempel på brugen af WINE - kabalespillet fra Windows kører, og gtop ses i baggrunden.

Lad os bare indrømme det: vi har forsøgt med en del Windows-programmer, og kun få har virket i WINE. Men selvom WINE ikke virker helt endnu, er det nu alligevel værd at følge med i udviklingen og prøve et "snapshot" i ny og næ.

Slutteligt bør det nævnes, at der også findes en kommerciel Windows emulator under navnet WABI.


6.9.3. Commodore emulering

Hvis du som denne bogs forfattere er vild med din gamle Commodore 64, er VICE noget for dig. VICE er en forkortelse for "Versatile Commodore 8-bit Emulator" (eller måske VIC Emulator). VICE kan emulere Commodore 64, Commodore 128, VIC 20 og Commodore PET. Ud over udgaver til Linux (UNIX) findes VICE til MS-DOS og Windows. VICE er i sandhed en alsidig emulator.

VICE følger ikke med en standard Red Hat distribution, men du finder den let på et ftp-site, f.eks. ftp://sunsite.auc.dk under Red Hat-contrib. Installationen kan drille lidt, idet VICE kræver libstdc++ version 2.9. Dette bibliotek er installeret ved en standard installation, men navnet kan være forkert. Nedenfor ser du, hvordan du kan installere VICE - du bør tjekke, hvilket navn libstdc++ har i /usr/lib.

[daisy@linus daisy]$  su -
Password: 
[root@linus root]#  cd /usr/lib
[root@linus root]#  ln -s libstdc++-2-libc6.1-1-2.9.0.so libstdc++.so.2.9
[root@linus root]#  rpm -ivh --nodeps vice-1.0-1.i386.rpm

Efter installationen er du klar til at bruge VICE. Afhængigt af, hvilken Commodore-computer, du ønsker at emulere, skal du benytte et af følgende programmer: x64 (Commodore 64), x128 (Commodore 128), xvic (VIC 20) eller xpet (PET).

VICE kan emulere lyd og grafik samt ydre enheder, dvs. båndstationer, diskettestationer (Commodore 1571) og joystick. Din emulator kører i et selvstændigt vindue under X. Højre og venstre museknap giver dig menuer til at styre VICE. Bånd og disketter emuleres ved, at du har indholdet liggende i en fil på din harddisk. Trykker du på venstre museknap, kan du "attach a disk image" og "attach a tape image", dvs. du kan vælge, hvilken fil der er dit bånd eller din diskette. Bånd og disketter gennes i særlige formater.

Det er let at finde gamle spil til f.eks. Commodore 64 rundt om på Internettet. Tjek f.eks. http://www.c64.com som har ca. 2500 liggende.


6.10. Spil

Linux er ikke en spillemaskine, som vi har skrevet i forordet, men der er spil til Linux og der kommer flere og flere. På Internettet kan du læse meget mere om spil på siden http://www.linuxgames.com. Vi vil i dette afsnit vise nogle af disse. Det kan også lige nævnes at Heretic lige er blevet annonceret til Linux og flere detaljer kan findes på http://www.cs.uni-potsdam.de/~wertmann/homepage3.html


6.10.1. KDE spil

Der er en del mindre spil til KDE, som er ganske underholdende. De svarer meget til de småspil, du sikkert kender fra Windows 95/98 eller lignende. Det er naturligvis et 7-kabale spil.

Spillet mahjongg er en gammel kending i Linux verdenen - du skal finde ens brikker og fjerne disse, to ad gangen, men kun de yderste. Meget hyggeligt spil.

Ok - du kender den fra Windows. Ingen spilsamling uden minesøger-spillet.

Reversi eller Sort/Hvid. Kendt barn har mange navne. Vend modstanderens brikker - rigtig fornøjeligt.

Tetris kender du sikkert, og den "rigtige" version hedder i KDE sitret. Der er også en sødere version, som hedder smiletris.

Poker-spillet i KDE er ret enkelt men desværre kun et enkelt-mands spil. Du taber stille og roligt dine "cyber-penge", eller gør du?

Snake er et lille spil, der for mange år siden blev spillet på Commodore 64, ældre videospil osv. Nu har den fået en ny forklædning.

En af de gamle kendinge er astroide spillet, hvor du skyder og flyver. Ikke så festligt efter et stykke tid.


6.10.2. GNOME spil

Ligesom KDE har spil, så har GNOME også et lignende udvalg. Ud over 7 kabalen, er der f.eks. også gtali, som er vist på Figur 6-28. I Danmark kender vi nok bedre spillet under navnet Yatzy.

Måske kender du det meget gamle spil Boulderdash - det er også med i GNOME under navnet gnome-stones. Spillet et vist på Figur 6-29. Du skal her fange små diamanter uden at få sten i hovedet. Derefter skal du finde udgangen.


6.10.3. Andre spil

Langt mere festligt er xbill, som følger med KDE. En lille mand prøver at installere et styresystem på alle maskiner med nogle vinduer. Sødt lavet, og det bliver svært at følge når sværhedsgraden vokser - godt, man er en pingvin...


6.10.4. Quake II

Den absolut bedste måde at bruge sit 3D grafikkort på er ved at spille, og et spil, som også er kendt blandt Windows brugere, er Quake. Både etteren og toeren kan du spille i Linux, ydermere for dem, som ikke kan få Quake nok, nævnes at ID Software (dem, som laver Quake) har planer om at udgive treeren i en speciel Linux-udgave. Hvis du ikke kan vente på det, kan du downloade en testversion på ID Softwares hjemmeside: http://www.idsoftware.com. Du kan nok også have stor glæde af at læse http://www.linuxquake.com/howto/Quake-HOWTO-3.html#ss3.2, hvorfra vi har hentet installationsvejledningen.

Mere information om Quake til Linux er at finde på http://www.linuxquake.com. Her findes også installationsvejledninger til etteren og toeren.

I afsnit 6.10.5 kan du finde mere om Quake til Linux, og i afsnit 5.10 er der en beskrivelse af, hvad du skal gøre for at få 3D grafik til at køre under Linux. Her får du installationsvejledningen til selve spillet. Spillet skal du downloade som RPM-pakke eller tage fra en af de mange computerblade CDROM'er, den har været bragt på. Du skal yderligere bruge selve Windows versionen af spillet.

Du skal som root først installere Windows-udgaven f.eks. under /usr/local/games/quake2.

[daisy@linus daisy]$  su -
Password: 
[root@linus root]#  mkdir /usr/local/games/quake2 
[root@linus root]#  cd /usr/local/games/quake2 
[root@linus quake2]#  cp STI_TIL_FIL/q2-314-demo-x86.exe .
[root@linus quake2]#  unzip q2-314-demo-x86.exe
[root@linus quake2]#  mv Install/Data/baseq2 .
[root@linus quake2]#  mv Install/Data/DOSC docs
[root@linus quake2]#  rm -rf Splash
[root@linus quake2]#  rm Setup.exe
[root@linus quake2]#  rm INSTALL
[root@linus quake2]#  rm -f baseq2/gamex86.dll
Efter de sidste linjers oprydning (filer, som er med, men ikke skal bruges til Linux), skal du installere Quake II RPM-pakken til Linux.
[root@linus root]#  rpm -ivh quake2-3_20-glibc-6_i386.rpm
[root@linus quake2]#  cd /usr/local/games/quake2
[root@linus quake2]#  ./quake2 +set vid_ref softx
Rock and roll - let's play!.


6.10.5. 3D software

Et godt sted at lede efter spil til Linux, som bruger 3D grafikkort, er på The Linux Game Home: http://www.happypenguin.org. Her står faktisk alt om spil til Linux.

Hvis du skulle høre til den (heldigvis) sjældne computerbruger, som hader spil, er det bedste sted at starte med at lede efter software til 3D grafikkort The Linux3D.org software site, som findes på http://glide.xxedgexx.com/software.html


6.10.6. Lincity

Lincity er et spil, som klart er inspireret af SimCity-spillene. Du starter på en bar mark ved en flod og må nu i gang med at lege byplanlægger. Spillet tager sit udgangspunkt i noget, der kan minde om et simpelt bondesamfund.

Spillet kører i X Window System, og du starter det ved at udføre kommandoen xlincity i en xterm. Spillet indeholder en fuldstændig vejledning, og din by vokser let meget hurtigt.


6.10.7. FreeCiv

Civilization er netop udkommet til Linux, men i længere tid har der eksisteret et spil ved navn FreeCiv ("Free Civilization"). I følge forfatterne til spillet har de skrevet det, fordi "civilization should be free". Der er tale om et ægte flerbruger-spil, hvor hver spiller benytter en klient, som kobler op mod en server, som enten kan være den samme maskine, som spillerne bruger, eller en eller anden computer på Internettet.

At få FreeCiv til at virke kræver en smule arbejde. Først og fremmest skal du sætte et par miljøvariable. Nedenfor ser du, hvad du bør føje til din .bashrc.

# FreeCiv
PATH=$PATH:/usr/games
FREECIV_DATADIR=/usr/share/games/freeciv
export FREECIV_DATADIR PATH

Næste gang, du logger ind, kan du køre FreeCiv (egentlig behøver du ikke at logge ud og ind; du kan bare udføre source ~/.bashrc). Først starter du serveren op.

[daisy@linux daisy]$  civserver
This is the server for Freeciv version 1.8.0
You can learn a lot about Freeciv at http://www.freeciv.org
1: Now accepting new client connections

Get a list of the available commands with 'h'.
> 

Når serveren er startet op, skal du vente med at starte selve spillet, indtil alle spillerne har koblet sig på serveren. Hvis du gerne vil have kunstige spillere, dvs. computer-styrede spillere, opretter du dem ved at skrive create Tux, hvor Tux er navnet på den computer-styrede spiller.

Spillerne (altså de ikke-computer-styrede) starter deres klienter op ved at udføre kommandoen civclient. Når klienten er klar, kobler du til på serveren, og spil-administratoren udfører kommandoen s på serverens kommandolinje, og spillet går i gang.

Vil du vide mere om FreeCiv, er spillets hjemmeside http://www.freeciv.org.


6.10.8. Scrabble

Naturligvis finder der til Linux et lille scrabble-spil. Når det er installeret kan du starte spillet ved at skrive xscrabble. Op til fire spillere kan spille mod hinanden, og hvis du er alene kan du spille mod computer-styrede spillere.


6.10.9. Skak

Kan du lide at spille skak og vil du gerne bruge din Linux-maskine som skakcomputer, findes der et rigtig godt skakprogram, som du bør se nærmere på. Programmet hedder GNU Chess.

GNU Chess indeholder et åbningsbibliotek og op til flere sværhedsgrader (eller styrker) af din computer-styrede modstander. Programmet køres ved at udføre kommandoen gnuchess på en kommandolinje. På Figur 6-35 ser du, hvordan spillet ser ud. Som det ses er det tekstbaseret.

Nu kan det være, at du finder ovenstående tekstbaserede udseende lidt for primitivt, men det er der råd for. Programmet xboard er en grafisk frontend til GNU Chess. Ja, faktisk er xboard mere end blot en frontend til GNU Chess. Programmet kan også bruges til at spille skak over Internettet, forstået på den måde, at du kobler op mod en skak-server og finder en modstander (et virkeligt menneske) at spille imod. Kører du xboard lokalt på din egen computer, vil programmet starte GNU Chess op bag din ryg. Du ser et eksempel på xboard i Figur 6-36.


6.11. Databaser

Linux er på grund af sin stabilitet, lave hardwarepris og lynhurtige netprotokoller et godt valg som databaseserver. Inden for databaser er de facto standarden sproget SQL, som understøttes af mellem 30 og 40 programmer. Et meget stærkt og billigt program er MySQL (lavet i Sverige), med hvilket du let kan lave et interface til Apache webserveren. Med Red Hat følger PostgreSQL databasen, som er gratis og kan meget.

De helt store producenter, Oracle, Sybase, Informix, IBM med DB2 og Inprise med InterBase er i gang med at teste og producere Linux versioner af deres database systemer, og flere af disse er allerede i aktiv brug. Høj ydelse kan forventes!


6.12. Regneark

XSpread (xspread) er et simpelt regneark, som indeholder de fleste basale funktioner. Standarden er dog ikke som i Excel eller lignende, men XSpread er bestemt anvendeligt.

GNOME projektet har også et regneark, som hedder Gnumeric. Gnumeric er allerede nu klar til at blive anvendt. Gnumeric følger i dag med Red Hat og Debian som applikation under GNOME desktoppen. Nye versioner kan downloades fra http://www.gnome.org

Andre med pænere interface findes også (men kommercielle), f.eks. http://www.xess.com, som virker helt på højde med, hvad du kender fra Windows-verdenen. Hold også øje med http://www.wingz-us.com/wingz/index.html - der loves et meget spændende og professionelt regneark. Desuden indeholder ApplixWare og StarOffice også gode regneark.


6.13. Databehandling og visning

GNU Plot (gnuplot) har i mange år været UNIX programmet, der er blevet anvendt til at afbilde data grafisk. Der er både mulighed for at afbilde egne data gemt i en ASCII fil samt få vist grafer dannet ud fra de almindelige regneoperationer og en række indbyggede matematiske funktioner. Grafer kan vises i 2D og i 3D. GNU Plot har mulighed for at eksportere billeder i eps-format, hvorfor det passer fint sammen med LaTeX. Grace (det hed xmgr tidligere) er et udmærket dataplotningsprogram til 2-dimensionelle grafer. Programmet følger ikke med Red Hat, men følger med Debian.

Har du (for mange) penge, kan du købe Mathematica, Maple eller Matlab til Linux. Alle tre er meget gennemarbejdede og tilbyder et stabilt udviklingsmiljø med alt inden for numeriske/symbolske metoder og grafik. Grafikken er her helt i top og meget enkel at anvende.

MuPAD er måske også værd at downloade. Det er gratis - dog ikke Open Source. MuPAD kan findes på http://www.mupad.de. MuPAD er et meget avanceret matematik-program, som bl.a. kan regne symbolsk med bogstaver. På mange områder er MuPAD en mindre kendt konkurrent til Mathematica og Maple. På det seneste har en hollandsk gut arbejdet på endnu en konkurrent. Navnet er Yacas (yet another computer algrebra system). Yacas er bestemt ikke modent til daglig brugt, men det er sjovt at lege med!

De gratis Matlab-kloner, Scilab og Octave, er gode til numerisk manipulation af matricer og vektorer samt anden databehandling. Til præsentation af grafik er Octave baseret på GNU Plot, mens Scilab har udviklet deres egne biblioteker til at vise grafer. Disse er gratis, men ikke på højde med de kommercielle programmer. Pythons numeriske udvidelser (NumPy) er værd at kigge nærmere på - lidt frækt kan man sige at Python er en bedre Matlab end Matlab.

Vil du vide mere om programmer til matematik, fysik, biologi osv., bør du tjekke Scientific Application for Linux: http://sal.jyu.fi.


6.14. Revisionssystemer

Hvad, der burde være i en separat kategori, er revisionskontrol. Til Linux kan det anbefales at anvende CVS, der står for Concurrent Version System. Med CVS kan du styre projekter, som flere personer arbejder sammen om (også selvom de arbejder på hver sin maskine), og alle kan nemt se, hvad andre har opdateret til en fælles database, som kan ligge på en helt anden UNIX server. Det er meget smart og forbløffende enkelt at arbejde med i det daglige, hvis man sætter sig ind i det.

Hvis du i Emacs indlæser en fil, der er koblet ind i CVS, vil Emacs automatisk genkende dette og indsætte en ekstra menu, hvorfra du på enkel vis kan sende tilføjelser til den fælles database (selve ændringerne skal du ikke selv styre - det klarer Emacs og CVS).

I tilfælde af indsættelse af fejlbehæftet kode i CVS kan du på et vilkårligt tidspunkt gå baglæns i revisionerne og få tidligere kode ud. Problemer med, at folk retter i samme del af koden kan enten nemt forhindres (ved at filer, man retter i, låses for andre), eller man kan bare kode løs - det er nemt at flette kode, og problemer med overlap mellem egne og andres kodeændringer vil tydeligt blive vist for brugeren.

CVS er gratis og meget nemt at anvende. Der kan læses mere om CVS på f.eks. http://www.sslug.dk/artikler/CVS.html og f.eks. i den bog i postscript-format, der findes om CVS på http://www.sslug.dk/artikler.


Kapitel 7. Linux i store og små netværk

Linux er overordentlig velegnet til at bruge i netværk. Understøttelsen af det er faktisk så snævert integreret med styresystemet, at det i praksis er svært at skille de to dele ad, og der er rigelige mængder af programmer til netværksbrug at vælge imellem. Hvad enten dit behov er at koble en enkelt computer op til Internettet via en modemforbindelse, dele filer og printere med andre brugere på et lokalnet eller køre en Internetserver med alt, hvad dertil hører, giver Linux umiddelbart mulighed for det.

Alt, hvad der skal bruges af software, følger med enhver moderne Linux-distribution. Det eneste, du behøver, er en grundlæggende viden om netværk. Den finder du her sammen med henvisninger til mere udførlige forklaringer på de mere komplicerede eller specielle emner.


7.1. TCP/IP

TCP/IP er den mest anvendte protokol til kommunikation på Internettet i dag. TCP/IP har rødder tilbage til 1969, hvor den amerikanske regeringsorganisation DARPA (Defense Advanced Research Projects Agency) søsatte et forskningsprojekt, der havde til formål at udvikle teknologier til pålidelig datakommunikation. Resultatet kom til at hedde ARPANET.

Efterhånden voksede ARPANET og delte sig i flere uafhængige, men indbyrdes forbundne netværk. Den stadige knopskydning og vækst omdannede efterhånden det oprindelige ARPANET til vore dages Internet. En af årsagerne til, at dette kunne lykkes, er filosofien bag TCP/IP. Målet var fra starten at skabe åbne og frit tilgængelige standarder uden tilknytning til bestemte typer hardware eller styresystemer. Sammenligningen med vore dages Open Source-koncept er både oplagt og tankevækkende.


7.1.1. En lille formaning

Fordi du nu bruger Linux, kommer du til at have fingrene lidt længere nede i netværksmaskineriet end med andre styresystemer. Derfor bliver du nødt til at lære lidt mere om, hvordan det hele er skruet sammen i stedet for bare at skrive en stribe magiske tal i nogle dialogbokse.

Du kan i mange tilfælde teste tingene på din egen maskine uden at være forbundet til et eksternt netværk og dermed undgå at genere andre. Vær frem for alt ikke bange for at lege med tingene - du kan kun blive klogere af det!


7.1.2. Netværksadresser

Et computernetværk består af et antal forbundne computere, i denne sammenhæng ofte kaldet værter (eng. "hosts"). Flere forbundne netværk kaldes et internet.

Alle computerne i et netværk bør i princippet kunne komme i kontakt med hinanden. For at kommunikationen mellem alle de forbundne computere skal fungere kræves det, at alle følger et fælles sæt tekniske spilleregler - såkaldte protokoller. TCP/IP udgør i Internettets tilfælde dette sæt spilleregler.

Der er som sagt brug for, at hver computer på netværket kan kontaktes af enhver anden computer på det samme netværk. Hver maskine har mindst en netværksadresse. Det er i sagens natur nødvendigt, at alle adresserne i et netværk er forskellige - ligesom postadresser i virkelighedens verden, ellers risikerer man, at oplysningerne bliver afleveret det forkerte sted.

En adresse i et TCP/IP-netværk er ret beset bare et tal. Computere har som bekendt ingen problemer med at arbejde med endog meget store tal, men vi stakkels mennesker kan godt have brug for at få tingene præsenteret på en lidt mere fordøjelig måde. De fleste af os ville formodentlig betakke os for at skulle skrive tallet 3333866547 i vores web-browser, når vi fik lyst til at surfe hen og tage et kig på http://www.linux.org.

Selv om det ved første øjekast kan virke ret uoverskueligt at arbejde med netværksadresserne som tal, kan det imidlertid godt betale sig at kigge lidt nærmere på systemet - for der er faktisk system i tingene.

Du har formodentlig hørt om, at computere i virkeligheden arbejder med tallene i binær form. Det betyder simpelthen, at den kun anvender cifrene 0 og 1 til at bygge tal op af. Vi er vant til at læse og skrive tallene med det decimale system, altså med de almindelige ti cifre 0-9. Det viser sig da også, at det meget hurtigt går helt galt med overskueligheden, når man skriver tallene i binær form. Det lange - men dog stadig nogenlunde læselige tal fra eksemplet ovenfor - ser sådan her ud som binært tal:

11000110101101101100010000110011

Tallet fylder hele 32 binære cifre eller bits og er stort set umuligt at overskue for det menneskelige øje. Det hjælper dog lidt, hvis man deler de 32 bits op i fire grupper med otte i hver:

11000110 10110110 11000100 00110011

En gruppe på otte bits kaldes en byte (på datalog-dansk: "en oktet") og kan bruges til at skrive tal mellem 0 og 255. Hvis du nu i stedet for at skrive, hvad alle de 32 bits tilsammen bliver til som decimaltal (3333866547), skriver hver af de fire bytes for sig:

11000110 = 198 decimal

10110110 = 182 decimal

11000100 = 196 decimal

00110011 = 51 decimal

og adskiller de fire bytes med punktummer, kommer det til at se sådan her ud:

198.182.196.51

Denne skrivemåde, som på engelsk kaldes "dotted quad notation", er langt den mest anvendte, når man har brug for at skrive netværksadresser som tal. Du har sikkert set systemet anvendt, hvis du på et tidspunkt har oprettet en forbindelse til en internetudbyder.

Når du skriver adressen på denne måde (og ved, hvad du skal kigge efter), fremgår det pludselig klart, at:

  • det er et klasse C netværk

  • det er en adresse på netværket 198.182.196.0

  • det er vært nummer 51 på netværket

Og hvad betyder så det, og hvordan får man øje på det? Der findes tre almindeligt anvendte klasser af netværk, kaldet A, B og C.

  • klasse A er netværk, hvis første byte er mellem 1 og 126. Første byte er netværksnummeret. Værtsnummeret udgøres af de tre sidste bytes

  • klasse B er netværk, hvis første byte er fra 128 til 191. Netværksnummeret er de første to bytes. Værtsnummeret er de sidste to bytes

  • klasse C er netværk, hvis første byte er mellem 192 og 223. Netværksnummeret er de første tre bytes. Værtsnummeret er den sidste byte

Tag et kig på de navneserveradresser (DNS), du har fået fra din internetudbyder. Du vil med stor sandsynlighed finde ud af, at det er adresser på et klasse C netværk.


7.1.3. Sammenkobling af flere netværk

Som nævnt ovenfor kan alle computere i et netværk umiddelbart komme i kontakt med hinanden. Som eksempel kan vi forestille os, at vi har et klasse C netværk 192.168.100.0 (vært nummer 0 henviser ikke til en computer - men til hele netværket) med tre computere med flg. adresser:

Tabel 7-1. Netværket 192.168.100.0

VærtsnavnAdresse
alfa192.168.100.1
beta192.168.100.2
gamma192.168.100.3

De er allesammen på samme netværk og kan derfor hver især umiddelbart komme i kontakt med hinanden. Men lad os nu forestille os, at der i samme bygning er et andet lille netværk 192.168.200.0, som også består af tre maskiner:

Tabel 7-2. Netværket 192.168.200.0

VærtsnavnAdresse
svend192.168.200.1
knud192.168.200.2
valdemar192.168.200.3

Nu viser det sig, at brugerne på de to netværk gerne vil i kontakt med hinanden via netværket. Man kunne så forestille sig, at man bare slog de to netværk sammen til et enkelt og delte nye netværksadresser ud, så alle kunne kontakte hinanden direkte. Det kunne også sagtens lade sig gøre, men vil måske komme på tværs af den måde, de to netværk administreres på.

Normalt gør man i stedet det, at man vælger en enkelt maskine, der tildeles adresser på begge netværk. I eksemplet ovenfor kunne det være computeren svend (192.168.200.1), der blev udstyret med et ekstra netværkskort og forbundet til netværket 192.168.100.0. Den kunne så passende blive tildelt værtsnummeret 4 på dette netværk og har så to adresser.

En maskine, der på den måde forbinder to netværk, kaldes en gateway. Computeren svend kan nu kontakte alle maskinerne på begge netværk direkte, og hvis vi fortæller de andre maskiner, at de skal lade henvendelser til det andet netværk gå igennem svend, kan alle i dette lille internet komme i kontakt med hinanden. Man fortæller altså, hvilken rute der skal bruges for at komme frem til en bestemt computer eller netværk, og det kaldes derfor rutning. Med det grafisk baserede program netcfg, der følger med Red Hat Linux, er det forholdsvis enkelt at konfigurere rutning.

Hvis vi nu forestiller os, at alfa (192.168.100.1) er forbundet videre ud til den store verden, begynder det at blive rigtig interessant. Knud (192.168.200.2) vil gerne i kontakt med 192.168.30.1. Det er ikke en adresse på knuds eget netværk, så den sender sagen videre til svend, der konstaterer, at den heller ikke kan komme i direkte kontakt med netværket 192.168.30.0. Den overlader problemet til alfa (192.168.100.1), der enten kan komme i direkte kontakt med 192.168.30.1 eller ved, hvem den kan give sorteper videre til.


7.1.4. DNS

For at gøre det muligt at bruge navne i stedet for tal, når du skal arbejde med netværksadresser, kræves der i sagens natur et verdensomspændende system, der kan oversætte fra navne til tal og omvendt. Dette system kaldes DNS (Domain Name Service) og vedligeholdes af utallige administratorer i forskellige organisationer verden over. Systemets opbygning sikrer, at de enkelte dele af den gigantiske navnedatabase kan ændres og udbygges efter behov.

Fig. 1

+(rod)
|
+ .com
|   |
|   + .yahoo
|   |    |
|   |   www
|   |
|   + .alta-vista
|   |     |
|   |    www
|   |
|   + .hacker
|         |
|        www
|
+ .dk
|   |
.   + .jubii
.   |    |
.   |   www
    |
    + .uni-c
       /  \
     www  danpost

DNS består af et hierarki af domæner. Fig. 1 viser en lille del af DNS. Ved hver '+' sidder en navneserver, som ved alt om det givne domæne, således ved [+ .uni-c] alt om domænet uni-c.dk.

Når en pc skal finde ud af IP-adressen på www.uni-c.dk, spørger den sin lokale navneserver (Følg med på fig 2). Denne navneserver ved, hvilke navneservere der bestyrer domænet [+(rod)]. Den spørger så navneserverne for (rod): "Hvad er IP-adressen på www.uni-c.dk?". (Rod)-serverne svarer: "Det ved jeg ikke, men jeg ved hvem, der bestyrer .dk". Den lokale navneserver spørger nu .dk-serverne: "Hvad er IP-adressen på www.uni-c.dk?". .dk-serverne svarer: "Det ved jeg ikke, men jeg ved, hvem der bestyrer uni-c.dk". Den lokale nameserver spørger nu .uni-c.dk-serverne: "Hvad er IP-adressen på www.uni-c.dk?". .uni-c.dk-serverne svarer: "Adressen på www.uni-c.dk er ...". Til slut svarer den lokale navneserver PCen: "Adressen på www.uni-c.dk er ...".

Fig. 2

[PC]       --> [Lokal NS]     www.uni-c.dk?
[Lokal NS] --> [(rod) NS]     www.uni-c.dk?
[Lokal NS] <-- [(rod) NS]     NS for .dk er .dk-NS
[Lokal NS] --> [.dk-NS]       www.uni-c.dk?
[Lokal NS] <-- [.dk-NS]       NS for .uni-c.dk er .uni-c.dk-NS
[Lokal NS] --> [.uni-c.dk-NS] www.uni-c.dk?
[Lokal NS] <-- [.uni-c.dk-NS] Adressen på www.uni-c.dk er ...
[PC]       <-- [Lokal NS]     Adressen på www.uni-c.dk er ...

Da ovenstående procedure kan tage lang tid, bliver alle resultater cachet af din lokale navneserver. Næste gang, den bliver spurgt om www.uni-c.dk, behøver den altså ikke at kontakte alle de andre navneservere igen, men kan give svaret omgående:

[PC]       --> [Lokal NS]     www.uni-c.dk?
[PC]       <-- [Lokal NS]     Adressen på www.uni-c.dk

Resultater bliver kun cachet et vist stykke tid, kaldet TTL (Time To Live). TTL er bestemt af domænets navneservere. Med andre ord: navneserverne for .uni-c.dk bestemmer, hvor længe din lokale navneserver må gemme informationen.

Som et konkret eksempel på et DNS opslag kan vi f.eks. bede om SSLUG's IP-adresse. Til dette bruger vi kommandoen nslookup.

[daisy@linus daisy]$  nslookup www.sslug.dk
Server:  danpost.uni-c.dk
Address:  129.142.6.64

Non-authoritative answer:
Name:    sslug.sslug.dk
Address:  192.38.71.98
Aliases:  www.sslug.dk

Vi kan i eksemplet se, at vi beder danpost.uni-c.dk med IP-adresse 129.142.6.64 om adressen på SSLUGs webserver. SSLUG har IP-adressen 192.38.71.98, og maskinen er åbenbart også kendt som sslug.sslug.dk. Svaret er "Non-authoritative", idet danpost-DNS serveren ikke er herre over sslug-domænet, men har fået informationen fra en anden navneserver.

DNS indeholder også andre informationer end IP-adresser. I DNS-sprog sætter man et punktum bag navnene for at angive, at disse er absolutte. Normalt kan man dog ignorere det sidste punktum.

DNS er baseret på filer. Disse filer indeholder zone-data. I mange tilfælde indeholder hver fil/zone ét domæne, i det følgende kan man derfor blot betragte "zone" som et synonym for "domæne".

Nameserverne for en zone listes ved:

[daisy@linus daisy]$  host -t ns sslug.dk
sslug.dk name server ns-soa.darenet.dk
sslug.dk name server ns.sslug.dk
sslug.dk name server ptah.dkuug.dk

For at finde mailserverne for et domæne skal man kende en af navneserverne for domænet. Derefter spørger man denne navneserver:

[daisy@linus daisy]$  host -t mx domæne.dk navneserver.for.domæne.dk

Den ansvarlige administrator for en zone findes i zonens SOA-record (Start Of Authority). SOA-recorden findes med:

[daisy@linus daisy]$  host -t soa domæne.dk navneserver.for.domæne.dk
Hvis SOA starter med: sslug.dk. IN SOA ns.sslug.dk. root.sslug.dk. ( så er zonen sslug.dk, den primære navneserver ns.sslug.dk og den ansvarlige administrators email-adresse root@sslug.dk (udskift første . med @).

Nogle navne er blot et alias for et andet navn: de har et kanonisk navn (eng: "canonical name"). Dette kan ses ved at spørge navneserveren for domænet om alt, hvad den ved om et givent navn:

[daisy@linus daisy]$  host -t any dette.navn.domæne.dk nameserver.for.domæne.dk

Til nogle domæner er knyttet tekst-information. Denne kan kaldes frem med:

[daisy@linus daisy]$  host -t txt navn.med.info.domæne.dk
Hvis informationen er til stede, indeholder den ofte information om, hvem der bestyrer navn.med.info.domæne.dk

Da DNS ikke er helt simpelt at sætte op korrekt, kan de ovenstående eksempler bruges, hvis du skal debugge din egen DNS. De kan også bruges til at finde ud af, hvorfor netværksfejl opstår eller til at finde en ansvarlig for et domæne, som man har modtaget reklame-emails fra.

I forbindelse med installationen af Red Hat Linux (eller senere) kan du vælge pakken "caching-nameserver". Pakken foretager en simpel opsætning af navneserveren bind. Fra starten kender den ikke selv svaret på navneopslag, men sender blot spørgsmålet videre og husker svaret (som beskrevet ovenfor). Den glemmer desværre alt, hvad den har lært, når maskinen lukkes ned, så du får mest glæde af en caching navneserver, hvis den kører på en maskine, der er i gang altid - f.eks. en server på et lille lokalnetværk. Den kan selvfølgelig sagtens bruges som navneserver for Windows pc'er på netværket.

Hvis du vil bruge Linux på en server i et mindre netværk, kan du have glæde af at lade den fungere som navneserver for et lokalt domæne. Opsætningen af dette er ikke det første Linux-eksperiment, du skal starte med, så eventuelle interesserede henvises til den detaljerede beskrivelse i DNS-HOWTO (under Red Hat, se /usr/doc/HOWTO/DNS-HOWTO).


7.2. Modemforbindelse til Internet

Hvis du er en typisk hjemmebruger eller sidder i en mindre virksomhed og vil have din computer på Internettet, vil du som regel have brug for at gøre det via en modemforbindelse.

Langt den mest almindelige måde at gøre det på i Linux er ved hjælp af PPP, Point-to-Point Protocol. PPP tilbyder en hel del flere faciliteter og mere fleksibilitet, end vi her vil komme ind på. Vi vil nøjes med at beskrive den typiske og helt basale opsætning, der vil sætte dig i stand til at få en TCP/IP-forbindelse til din internetudbyder op at køre.

Hvis du får brug for at sætte en server op til at modtage PPP-opkald, eller hvis du har problemer med at få PPP til at fungere mellem Linux og Windows NT eller har andre specielle behov, skulle du overveje at tage et kig på følgende bog, der går ganske grundigt til værks inden for sit emne:

Andrew Sun: Using & Managing PPP, O'Reilly & Associates, Inc., ISBN 1-56592-321-9, 430 sider.


7.2.1. Opsætning af PPP

Med Red Hat Linux følger der et grafisk baseret opsætningsprogram, der gør det forholdsvis enkelt at få PPP i gang. Hvis du har en konto hos en internetudbyder (ISP), har du forhåbentlig modtaget de sæt oplysninger, der skal bruges for at få din forbindelse til at køre. Du skal fra din ISP som minimum have

  • Et dialin brugernavn

  • En tilhørende adgangskode

  • Et telefonnummer til internetudbyderens dialin

  • IP numre på en eller to navneservere hos din ISP

Har du sat modemforbindelse til din ISP op under f.eks. Windows 95, står de oplysninger du skal have, under de menuer, hvor Internet via modem konfigureres. Er du i tvivl, spørg din ISP om disse informationer.

Du skal være root for at kunne sætte din internetforbindelse op, så skriv su - i en xterm, og gør følgende:

Start med at finde ud af, hvor dit modem sidder. COM1 i DOS/Windows svarer til /dev/ttyS0 i Linux. COM2 svarer til /dev/ttyS1 osv. Som root skal du lave en modem device, som er et symbolsk link til den rette seriel port. Hvis du anvender COM2, skal du skrive:

[daisy@linus /root]#  ln -sf /dev/ttyS1 /dev/modem

Tjek lige, at linket er rigtigt.

[daisy@linus /root]#  ls -al /dev/modem
lrwxrwxrwx   1 root root 5 Sep  5 04:37 /dev/modem -> /dev/ttyS1


7.2.1.1. Modem og Internet med brug af usernet

Skriv netcfg i en xterm, og følgende panel kommer frem. (Du kunne også finde netcfg via control-panel.)

Bemærk, at vi lader vores maskine have et fiktivt domæne akela.dk, som ingen kender, og maskinen kalder vi www. Alt kan bruges, bare det ikke lapper over et registreret domæne. De to IP-adresser på nameservere har vi fået fra vores internetudbyder. Alt mellem en og tre nameservere er fint. Har du brug for at sætte din Linux-maskine ind i et lokalt netværk, skal du kontakte den ansvarlige for netværket og få adresse samt et registreret maskinnavn.

Trykker vi på Hosts, får vi følgende frem:

Vor egen IP-adresse er valgt til 192.168.0.1 for ikke at matche en på internettet. Alle 192.168.*.* og 172.17.*.* adresser er ukendte på internettet (* står for et tal mellem 0 og 255). Desuden har vi skrevet IP-adresse på den maskine, vi henter mails fra - dette er ikke nødvendigt, men bekvemt (eksemplet svarer til TeleDanmarks internet).

Under routing har vi ikke konfigureret noget specielt.

Trykker vi på Interfaces, får vi følgende vindue frem.

Vi har allerede lavet et PPP-interface og har desuden på vores maskine et ethernet kort til vores private netværk (eth0). Vi har desuden en såkaldt loopback device (lo skal være der). Nu vises, hvordan du tilføjer en ekstra PPP-opkobling (f.eks. til en anden Internet udbyder).

Tryk på Add, og vælg PPP, som er den mest udbredte opkoblingsform hos internetudbydere. Tryk derefter på OK.

Næste vindue kommer frem, og du skriver, hvilket telefonnummer der skal ringes op til.

Dit PPP login er dit kundenummer eller brugernavn. PPP password er den adgangskode, som din internetudbyder har givet dig. Da PPP med PAP er anvendt af mange internetudbydere, skal du nok vælge "Use PAP authentification" knappen (du må kontakte din internetudbyder for at høre, hvad du skal). Det kan lige tilføjes, at det viste loginnavn og adgangskode kun er et eksempel på, hvordan det kan se ud. Du kan undre dig over, at der er tre "skudhuller" i det næste billede - det er naturligvis snyd fra vores side og bare en sød måde, at huske dig på at dit password aldrig er noget du skal vise andre.

Tryk på Done, og du vender tilbage til vinduet med Network Configurator under Interfaces. Her kan du trykke på det PPP-interface, som du lige har oprettet. Vælg derefter Edit.

Her tillader vi, at "Allow any user to (de)activate interface". De fleste moderne modems kan fødes med op til 115200 bits/sekund og køre med hardware flow - er det ikke tilfældet for dit modem, vælg anderledes her. Nu vælger du passende Done og Save, og arbejdet som brugeren root stoppes (skriv exit, eller tryk Ctrl-D i den xterm, du startede med).

Nu er PPP konfigureret, og det skal prøves. Som bruger kan du nu skrive usernet, og følgende panel kommer frem:

Du trykker simpelthen på knappen ppp1 (eller ppp0 for den første PPP) for at starte. Fra begyndelsen er interfacet (her begge to) røde. Når du så kobler op, skiftes til gul og så til grøn, når du er på. Her er vist, at ppp1 er aktiv. Når du vil afslutte og lukke forbindelsen, så tryk igen på knappen, og efter et par sekunder stoppes modemet.

Når du har hul igennem til Internettet, kan du jo passende prøve http://www.sslug.dk - dvs. SSLUG's hjemmeside.

Som supplement (eller alternativ) til det grafiske usernet interface findes også tekst-mode kommandoer:

 [daisy@linus daisy]$  /usr/sbin/usernetctl PPP-DEVICE ACTION 

Hvor PPP-DEVICE er den ppp-enhed, du netop har konfigureret (normalt ppp0), og ACTION er up eller down afhængigt af, om du vil åbne eller lukke forbindelsen.

I virkeligheden er netcfg blot en behagelig og overskuelig måde at redigere det sæt tekstfiler, der bestemmer, hvordan pppd opfører sig. Disse filer ligger i /etc/ppp.

Vi kan i øvrigt anbefale, at du læser http://www.sslug.dk/artikler/ppp-info.html, hvis du har problemer med at få din modem-opkobling til at virke.


7.2.1.2. Modem og Internet med brug af kppp

Et godt program til at styre en internet-opkobling i X er KPPP (kppp). Programmet kommer som del af KDE, men det kan køres under andre grafiske brugergrænseflader.

Du vil i Red Hat 6.1 se at du skal indtast root-password for at komme i gang. Det er irriterende og vi skal her vise hvordan man undgår dette. Først lidt forklaring. Programmet /usr/bin/kppp er i Red Hat 6.1 et link til /usr/bin/consolehelper. /usr/bin/consolehelper er en "pam.d"-wrapper. Den finder sin konfigurationsfil i /etc/security/console.apps/kppp:

USER=root 
PROGRAM=/usr/sbin/kppp 
SESSION=true

Heraf ses, at det program der rent faktisk skal køres er /usr/sbin/kppp, som root, og der skal registreres en "session" for at det virker.

Det er imidlertid ikke så vigtigt. Hvad der er vigtigt er filen /etc/pam.d/kppp som efterfølgende anvendes af consolehelper for at godkende starten af kppp:

Den originale /etc/pam.d/kppp ser således ud.

#%PAM-1.0 
auth sufficient /lib/security/pam_rootok.so 
auth required /lib/security/pam_pwdb.so 
session optional /lib/security/pam_xauth.so
account required /lib/security/pam_permit.so

Den første linje er en kommentar. Den næste linje siger at mht. autorisation, er det tilstrækkeligt at brugeren er "root". Hvis det er tilfældet, vil linje 3 ikke blive brugt, ellers vil linje 3 blive brugt; da brugeren er "root" og auth med pwdb.so kræves, skal man give root-password.

De sidste par linjer omhandler oprettelsen en session (mest aht. logging), samt hvilke rettigheder man har - da man skal have root auth, har man stort set alle rettigheder, og derfor anvendes tilladelse (permit).

Hvis du ønsker at give alle brugere, der er logget ind på konsollen mulighed for at foretage en Internetopkobling, kan du ændre filen til

#%PAM-1.0 
auth sufficient /lib/security/pam_rootok.so 
auth sufficient /lib/security/pam_console.so 
auth required /lib/security/pam_pwdb.so 
session optional /lib/security/pam_xauth.so
account required /lib/security/pam_permit.so

Her er tjekket:

  • a) root? Ja: OK, nej: næste tjek.

  • b) ved konsol? Ja: OK, nej: næste tjek.

  • c) Kan man give root-password? Ja: OK, nej, fejl. (pga. required).

Hvis du ønsker at lave hvad der svarer til "suid root", kan du lave:

#%PAM-1.0 
auth sufficient /lib/security/pam_permit.so 
session optional /lib/security/pam_xauth.so
account required /lib/security/pam_permit.so

Vil du vide mere så prøv man consolehelper, man userhelper og se måske også /usr/doc/pam..../html.


7.2.1.3. Modem og Internet med brug af wvdial

Programmet wvdial følger med SuSE 6.2/6.3 og Red Hat 6.1. Programmet kan komfigureres fra YaST, SuSEs konfigurationsværktøj eller direkte vha. wvdialconf. wvdialconf vil forsøge at detektere dit modem, sætte de optimale initialiseringsstrenge op, osv. Efter du har kørt programmet, skal du redigere filen /etc/wvdial.conf, f.eks. skal du indsætte telefonnummer på din internetudbyder.

Når du har fået sat din opkobling op, kan du ringe op ved at taste wvdial på en kommandolinje.


7.2.2. Diald

Når du har en fungerende PPP installeret, kan diald muligvis være interessant for dig. Ideen er, at diald åbner PPP-forbindelsen, når der er brug for den, og lukker den, når der ikke er. På den måde kan du få fornemmelsen af at have en fast forbindelse, der altid er åben. Virkningen er specielt overbevisende, hvis du har et ISDN-modem, der åbner forbindelsen på et kort øjeblik, for et almindeligt analogt modem bruger en del tid på at ringe op.

Der er rige muligheder for at finindstille diald, så programmet opfører sig præcis, som du ønsker det. Vi vil nøjes med at gøre opmærksom på dets eksistens og i øvrigt henvise til de glimrende manual-sider om emnet.

Læs mere om dialdhttp://www.loonie.net/~eschenk/diald.html


7.3. Ethernet-kort

Hvis du har behov for at koble et mindre antal computere sammen i et lokalnetværk, vil du oftest benytte netværkskort af Ethernet-typen.

Langt de fleste Ethernet-kort fungerer upåklageligt under Linux. De fleste billige kort er kloner af Novells NE2000 og fungerer glimrende sammen med driveren til det kort.

Installerede Ethernet-kort hedder i Linux eth0, eth1, eth2 etc. Normalt vil du kun have et enkelt kort, der så naturligvis hedder eth0.

Netværkskort kan konfigureres i forbindelse med installationen eller senere ved hjælp af programmet netcfg. De parametre, som optræder på billedet, skal du have af din netværksansvarlige.

Bruger du Red Hat Linux 6.0 på en bærbar, hvor dit ethernet-kort er et PCMCIA-kort, skal du være opmærksom på, at du kan blive ramt af en lille fejl i Red Hat's opsætning alt efter, hvordan du vælger under installationen. Sagen er, at netværket forsøges initialiseret før PCMCIA-kortene. Det betyder, at computeren forsøger at komme på nettet, før ethernet-kortets driver er indlæst! Hvis du har denne fejl, så er den let at rette (skal gøres som root):

 
[root@linus root]#  cd /etc/rc.d/rc3.d 
[root@linus rc3.d]#  mv S96pcmcia S09pcmcia 

Sagen er, at de programmer som ligger i /etc/rc.d/rc3.d (runlevel 3 er det, som oftest anvendes), vil blive udført i rækkefølge, hvor filer med S udføres under opstart med laveste nummer først. Tilsvarende udføres K filerne i samme katalog når der lukkes ned. Hvis et program er udført for sent, såsom det nævnte, så kan vi få det udført tidligere ved at sætte S-nummeret ned.

En anden fejl, som du kan være rendt ind i med Red Hat 6.0, er, at din loopback device ikke er sat ordentligt op. Loopback er en smart netværksdevice, som sikrer lynhurtig kommunikation fra egen maskine til egen maskine. Du bør checke, om /etc/sysconfig/network-scripts/ifcfg-lo indeholder følgende:

DEVICE=lo
IPADDR=127.0.0.1
NETMASK=255.0.0.0
NETWORK=127.0.0.0
BROADCAST=127.255.255.255
ONBOOT=yes
BOOTPROTO=none


7.4. Netværksprogrammer

7.4.1. Ping

ping er et meget simpelt, men utroligt nyttigt stykke værktøj, der bruges til at finde ud af, om der kan opnås forbindelse til en IP-adresse. Sagt på en anden måde er ping det program, du kan bruge til at finde ud af, om der er "hul igennem".

ping bør altid være det første program, du bruger til at diagnosticere et netværksproblem. Hvis det lykkes at pinge til en adresse, ved du, at den fysiske forbindelse er i orden, og de basale dele af netværket fungerer.

ping køres sådan her:

[daisy@linus daisy]$ ping -c 4 www.linux.org

Ved at skrive "-c 4" beder vi ping om at nøjes med at sende fire pakker, ellers bliver den ved, indtil vi stopper den med Ctrl-c.

ping svarer tilbage:

PING www.linux.org (198.182.196.51): 56 data bytes
64 bytes from 198.182.196.51: icmp_seq=0 ttl=42 time=479.3 ms
64 bytes from 198.182.196.51: icmp_seq=1 ttl=42 time=710.0 ms
64 bytes from 198.182.196.51: icmp_seq=1 ttl=41 time=730.0 ms
64 bytes from 198.182.196.51: icmp_seq=2 ttl=42 time=600.0 ms
64 bytes from 198.182.196.51: icmp_seq=3 ttl=42 time=370.0 ms

--- www.linux.org ping statistics ---
4 packets transmitted, 4 packets received, +1 duplicates, 0% packet loss
round-trip min/avg/max = 370.0/577.8/730.0 ms

Vi kan først og fremmest se, at vi kan komme igennem til www.linux.org, som har adressen 198.182.196.51, og at alt, hvad vi sendte, kom tilbage igen, ja faktisk kom en af de fire pakker tilbage to gange! Hele turen frem og tilbage tog i gennemsnit 577,8 millisekunder - altså lidt over et halvt sekund.


7.4.2. telnet

Med telnet er det muligt at logge ind på andre computere på netværket og arbejde tekstbaseret, som om du sad ved computeren. Dette kan også foregå på tværs af platforme, f.eks. kan du køre telnet på en Windows 95 PC og derfra logge ind på en Linuxmaskine.

Ved normal brug startes telnet simpelthen med navnet på den computer, du ønsker en forbindelse til - i nedenstående eksempel gonzo. Når forbindelsen er oprettet, vil du blive præsenteret for en login: prompt, og du kan nu arbejde videre, som om du sad ved den anden maskine.

[daisy@linus daisy]$  telnet gonzo
Trying 192.168.100.5...
Connected to gonzo.codehell.lokal.
Escape character is '^]'.

Red Hat Linux release 6.0 (Hedwig)
Kernel 2.2.5 on an i586
login:

Når du ikke længere har brug for telnet-forbindelsen, afbryder du den med exit, og du er så tilbage på din egen maskine.

Hvis du angiver en port, der er bundet til en anden protokol, kan du også have glæde af telnet til fejlfinding og testbrug. I en snæver vending kan du bruge telnet til at hente post hos din internetudbyder!

For at beskytte din installation er standardinstallationen lavet, så root ikke kan logge ind remote med telnet og ftp. Det er gjort for, at man ikke helt så nemt kan få adgang til root's password. Hvis du har maskinen på et usikkert net - f.eks. Internettet bør du ikke ændre på dette. I stedet kan du bruge krypteret netkommunikation - f.eks. med Secure Shell. Har du et lukket net og mener, at du ikke gider at gå ind som almindelig bruger og derefter lave su - root, kan du godt få lov til at bruge telnet og ftp som root udefra. Filerne /etc/securetty og /etc/ftpusers kan rettes eller direkte slettes, så kan root logge ind udefra.


7.4.3. ftp

Til at hente og sende filer over TCP/IP bruges programmet ftp.

Hvis du skal bruge en fil fra sunsite.auc.dk, skriver du sådan her:

[daisy@linus daisy]$  ftp sunsite.auc.dk

Når forbindelsen er klar, spørger computeren om brugernavn og adgangskode. Du kan logge på som 'anonymous' og give din email-adresse som adgangskode. Bemærk, at email-adressen ikke er synlig, når den tastes ind.

Connected to sunsite.auc.dk.
220 sunsite.auc.dk FTP server (NcFTPd 2.2.2) ready.
Name (sunsite.auc.dk:daisy): anonymous
331 Guest login ok, send your complete e-mail address as password.
Password:
230-You are user #57 of 300 simultaneous users allowed.
230-
230-                 Welcome to SunSITE Denmark
230-                 ==========================
230-
230-SunSITE Denmark is located at Aalborg University, Institute of
230-Electronic Systems, Denmark, and is running on a SPARCserver 1000 with
230-4 CPUs, 416 MB Memory and approximately 110 GB storage.
230-

[lang velkomsthilsen klippet ud]

230-
230 Logged in anonymously.
Remote system type is UNIX.
Using binary mode to transfer files.

Så står du ved en ftp> prompt, hvor du kan bevæge dig rundt i bibliotekerne med cd og se indholdet med ls - ganske som med en almindelig kommandolinje.

ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
d--x--x--x   2 ftpuser  ftpusers      1024 Oct 31  1997 bin
dr-xr-xr-x   2 ftpuser  ftpusers      1024 Jul  1  1997 dev
drwxrwxr-x  60 ftpuser  ftpusers      8192 Oct 10 16:23 disk1
drwxrwxr-x   9 ftpuser  ftpusers      2048 Oct 10 15:45 disk2
drwxr-xr-x   3 ftpuser  ftpusers        96 Jun  2 17:02 disk3
drwxr-xr-x   4 ftpuser  ftpusers        96 Sep  1 09:15 disk4
dr-xr-xr-x   2 ftpuser  ftpusers      1024 Oct 31  1997 etc
drwxrwx-wx   2 ftpuser  ftpusers      1024 Oct 14 08:28 incoming
drwxr-xr-x  13 ftpuser  ftpusers      1024 Jun  3 12:58 local
-rw-r--r--   1 ftpuser  ftpusers   5748797 Oct 14 00:04 ls-lR.gz
drwxrwxr-x   2 ftpuser  ftpusers      2048 Oct 10 18:12 mirrors
drwxr-xr-x   2 ftpuser  ftpusers        96 Jul  1  1997 packages
dr-xr-xr-x  18 ftpuser  ftpusers      1024 Jul 16 12:03 pub
d--x--x--x   4 ftpuser  ftpusers        96 Jul  1  1997 usr
-rw-r--r--   1 ftpuser  ftpusers       931 Jul  3 08:33 welcome.msg
226 Listing completed.

Hvis du nu ved hjælp af cd navigerer ned i /pub/os/linux/Red Hat og kører ls, vil du se, at der ligger en fil ved navn README, som du gerne vil hente hjem på din egen maskine.

Nu er filen ikke særlig stor, så den er hentet ned på et øjeblik. Hvis du henter større ting, er det som regel rart at kunne se, om der er "flow" i overførslen. Med kommandoen hash kan du få skrevet et #-tegn ("hash mark"), hver gang en blok er blevet overført.

ftp> hash
Hash mark printing on (1024 bytes/hash mark).

Så henter du filen:

ftp> get README
local: README remote: README
200 PORT command successful.
150 Opening BINARY mode data connection for README (1155 bytes).
#
226 Transfer completed.
1155 bytes received in 0.227 secs (5 Kbytes/sec)

README er en ganske lille fil, så det vil kun blive til et enkelt #-tegn. Læg i øvrigt mærke til, at den er overført som binær fil (BINARY) i modsætning til ASCII. Hvis du bruger ASCII til overførslen, vil ftp konvertere linjeskift i tekstfiler til det korrekte format for den maskine, der modtager filen. Det er udmærket til tekstfiler, men kan smadre f.eks. grafik og komprimerede filer fuldstændigt. Til at skifte mellem binær og ascii bruges ftp-kommandoerne bin og ascii.

Nu er du færdig med at hente, hvad du skal bruge, og du logger ud igen med kommandoen quit. Så er du tilbage på kommandolinjen på din egen maskine.

Hvis du har brug for at tilbyde anonymt ftp på din Linuxmaskine, kan du i Red Hat Linux installere pakken "anonftp". Pakken foretager hele opsætningen for dig. Filer, der skal kunne hentes via anonym ftp, lægges så blot i /home/ftp/pub.

Alt det ovenstående handler om anonymt ftp. Hvis du er oprettet som bruger på den maskine, du skal i kontakt med, kan du logge på med dit rigtige brugernavn og adgangskode. På den måde får du så rettigheder til at hente og sende filer i forhold til, hvad du er blevet tildelt af administratoren.


7.4.4. Webbrowsere

Kan du undvære grafik, bør du kende lynx, som er en tekstbaseret webbrowser, som faktisk er ret anvendelig - pånær ved klikbare billeder. Grafik hentes kun (til disk), hvis dette vælges. Lynx er smart, hvis du har en langsom netforbindelse, eller hvis du vil lave applikationer, som automatisk skal kunne hente HTML eller billeder.

Et specielt godt program er Netscape Communicator, som er kendt af de fleste. Programmet har været kommercielt, men stærkt inspireret af Linux-verdenen er det nu blevet et Open Source udviklingsprojekt.

Netscape er programmet til at hente HTML-sider, billeder, lyd, film og tekst via Internettet. Netscape er forholdvist nem at gå til.


7.4.4.1. True Type fonte og Netscape

Normalt er true type fonte ikke anvendt under XWindow, men du kan få f.eks. din Netscape til at bruge de fonte. Du skal have installeret freetype-1.2-6.i386.rpm eller lignende version. Man skal blot "finde" programmet ttmkfdir, der kan generere en "fonts.scale" fil til sine TrueType fonte.

  • Lav et katalog til dine TrueType (ttf) filer, f.eks. /usr/share/fonts/default/TrueType.

  • Kopier ttf-filerne derned fra en Windows installation, eller hent de gratis ttf-filer fra Microsoft's web-site (de har en gratis samling af de mest almindelige TrueType fonte).

  •   [root@linus /root]#  cd /usr/share/fonts/default/TrueType
      [root@linus /root]#  ttmkfdir > fonts.scale
      [root@linus /root]#  mkfontdir
      
    Dette genererer en "fonts.dir" fil som X bruger til at finde ud af hvilke fonte, der ligger i hvilke filer.

  • Ret din X11 config så den indeholder TrueType font-biblioteket. FontPath entries i /etc/X11/fs/config (Kan evt. være i /etc/X11/XF86Config) kan se således ud:

        FontPath    "/usr/X11R6/lib/X11/fonts/misc/"
        FontPath    "/usr/share/fonts/default/TrueType/"
        FontPath    "/usr/X11R6/lib/X11/fonts/75dpi/"
        FontPath    "/usr/share/fonts/default/Type1/"
        FontPath    "/usr/X11R6/lib/X11/fonts/Type1/"
        FontPath    "/usr/X11R6/lib/X11/fonts/Speedo/"
        FontPath    "/usr/X11R6/lib/X11/fonts/100dpi/"
      

Start X, og se om ikke "xlsfonts" lister de forskellige TrueType fonte - prøv f.eks. "xlsfonts|grep microsoft"

I din Netscape "Preferences" opsætning kan du vælge

  Variable width font:  Arial (Monotype)              Size: 0
      Allow scaling: disabled
  Fixed width font: Courier New (Monotype)            Size: 0
      Allow scaling: disabled

Endvidere kan du klikke på "Use document-specified fonts, but disable Dynamic fonts" (den midterste af de tre muligheder).


7.4.5. wget

Fra tid til anden har du brug for at kunne hente en stribe hjemmesider, som du sidenhen vil kunne læse - f.eks. programvejledninger. Med Netscape er det besværligt, idet du skal trykke "gem" for hver enkel side. Meget smartere er programmet wget, der kan hente rekursivt fra en http eller ftp-site, såsom SSLUG's adresse

[daisy@linus daisy]$  wget -r http://www.sslug.dk


7.5. Email

Til at læse emails kan du næsten på alle UNIX-systemer finde programmet mail, som er meget simpelt. Skrives f.eks.

[daisy@linus daisy]$  mail BRUGERNAVN@MASKINE.DOMÆNE
help
og afsluttes med Ctrl-D. Der er så sendt en email til BRUGERNAVN@MASKINE.DOMÆNE med indholdet help.

Senere er ELM (elm) kommet med lidt flere muligheder, men ELM bliver ikke videreudviklet mere.

Til tekstbaseret læsning og skrivning af emails er der to gode valg. Mutt (mutt) er hurtig og har mange funktioner. Alternativt er Pine værd at se på (pine). Mailfoldere, en lille og god indbygget teksteditor (pico), søgemuligheder, mulighed for at se HTML-formatterede emails og et utal af konfigurationsmuligheder gør Pine til et hit. I de versioner af Pine som er kommet efter Red Hat 6.1 er der endda muligheder for at definere roller (bl.a. med forskellige email-signaturfiler) og farve opsætning. Det skal også nævnes, at Netscape har indbygget email håndtering, som foretrækkes af mange. Det er grafisk og ret enkelt at bruge.


7.5.1. Fetchmail

fetchmail bruges til at hente email fra en mailserver hos din internetudbyder. Programmet styres gennem filen .fetchmailrc i dit hjemmebibliotek. Den kan f.eks. se sådan her ud:

poll mail.fiktiv.dk
proto POP3
user daisy
pass McMombo
Når du kører fetchmail, vil den i dette eksempel forsøge at hente post fra serveren mail.fiktiv.dk med protokollen POP3 (som er den mest almindelige) og logge på serveren med brugernavnet daisy og adgangskoden McMombo. Hvis der er post til daisy, leverer fetchmail den videre til det lokale postsystem, der så lægger brevene i daisys postkasse.

De første gange, du kører fetchmail, vil du som regel gerne se, om tingene går, som de skal, når posten hentes. Hvis fetchmail køres med parameteren -v, skriver den, hvad der foregår undervejs.

Hvis du er til grafisk baserede konfigurationsværktøjer, kan du redigere din .fetchmailrc ved hjælp af programmet fetchmailconf.


7.5.2. Linux som postserver

Hvis du installerer rpm-pakken imap, kan din Linuxmaskine bruges som server for indgående email i et netværk. Ved installationen af pakken skulle hele opsætningen faktisk være på plads, så brugerne på de enkelte maskiner blot skal angive Linuxmaskinen som postserver i deres emailprogrammer - og så naturligvis være oprettet som brugere på Linux-maskinen!

Hvis du kun har en modemforbindelse til Internet, kan du lade Linuxserveren sende og hente post for alle brugere på et lokalt netværk. fetchmail (se ovenfor) er ret nemt at sætte op til at hente post til flere forskellige brugere på samme tid hos internetudbydere.

Udgående post håndteres af programmet sendmail. Hvis sendmail skal acceptere at videresende udgående email fra andre maskiner på et lokalnet, er det nødvendigt at angive dette i filen /etc/mail/ip_allow, ellers vil forsøg på at bruge Linux-maskinen som SMTP-server blive afvist med beskeden "We do not relay".

I /etc/mail/ip_allow skriver du adresser på enkelte maskiner eller netværk, som må bruge Linuxmaskinen som udgående postserver. Hvis for eksempel alle maskiner på netværket 192.168.100.0 skal accepteres, skal indholdet af /etc/mail/ip_allow være dette:

192.168.100

Hvis post kun skal accepteres fra nogle af maskinerne på netværket, skrives adresserne på de enkelte godkendte maskiner. Alternativt kan man tillade alle maskiner i eget domæne at være relay-maskine ved at tilføje FEATURE(`relay_entire_domain`) i /etc/sendmail.mc og derefter køre m4 /etc/sendmail.mc /etc/sendmail.cf bemærk at man skal have sendmail-cf pakken installeret.

At tilpasse sendmail's opsætning er i øvrigt et emne, der kan fremkalde nervøse trækninger og koldsved hos store voksne systemadministratorer. Red Hat Linux sætter sendmail ganske fornuftigt op fra starten, så med mindre du er meget videbegærlig eller masochistisk anlagt, vil vi foreslå dig at glemme alt om opsætning af sendmail, indtil det er absolut nødvendigt.


7.5.3. Sortering af emails med procmail

Hvis du får mange emails ind per dag, så vil du nok hurtigt lave forskellige foldere til forskellige emner. F.eks. er du med på flere af SSLUG mail-listerne, så kunne du lave en folder til hver af de lister. Et program, som du kan have meget glæde af er procmail, som kan sortere emails automatisk ned til de email-foldere, du har lavet. Henter du mail med fetchmail, så kan procmail lave sorteringen ud fra konfigurationsfilen ~/.procmailrc. I eksemplet har vi mail liggende i ~/mail kataloget, og herunder har vi forskellige filer som er mail-foldere.

PATH=$HOME/bin:/usr/bin:/bin:/usr/local/bin:.
MAILDIR=$HOME/mail      # Her _skal_ procmail kunne aflevere din mail.
DEFAULT=$MAILDIR/mbox   # Default folder til af aflevere mail i
LOGFILE=$MAILDIR/.from   # Her gemmer vi en log over hvilke mail der kom
LOCKFILE=$HOME/.lockmail  # Fil til at lave lås med.

# Første liste er mgp-listen for Magic Point programmet
# Vi checker efter To eller Cc feltet er til listen mgp-users@mew.org
# og gemmer i ~/mail/mgp
:0
*^(To:|Cc:).*mgp-users@mew.org
mgp 

# Dernæst har vi sslug-teknik som altid sætter Reply-To feltet
:0
*^Reply-To:.sslug-teknik@sslug.dk
sslug-teknik

# Alle mails fra brugere @imm.dtu.dk gemmer vi i IMM-folderen
:0
*^From:.*@imm.dtu.dk
IMM

# Vi kan også gemme en ekstra kopi af mails - dvs. mailen bliver 
# også processeret af de efterfølgende regler.
# Kommer der en mail fra statsministeren stm@stm.dk så gemmer vi lige
# en ekstra kopi i stats-folderen
:0c
*^From:.*stm@stm.dk
stats

# Endelig kan vi faktisk også udføre kommandoer via mail
# Her lader vi emails med subject EJECT udføre kommandoen eject
# og da det kun er en kopi vi udtager, så vil mailen også gå til 
# default dir.

:0c
*^Subject:.eject
|/usr/bin/eject      

# Alle andre mails ender i default mail folderen. 

Procmail er guld værd, og man procmailrc er værd at læse. Du kan også være glad for at lave et alias alias ms "mailstat ~/mail/.from", idet du så kan skrive ms efter at have kørt fetchmail, og du vil så få vist hvor mange mails og størrelsen af disse som er blevet fordelt til de forskellige foldere.


7.5.4. Vise nye emails

Programmet xbiff er en lille postkasse, der i et vindue indikerer, om der er kommet elektronisk post. Hvis der er post, inverteres farverne. Programmet opdaterer selv ca. en gang i minuttet, hvis det ikke konfigureres anderledes.

Lidt mere smart er xmailbox og coolmail, der begge viser en amerikansk postkasse, som viser, at der er post med lyd og et flag, der hejses.


7.5.5. Hente emails fra en Exchange server

Microsoft har været så venlige at lave en nyere type email-server, MS Exchange, som uheldigvis ikke er dokumenteret for godt. Heldigvis kan man bruge serveren fra f.eks. Netscapes mail-funktion. I Netscape skal du under [preferences]->[mail] sætte at du henter mail fra en "IMAP" server - ikke POP - og sætte serveren til at være exchange serveren. Det er ikke den fulde funktionalitet, du får, men det kan bruges.


7.5.6. Kryptering af post

I takt med Internettets udbredelse er der kommet flere og flere mindre venligsindede mennesker på Nettet. Elektronisk post er desværre meget let at aflytte, og ønsker du brevhemmelighed må du kryptere din post. Kryptering er en proces hvor dine data bliver skrevet i kode. Krypterede breve kan kun læses af den person, de er stilet til.

I Linux-verdenen finder der flere programmer til kryptering af post. Heldigvis findes der en standard for hvordan post bør krypteres, og det er derfor ligegyldigt hvilket krypteringsprogram, du benytter. Vi har valgt at introducere GNU Privacy Guard (GPG), idet GPG kommer under en ægte fri licens (GNU General Public License). Samtidig kan GPG arbejde sammen med det anerkendte Pretty Good Privacy (PGP).

GPG kan også bruges til at signere breve. En digital signatur er mere end en underskrift. Den digitale signatur fortæller, ud over hvem der er afsender, også hvornår brevet blev signeret. Endvidere bruges den digitale signatur til at tjekke om brevet er blevet ændret under dets rejse fra afsender til modtager. I skrivende stund kender forfatterne ikke det officielle Danmarks holdning til GPG.

Ideen bag GPG er, at du har en offentlig og en privat nøgle. Den offentlige nøgle gør det muligt for alle at tjekke din signatur, som du fremstiller vha. din private nøgle. Når du skal kryptere post, skal du først udveksle nøglepar med den person, som du ønsker at kommunikere med. Udvekslingen sker ofte i forbindelse med møder i Linux-brugerforninger.

Du kan downloade GPG fra GPG's ftp-server ftp://ftp.gnupg.org. Selve installationen er lige til at gå til - nedenfor ser du hvordan.

[daisy@linus daisy]$  wget ftp://ftp.gnupg.org/pub/gcrypt/gnupg/gnupg-1.0.1.tar.gz
[daisy@linus daisy]$   tar xzf gnupg-1.0.1.tar.gz
[daisy@linus daisy]$   cd gnupg-1.0.1
[daisy@linus gnupg-1.0.1]$   ./configure
[en masse klippet væk]
[daisy@linus gnupg-1.0.1]$   make
[en masse klippet væk]
[daisy@linus gnupg-1.0.1]$   su
Password: hemlig
[root@linus gnupg-1.0.1]$   make install
[root@linus gnupg-1.0.1]$   exit
[daisy@linus gnupg-1.0.1]$   cd ..
[daisy@linus daisy]$  rm -rf gnupg-1.0.1

Efter installationen er du klar til at bruge GPG. Det første, du skal gøre, er at generere et nøglepar.

[daisy@linus daisy]$  gpg
gpg: Warning: using insecure memory!
gpg: /home/kneth/.gnupg: directory created
gpg: /home/kneth/.gnupg/options: new options file created
gpg: you have to start GnuPG again, so it can read the new options file
[daisy@linus daisy]$  gpg --gen-key
gpg (GnuPG) 1.0.1; Copyright (C) 1999 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.

gpg: Warning: using insecure memory!
gpg: /home/kneth/.gnupg/secring.gpg: keyring created
gpg: /home/kneth/.gnupg/pubring.gpg: keyring created
Please select what kind of key you want:
   (1) DSA and ElGamal (default)
   (2) DSA (sign only)
   (4) ElGamal (sign and encrypt)
Your selection? 1
DSA keypair will have 1024 bits.
About to generate a new ELG-E keypair.
              minimum keysize is  768 bits
              default keysize is 1024 bits
    highest suggested keysize is 2048 bits
What keysize do you want? (1024) 1024
Requested keysize is 1024 bits       
Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct (y/n)? y
You need a User-ID to identify your key; the software constructs the user id
from Real Name, Comment and Email Address in this form:
    "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"

Real name: Daisy
Email address: daisy@linus.kongeh.dk
Comment: 
You selected this USER-ID:
    "Daisy <daisy@linus.kongeh.dk>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key.

Enter passphrase: DetteErHemlig!
Repeat passphrase: DetteErHemlig!

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
+++++++++++++++..+++++++++++++++.+++++++++++++++++++++++++++++++++++++++++
+++++++++..++++++++++.++++++++++++++++++++++++++++++++++++++++>++++++++++>
+++++....................................+++++
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
++++++++++.+++++++++++++++.++++++++++....++++++++++.+++++++++++++++.+++++++
+++.+++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++>+++++....
..........+++++^^^
public and secret key created and signed

Du bør med det samme fremstille en nøgle, som kan bruges til at tilbagekalde den, du netop har fremstillet. Det er vigtig, idet det kan ske at en eller anden finder ud af din private nøgle. En tilbagekaldelsesnøgle genereres vha. kommandoen gpg --gen-revoke daisy@linus.kongeh.dk. Tilbagekaldelsesnøglen bør opbevares et andet sted end dit hjemmekatalog, f.eks. kan du have den liggende på en diskette i dit pengeskab.

Når du nu har fået genereret nøgler, er du klar til at signere breve. Til at begynde med vil vi antage, at du skriver brevet først, signerer det og til sidst indlæser det signerede brev i dit postprogram. Nedenstående kommandosekvens viser dig hvordan.

[daisy@linus daisy]$ cat brev
Kære Pingo,

Du kan tror at vi har det sjovt ned GNU!

Daisy
[daisy@linus daisy]$ gpg --clearsign brev
[daisy@linus daisy]$ cat brev.asc

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Kære Pingo,

Du kan tror at vi har det sjovt ned GNU!

Daisy
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: For info see http://www.gnupg.org

iD8DBQE4elQW60LvO+QONowRAntQAKCIvUMIsyf1US2JoHC/VKgD73Ps1gCfRvRM
H9uEQNpfPp+AFNkP86snOVo=
=6+k8
-----END PGP SIGNATURE---

Den opmærksomme læser bemærker at det signerede brev ligger i filen brev.asc, dvs. der er blevet tilføjet .asc til det oprindelige navn.

For at få det største udbytte af GPG bør du den glimrende brugervejledning. Den finder du på http://www.gnupg.org/docs.html.


7.6. Dele filer mellem UNIX maskiner

I UNIX-verdenen og dermed også Linux har man i mange år kunnet dele filer mellem forskellige maskiner i et netværk. Den mest udbredte protokol til dette er NFS (Networked File System). Det er selvfølgelig et område, man skal være forsigtig med, hvis man har et alt for åbent netværk. Her skal vi kun give et simpelt eksempel på, hvordan NFS virker. Hvis vi nu siger, at maskinen alfa skal dele /home med maskinen beta, så skal alfa-maskinen have installeret RPM-pakken nfs-server. I /etc/exports skriver du først, hvilken del af filtræet, der skal deles, derefter hvilke klienter der skal bruge det (du kan anvende * for alle), og sidst om der deles med læse/skrive (rw) eller kun læse-rettigheder (ro). Brug man exports for flere detaljer.

# /etc/exports - NFS export of /home
/home beta.domænenavn.dk(rw)

Derefter skal du genstarte nfs-serveren ved at skrive /etc/rc.d/init.d/nfs restart, og som root på beta-maskinen kan du nu nemt få data fra alfa-maskinen.

[root@beta /root]#  mount -t nfs alfa:/home /home

Skal alfa være permanent filserver for beta (og andre), bør du på beta-maskinen se mere på programmet autofs, der kan tilkoble en disk over netværket, når der er behov for det. Efter et stykke tid uden aktivitet, vil disken afmonteres fra netværket. Dette er der et kort afsnit om i afsnit 5.1.4. Det giver et mere stabilt netværk.


7.7. Linux som server i Windows-netværk (SAMBA)

Selv om denne bog handler om Linux, skal man ikke glemme, at der findes andre styresystemer. Et af de mere udbredte er Windows - herunder wfw/95/98/NT, som alle har indbygget muligheden for at fungere i netværk. Hvis man påtænker at opbygge eller allerede har et heterogent netværk af Windows- og UNIX-computere, skal man kigge nærmere på SAMBA.

SAMBA er Open Source Software og kan dermed erhverves gratis. I Danmark kan SAMBA bedst downloades fra http://sunsite.auc.dk/samba/samba.html, ellers fra http://www.samba.org.

Med SAMBA installeret får man stort set samme muligheder, som hvis man investerer i en langt dyrere og meget mere hardwarekrævende NT licens eller en OS/2 Lan Manager. Det, SAMBA først og fremmest kan tilbyde, er at fungere som fil- og printerserver. Derudover kan SAMBA også fungere som domain controller for Windows 95/98 klienter. Fuld domain control for Windows NT domæner findes i version 2.0.

Med SAMBA installeret (og ikke mindst konfigureret) vil serveren kunne ses, hvis man klikker på "network neighbourhood" (på dansk: "andre computere") eller på samme netværk i Windows 95/98/NT.

Den letteste måde at installere/opgradere SAMBA på er ved at bruge en prækompileret pakke. Sådanne pakker kan hentes på http://sunsite.auc.dk/samba/ftp/Binary_Packages/, og de findes til flere forskellige Linux-distributioner, bl.a. Red Hat, Caldera, Debian, Slackware og SuSE. Hvis man holder af at kompilere sin kildetekst selv, kan den hentes her: ftp://sunsite.auc.dk/pub/unix/networking/samba. Vi vil dog meget anbefale at bruge en prækompileret pakke, og vi vil i eksemplet gå ud fra, at du har Red Hat installeret. Når du har hentet rpm-pakken, skriver du bare:

[root@linus /root]#  rpm -ivh samba-2.0.3-8.i386.rpm

Når du har fået installeret SAMBA serveren, skal du have den konfigureret. Dette gøres ved at rette i filen /etc/smb.conf. Denne fil kan virke meget skræmmende, da der er vel omkring 80 parametre, man kan sætte. Det skal du dog af to grunde ikke lade dig gå på af: For det første har de fleste parametre udmærkede default værdier, så dem behøver man slet ikke at bekymre sig om. For det andet bliver der installeret en udmærket default /etc/smb.conf, som virker uden de store ændringer. Denne default smb.conf er desuden meget velkommenteret, hvilket yderligere letter tilpasning. Her er et eksempel på en lille /etc/smb.conf fil, der ud over at sætte SAMBA op som fil- og printerserver også konfigurerer SAMBA som domain controller.

[global]
   workgroup = hjemme

   printing = bsd
   printcap name = /etc/printcap
   load printers = yes

   log file = /var/log/samba-log.%m

   short preserve case = yes
   preserve case = yes

   lock directory = /var/lock/samba
   locking = yes
   strict locking = yes

   security = user

   socket options = TCP_NODELAY

   domain master = yes
   domain logons = yes

[homes]
   comment = Home Directories
   read only = no
   create mode = 0750

[deskjet870cxi]
   comment = All Printers
   path = /var/spool/samba
   browseable = yes
   printable = yes
; Set public = yes to allow user 'guest account' to print
   public = no
   writable = no
   create mode = 0700

Det skal også nævnes at der er et grafisk konfigurationsværktøj swat til SAMBA, som virker sammen med Netscape.


7.7.1. Krypterede adgangskoder

SMB bruger en krypteringsteknik, der ligner standard UNIX kryptering. Det er dog kun tilsyneladende, at de to teknikker er ens, UNIX variationen sender nemlig typisk kodeordet i klar tekst over netværket, når man skal logge ind. SMB sender i modsætning hertil en kodet version af passwordet.

Hvorvidt man vælger at bruge krypterede passwords eller ej, er op til den enkelte at afgøre, da der er både fordele og ulemper.

Fordele ved krypterede passwords:

  • Sikkerhed. Password bliver ikke sendt over netværket i klar tekst.

  • Windows 95 med osr2, Windows 98 og NT vil som standard kun tale med en server, der anvender krypterede passwords.

Ulemper ved krypterede passwords:

  • Der skal vedligeholdes endnu en passwordfil.

  • Hvis du allerede bruger services, der sender password i klar tekst (F.eks telnet og ftp), gør det ikke den store forskel, om SMB også gør det.

  • Hvis du sidder på et sikkert net, f.eks et lille hjemmenetværk eller et lille firma med få og venlige brugere, er der ingen grund til at bruge krypterede passwords.

Windows 98 og Windows NT 4 (sp3 og senere) kræver som default brug af krypterede kodeord. Det betyder, at du har to valg:

  • Du konfigurerer SAMBA til at bruge krypterede passwords.

  • Du ændrer Windows 98/95/NT registry, så de ikke kræver krypterede passwords.


7.7.1.1. Konfigurering af SAMBA

Konfigurering gøres ved at føje følgende linje til [global] sektionen i /etc/smb.conf

encrypt passwords = yes

Dernæst skal du lave en ny password fil til brug for SAMBA alene. Der findes et shell script, der kan generere en SAMBA password fil ud fra den eksisterende UNIX password fil. Det gør du med følgende kommando:

[daisy@linus daisy]$  cat /etc/passwd | mksmbpasswd.sh >/etc/smbpasswd

I SuSE 6.3 er smbpasswd.sh placeret i kataloget /usr/sbin, og biblioteksplaceringen skal med i kommandoen. Desuden har filen i den distribution ikke rettigheder til at kunne eksekveres, hvilken du således skal tildeles, før kommandoen udføres.

Kommandoen opretter filen til de krypterede passwords, men den opretter ikke selve de krypterede passwords. Uanset om du vælger, at brugerne skal have samme SAMBA-passwords, som de er tildelt som brugere i dit Linux-system, skal du alligevel bagefter tildele dem krypterede SAMBA-passwords ved hjælp af kommandoen smbpasswd.

Selv hvis du med linjen null passwords = yes i /etc/smb.conf under global-sektion har tilladt, at SAMBA-password'et er blankt, skal du alligevel oprette et "blankt" password med smbpasswd-kommandoen.

Du bør bruge samba-1.9.18p10 eller senere, da kryptering er slået til som default - dette gælder i hvert fald for Red Hat. Bruger du andre distributioner, bør du checke, hvordan SAMBA er konfigureret. Hvis du gerne vil oversætte din egen software, skal du anvende linkerflaget -lcrypt til LIBSM. Til sidst kan vi også nævne værktøjet "swat" som gør at du kan konfigurere SAMBA via en vilkårlig web-browser.


7.7.1.2. Konfigurering af Windows 98/NT

Windows 95/98 maskiner konfigurerer du det ved at ændre i en indgang i registry-databasen, så den ser således ud:

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\VNETSUP]
"EnablePlainTextPassword"=dword:00000001
Tilsvarende for Windows NT:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters]
"EnablePlainTextPassword"=dword:00000001
En meget udførlig beskrivelse af brugen findes i filen ENCRYPTION.txt, der følger med SAMBA-distributionen.

Ud over man-siderne og dokumentationen, der installeres i /usr/doc, findes der en bog om SAMBA. Den er ikke blændende godt redigeret hele vejen igennem, men er ualmindelig rar at have stående som opslagsværk, hvis du administrerer en server med SAMBA. Sidst i bogen er der et rigtig godt kapitel om fejlfinding.

John D. Blair: SAMBA: Integrating UNIX and Windows, Specialized Systems Consultants, Inc., ISBN: 1-57831-006-7, 290 sider + CDROM


7.8. Webserver

Hvis du har brug for en web-server på dit Linux-netværk, er Apache et oplagt forslag: den er verdens mest udbredte web-server, den er gratis, den er nem at sætte op, og den følger med Red Hat Linux. Det vil føre for vidt at komme ind på alle detaljer om, hvordan den konfigureres, men prøv at lege lidt med Apache, når du har dit Linux-system op at køre. Det giver pludselig en hel masse nye ideer til, hvad du kan bruge din PC til, og samtidig har man frie hænder til at eksperimentere med CGI-scripts.

Hvis du har oplysninger, du vil dele med andre på et lokalnetværk, er Apache også alle tiders mulighed. Som et eksempel fra den virkelige verden kan det nævnes, at mange har Apache kørende på en Linux-maskine på deres arbejde, hvor kolleger ved hjælp af en browser kan se, hvordan nattens backup er forløbet, hvor meget diskplads der er tilbage på de forskellige maskiner på netværket, og slå op i en database med løbende opdaterede tekniske oplysninger, referater af møder og en masse andre ting.

Vi har her ikke mulighed for meget mere end blot at gøre opmærksom på eksistensen af Apache. Men hvis du valgte Apache, da du installerede Red Hat, eller hvis du senere har installeret pakken, kan du jo prøve at starte en webbrowser og se på http://localhost/

Hvis tingene fungerer, som de skal, får du lov at se på /home/httpd/index.html, som du så kan lege videre med. Apaches opførsel styres i det væsentligste ved hjælp af filen /etc/httpd/conf/httpd.conf.

Det vil føre for vidt at komme nærmere ind på, hvordan Apache administreres for slet ikke at tale om at arbejde med HTML og CGI. Hvis du er interesseret i emnet, er der nok af bøger at vælge imellem. En udmærket af slagsen er:

Ben Laurie & Peter Laurie: Apache: The Definitive Guide, O'Reilly & Associates, Inc., ISBN: 1-56592-250-6, 246 sider + CDROM

Et godt alternativ til Apache er Roxen, som er lavet i Sverige. Roxen har et veludviklet makrosprog, hvilket gør det let at lave multi-sprog understøttelse på web-siderne. Roxen udmærker sig også ved at kunne konfigureres direkte via Internettet. Roxen kan downloades fra http://www.roxen.com.


7.9. Internet sikkerhed

Da man designede Internettet for mange år siden, fandtes crackere ikke, og man havde ikke fantasi til at forestille sig nutidens avancerede Internetkriminalitet. Fakta er, at det meste Internet kommunikation sendes i klar tekst - inklusiv login-navne og tilhørende passwords. Derfor skal man passe på, hvis man skal lave login på Linux-maskinen fra et fjernt sted i verden via Internettet. Der er sikre systemer med stor fleksibilitet, som ikke transmitterer passwords i klar tekst. Den bedste implementering er Secure Shell (ssh). Mere information kane findes fra http://www.cs.hut.fi/ssh

Emnet er meget vanskeligt, idet de kriminelle ofte ved uhyre meget om netværk og sikkerhedsfejl. Der er dog et par generelle kommentarer, som bør følges nøje, hvis din maskine skal stå på et usikkert netværk.

  • Følg med i, hvilke programmer der kommer med opdateringer. Se f.eks. http://www.cert.dk

  • Luk af for programmer, du ikke bruger. Bliver det kendt, at der er en sikkerhedsbrist i bare et af de kørende programmer, kan du rammes.

  • Installér overvågningssystemer (såsom Tripwire og LogWatch).

  • Installér Secure Shell (ssh og venner), og lad dem erstatte telnet og ftp.

  • Installér og konfigurér firewall software (ipchains). Det er en del af Linux-kernen og dermed gratis. Der er gode HOWTO-dokumenter om dette.

  • Lær mere om netværk og Linux, og brug dit system med omtanke!

Listen ser dramatisk ud og er ikke så relevant for dem, som lige logger på Internettet via modem for at checke email og surfe lidt. For dem, som vil lave missionskritiske forretningssystemer på Internettet, er det nok så relevant. Du kan læse meget mere i en artikel-serie du finder på http://www.sslug.dk/artikler/LinuxSikkerhed.


7.10. Bøger om netværk

Netværk er et stort og kompliceret emne, som det ikke er muligt at dække på andet end den mest nødtørftige måde på den plads, der er brugt her. Hvis du har lyst til at lære mere, kan nedenstående bøger anbefales.

  • Olaf Kirch: Linux Network Administrator's Guide, O'Reilly & Associates, Inc., ISBN 1-56592-087-2, 335 sider

    Dette er en indføring og praktisk vejledning i TCP/IP, UUCP, DNS, PPP, mail, news osv., altså stort set alt, hvad der har at gøre med at køre netværk under Linux. Det forudsættes, at man er i stand til at redigere en tekstfil og generelt "komme omkring" i systemet.

    Da bogen oprindeligt er udsprunget af The Linux Documentation Project, kan den hentes frit på Internet, f.eks. på http://www.sunsite.auc.dk/ldp/LDP/nag/nag.html. Ganske ofte er filen på Linux-CDROM'erne.

  • Craig Hunt: TCP/IP Network Administration, O'Reilly & Associates, Inc., ISBN: 0-937175-82-X, 472 sider.

    Denne bog handler om TCP/IP under UNIX generelt i modsætning til Linux Network Administrator's Guide og går nok også lidt mere i dybden med tingene.

  • Stig Jensen og Arne Gjelstrup: Datakommunikation, Teknisk Forlag, ISBN 87-571-1956-2, 872 sider.

    Hvis du vil have en endnu dybere og mere teknisk betonet viden om netværk generelt, er denne bog et glimrende valg og fungerer godt både som lærebog og opslagsværk.

    Har du problemer med dit netkort, eller er du i tvivl om, hvilken type du skal køre med under Linux, så kan vi anbefale, at du tager en tur til http://cesdis1.gsfc.nasa.gov/linux/drivers


Kapitel 8. Programmering under Linux

For den, der har lyst til at udvikle programmer, er Linux det rene paradis. Der er masser af programmeringssprog og værktøjer at vælge mellem. Langt det meste er af rigtig høj kvalitet og selvfølgelig frit tilgængeligt. Der er i øvrigt mange andre muligheder end dem, vi kommer ind på her, så hvis dit bestemte yndlingssprog ikke er nævnt her, betyder det langtfra, at det ikke findes til Linux. Selv GUI baserede udviklingsmiljøer er der, eller hurtigt på vej. Seneste nyt er, at Inprise (tidligere Borland) vil frigive Delphi til Linux. Godt nok findes Microsoft Visual C++ ikke til Linux (og det kommer nok heller ikke), men læs videre. Du vil se at KDevelop ligner meget.


8.1. Shell-programmering

Hvis du ofte har brug for at køre nogle bestemte programmer for at håndtere en tilbagevendende opgave, bør du sætte dig ind i at skrive shell-scripts. Kender du til batch-filer under DOS, har du en ide om, hvad det går ud på. Et shell-script er i bund og grund blot en tekstfil, der indeholder en række kommandoer og måske nogle ekstra linjer til at vælge hvilke dele af scriptet, der skal udføres.

Det første eksempel på et shell-script bør være "Hello World", som skriver en tekst på skærmen.

#!/bin/sh
echo "Hello World"

Dette gemmes under navnet HelloWorld eller lignende, og derefter gøres filen eksekverbar med chmod +x HelloWorld. Du kan nu teste eksemplet ved at skrive HelloWorld på en kommando linje (f.eks. i en xterm).

Et eksempel kunne være, at du fandt ud af, at du ofte havde brug for en nem metode til at tage en hurtig kopi af tekstfilerne i arbejdskataloget.

#!/bin/sh
echo "Starter backup..."
mkdir backup
cp *.txt backup
echo "Backup slut"

Gem denne tekst i en fil med navnet bu (for "back up"), og gør den eksekverbar med kommandoen chmod +x bu. Nu kan du køre bu fra kommandolinjen:

$ ./bu
Starter backup...
Backup slut

Første linje i scriptet er egentlig en kommentar, men giver samtidig systemet besked om, at dette er et shell-script og ikke f.eks. et perl-script.

Hvis du er lidt forsigtig anlagt og gerne vil undgå at komme til at overskrive en eksisterende backup, kan du udvide scriptet en smule:

#!/bin/sh
echo "Starter backup..."
mkdir backup
if [ $? -eq 0 ]
then
    echo "kataloget ./backup oprettet..."
else
    echo "kataloget ./backup kunne IKKE oprettes"
    echo "bu afsluttes"
    exit 1
fi
cp -v *.txt backup
echo "bu slut"

I linje 4 i scriptet støder vi på en såkaldt shell-variabel, nemlig $?, der betyder "resultatet af sidst udførte kommando". Her bruges den til at vise, om mkdir lykkedes eller ej. I dette eksempel går vi enfoldigt ud fra, at hvis kommandoen mkdir backup ikke lykkedes, er det, fordi kataloget backup eksisterer i forvejen.

Hvis vi så finder ud af, at vi af og til har brug for at overskrive en backup, kan vi ændre vores script en smule, så vi ved at tilføje -O på kommandolinjen kan få den til at være ligeglad med, om kataloget findes i forvejen:

#!/bin/sh
echo "Starter backup..."
mkdir backup
if [ $? -eq 0 ]
then
    echo "kataloget ./backup oprettet..."
else
    echo "kataloget ./backup kunne IKKE oprettes"
    OVERWRITE="-O"
    if [ $# -eq 1 ]
    then
    if [ $1 != $OVERWRITE ]
	  then
        echo "bu afsluttes"
	  exit 1
        else
            echo "der overskrives..."
        fi
    else
        echo "bu afsluttes"
        exit 1
    fi
fi
cp -v *.txt backup
echo "bu slut"

Du kan faktisk nå temmelig langt ved hjælp af shell-scripts, men det kan hurtigt blive lidt kryptisk at læse. Kunsten er nok i virkeligheden at stoppe, mens legen er god, og vælge et "rigtigt" programmeringssprog, når opgaven kræver det. Alligevel bør du lære at skrive shell-scripts, dels for at lave dine egne små praktiske løsninger på dagligdagens problemer, dels for at kunne forstå andres scripts.


8.2. C og C++ programmering

Programmeringssproget C og UNIX har traditionelt været tæt knyttet til hinanden, og dette gælder i høj grad også for Linux. Kernen og langt de fleste applikationer er skrevet i C.

GNU C/C++ er en af de allerbedste oversættere på markedet i dag. I modsætning til Windows-verdenen er oversætteren ikke indkapslet i en grafisk brugergrænseflade. Det giver større frihed for den enkelte til at sammensætte et personligt udviklingsmiljø - enten grafisk eller tekstbaseret. Med lidt tilvænning er det også hurtigt at anvende, specielt hvis der skal oversættes meget kode per gang. Der er også den store fordel, at det er standard inden for UNIX-verdenen, hvorfor kode og kompileringsfiler (makefiles) uden problemer kan flyttes, oversættes og eksekveres på andre typer af UNIX-systemer.


8.2.1. Det første C program: HelloWorld

Per tradition er HelloWorld-programmet det første C-program, man skal få til at virke. Programmet skriver en kort tekst (normalt "Hello World", men i dette tilfælde en lidt mere relevant besked) ud på skærmen og afslutter. Indtast følgende (brug emacs, pico eller vi), og gem det som hello.c.

#include <stdio.h>

int main(void)
{
  printf("Linux er sjovt\n");
  return 0;
}

I kataloget, hvor filen er gemt, kan programmet nu oversættes ved at skrive

[daisy@linus daisy]$  gcc -o hello hello.c

C-oversætteren hedder gcc. Den skal her lave en eksekverbar fil med navnet hello, og den skal oversætte og linke ud fra kildeteksten i hello.c.

Det oversatte C-program hello køres ved at skrive navnet i en xterm. For dem, som har C-erfaring, kommer der et par tips nu. En lille sjov ordre er at skrive

[daisy@linus daisy]$  nm hello
Så kan du se, at programmet bl.a. kalder funktionen printf og indeholder en funktion main. Programmet blevet linket med dynamiske links til externe kataloger - dette kan ses ved at skrive ldd hello
[daisy@linus daisy]$  ldd hello
        libc.so.6 => /lib/libc.so.6 (0x40003000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000)

At den eksterne funktion printf rent faktisk kommer fra libc, kan ses ved at skrive


[daisy@linus daisy]$  nm /lib/libc.so.6 | grep "printf"

Det var lidt om dynamisk link. Ideen er, at programmet kun indeholder de nødvendige dele. Under udførelsen af programmet bruges nogle af de nævnte eksterne biblioteker. Koden kan også oversættes med alle eksterne funktioner - linket statisk ind.

[daisy@linus daisy]$  gcc -o hello hello.c -static

Bemærk ændringen i filstørrelsen (fra ca. 4 kbytes til over 400 kbytes). Nu vil ldd hello vise, at der ikke er eksterne biblioteker nødvendige for at køre programmet. Nu tilbage til lidt mere simple eksempler.


8.2.2. Det første C++ program

I følgende enkle eksempel ønskes et program, der indlæser to tal, finder det største af de to og skriver dette ud. Omkring C/C++ programmering kan henvises til en af de mange standardbøger om C og C++. Koden er ikke det primære, men kunne se således ud.

#include <iostream.h>

void read2(int&,int&);
void writeMax(int);

int main()
{
  int val1,val2,maxVal;

  read2(val1,val2);
  maxVal = (val1>val2)?val1:val2;
  writeMax(maxVal);

  return 0;
}

void read2(int& v1,int& v2)
{
  cout << "Indtast to heltal ";
  cin >> v1 >> v2;
}

void writeMax(int val)
{
  cout << val
       << " er det største tal\n";
}
Eksemplet gemmes som eks1.c++.

Oversættelse kan ske med en såkaldt makefile, men her sker det ved direkte at kalde oversætteren.

[daisy@linus daisy]$  g++ eks1.c++ -o eks1
Du kan eventuelt lave en fil, hvor der står ordren til at oversætte en fil ud fra variabel. En hurtig måde er direkte at bruge echo funktionen til dette.
[daisy@linus daisy]$  echo "g++ $1.c++ -g -lm -o $1" > mycompile
Koden $1 betyder første argument, hvorfor filen kaldes med første argument lig med C-kodens filnavn. I filen inkluderes debug-information med flaget -g, og matematikbiblioteket linkes med -lm. I dette tilfælde er dette ikke nødvendigt, men normalt vil det være det. Filen er gemt under navnet mycompile, og der skrives
[daisy@linus daisy]$  chmod a+x mycompile
for, at filen kan eksekveres. Nu kan du skrive
[daisy@linus daisy]$  mycompile FILNAVN

Det antages, at kildefilen hedder FILNAVN.c++, og den eksekverbare fil kommer til at hedde FILNAVN.


8.2.3. Oversættelse af flere C-filer med makefiles

Næste eksempel er to filer, hvor den ene kalder funktioner i den anden. I eksemplet, der er C-kode, er det igen det største af to tal, der skal findes og skrives ud.

Følgende fil kan gemmes som ceks2.c.

#include <stdio.h>
#include <math.h>

float v1,v2,retval;

float max(float,float);

int main(void)
{
  v1=sin(2.34);
  v2=tan(4.4);

  retval=max(v1,v2);

  printf("Af %f og %f er %f stoerst\n",v1,v2,retval);
  return 0;
}

Følgende fil kan gemmes som cfkt.c.

float max(float f1,float f2)
{
  float f3;

  if (f1>f2)
    f3=f1;
  else
    f3=f2;

  return f3;
}

Koden kan oversættes ved hjælp af GNU C-oversætteren gcc. Brug man gcc for at få hjælp de mange muligheder.

[daisy@linus daisy]$  gcc -o ceks2 ceks2.c cfkt.c -lm

En langt mere elegant metode er at lave en makefile. Herefter skrives blot make, og C-oversætteren vil kun oversætte de filer, der er nye i forhold til objektfilerne. Makefiles kan også anvendes til at styre oversættelse generelt såsom af LaTeX-kode. En makefile (med navnet Makefile) kunne være følgende.

# Makefile til GNU C-oversætteren - dette er en kommentar
# I dette eksempel oversættes to filer.
# ceks2.c og cfkt.c oversættes til exefilen ceks2

# Navn paa oversaetter = gcc
CC = gcc

# Navn paa eksekverbar fil
OUTPUT   = ceks2

# Kilde fil navne
sources  = ceks2.c \
           cfkt.c

# Automatisk navngivning af objektfiler, hvor  .c bliver til .o
OBJS        = $(sources:.c=.o)

# Compilerflag: Maximal optimering -O2 og debug information -g
CFLAGS      = -O2 -g

#Linkerflag: Inkluderer math-bibliotek med -lm !!!!
LDFLAGS      = -lm

# Foelgende linje checker om en .o fil er nyere end den eksekverbare fil. Hvis
# dette er tilfaeldet, linkes disse. Dvs. kun nye elementer oversættes.
$(OUTPUT): $(OBJS)
	$(CC) $(CFLAGS) -o $(OUTPUT) $(OBJS) $(LDFLAGS)

Bemærk, at der skal stå en tabulator foran de linjer, der skal eksekveres, såsom den sidste. Der må ikke anvendes mellemrum.

Når makefilen er skrevet, kan programmet oversættes ved at skrive

[daisy@linus daisy]$  make
i det bibliotek, hvor makefilen findes. En makefile kan være meget lang og indeholde mange regler.


8.2.4. GNU debuggeren og DDD

Til GNU C/C++ findes en tekst-baseret debugger (gdb), som virker fint sammen med oversætteren. Hvis alle filer er oversat med flaget -g, kan man kalde debuggeren ved at skrive gdb FILNAVN, hvor FILNAVN er navnet på den eksekverbare fil.

Man kan vise (display) enkelte variable eller strukturer. Du kan sætte breakpoints og meget andet, men det hele er tekstbaseret. Programmet gdb kan med fordel kaldes fra editoren Emacs ved at skrive Meta-x gdb (Meta=Alt). Så fås en delt skærm med debugger og kode, der kører sammen. Du kan i en xterm skrive man gdb for at få muligheder for debuggeren. Ved fejl kan det anbefales at oversætte kode uden optimering, dvs. fjern -O2 ved oversættelse, idet man således ikke får fjernet overflødige variable og lignende, som så ikke kan vises med debuggeren.

Ønsker du at anvende en grafisk debugger, kan du med fordel installere ddd, der anvender gdb, men giver en fuldt professionel grafisk brugerflade til debugging af C, C++, Java og Fortran kode. Specielt lækkert er, at man nemt kan følge indholdet af strukturer, tabeller og simple variable. DDD kan downloades fra http://www.cs.tu-bs.de/softech/ddd


8.2.5. KDevelop

Der er ved at komme integrerede udviklingsmiljøer til Linux, som det kendes fra f.eks. Visual C++ til Windows. Man kan købe Code Warrior til Linux og projekter Code Crusader er også godt på vej (men Code Crusader er ikke så godt designet).

Et spændende helt nyt program er KDevelop til KDE.

Ambitionsniveauet er meget højt, og til trods for at det er den første beta version, som er blevet testet her, så ser det positivt ud.

Som det ses på Figur 8-3, så er der der ligheder med Visual C++ fra Microsoft. Man kan nemt overskue alle filer, klasser, strukturer og variable i projektet. Der er god support for at oversætte, debugge (ser det ud til), og revisionskontrol er direkte integreret. Dette er baseret på CVS. Der er mulighed for integreret dokumentationsmuligheder baseret på SGML.

En ting, som er et meget stort plus ved KDevelop i forhold til Visual C++ er at alle projekt filer er tekst-baserede, dvs. man kan se alt med en almindelig tekst-editor og rette hvis man har noget specielt, der skal ind. KDevelop laver i øvrigt selv standard makefiles, så man kan oversætte programmerne udenfor GUI miljøet. Med andre ord, så er KDevelop en naturlig overbygning på GNU værktøjerne, uden at disse erstattes. KDevelop følger ikke med f.eks. Red Hat endnu, men kan downloades fra projektets hjemmeside http://www.kdevelop.org.


8.2.6. Bøger om C-programmering under Linux

Der findes mange bøger om C-programmering på UNIX-systemer. Vi nøjes her med at nævne et par stykker, som vi synes er gode:

  • Michael K. Johnson & Erik W. Troan: Linux Application Development, Addison Wesley, ISBN 0-201-30821-5, 538 sider.

    En god og klar indføring i C-programmering under Linux. Lidt dyr, men lækkert udført og med den fordel, at den er skrevet specifikt til Linux.

  • David A. Curry: UNIX Systems Programming, O'Reilly & Associates, Inc., ISBN 1-56592-163-1, 596 sider.

    Denne glimrende bog handler i høj grad om de samme emner, som behandles i den førnævnte Linux Application Development, men kommer lidt mere ud i hjørnerne af stoffet og beskriver forskellene mellem forskellige kommercielle UNIX-varianter. Linux nævnes ikke, men så godt som alle forklaringer og eksempler kan bruges uændret under Linux

  • W. Richard Stevens: Advanced Programming in the UNIX Environment, Addison Wesley, ISBN 0-201-56317-7, 742 sider.

    Dette er bestemt ikke en begynderbog (hvad titlen heller ikke på nogen måde kan siges at antyde), men hvis du har lyst til at lære en masse om, hvordan et UNIX-system fungerer og programmeres, kan vi kun anbefale denne bog på det varmeste. Den kommer gennem alle relevante emner på en meget grundig måde og binder til sidst i bogen det hele sammen i et par større eksempler, der gennemgås ganske grundigt.

Fælles for de tre nævnte bøger er, at de henvender sig til læsere, der allerede er godt inde i C som programmeringssprog. Hvis du har brug for at lære C fra grunden, findes der utroligt mange bøger at vælge mellem. Prøv som udgangspunkt at tage et kig på disse to (den første er en klassiker):

  • Brian W. Kernighan & Dennis M. Ritchie: The C Programming Language (2nd Edition), Prentice Hall, ISBN 0-131-10362-8, 272 sider.

  • Steve Oualline: Practical C Programming, O'Reilly & Associates, Inc., ISBN 1-565-92306-5, 454 sider.


8.3. Perl programmering

Perl er et spændende og meget anvendeligt sprog. C og C++ er i mange tekniske sammenhænge en de facto standard, men disse programmeringssprog er ikke ret velegnede til tekst-manipulationer. Der skal allokeres den rette mængde hukommelse, og det er ofte svært at kunne beregne, hvor meget man skal bruge. Perl er som skabt til at behandle tekst. Perl er et fortolket sprog, som BASIC er det.

Check, om du har installeret Perl, ved at skrive

[daisy@linus daisy]$ rpm -q `which perl`
Ordren which perl bliver her udført og checker, om programmet perl kan findes i den nuværende søgesti (Se dette med echo $PATH). Ordren rpm -q FILNAVN viser dig hvilken RPM pakke filen findes i. Kommer der en tom streng frem, er Perl ikke installeret.

Du kan også checke, om Perl er installeret ved at skrive

[daisy@linus daisy]$ perl -v

Indtast følgende program, og gem det som leg_med_perl

#!/usr/bin/perl

@a="hej";
@b=(@a,"igen");

print "Arrayet \@b har værdierne : @b\n";
printf "Der er %i elementer i \@b\n",$#b+1;

foreach $indeks (@b)
{
  print "Ud kommer $indeks fra arrayet\n";
}

$c = "hvad med at ";
$d = "sætte strenge sammen";
$e = $c.$d;

print "Variablen \$e har værdien : $e\n";

Programmet skal gøres eksekverbart ved at skrive

[daisy@linus daisy]$  chmod +x leg_med_perl
Udføres programmet ved at skrive ./leg_med_perl, får man følgende
[daisy@linus daisy]$  ./leg_med_perl
Arrayet @b har værdierne : hej igen
Der er 2 elementer i @b
Ud kommer hej fra arrayet
Ud kommer igen fra arrayet
Variablen $e har værdien : hvad med at sætte strenge sammen

Der er selvfølgelig et par små tricks i dette lille program, men det væsentlige at lægge mærke til er, at der ikke reserveres hukommelse til nye variable, og det er legende let at arbejde videre med.

Hvad med følgende lille søde program, som tager et filnavn som input og erstatter samtlige forekomster af Microsoft med navnet Linux? Det er et program, som slet ikke kan laves så elegant og kort som i Perl.

#!/usr/bin/perl -i.bak -p
s/Microsoft/Linux/g;

Vi kan også nævne, at du kan gøre dine Perl programmer uafhængig af Perl-placeringen (om det er /usr/bin/perl eller /usr/local/bin/perl) ved at starte følgende tre liner før selve programmet. Der erstatter så den første linje.

: # Use perl
eval 'exec perl -S $0 "$@"'
    if $running_under_some_shell;

print "Det virker\n";

Hvis du nu har fået blod på tanden og vil i gang med at lære Perl, er disse to bøger standardværkerne, den ene til at komme i gang på, den anden for viderekomne:

  • Randal L. Schwartz & Tom Christiansen: Learning Perl (2nd Edition), O'Reilly & Associates, Inc., ISBN 1-56592-284-0, 271 sider.

  • Larry Wall, Tom Christiansen & Randal L. Schwartz: Programming Perl (2nd Edition), O'Reilly & Associates, Inc., ISBN 1-56592-149-6, 645 sider.


8.4. Tcl/Tk

Hvis du gerne vil programmere grafik under Linux, er Tcl/Tk et godt sprog. Det er et forholdsvist nemt sprog at lære. Tcl er et makro-sprog, som har fået en søster Tk, der er en grafisk del med samme nemme syntaks. Det er et meget velegnet sprog til hurtigt at få en grafisk brugergrænseflade til et (tekst-baseret) program.

Prøv at indtaste følgende program (kald det editor.tcl) efter at have installeret Tcl og Tk (rpm -i tcl-8.0.4-29.rpm; rpm -i tk-8.0.4-29.i386.rpm - eller måske lidt anderledes, alt efter hvilke versioner du netop har fået). Den øverste linje svarer til, at du kører Red Hat, SuSE har installeret wish i /usr/X11R6/bin.

#!/usr/bin/wish -f

label .l -text "Filename:"
label .l2 -text "Editor:"
set fname testfil
set editor emacs
entry .e -relief sunken -width 30 -textvariable fname
entry .e2 -relief sunken -width 30 -textvariable editor
pack .l -side left
pack .e -side left -padx 1m -pady 1m

bind .e <Return> {
  exec xterm -e $editor $fname
}

pack .l2 -side left
pack .e2 -side left -padx 1m -pady 1m
bind .e2 <Return> {
  exec emacs  $fname
}
Gør programmet eksekverbart ved at skrive
[daisy@linus daisy]$  chmod +x editor.tcl
og kør det ved at skrive ./editor.tcl. Ret i tekstfelterne, og se, hvad der sker, når du trykker return i hvert af tekstfelterne. Programmet er vist på Figur 8-5.

Et andet Tcl/Tk eksempel, der laver et simpelt stopur med start og stop funktion. Programmet bliver ikke forklaret, men skal illustrere, hvor lidt kode der skal til at lave et program, som med andre programmeringssprog ville være meget længere. Programmet er vist på Figur 8-6.

#!/usr/bin/wish -f

label .counter -text 0.00 -relief raised -width 20
button .start -text Start -command {
    if $stopped {
	set stopped 0
	tick
    }
}
button .stop -text Stop -command {set stopped 1}
pack .counter -side bottom -fill both
pack .start -side left -fill both -expand yes
pack .stop -side right -fill both -expand yes

set seconds 0
set hundredths 0
set stopped 1

proc tick {} {
    global seconds hundredths stopped
    if $stopped return
    after 50 tick
    set hundredths [expr $hundredths+5]
    if {$hundredths >= 100} {
	set hundredths 0
	set seconds [expr $seconds+1]
    }
    .counter config -text [format "%d.%02d" $seconds $hundredths]
}

bind . <Control-c> {destroy .}
bind . <Control-q> {destroy .}
focus .

En variant af stopur programmet er et nyttigt program, som viser status på batteriet i en laptop. I dette eksempel har vi erstattet den første linje, svarende til SuSE 6.1 placering af wish, og der kræves, at kommandoen apm er installeret, dvs. apmd-2.4-57.rpm eller lignende.

#!/usr/X11R6/bin/wish -f

 label .counter -text 0 -relief raised -width 50
 button .start -text Start -command {
         tick
 }
 button .stop -text Stop -command { destroy .}
 pack .counter -side left -fill both
 pack .stop -side right -fill both 

 proc tick {} {
     after 1000 tick
     set tot [eval exec apm]
     .counter config -text [format "%s" $tot]
 }

 tick

bind . <Control-c> {destroy .}
bind . <Control-q> {destroy .}
 focus .

Hvis du har lyst til at stifte nærmere bekendtskab med Tcl/Tk, er dette en god og meget omfattende bog:

Brent B. Welch: Practical Programming in Tcl and Tk, Prentice Hall, ISBN 0-13-616830-2, 630 sider + CDROM.


8.5. Python

Python er et fortolket objektorienteret sprog, der byder på flere spændende koncepter. En genial ide, som man enten hader eller elsker, er, at koden struktureres ved hjælp af indrykningen frem for tuborg-klammer som i C (og C++ og Perl).

I C ville man skrive sådan her:


int i = 0;

while (i != 256) {
    printf("%d\n", i);
    i++;
}

I Python ser det sådan ud:


i = 0

while (i != 256):
    print i
    i = i + 1

På den måde umuliggøres denne fejl, som ofte ses i C-kode:


/* forkert, uendelig løkke! */

int i = 0;

while (i != 256)
    printf("%d\n", i);
    i++;

Hvorfor bliver i ikke talt op? Linjen "i++" er slet ikke med i løkken, men indrykningen snyder! Hvis den virkelige struktur skulle fremgå af indrykningen, skulle der stå:


int i = 0;

while (i != 256)
    printf("%d\n", i);
i++;

I Python er indrykningen lig med strukturen, man kunne faktisk fristes til at kalde det "What You See Is What You Get"-kode. Her er et eksempel klippet ud af et større program:


# check the command line syntax
for arg in sys.argv[1:]
    if arg[0] == '-': # only check switches
        if arg[1:] not in switch_funcs.keys():
            print "Invalid parameter: ", arg
            sys.exit(1)

Python er i lighed med Perl et fortolket sprog, og hastigheden er bestemt ikke et af Pythons fortrin. Til gengæld er det forholdsvis nemt at lave udvidelser i C eller C++, der så kan bruges til de dele af et program, der udgør en hastighedsmæssig flaskehals. Python-fortolkeren kan også indlejres i andre programmer, hvorved du kan stille et fuldt programmeringssprog til rådighed for brugerne af programmet.

Til at konstruere grafiske brugergrænseflader bruges i Python normalt et modul kaldet Tkinter, der er en grænseflade til det ovenfor nævnte Tk. Med mindre du bruger specielle Linux-faciliteter, kan Python-programmer med eller uden Tkinter også køres under andre styresystemer - f.eks. Windows NT.

Læs mere om Python på http://www.python.org/


8.6. Java

Java er et objektorienteret programmeringssprog, der har fået en masse vind i sejlene i forbindelse med Internettets vækst. Det skyldes, at Java ud over at kunne bruges til at udvikle almindelige applikationer også giver mulighed for at lave såkaldte applets, der er små programmer, der kan køres i en web-browser.

Javas syntaks minder på mange måder om C++, men sproget er mere renblodet objektorienteret og anvender "garbage collection" - altså automatisk hukommelsesstyring. For at gøre Java uafhængig af platformen oversættes det normalt ikke til færdig maskinkode, men til såkaldt "bytecode", der kan køres på forskellige typer af computere ved hjælp af et fortolkermodul.

Et meget lille Java-program kunne f.eks. se sådan ud:


class HelloJava {
   public static void main(String[] args) {
      System.out.println("Dette er Java!");
   }
}

Sproget blev i sin tid udviklet af Sun Microsystems og stillet gratis til rådighed for verden i form af Java Development Kit (JDK), der også findes til Linux. Seneste version (i skrivende stund 1.2) kan hentes fra Internettet, f.eks. fra ftp://ftp.sunsite.auc.dk/pub/languages/java/java-linux/

Selv om det er gratis, er JDK ikke et rigtigt åbent og frit system. Derfor er der dukket projekter op, der har som mål at udvikle Java-værktøjer under GPL. Med Red Hat følger dels guavac, der er en selvstændigt udviklet Java-oversætter, dels kaffe, der er en virtuel Java-maskine - altså et program, der kan afvikle Java-bytecode. Hvis du er interesseret i Java, er både guavac og kaffe bestemt værd at tage et kig på og følger som sagt med Red Hat Linux.


Kapitel 9. Hvordan kommer jeg videre?

Vi er ved at være ved vejs ende. Vi håber, du er blevet inspireret til at komme i gang med Linux og har fået et overblik over, hvad du har af muligheder. Hvad du konkret vil bruge dit Linux-system til, kommer meget an på, i hvilken retning dine interesser går. Tag fat på de ting, du synes kunne være sjove eller spændende at dykke ned i, og bliv klogere på dem. Husk frem for alt, at med Linux har princippet helt fra starten været, at det er lysten, der driver værket!

Linux-verdenen har tidligt indset, at dokumentation er essentielt, hvis man vil have andre til at bruge Linux. Derfor er meget af den centrale software beskrevet i såkaldte HOWTO vejledninger (og mere kortfattede mini-HOWTO vejledninger). HOWTO vejledninger findes i kataloget /usr/doc/HOWTO eller på Internettet hos Linux Documentation Project, der findes som mirror (kopi) på http://sunsite.auc.dk/ldp. FAQ (Frequently Asked Questions) lister indeholder ofte stillede spørgsmål (med svar). Mange Linux-relaterede FAQ lister finder du i /usr/doc/FAQ. Se også http://howto.linuxberg.com/LDP/HOWTO/

Det kan være spændende at gå og hygge sig med sin Linux-maskine på egen hånd, men vi synes, det bliver endnu sjovere og mere inspirerende, hvis man finder sammen med ligesindede - enten i den virkelige verden eller på Internettet.

Linux-brugere er generelt meget venlige og hjælpsomme mennesker. De hjælper gerne begynderen med at komme i gang. Vær derfor aldrig bange for at spørge, men husk at læse HOWTO-vejledninger, man-sider og FAQ-lister, inden du spørger.

Her er nogle af mulighederne for at komme i kontakt med andre:


9.1. LUG'er

En LUG er forkortelsen for en Linux Users Group, som findes i meget stort antal verden over. Hos en LUG vil du ofte finde gratis teknisk support og (efter kort tid) venner, som fortæller om nye spændende ting, som andre må se. I Danmark er der nu flere LUG'er:


9.2. Mailing-lister

Der er mange mailing-lister rundt omkring. Når du har tilmeldt dig en liste, er det ofte klogt at følge med på listen en dag eller to for at se, hvilke typer spørgsmål der stilles. Derved stiller du ikke spørgsmål de forkerte steder, hvilket tit tages ilde op, med mindre du gør opmærksom på, at du er begynder (newbie).

SSLUG driver en række mailing-lister. Du kan læse mere om dem på SSLUG's hjemmeside (http://www.sslug.dk).

Der er heldigvis en stribe andre Linux grupper med tilsvarende tilbud - støt den, du bor nærmest ved.


9.3. Nyhedsgrupper

Nyhedsgrupper (news groups) er meget vigtige at følge med i, f.eks. bliver alle vigtige møder, nye programmer og LUG'er annonceret i news://comp.os.linux.announce (i daglig tale kaldet COLA). Denne gruppe er filtreret, så du får kun de vigtigste nyheder. Andre news://comp.os.linux.*, hvor * bl.a. er misc og X11, er åbne grupper, og her kan du stille spørgsmål og oftest få en del svar. Sproget er engelsk, og der er tit meget stor trafik i grupperne, dvs. mange spørgsmål og svar. I Danmark kan du følge dk.edb.unix, hvor man skriver på dansk. Gruppen er om UNIX generelt, men langt de fleste indlæg handler om Linux. Alle SSLUG's mailing-lister findes også som nyhedsgrupper, som kan læses fra nyhedsserveren news.sslug.dk. I øvrigt kan det nævnes, at rigtig mange nyhedsgrupper kan læses fra http://www.dejanews.com


9.4. Hjemmesider

En række privatpersoner og organisationer har hjemmesider om Linux. Det ville fylde det meste af dette hæfte at nævne dem alle, så vi må nøjes med et lille udvalg:


Appendiks A. Ingen grafik og hvorfor gik det så galt?

Nu følger en lille tur rundt i de filer, der anvendes af X. Det er sket før, at man ikke direkte kan få startet X-serveren, men ofte kan man hurtigt finde ud af, hvad der gik galt.

Start med:

[daisy@linus daisy]$  ls -l /usr/X11R6/bin/XF*
-rwxr-xr-x 1 root root 2712220 Jul 29 11:30 /usr/X11R6/bin/XF86_SVGA

Her kan du se, at X programmet nok er installeret, og en SVGA X-server er installeret, svarende til det aktuelle grafikkort. På http://www.xfree86.org kan du se, hvad der passer sammen af server og grafikkort.

Findes filen /usr/X11R6/bin/X ikke, er X-softwaren ikke blevet installeret. I det tilfælde bør du overveje at køre installationen forfra.


A.1. XF86Setup, xf86config og Xconfigurator

Du kan også vælge at køre et af programmerne /usr/X11R6/bin/Xconfigurator, /usr/X11R6/bin/XF86Setup eller /usr/X11R6/bin/xf86config som root for at få genereret en X-konfigurationsfil, der gemmes i /etc/X11/XF86Config. I denne fil gemmes al information om monitor, grafikkort, mus, og hvilket tastatur der anvendes.

Det første, du bør gøre, er at køre programmet SuperProbe (som root) - programmet viser dig, hvilket grafikkort du har, og noget om den "clockchip", du eventuelt har på kortet. De sidste par linjer af output fra SuperProbe kunne se ud som:

First video: Super-VGA
        Chipset: Matrox Mystique (PCI Probed)
        RAMDAC:  Matrox Mystique built-in DAC w/clock
                 (with 6-bit wide lookup tables (or in 6-bit mode))
I dette tilfælde er der fundet et Matrox Mystique kort, hvor SuperVGA driveren til X11 skal benyttes (det er dog ikke det, der vises ud for teksten "First video"). I øvrigt kan det være klogt at indhente data for dit grafikkort, keyboard, mus og skærm fra producenternes hjemmesider og manual.


A.1.1. xf86config

Hvis xf86config anvendes til at lave en konfigurationsfil, skal der først svares på, hvilken type din mus er, og hvilket keyboard layout osv. du har - dette er reelt forklaret i det følgende, idet Xconfigurator ikke er meget anderledes. Fordelen ved xf86config er, at dette program ikke autoprober hardware, og man kan således manuelt få sat parametre for hardwaren. Ulempen er tilsvarende, at for almindelig gangbar hardware er Xconfigurator bare smartere at bruge, da autoprobe er nemt.


A.1.2. XF86Setup

Programmet XF86Setup er også godt at kende - målet er det samme som for xf86config og Xconfigurator - at få lavet X11-opsætningsfilen. XF86Setup er grafisk. Programmet starter grafik op i lav generisk VGA mode, og man kan her nemt sætte parametre for mus, keyboard, grafikkort og skærm.


A.1.3. Xconfigurator

Når Xconfigurator startes op, vises et tekst-skærmbillede (med farver), der beskriver, at det er XF86Config filen, som skal rettes til.

For de fleste PC'ere, der har en PCI-baseret bus, vil programmet selv finde det korrekte grafikkort og derfra vælge, hvilken X-server der skal bruges. Der er et par forskellige typer - såsom S3 og SVGA, som altså vælges automatisk.

Dernæst skal du hjælpe programmet med at vælge monitortypen. Hent manualen til din monitor nu. Som vist nedenfor kan du enten vælge mellem en "custom"- eller mærkevaremonitor. Da mange private brugere har en "bambus PC", vælger vi "custom" typen og skal så svare på et par spørgsmål.

Du skal nu finde data for, hvor hurtig din skærm er. Find i manualen noget om "horizontal sync" (målt i kHz) og "vertical sync" (målt i Hz), og gå videre.

I din manual vil der stå, om din skærm kan klare 1024x768 eller måske højere, og hvilken opdateringshastighed der understøttes. Dette måles i Hertz (forkortet Hz). Brug pil op og ned til at vælge mellem de mange muligheder.

Din skærm har nogle grænser for vertical sync, som du skal vælge her. Passer din skærm ikke helt til, hvad der kan vælges, så tag nærmeste mindre interval. Gør du ikke dette, risikerer du at skade din hardware.

Nu skal grafikkortet testes. Der vil blive checket, hvor meget video-RAM kortet har. Vælg "Probe".

Derefter skal du vælge, hvilke video modes du vil kunne anvende. Vi følger "Lad mig vælge" muligheden.

Da nedenstående eksempel er for et 1 MB video kort, er der ikke meget at vælge mellem. Overskriften for hver af de tre søjler viser, hvor mange bits der skal bruges til at vise farver. Her vil 8 bits give 256 mulige farver samtidig, 16 bits giver 65536 samtidige farver og 24 bits mere end 16 millioner farver. Bemærk, at hvis du vælger lav opløsning og få farver, får du en hurtigere grafikopdatering, så vælg derfor ikke mere, end du behøver.

Nu gemmes endelig filen /etc/X11/Xf86Config, og du kan prøve at skrive startx.


A.2. XF86Config filen

For de fleste er der ikke mere opsætning for at kunne vise grafikken. Men skulle det ske, at din mus eller dit tastatur ikke virker helt, skal du redigere XF86Config filen med emacs, vi eller pico som vist i det følgende. Disse tekst editorer er omtalt i afsnit 6.4.


A.2.1. Tastatur

For tastaturet vil følgende linjer passe til de fleste danske keyboards (en del kommentarlinjer, der begynder med #, er slettet):

Section "Keyboard"
   Protocol        "Standard"
   AutoRepeat      500 5
   LeftAlt         Meta
   RightAlt        Meta
   ScrollLock      Compose
   RightCtl        Control
   XkbKeycodes     "xfree86"
   XkbTypes        "default"
   XkbCompat       "default"
   XkbSymbols      "us(pc101)"
   XkbGeometry     "pc"
   XkbRules        "xfree86"
   XkbModel        "pc101"
   XkbLayout       "dk"
EndSection


A.2.2. Mus

I modsætning til Windows-verdenen er det smart at købe en tre-knaps mus til Linux. Man kan godt bruge to knaps mus, men Linux kan anvende tre knapper på en meget smart måde.

Musen kan være lidt problematisk for nogle. Får du ikke fat i den rigtige type, kan du se det ved, at musen ofte springer rundt. Du skal så rette i XF86Config i afsnittet "Pointer", der kan se ud som:

Section "Pointer"
    Protocol    "MouseMan"
    Device      "/dev/mouse"
#    Emulate3Buttons
#    Emulate3Timeout    50
EndSection
Vi har her med en Logitech treknapsmus at gøre. En mus, som oftest er af typen MouseMan. Dog kan protocol sættes til PS/2, hvis stikket er af PS/2 typen. Har man en Microsoft toknapsmus, må man emulere midterknappen ved at trykke begge knapper ned på samme tid, og de to udkommenterede linjer ovenfor skal så gøres aktive, dvs. du skal fjerne #-tegnet.

Check også, at du har /dev/mouse til at pege på den rigtige port - i dette tilfælde /dev/psaux, som er PS/2-porten til mus.

[daisy@linus daisy]$  ls -al /dev/mouse
lrwxrwxrwx   1 root     root            5 May 15 14:37 /dev/mouse -> psaux
Var dette ikke tilfældet, skal du rette op på dette med
[daisy@linus daisy]$  rm -f /dev/mouse
[daisy@linus daisy]$  ln -sf /dev/psaux /dev/mouse
Bruger du COM1 (fra DOS) til musen, så erstat /dev/psaux med /dev/ttyS0.

Der er følgende lovlige protokoller, som vises ved at skrive man XF86Config:

BusMouse, Logitech, Microsoft (Ofte til to-knaps mus), MMSeries, Mouseman (tit med Logitech mus), MouseSystems (ofte no-name treknapsmus), PS/2 (for PS/2 port mus), MMHitTab, GlidePoint, IntelliMouse, Xqueue og OSMouse. I Red Hat 5.2 og 6.0 er der også kommet support for flere varianter af Genius NetMouse og Netscroll, Kensington Thinking mouse, ALPS GlidePoint, ASCII MieMouse, ATI bus mus, Logitech MouseMan+ og FirstMouse+.


A.2.2.1. Mus med hjul

Det kan nævnes, at med Microsoft intellimouse, Logitech pilot+, and Logitech mouseman+ med hjul på kan der være problemer med at få den midterste knap (hjulet) til at virke. Men som altid, er der nogen, som har arbejdet med sagen, og der er hjælp at hente på http://www.inria.fr/koala/colas/mouse-wheel-scroll

For at gøre X i stand til at benytte hjulet som midterknap, skal man rette i filen /etc/X11/XF86Config for Red Hat og tilsvarende er det /etc/XF86Config for SuSE. Protokollen skal ændres, og hjul-funktionen skal aktiveres.

Pointer-sektionen i XF86Config ser nu ud som følger:

Section "Pointer"
    Protocol    "imps/2"
    ZAxisMapping 4 5
    Device      "/dev/mouse"


A.2.2.1.1. Mus med hjul og Netscape

For at benytte hjulet til at scrolle op og ned i Netscape indsættes følgende i ~/.Xdefaults

Netscape*drawingArea.translations:  #replace \
         <Btn1Down>:    ArmLink()   \n\
         <Btn2Down>:     ArmLink()   \n\
         ~Shift<Btn1Up>:    ActivateLink()  \n\
         ~Shift<Btn2Up>:    ActivateLink(new-window)  \
                                         DisarmLink()   \n\
         Shift<Btn1Up>:    ActivateLink(save-only)  \
                                         DisarmLink()   \n\
         Shift<Btn2Up>:    ActivateLink(save-only)  \
                                         DisarmLink()   \n\
         <Btn1Motion>:     DisarmLinkIfMoved()  \n\
         <Btn2Motion>:     DisarmLinkIfMoved()  \n\
         <Btn3Motion>:     DisarmLinkIfMoved()  \n\
         <Motion>:     DescribeLink()  \n\
         <Btn3Down>:     xfeDoPopup()   \n\
         <Btn3Up>:     ActivatePopup() \n\
         Ctrl<Btn4Down>: PageUp()\n\
         Ctrl<Btn5Down>: PageDown()\n\
         Shift<Btn4Down>: LineUp()\n\
         Shift<Btn5Down>: LineDown()\n\
         None<Btn4Down>: LineUp()LineUp()LineUp()LineUp()LineUp()LineUp()\n\
         None<Btn5Down>: LineDown()LineDown()LineDown()LineDown()LineDown()LineDown()\n\
         Alt<Btn4Down>: xfeDoCommand(forward)\n\
         Alt<Btn5Down>: xfeDoCommand(back)\n
Netscape*globalNonTextTranslations: #override\n\
         Shift: LineUp()\n\
         Shift: LineDown()\n\
         None:LineUp()LineUp()LineUp()LineUp()LineUp()\n\
         None:LineDown()LineDown()LineDown()LineDown()LineDown()

Tilsvarende kan du få mere gavn af musehjulet i xterm ved at tilføje

xterm*VT100.Translations: #override\n\
        Shift<Btn4Down>,<Btn4Up>:scroll-back(1,line)\n\
        Shift<Btn5Down>,<Btn5Up>:scroll-forw(1,line)\n\
        Ctrl<Btn4Down>,<Btn4Up>:scroll-back(1,page)\n\
        Ctrl<Btn5Down>,<Btn5Up>:scroll-forw(1,page)\n\
        <Btn4Down>,<Btn4Up>:scroll-back(1,halfpage)\n\
        <Btn5Down>,<Btn5Up>:scroll-forw(1,halfpage)\n\
        <KeyPress>Prior : scroll-back(1,page)\n\
        <KeyPress>Next : scroll-forw(1,page)
XTerm.vt100.Scrollbar.translations: #override\n\
     <Btn5Down>: StartScroll(Forward)\n\
     <Btn4Down>: StartScroll(Backward)
nxterm*VT100.Translations: #override\n\
        Shift<Btn4Down>,<Btn4Up>:scroll-back(1,line)\n\
        Shift<Btn5Down>,<Btn5Up>:scroll-forw(1,line)\n\
        Ctrl<Btn4Down>,<Btn4Up>:scroll-back(1,page)\n\
        Ctrl<Btn5Down>,<Btn5Up>:scroll-forw(1,page)\n\
        <Btn4Down>,<Btn4Up>:scroll-back(1,halfpage)\n\
        <Btn5Down>,<Btn5Up>:scroll-forw(1,halfpage)\n\
        <KeyPress>Prior : scroll-back(1,page)\n\
        <KeyPress>Next : scroll-forw(1,page)

A.2.2.1.2. Mus med hjul og Emacs

For at benytte hjulet til at scrolle op og ned i Emacs laves en Emacs Lisp fil (en el-fil). Som root kan den placeres sammen med de andre el-filer i /usr/share/emacs/20.2/lisp. Dette muliggør lettere adgang, idet Emacs' library-path umiddelbart finder filen, når den skal loades. Man kan f.eks. kalde filen mwheel.el, og den kan se ud som følger:

;;; No copyright

;; Maintainer: Jan Eggert Kofoed  mailto:jan.kofoed@person.dk
;; Keywords: intellimouse

;; This file can be used with GNU Emacs.

;; The code was taken from
;;   www.inria.fr/koala/colas/mouse-wheel-scroll
;; which is maintained by Colas Nahaboo, but the code is put there
;; with courtesy of
;;    Sylvia Knight, Sylvia.Knight@cl.cam.ac.uk

;;; Code:

(defun up-slightly () (interactive) (scroll-up 5))
(defun down-slightly () (interactive) (scroll-down 5))
(global-set-key [mouse-4] 'down-slightly)
(global-set-key [mouse-5] 'up-slightly)
(defun up-one () (interactive) (scroll-up 1))
(defun down-one () (interactive) (scroll-down 1))
(global-set-key [S-mouse-4] 'down-one)
(global-set-key [S-mouse-5] 'up-one)

(defun up-a-lot () (interactive) (scroll-up))
(defun down-a-lot () (interactive) (scroll-down))
(global-set-key [C-mouse-4] 'down-a-lot)
(global-set-key [C-mouse-5] 'up-a-lot)

Filen kan også byte-compiles med Emacs. Emacs kan så læse filen, når du skriver følgende linje ind i ~/.emacs:

(load-library "mwheel")

A.2.3. Skærm

Med hensyn til skærm skal du finde manualen og finde data om "vertical refresh" målt i Hz og "horizontal sync" målt i kHz. Under afsnittet om "Monitor" må man ikke skrive hurtigere data, end skærmen kan klare. Det kan overbelaste skærmen! Har man skrevet, at skærmen fint kører 90Hz, selvom det er løgn, vil man se, at skærmen kører med ødelagt skærmbillede lidt svarende til dårlig TV justering. I samme sektion om "Monitor" står en masse modelines, som er mulige skærmfrekvenser, men det fører for vidt at forklare formatet af disse. Et eksempel skal dog lige vises - først er der en kommentar og dernæst parametre for den relevante mode:

# 1024x768 @ 76 Hz, 62.5 kHz hsync
Modeline "1024x768"    85    1024 1032 1152 1360   768  784  787  823

Tip: Kan du ikke få din skærm til at køre i 16 bitplaner (65536 farver), så skriv exec X :0.0 -bpp 16 i filen ~/.xserverrc


A.3. Anvendelse af fdisk

Hvis du har brug for at partitionere en disk på et tidspunkt efter installation, så er fdisk et stabilt værktøj. Skriv som root fdisk og du kan få hjælp ved at trykke m.

Advarsel: Hvis du ikke har forstået, hvordan diskpartitioner fungerer, skal du passe meget på. Kommer du til at lave ulykker med fdisk, kan du komme til at miste kontakten med andre partitioner på din harddisk. Er du i tvivl, er det meget klogt, at du starter med at trykke p og skriver ned (ja på papir, som i gamle dage), hvad du får vist på skærmen.

I fdisk - tryk p for at se, hvordan din partitionstabel ser ud. Hvis du har været igennem fips, har du en ny partition /dev/hda2, som er af typen "DOS 16-bit >=32M". Du skal tilsvarende have en partition /dev/hda1 af typen "DOS 16-bit >=32M", som indeholder din gamle Windows partition - check, om størrelsen stemmer! Du skal starte med at slette den ekstra partition - sikkert /dev/hda2 - tryk d og 2, hvis du er sikker på, hvad du laver. Ellers spørg i din nærmeste Linux brugergruppe.

Skab mindst to nye Linux-partitioner ved at trykke n og partitionsnummer. Dette skal du gøre to gange med partition 2 hhv. 3 (hvis du kun har en Windows partition i forvejen). Lav partition 2 stor og partition 3 på måske 40 MB til Swap. Default type er "Linux native". En af partitionerne (nummer 3) skal have ændret type til Linux swap, hvilket gøres ved at trykke t og vælge type 82 (Linux swap). Tryk p for at verificere, at disken har den ønskede opbygning. Den simpleste partitions opbygninger er, som følger (ikke alle dele af harddisken er udnyttet i eksemplet).

Command (m for help): p

Disk /dev/hda: 16 heads, 63 sectors, 4092 cylinders
Units = cylinders of 1008 * 512 bytes

Device   Boot  Begin Start   End Blocks   Id  System
/dev/hda1   *      1     1  1016 512032+   6  DOS 16-bit >=32M
/dev/hda2       1017  1017  1626 307440   83  Linux native
/dev/hda3       3072  3960  4092  67000+  82  Linux swap

Et eksempel på en mere avanceret partitionstabel kan være det følgende. Det skal bemærkes, at den fortløbende nummerering af partitionerne ikke er nødvendig. Desuden kan det bemærkes, at hda1 til hda4 er numrene for primære eller udvidede partitioner, og at partitioner i den udvidede partition får numrene 5 og opefter. Der kan maksimalt være 4 partitioner, hvoraf en kan være udvidet. Linux kan i princippet placeres på en vilkårlig partition. Bemærk, at enkelte laptops bryder med dette.

Command (m for help): p

Disk /dev/hda: 16 heads, 63 sectors, 4092 cylinders
Units = cylinders of 1008 * 512 bytes

Device   Boot  Begin Start   End Blocks   Id  System
/dev/hda1   *      1     1  1016 512032+   6  DOS 16-bit >=32M
/dev/hda2       1017  1017  1626 307440    6  DOS 16-bit >=32M
/dev/hda3       1024  1627  2439 409752   83  Linux native
/dev/hda4       2048  2440  4092 833112    5  Extended
/dev/hda5       2048  2440  3700 635512+  83  Linux native
/dev/hda6       3072  3701  3959 130504+  83  Linux native
/dev/hda7       3072  3960  4092  67000+  82  Linux swap

Her er to DOS-partitioner (/dev/hda1,2), tre Linux-partitioner (/dev/hda3,5,6) og en Linux swap partition (/dev/hda7), og extended partitionstabel er anvendt (/dev/hda4). Du kan nøjes med at have et antal DOS (vfat) partitioner og så en Linux partition, samt en Linux swap partition.

Afslut fdisk med at trykke w for "write to disk". (Du kan i øvrige altid afslutte uden at gemme i fdisk ved at trykke q). Derefter vælges Done.


Appendiks B. Lad mig lære lidt flere UNIX/Linux kommandoer

I dette appendix vil vi gennemgå en række UNIX/Linux kommandoer. Gennemgangen er overfladisk, men du kan finde flere oplysninger i programmers man pages.


B.1. Mere om omdirigering

Linux (som UNIX) arbejder med følgende input/output terminologi:

  • Standard input (stdin). Normalt tastaturet.

  • Standard output (stdout). Normalt skærmen.

  • Standard error (stderr). Normalt skærmen.

Vi har før været inde på, at stdout kan omdirigeres med >. cat fil1 fil2 > fil3 vil samle indholdet af filerne fil1 og fil2 i filen fil3.

Da måden, du omdirigerer på, er afhængig af shell'en, er det en god ide at undersøge dette nu. Prøv med:

[daisy@linux daisy]$  env | grep ^SHELL | cut -d/ -f3

Svaret skulle gerne være bash, csh eller tcsh. Det kan være, at du anvender en anden shell - der findes mange. Hvis det er tilfældet, kan du se i man-pages for den aktuelle shell (man SHELLNAVN).

Hvis du selv starter en ny shell (enten fra kommandolinjen eller i et script), er det ikke sikkert, at ovenstående metode virker. Prøv derfor at skrive ps. En liste over de kørende processer vil da blive udskrevet til skærmen. Den nederste proces, der ender på "sh", angiver din shell - normalt.

Fælles for Bourne-Again Shell (bash) og C-Shell er følgende: Lad os antage, at filen fil3 indeholder information, vi ønsker at bevare. Vi vil tilføje (append) indholdet af fil1 og fil2 til fil3. Det gøres ved:

[daisy@linux daisy]$  cat fil1 fil2 >> fil3

Indholdet af en fil kan også anvendes som argument(er) til en kommando, f.eks. vil følgende kommando sende indholdet af filen megenRos til SSLUG's webmastere:

[daisy@linux daisy]$  sendmail www_admin@sslug.dk < megenRos

Linux skelner (som UNIX) mellem normale uddata (stdout) og fejluddata (stderr). Til tider kan det være rart kun at omdirigere det ene sæt meddelelser.

Specielt for bash gælder følgende: omdirigering af stdout (1) og stderr (2) i bash er forholdsvis simpel.

Hvis kun fejlmeddelelserne fra en kommando - her ls - ønskes:

[daisy@linux daisy]$   ls  1> /dev/null

Hvis kun stdout ønskes vist, og fejlmeddelelserne skal sendes til en fil:

[daisy@linux daisy]$  ls 2> fejlfil 

Og endelig, hvis du ønsker at akkumulere fejlmeddelelser i en fil, kan >> anvendes - f.eks.

[daisy@linux daisy]$  ls 2>> fejlfil

De to shells csh og tcsh adskiller sig fra bash på følgende måder. Når du omdirigerer med > eller >>, er det kun stdout, der omdirigeres. Hvis stderr skal med, skal du anvende & efter omdirigeringen. stderr kan ikke omdirigeres alene, men med lidt krumspring lykkedes det alligevel:

[daisy@linux daisy]$ ls -l /* | tee >& fil1 | diff fil1 - >fejlFil

Ovenstående kommando sender både stderr og stdout til filen fil1.


B.2. En række nyttige værktøjer

B.2.1. Hvem er logget ind?

Hvis du ønsker at vide, hvilke brugere der er logget på samme computer som dig, bruger du kommandoen who. Du vil så få en liste med brugere, der har logget in, og fra hvilken (virtuel) terminal de er koblet til. Denne kommando har ikke den store værdi, med mindre du arbejder i et flerbrugere-system. Arbejder du i et større netværk, kan det være, at rwho virker. rwho giver dig, hvem der er logget ind på hvilke computere i netværket.

Hvis du ikke er klar over, hvem du er logget ind som, skriver blot whoami, svaret synes indlysende, men alligevel: dit login dukker op og terminalens id ligeså.


B.2.2. Søg og du skal finde

find bruges til at finde filer med. Syntaksen er: find hvorfra hvad [handling]. Ikke alle Linux/UNIX varianter kræver 3. argument. Lad os se nærmere på argumenterne.

  • 1. argument, hvorfra:

    • ./ angiver aktuelt katalog.

    • ~/ angiver hjemmekatalog.

    • / angiver roden.

    • /usr angiver usr og alt under.

  • 2. argument, hvad:

    • -name foo
      med navnet foo

    •  -type d
      som er et katalog.

  • 3. argument, aktion:

    • -print
      udskriver, hvor filen er fundet

    • -ls
      udfører ls -l på søgeresultatet

    • -exec cmd {}\;
      udfører kommandoen cmd på søgeresultatet.

    • -ok
      som
      exec
      men spørger først.


B.2.3. Hvordan ændres datomærkningen?

Kommandoen touch anvendes til at oprette tomme filer eller ændre tidspunktet for sidste modifikation.

Lad os antage, at filen minFil eksisterer, og filen minIkkeEksisterendeFil ikke gør, da vil touch minFil sætte tiden for sidste modifikation af filen til det aktuelle klokkeslet. Kommandoen touch minIkkeEksisterendeFil vil oprette en tom fil med navnet minIkkeEksisterendeFil.


B.2.4. Hvilken filtype?

Kommandoen file forsøger at gætte, hvilken filtype der er givet som argument. Hvis file tror, at det er en ascii-fil, vil file læse de 512 første tegn og forsøge at gætte programmeringssproget.

file gætter desværre forkert fra tid til anden og kan f.eks. ikke genkende filer, der indeholder programmer, som er skrevet i Pascal og Lisp.


B.2.5. Tid og dato

date udskriver den aktuelle dato og klokkeslet.

[daisy@linux daisy]$  date
 lør jan 16 17:50:55 CET 1999

cal er en hel lille kalender. Uden argument udskrives kalenderen for den aktuelle måned. Med et argument (tal) regnes argumentet for et årstal. Vær iøvrigt opmærksom på, at cal er År2000 klar, dvs. cal 99 udskriver kalenderen for år 99, mens cal 1999 skriver kalenderen for 1999.

Med 2 argumenter regnes det første som måned og det andet som årstal. Det er værd at bemærke, at cal antager, at skiftet fra Julianske kalender til Gregorianske kalender skete i september 1752, hvilket passer til engelske forhold (i katolske lande skete det i 1582 og i Danmark i 1700).


B.2.6. Sortering

sort sorterer en fil linje for linje. sort kan også flette flere filer samtidig med, at indholdet sorteres. Omdirigering af sort til en fil er mulig med optionen "-o". sort fil1 fil2 > fil1 vil give et pudsigt resultat: Da stdout omdirigeres til fil1, som eksisterer i forvejen, slettes fil1, og en ny, tom fil1 oprettes. Når fil1 og fil2 flettes og sorteres, vil fil1 være tom. Derfor vil kun indholdet af fil2 komme med i fil1 - kryptisk - prøv selv! Husk blot, at sort er den eneste (standard) kommando, hvor stdout omdirigeres med en option "-o".

Men sort kan mere: En fil kan være inddelt i poster, f.eks. filen hatte.

[daisy@linux daisy]$  cat hatte
   poul nyrup 52
   holger beck-nielsen 90
   william gates 55
   torvald linus ??

Lad os illustrere sort ved en række eksempler. sort +1 navne vil sortere på efternavn (første felt er felt 0). sort +2-n navne vil sortere numerisk på hattestørrelse. sort -r navne vil sortere i omvendt rækkefølge.

[daisy@linux daisy]$  sort +2 -n -r hatte
  torvald linus 91.2
  holger beck-nielsen 90
  william gates 55
  poul nyrup 52


B.3. En række tekstværktøjer

Linux har en række mindre værktøjer til at håndtere af tekstfiler. Vi vil i dette afsnit se lidt nærmere på dem.

diff udskriver forskellen mellem to filer. Lad os se på filerne fil1 og fil2.

[daisy@linux daisy]$  cat fil1 
  Per
  Poul
  Bent
[daisy@linux daisy]$  cat fil2 
  Per
  Bjarne
[daisy@linux daisy]$  diff fil1 fil2 
  2,3c2
  < Poul   (oversat: ud går Poul)
  < Bent   (oversat: ud går Bent)
  > Bjarne (oversat: ind kom Bjarne)

uniq fjerner ens linjer, der kommer efter hinanden, hvilket illustreres nedenfor.

[daisy@linux daisy]$   cat per3 
  Per
  Per
  Per
[daisy@linux daisy]$  uniq per3
  Per

cmp sammenligner filer og stopper læsningen af filerne, når cmp finder en forskel.

wc står for Word Count, og som navnet antyder, tæller den ord i en fil. wc har nogle options: "-l", "-w" og "-c" for Lines, Words og Characters.

Vil du vide, hvor mange linjer en fil indeholder, skriver du wc -l fil. wc er særlig god sammen med andre kommandoer og | (pipe), f.eks. vil nedenstående kommando tælle op, hvor mange filer, der er i kataloget /usr/bin

[daisy@linux daisy]$  ls /usr/bin | wc -l
  1208

Eller hvis du vil vide, hvor mange kataloger der er i /etc

[daisy@linus daisy]$  ls -l /etc | grep ^d | wc -l
  23

Forklaringen er som følger: ls -l giver den lange liste med egenskaberne for filerne med en fil pr. linje. Det allerførste tegn på linjen angiver filtypen. d betyder, at det er et "directory" - et katalog. grep ^d lader kun de linjer, der starter med d, passere. wc -l tæller antallet af linjer, den modtager.


B.3.1. Hoved og hale

tail - uden options - udskriver de 10 sidste linjer af en fil, "-5" vil udskrive de 5 sidste linjer, og "+8" vil udskrive fra og med linje 8 i en fil. Lad os se på et eksempel.

[daisy@linus daisy]$  cat sang
    Jeg bærer med smil min byrde,
    jeg drager med sang mit læs;
    jeg er som den vilde hyrde,
    der genner sit kvæg på græs.
[daisy@linus daisy]$  tail -2 sang
    jeg er som den vilde hyrde,
    der genner sit kvæg på græs.

tail har en meget nyttig "f"-option. Den får tail til løbende at vise de sidste 10 linjer af en fil, f.eks. vil du med tail -f /var/log/messages kunne følge, hvad alle system-dæmoner og lignende rapporterer.

head svarer til tail, men i stedet for slutningen af en fil, er det begyndelsen. head - uden optioner - udskriver de 10 første linjer af en fil. Optioner kan gives som for tail.


B.3.2. cut og paste

cut tager det, du specificerer i options, ud af en linje, dvs. -cx-y: tager fra tegn nr. x til tegn nr. y på hver linje i den specificerede fil. Er der kun et tal, tages kun dette tegn ud. -fx-y er som for c, men her drejer det sig om felter, og -d'X' angiver felt-separatoren.

Vil du se, hvilke brugere der har adgang til systemet, så prøv: cat /etc/passwd | cut -d':' -f1

paste samler filer lodret, hvor cat samler (kan samle) filer vandret. Lad os se på følgende eksempel. Du ønsker nu at samle to filer, navne og iq, således at linje 1 fra navne efterfølges af linje 1 fra iq (uden at dette dog skulle være konkluderende, for såvidt angår de tilfældige sammenstillinger af for- og efternavne samt tal).

[daisy@linus daisy]$  cat navne
      poul nyrup 52
      holger beck-nielsen 90
      william gates 55
      torvald linus ??
[daisy@linus daisy]$  cat iq
      50
      230
      120
      ??
[daisy@linus daisy]$  paste navne iq
      poul nyrup 52 50
      holger beck-nielsen 90 230
      william gates 55 120
      torvald linus ?? ??


B.3.3. Søg og du skal erstatte

tr erstatter det første argument med det andet. tr er en lidt speciel sag. Den forventer, at få input fra stdin. Derfor må du bruge følgende fremgangsmåde, hvis du vil erstatte noget i fil1, og skrive indholdet til fil2. Hvis du ønsker, at alle små tegn skal erstattes med store, skulle følgende kunne lade sig gøre.

[daisy@linus daisy]$  tr '[a-z,æ,ø,å]' '[A-Z,Æ,Ø,Å]' < fil1 > fil2

Det er ikke sikkert, at din distribution eller dit system vil godtage de danske tegn, men vi har afprøvet det på Red Hat 6.0, hvor det virker.


B.4. Andre Unix kommandoer

Tabel B-1. Oversigt over de mest anvendte andre UNIX-kommandoer.

KommandoForklaring
find Find fil(er). Anvend f.eks. find /usr -name '*.gif' til at finde alle filer under biblioteket /usr, der ender på .gif. Prøv også locate FILNAVN.
whoami Viser, hvilket login navn der arbejdes under.
who Viser, hvem der er logget ind på maskinen.
passwd Skift password.
su Skift bruger identitet.
echo echo "TEKST" skriver teksten på skærmen.
chown ændrer ejerskabet af filer.
export Anvendes i bash shell'en (default i Linux) til at sætte systemvariable (ligesom set i DOS). Syntaksen er: export VARIABEL=VÆRDI.
date Viser dato og tid.
xhost Anvendes til at tillade/begrænse andre maskiner at koble til maskinens X server, dvs. om de må vise grafik på skærmen. Anvend xhost + til at tillade alle maskiner at vise grafik på maskinen. Anvend tilsvarende xhost -maskinnavn til at forhindre, at den pågældende maskine viser grafik.
lpr Print ordre. Anvend lpr -Pprinternavn filnavn for at printe på printeren printernavn. De enkelte printere er defineret i filen /etc/printcap. De aktuelle printere kan være såvel lokale som netprintere.
lpq Printerkø forespørgsel. Anvend lpq -Plp til at vise, hvor langt printeren lp er med at printe ud.
lprm Anvendes til at fjerne printjobs, som ikke er skrevet endnu. Se muligheder med man lprm.
tar Anvendes til at pakke flere programmer sammen til et. Anvend f.eks. tar cvf tfil.tar fil1 fil2 for at pakke fil1 og fil2 sammen til filen tfil.tar. Tilsvarende kan filen pakkes ud med tar xvf tfil.tar.
compress Pakker filer ind/ud. Anvend compress filnavn til at pakke filen til filnavn.Z. Tilsvarende anvendes uncompress til at pakke ud.
gzip Andet og bedre pakke program, der anvender .gz som slutning af fil navn. Tilsvarende findes gunzip til at pakke ud. Normalt ses også filtypen .tgz, som er en tar fil, hvor der efterfølgende er anvendt gzip.
diff Sammenligner to filer og rapporterer forskellene.
free Viser, hvor meget hukommelse der er brugt, og der er til rådighed.
df Viser, hvor meget diskplads der er brugt, og der er til rådighed på samtlige diske.
du Viser status over, hvor meget diskplads der er brugt under det sted, hvor du står i filtræet.
sort Sorterer en tekstfil.
rsh rsh henrik.kongehuset.dk date betyder, at du udfører kommandoen date på maskinen henrik.kongehuset.dk, dvs. en anden UNIX maskine. Linux kan udføre kommandoer på andre maskiner og så vise grafik (og tekst) på din egen maskine.


Appendiks C. Installation af Debian 2.1

I dette appendix vil vi gennemgå installation af Debian 2.1. Debian er en distribution, som er dannet af selve sjælen af den frie software verden. Det er ikke noget firma, som står bag Debian - men en global organisation. Debian er sværere end SuSE og Red Hat, men det er en distribution, der er præget af grundighed og højt teknisk niveau. Antallet af programmer, der er oversat til Debians pakkeformat er vildt højt - også højere end antallet af Red Hat/SuSE (RPM) pakker. En let introduktion til Debian kan læses på http://www.debian.org/intro/about.


C.1. Hvad er Debian

I modsætning til RedHat og SuSE distributionerne er Debian noget mere kompliceret at installere, men er uafhængig af firmaer og økonomiske interesser - og er således fint i tråd med Linux-ånden. Debian er ellers en udmærket distribution, men er måske mere for den erfarne Linux bruger. I det følgende vil vi prøve at forklare, hvordan du installerer Debian 2.1. Du bør have styr på valg af partitioner, IO adresse og IRQ på dit netkort og andre "mindre" ting, før du kaster dig ud i Debian.

En Debian distribution består i øjeblikket af to "binary" CD'ere plus eventuelt "non-free", "non-us" samt "contrib", som kan findes på Debians site: http://www.debian.org. Når du har fået fat i et sæt Debian CD'er, er det tid at gå igang.

Er du for utålmodig, er det muligt at downloade en "rescue boot" diskettefil og en "drivers" diskettefil fra en debian site, der så overføres til disketter via DOS programmet RAWRITE2. Desuden skal man også downloade base2_1.tgz (godt 9 MB).

Kan du ikke boote på CDROM, så brug rawrite som beskrevet under installation af Red Hat til at lave rescue disketten /boot/resc1440.bin. Har du en anden Linux-box, så brug dd if=/mnt/cdrom/boot/resc1440.bin of=/dev/fd0, hvis din Debian CDROM er mountet på /mnt/cdrom.

Der bootes fra CDROM eller diskette, og man får nu mulighed via et tekst baseret installations program at specificere alle de sædvanlige options, der skal vælges ved enhver Linux installation: tastatur, swap partition, destinations partition, formattere disse osv. Det vil vi ikke gå i detaljer med, da det er rimeligt nemt at foretage disse valg. Læs, hvad der står på skærmen - der er en del forklaring. De fleste valg sker ved at acceptere det der er valgt for dig.

Det er reelt ikke sværere end Red Hat eller SuSE - endnu. Du skal dog vide, at du i forvejen skal have delt harddisken (med FIPS under DOS) eller købt en ekstra disk til Linux.

Når man er færdig med denne indledende baseinstallation, får man mulighed for at starte dselect programmet med et valg af pakker, der skal tilføjes systemet. Her skal der lige gives et råd: start med at installere et minimums basis system, og tilføj kun de pakker, du synes er nødvendige. Hver Debian pakke har nemlig et konfigurations script, der køres ved installationen af denne. Det kan derfor være en sej proces at installere Debian, hvis man har valgt at installere et stort antal pakker.


C.1.1. Det skrækkelige program dselect

Man tilføjer systemet yderligere *.deb pakker med dselect programmet, som er en frontend til det egentlige installations program, som hedder dkpg. Ved start af dselect fremkommer nedenstående menu på skærmen:

Debian Linux `dselect' package handling frontend.

 * 0. [A]ccess      Choose the access method to use.                      
   1. [U]pdate      Update list of available packages, if possible.
   2. [S]elect      Request which packages you want on your system.
   3. [I]nstall     Install and upgrade wanted packages.
   4. [C]onfig      Configure any packages that are unconfigured.
   5. [R]emove      Remove unwanted software.
   6. [Q]uit        Quit dselect.

Use ^P and ^N, cursor keys, initial letters, or digits to select;
Press ENTER to confirm selection.   ^L to redraw screen.

Version 1.4.0.34 (i386 elf).  Copyright (C) 1994-1996 Ian Jackson.   This is
free software; see the GNU General Public Licence version 2 or later for
copying conditions.  There is NO warranty.  See dselect --licence for details.

Man starter med at vælge access metode, dvs. om man vil installere fra CD, harddisk, NFS server floppy, ftp server eller andet. Her vil de fleste nok vælge Multi-CD, idet der er to CDROM'er med Debian 2.1. Læs forklaringerne til de enkelte metoder, hvis du er i tvivl. Hvis du installerer fra en CD, fås nedenstående skærmbillede, hvor du først bliver bedt om at angive, hvor Debian CDROM'en findes, dvs. hvad block device CDROM drevet er tilsluttet (/dev/hdc, /dev/hdd, /dev/scd1 eller andet).

Derpå spørges der, hvor "top level" er, her skal man som regel indtaste directory navnet "debian". Programmet spørger herefter, hvor de andre fil områder fra Debian's site findes. Dette er lidt forvirrende, men indledningsvis skal man blot indtaste "none", med mindre man har kopieret CD'erne ind på harddisken.

I det følgende er vist en typisk dialog med dselect. Dog skal CDROM devicen naturligvis være den, du bruger, og ikke nødvendigvis /dev/hdd.

If you make a mistake, use the interrupt key (^C) to abort.

I see that /dev/cdrom exists and is a block device.
Last time you specified installation from /dev/scd1.
Insert the CD-ROM and enter the block device name [/dev/scd1]:  /dev/hdd
hdd: media changed

All directory names should be entered relative to the root of the CD-ROM.

I would like to know where on the CD-ROM the top level of the Debian
distribution is (eg. 'dists/stable') - this directory usually contains the
Packages-Master file.

If the CD-ROM is badly organised and doesn't have a straightforward copy of
the distribution you may answer 'none' and we'll go through the parts
I need individually.
Distribution top level ? [none] debian

Using /debian/main/binary-i386' as main binary dir.
Using /debian/main/binary-i386/Packages.gz' for main.
/debian/contrib/binary-i386' does not exist.

Which directory contains the *.deb packages from the contrib distribution
area (this directory is named Contrib/binary-i386' on the distribution site)
?
Say 'none' if this area is not available.
Enter _contrib_ binary dir. [/debian]
? none

Note: most CD-ROM distributions of Debian do not include programs
available in the 'non-free' directory of the distribution site.
This is because these programs have copyrights that prevent
distribution for profit on a CD-ROM - ie they are not free software.
If you wish to install these programs you'll have to get them from an
alternative source.

Which directory contains the *.deb packages from the non-free distribution
area (this directory is named 'Non-free/binary-i386' on the distribution
site) ? Say 'none' if this area is not available.
Enter _non-free_ binary dir. []
 ? none

Which directory contains the *.deb packages from the non-US distribution
area (this directory is named 'Non-US/binary-i386' on the distribution site)
?
Say 'none' if this area is not available.
Enter _non-US_ binary dir. []
 ? none

Which directory contains the *.deb packages from the non-US distribution
area (this directory is named 'Non-US/binary-i386' on the distribution site)
?
Say 'none' if this area is not available.
Enter _non-US_ binary dir. []
 ? none

Note: By default there is no 'Local' directory. It is intended for
packages you made yourself.

Which directory contains the *.deb packages from the local distribution
area (this directory is named 'Local/binary-i386' on the distribution site) ?
Say 'none' if this area is not available.
Enter _local_ binary dir. []
 ?  none

Hit RETURN to continue.

Derpå vælges punktet update, og efter et lille øjeblik er du klar til det egentlige; at vælge, hvilke pakker der skal installeres. Som det første får du et hjælpebillede op med en intro til dselect. Læs dette og de næste par hjælpebilleder. Det er lidt besværligt, men hjælpeteksten er nødvendig for at forstå 'dselect' programmet. Du kan nu prøve at taste <ENTER> og se, om de pakker der initielt er valgt, forårsager afhængigheds/versions konflikter. Hvis du ikke kan komme ud af select menuen med <ENTER>, kan du afslutte select delen med X. Læs hjælpeteksten. Derpå installeres de valgte *.deb pakker ved at vælge Install fra hovedmenuen. Se iøvrigt: http://www.debian.org/releases/2.1/i386/dselect-beginner), som er oversat til sidst i denne vejledning.

Nu kommer der en masse tekst rullende. Undertiden skal du svare på forskellige konfigurations spørgsmål, men ellers foregår konfigurationen i næste hovedmenupunkt, og set i sammenligning med Red Hat og SuSE er dette lidt besværligt.


C.1.2. dpkg for begyndere

For at konfigurere pakker til dit system skal du køre kommandoen dpkg --pending --configure. Det gør, at man får sat de enkelte programmer op til maskinen efter, at pakkerne er blevet installeret.


C.1.3. dselect for begyndere

Vi har set følgende dselect menu før, men lad os nu se på, hvad de enkelte punkter er.

     _________________________________________________________________

                dselect Documentation for Beginners - Chapter 2
                           Once dselect is Launched
     _________________________________________________________________

   Once in dselect you will get this screen:
     Debian Linux `dselect' package handling frontend.

     0.  [A]ccess  Choose the access method to use.
     1.  [U]pdate  Update list of available packages, if possible.
     2   [S]elect  Request which packages you want on your system.
     3.  [I]nstall Install and upgrade wanted packages.
     4.  [C]onfig  Configure any packages that are unconfigured.
     5.  [R]emove  Remove unwanted software.
     6.  [Q]uit    Quit dselect.

   Let's look at these one by one.
     _________________________________________________________________


C.1.3.1. Access

Under punktet Access kommer der endnu en menu frem, hvor man kan være access type.

  • Forkortelse - Beskrivelse.

  • cdrom - Installér fra en CDROM.

  • multi_cd - Installér fra et CDROM sæt.

  • nfs - Installér fra en NFS server.

  • multi_nfs - Installér fra en NFS server (som har CDROM sættet).

  • harddisk - Installér fra en hard disk partition, som ikke er mountet.

  • mounted - Installér fra et filesystem som er mountet.

  • multi_mount - Installér fra en partition, der er mountet, hvor indhold ændrer sig (dropper fil cache).

  • floppy - Installér fra en pile of floppy disks.

  • apt - Anden type installation [file,http,ftp].

I denne menu skal vi fortælle dselect, hvor vores pakker findes. Du kan bare ignorere den rækkefølge, menupunkterne kommer i, idet du bare skal vælge den rette installationsmetode. Det kan være, at du faktisk har et par muligheder ud over dem, der er vist, eller at de kommer i en lidt anden rækkefølge - det gør ikke så meget. Vi skal nu se på de enkelte metoder - resten bliver dog på engelsk, og er mest ment som en hjælp til den, som vil installere, til at kunne se det igennem, inden du installerer.

  • multi_cd : Quite large and powerful, this complex method is the recommended way of installing a recent version of Debian from a set of multiple binary CDs. Each of these CDs should contain information about the packages in itself and all prior CDs (in the file Packages.cd). When you first select this method, be sure the CD-ROM you will be using is not mounted. Place the last binary disk of the set (we don't need the source CDs) in the drive and answer the questions you are asked:

    • CD-ROM drive location

    • Confirmation that you are using a multi-cd set

    • The location of the Debian distribution on the disk(s)

    • [ Possibly ] the location(s) of the Packages file(s)

    Once you have updated the available list and selected the packages to be installed, the multi-cd method diverges from normal procedure. You will need to run an "install" step for each of the CDs you have in turn. Unfortunately due to the limitations of dselect it will not be able to prompt you for a new disk at each stage; the way to work for each disk is

    • + Insert the CD in your CD-ROM drive.

    • + From the main dselect menu, select "Install".

    • Wait until dpkg finishes installing from this CD (it may report installation successful, or possibly installation errors. Don't worry about these until later).

    • Hit [Return] to go back to the main dselect menu.

    • Repeat with the next CD in the set...

    It may be neccesary to run the installation step more than once to cover the order of package installation - some packages installed early may need to have later packages installed before they will configure properly.

    Running a "Configure" step is recommended, to help fix any packages that may end up in this state.

  • multi_nfs, multi_mount : These are very similar to the multi-cd method above, and are refinements on the theme of coping with changing media, for example if installing off a multi-cd set exported via NFS from another machine's CD-ROM drive.

  • apt : One of the best options for installation from a local mirror of the Debian archive, or from the network. This method uses the "apt" system to do complete dependancy analysis and ordering, so it's most likely to install packages in the optimal order.

    Configuration of this method is straight-forward; you may select any number of different locations, mixing and matching file: URLs (local disks or NFS mounted disks), http: URLs, or ftp: URLs. Note however that the HTTP and FTP options do not support local authenticating proxies.

    If you have proxy server for either http or ftp (or both), make sure you set the http_proxy or ftp_proxy environment variables, respectively. Set them from your shell before starting dselect, i.e.: # export http_proxy=http://gateway:3128/ # dselect

  • floppy : Caters for those people without CD-ROM or network access. Not recommended as a viable installation option anymore if you are using traditionally-sized floppies, but may work better for LS/120 or Zip drives. Specify the location of your floppy drive, then feed floppies. The first one should contain the Packages file. This method is slow and may be unreliable due to media problems.

  • nfs : DEPRECATED METHOD -- use apt or multi_nfs instead. Only try this method if all else fails.

    This is a simple installation method, with simple requirements: give it the address of the NFS server, the location of the Debian distribution on the server and (maybe) the Packages file(s). Then dselect will install the various sections in turn from the server. Slow but easy; does not use proper ordering, so it will take many runs of the "Configure" step. Obviously only appropriate for NFS based installation.

  • harddisk : DEPRECATED METHOD -- use apt or multi_mount instead. Only try this method if all else fails.

    Supply the block device of the hard drive partition to use, and as usual the locations of the Debian files on that partition. Slow and easy. Does not use proper ordering, so it will take many runs of the "Configure" step. Not recommended, since the "apt" method supports this functionality, with proper ordering.

  • mounted : DEPRECATED METHOD -- use apt or multi_mount instead. Only try this method if all else fails.

    Simply specify the location(s) of the Debian files in your filesystem. Possibly the easiest method, but slow. Does not use proper ordering, so it will take many runs of the "Configure" step.

  • cdrom : DEPRECATED METHOD -- use multi_cd instead.

    Designed for single-CD installations, this simple method will ask for the location of your CD-ROM drive, the location of the Debian distribution on that disk and then (if necessary) the location(s) of the Packages file(s) on the disk. Simple but quite slow. Does not use proper ordering, so it will take many runs of the "Configure" step. Not recommended, because it assumes the distribution is on a single CD-ROM, which is no longer the case. Use the "multi_cd" method instead.

If you run into any problems -- maybe Linux can not see your CD-ROM, your NFS mount is not working or you have forgotten which partition the packages are on -- you have a couple of options:

  • Start another shell. Fix the problem and then return to the main shell.

  • Quit dselect and run it again later. You might even need to shut down the computer to solve some problem. This is quite ok but when you come back to dselect run it as root. It will not be run automatically after the first time.

After you choose the access method dselect will get you to indicate the precise location of the packages. If you do not get this right the first time hit Control-C and return to the "Access" item.

Once you are through here you will be returned to the main screen.


C.1.3.2. Update

dselect will read the Packages or Packages.gz files from the mirror and create a database on your system of all available packages. This may take a while as it downloads and processes the files.


C.1.3.3. Select

Hang on to your hat. This is where it all happens. The object of the exercise is to select just which packages you wish to have installed.

Hit Enter. If you have a slow machine be aware that the screen will clear and can remain blank for 15 seconds so don't start bashing keys at this point.

The first thing that comes up on the screen is page 1 of the Help file. You can get to this help by hitting ? at any point in the "Select" screens and you can page through the help screens by hitting the . (full stop) key.

Before you dive in note these points:

  • To exit the "Select" screen after all selections are complete, hit Enter. This will return you to the main screen if there is no problem with your selection. Otherwise, you will be asked to deal with that problem. When you are happy with any given screen hit Enter to get out.

  • Problems are quite normal and are to be expected. If you select package A and that package requires package B to run, then dselect will warn you of the problem and will most likely suggest a solution. If package A conflicts with package B (i.e., if they are mutually exclusive) you will be asked to decide between them.

Let's look at the top two lines of the "Select" screen.

  • dselect - main package listing (avail., priority) mark:+/=/- verbose:v help:?

  • EIOM Pri Section Package Inst.ver Avail.ver Description

This header reminds us of some of the special keys:

  • + Select a package for installation.

  • = Place a package on hold -- useful on a broken package. You can reinstall an older version and place it on hold while you wait for a new one to appear.

  • - Remove a package.

  • _ Remove a package and its config files.

  • i,I Toggle/cycle info displays.

  • o,O Cycle through the sort options.

  • v,V A terse/verbose toggle. Use this key to unlock the meanings of EIOM on line two, but I'll give you a summary here anyway. (Note that upper and lower case keys are quite different in effect).

  • Flag Meaning Possible values

  • E Error Space, R, I

  • I Installed state Space, *, -, U, C, I

  • O Old mark *, -, =, _, n

  • M Mark *, -, =, _, n

Rather that spell all this out here I refer you to the Help screens where all is revealed. One example though.

You enter dselect and find a line like this:

     EIOM Pri  Section  Package   Description
       ** Opt  misc     loadlin   a loader (running under DOS) for LINUX kernel
This is saying that loadlin was selected when you last ran dselect and that it is still selected, but it is not installed. Why not? The answer must be that the loadlin package is not physically available. It is missing from your mirror.

The information which dselect uses to get all the right packages installed is buried in the packages themselves. Nothing in this world is perfect and it does sometimes happen that the dependancies built into a package are incorrect, with the result that dselect simply cannot resolve the situation. A way out is provided where the user can regain control and it takes the form of the commands Q and X which are available in the "Select" screen.

  • Q An override. Forces dselect to ignore the built in dependancies and to do what you have specified. The results, of course, will be on your own head.

  • X Use X if you get totally lost. It puts things back the way they were and exits.

  • Keys which help you not to get lost (!) are R, U and D.

  • R Cancels all selections at this level. Does not affect selections made at the previous level.

  • U If dselect has proposed changes and you have made further changes U will restore dselect's selections.

  • D Removes the selections made by dselect, leaving only yours.

An example follows. The boot-floppies package (not an example for beginners, I know, but it was choosen because it has a lot of dependencies) depends on these packages:

     * libc6-pic
     * slang1-pic
     * sysutils
     * makedev
     * newt0.25
     * newt0.25-dev
     * popt
     * zlib1g
     * zlib1g-dev
     * recode

The person maintaining boot-floppies also thinks that the following packages should be installed. These are not, however, essential:

     * lynx
     * debiandoc-sgml
     * unzip
So when I select boot-floppies I get this screen:
     dselect - recursive package listing mark:             +/=/- verbose:v help:?
     EIOM Pri Section Package Description

     dselect - recursive package listing                         mark:+/=/- verbose:v help:?
     EIOM Pri Section  Package      Description
       ** Opt admin    boot-floppie Scripts to create the Debian installation floppy set.
       _* Opt devel    newt0.25-dev Developer's toolkit for newt windowing library
       _* Opt devel    slang1-dev   The S-Lang programming library, development version.
       _* Opt devel    slang1-pic   The S-Lang programming library, shared library subset ki
(Other packages may or may not appear, depending on what is already in your system). You'll notice that all the required packages have been selected for me.

The R key puts things back to the starting point.

     dselect - recursive package listing mark:             +/=/- verbose:v help:?
     EIOM Pri Section Package Description

     dselect - recursive package listing                         mark:+/=/- verbose:v help:?
     EIOM Pri Section  Package      Description
       __ Opt admin    boot-floppie Scripts to create the Debian installation floppy set.
       __ Opt devel    newt0.25-dev Developer's toolkit for newt windowing library
       __ Opt devel    slang1-dev   The S-Lang programming library, development version.
       __ Opt devel    slang1-pic   The S-Lang programming library, shared library subset ki

   To decide now that you don't want boot-floppies, just hit Enter.

   The Dkey puts things the way I selected them in the first place:
     dselect - recursive package listing mark:             +/=/- verbose:v help:?
     EIOM Pri Section Package Description

     dselect - recursive package listing                         mark:+/=/- verbose:v help:?
     EIOM Pri Section  Package      Description
       _* Opt admin    boot-floppie Scripts to create the Debian installation floppy set.
       __ Opt devel    newt0.25-dev Developer's toolkit for newt windowing library
       __ Opt devel    slang1-dev   The S-Lang programming library, development version.
       __ Opt devel    slang1-pic   The S-Lang programming library, shared library subset ki
The U key restores dselect's selections:
     dselect - recursive package listing mark:             +/=/- verbose:v help:?
     EIOM Pri Section Package Description

     dselect - recursive package listing                         mark:+/=/- verbose:v help:?
     EIOM Pri Section  Package      Description
       _* Opt admin    boot-floppie Scripts to create the Debian installation floppy set.
       _* Opt devel    newt0.25-dev Developer's toolkit for newt windowing library
       _* Opt devel    slang1-dev   The S-Lang programming library, development version.
       _* Opt devel    slang1-pic   The S-Lang programming library, shared library subset ki

I suggest running with the defaults for now -- you will have ample opportunity of adding more later.

Whatever you decide, hit Enter to accept and return to the main screen. If this results in unresolved problems you will be bounced right back to another problem resolution screen.

So the R, U, and D keys are very useful in "what if" situations. You can experiment at will and then restore everything and start again. Don't look on them as being in a glass box labelled "Break In Emergency".

After making your selections in the "Select" screen, hit the I to give you a big window, t to take you to the beginning and then use the Page-Down key to look quickly through the settings. This way you can check the results of your work and spot glaring errors. Some people have deselected whole groups of packages by mistake and not noticed the error until too late. dselect is a very powerful tool so don't misuse it.

You should now have this situation:

     package category     status

     required             all selected
     important            all selected
     standard             mostly selected
     optional             mostly deselected
     extra                mostly deselected
Happy? Hit Enter to exit the "Select" process. You can come back and run "Select" again if you wish.


C.1.3.4. Install

dselect runs through the entire set of 2250 packages and installs those selected. Expect to get asked to make decisions as you go. It is often useful to switch to a different shell to compare, say, an old config with a new one. If the old file is conf.modules the new one will be conf.modules.dpkg-dist.

The screen scrolls past fairly quickly on a fast machine. You can stop/start it with Control-s/Control-q and at the end of the run you will get a list of any uninstalled packages. If you want to keep a record of everything that happens use normal Unix features like tee or script.

It can happen that a package does not get installed because it depends on some other package which is listed for installation but is not yet installed. The answer here is to run "Install" again. Cases have been reported where it was necessary to run it 4 times before everything slipped into place. This will vary by your acquisistion method.


C.1.3.5. Configure

Most packages get configured in step 3, but anything left hanging can be configured here.


C.1.3.6. Remove

Removes packages that are installed but no longer required.


C.1.3.7. Quit

I suggest running /etc/cron.daily/find at this point as you have a lot of new files on your system. Then you can use locate to get the location of any given file.


Appendiks D. Revisionshistorie for bogen

Igennem tiden er bogen "Linux - friheden til at vælge" udviklet sig meget. Vi frigiver ofte nye versioner, når der er kommer en del rettelser ind, eller nye afsnit er blevet skrevet. Kommentarer, ris og ros, og specielt fejl og mangler bedes sendt til linuxbog@sslug.dk. Her er en liste over, hvad der er ændret i bogen.