Boken Om Linux

Fra Wikibøker – frie læremidler
Hopp til navigering Hopp til søk
Boken om linux fremsiden
Boken om linux baksiden

Boken om Linux er en IKT-bok skrevet av David Elboth. Boken er oversatt til flere språk, deriblant engelsk (The Linux Book). Boken ble utgitt første gang i 1999. Boka er ikke bare en innføring i Linux, men den tar også opp hva næringslivet kan spare av penger ved å gå over på Linux og fri programvare (Open Source).

Først i 2016 begynnelsen av Juni ble boken overført til wikibooks.

I 2008[1] ble boken gitt til Skolelinux-prosjektet for videre vedlikehold i regi av prosjektet[2].


		You take the blue pill the story ends,
you wake up in your bed and believe whatever you want
	You take the red pill, you stay in wonderland
and I show you how deep the rabbit hole goes.
			The Matrix

Innhold

'Boken om Linux[rediger]

Copyright (c) 2007 David Elboth og Skolelinux

dokumentasjonsprosjektet. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 or any later version published by the Free Software Foundation. A copy of the license is included in the section entitled "GNU GENERAL PUBLIC LICENSE".

Disclaimer

Every effort has been made to ensure that the information compiled in this publication is accurate and correct. However, this does not guarantee complete accuracy. Neither Skolelinux, the authors, nor translators shall be held liable for possible errors or the consequences thereof. Some of the software and hardware descriptions cited in this publication may be registered trademarks and may thus fall under copyright restrictions and trade protection laws. In no way do the authors make claim to any such names.

THIS DOCUMENTATION IS PROVIDED BY THE AUTHORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Bidragsytere[rediger]

  • Alf Martin Johnsen
  • Anders Kringstad
  • Bjørn Roland
  • Bodil Nordvik
  • Christian Schaller
  • David Elboth
  • Geir Steen-Olsen
  • Hans-Petter Fjeld
  • Harald Brombach
  • Jan Vidar Krey
  • Kjartan Maraas
  • Knut Ranheim
  • Knut Yrvin
  • Kristoffer Gleditsch
  • Leif Runar Forseth
  • Nicolai Langfeldt
  • Nora Kvalvik
  • Ole-Anders Andreassen
  • Ole Øyvind Hove
  • Ottar Grimstad
  • Petter Reinholdtsen
  • Stefano Ciccarelli
  • Svein-Erik Tosterud
  • Truls Thirud


Denne boka er basert på det originale arbeidet "Boken om Linux" 7-opplag skrevet av David Elboth. Forfatteren David Elboth har mottatt støtte fra det faglitterære fond.

Forord[rediger]

Den første målgruppen for denne boken er de som ønsker å lære å bruke Linux. Den andre er alle som trenger å forholde seg til Linux som infrastruktur.

Denne boken lærer deg Linux fra bunnen av. Den går grundig gjennom de viktigste Linux-kommandoene. Boken er både en innføringsbok for nybegynnere og en bok for Linux-systemadministratorer.

Boken er også nyttig for beslutningstakere som ønsker å vurdere Linux i sin bedrift. Kapittel 26 (Kost og nytte ved valg av Linux) er nyttig lesning for IT-rådgivere og beslutningstakere.

Denne boken går ikke gjennom Linux' utviklings og servermiljø, Linux og sikkerhet eller bruk av Linux på tynne klienter. Ønsker du å vite mer om dette, anbefaler jeg boken “Linux server- og utviklingsmiljø" fra IDG Norge Books AS. I den boken har jeg plassert mye av det jeg ikke fikk plass til i boken "Boken om Linux".

Bruker du PC med Linux privat? Kanskje har du oppgradert fra en tidligere versjon av Linux? Kanskje har du kjøpt deg ny maskin og ønsker å installere Fedora Linux eller Red Hat Linux. Kanskje får du stort sett til det du forsøker deg på, men har lyst til å utnytte systemet bedre? Da er dette den boken du trenger!

Selv har jeg brukt Unix siden 1985 og har tidligere skrevet tre Unix-bøker og fem Linux-bøker med titlene:

  • Unix - fra nybegynner til systemadministrator
  • Unix - en innføring
  • Unix Commands by Example - A Desktop Reference for Solaris, UnixWare. & SCO Unix
  • Bli kjent med Red Hat Linux
  • Linux installasjon og konfigurasjon
  • Linux server- og utviklingsmiljø
  • The Linux Book
  • Grunderna i Linux

Mitt første møte med Unix fikk jeg med Microsoft Xenix i begynnelsen av 80-tallet. Den gang var maskinvaren en PC med 4,77 Mhz Intel 8088-prosessor, 640 kB RAM og 10 MB harddisk. Senere har jeg jobbet med BSD og System V-baserte løsninger, som SCO Xenix, SCO Unix, ISC Unix, Novell UnixWare, Solaris 1.x, Solaris 2.x, IBM AIX, SCO UnixWare, NCR Unix V.4 og sist men ikke minst, Linux.

Fra 1997 jobbet jeg i et utviklingsprosjekt for Intranet/WEB basert på Sunsoft Solaris 2.5. I dette prosjektet traff jeg Knut Ranheim, som fikk meg interessert i Linux. Ønsker du å vite hva jeg selv bruker Linux til, kan du besøke min hjemmeside http://www.elboth.no

Mange personer har på forskjellig måte bidratt til denne boken. Jeg ønsker spesielt å takke følgende bidragsytere for faglig bidrag til boken: Kjartan Maraas, Christian Schaller, Geir Steen-Olsen (CIBER), Jan Vidar Krey (Open Human Digital), Kristoffer Gleditsch (Linpro) Ole Øyvind Hove og Stefano Ciccarelli.

En takk til Svein-Erik Tosterud i LINUXmagasinet for bildet av Linus Torvalds. Bjørn Roland, Harald Brombach, Nicolai Langfeldt, Alf Martin Johnsen og Ottar Grimstad for bidrag og gjennomlesing av deler av boken.

En takk til Knut Yrvin for alt arbeidet du har lagt ned i Skolelinux-prosjektet og for kapittel 25 som du og dine kollegaer i prosjektet har bidratt med. Du vil finne en mer oppdatert versjon av deler av dette kapittelet på hjemmesiden til Skolelinuxprosjektet (www.skolelinux.no).

En takk til Leif Runar Forseth og Bodil Nordvik for at jeg fikk anledning til bruke stoff fra våre tidligere felles prosjekter.

En takk til Nora Kvalvik som har definert språklige standarder og gjort ombrekkingen av boken.

Aller mest vil jeg imidlertid takke min familie. Det var jo ikke deres idé at jeg skulle skrive denne boken, men det måtte bli en del av livet deres også.

Nittedal, 28. februar 2007 (8. utgave)

David Elboth

Boken finnes også i PDF utgave: http://docplayer.no/13922283-Boken-om-linux-january-14-2016.html Men den er ikke like oppdatert.

Stor takk til gruppen Nuug Norge (Norwegian UNIX User Group) som hjalp til å gjøre det mulig å oppdatere denne boken til nyere utgave.

1: Linux-boken[rediger]

  • Linux eksamen
  • Forslag til Linux maskiner
  • Å bruke Linux
  • Prøv og lær
  • Bokens forklaringer
  • Linux og GNU
  • Siste versjon av Linux-kjernen
  • Forskjellige Linux-distribusjoner
  • Oppgaver til kapittel 1

Linux eksamen[rediger]

Innledende sertifisering som "Linux Essentials Exam" er helt ok for vanlige brukere. Det er tilpasset sluttbrukere som skal installere Ubuntu eller Fedora. De mer avanserte sertifiseringene er innrettet på visse deler av Linux, og veldig systemnære funksjoner på Linux med tilhørende tjenester. De mer avanserte sertifiseringene dokumenterer administrator-kompetanse overfor arbeidsgiver. Så dette kan være helt på sin plass. Se også informasjon om studiemateriell og sertifisering hos Linux Professional Institute og Wikipedia.

Boken ligger på nivå "Linux Essentials Exam" og nivå "LPIC-1" i Boken om Linux. Visse deler berører også nivåene "LPIC-2" og "LPIC-3".

Forslag til Linux maskiner[rediger]

De færreste laptop-produsenter velger å tilby linux til privat bruk per dags dato er det som leveres uten Windows.

Multicom: http://www.multicom.no/gaming-laptop/cat-c/c1000042

http://www8.hp.com/us/en/campaigns/ubuntu/index.html

http://www.dell.com/learn/no/no/nobsdt1/campaigns/dell-linux-ubuntu-en

Du kan også kjøpe stasjonære maskiner fra komplett\multicom på den måten slippe Windows-lisens. Enten ferdigbygd eller bygge selv.

Å bruke Linux[rediger]

Denne boken er primært skrevet for de som ønsker å lære å bruke operativsystemet Linux til privat bruk. Boken kan også være nyttig for beslutningstakere (rådgivere, IT-sjefer, IT-direktører) i bedrifter som vurderer å bruke Linux i sin bedrift.

Boken forutsetter at du tidligere har brukt PCer eller arbeidsstasjoner, og at du har noe kjennskap til minst ett operativsystem, som MS-DOS, OS/2, SCO UnixWare, Solaris, HP-UX, Windows 10 eller eldre etc.

Linux er ikke et operativsystem, men kjernen i et operativsystem. Det er stor forskjell på en Linux-kjerne og en Linux-distribusjon. I resten av boken hvor jeg skriver "Linux" eller "Linux-operativsystemet" snakker jeg om en Linux-distribusjon. Med de fleste Linux-distribusjonene får vi nesten med alle Linux-kommandoene som er omtalt i denne boken.

Linux er så stort at jeg i en lærebok ikke kan gjennomgå alt. Jeg har konsentrert meg om det du får bruk for til daglig.

Selv om Linux er et stort og omfattende operativsystem, er det lett å bruke. Men som med de fleste ting, kan det virke vanskelig før du har lært det. Heldigvis er det ikke mye du trenger å lære før du kan begynne å bruke Linux. Allerede etter de seks første kapitlene vil du ha en god forståelse.

Prøv og lær[rediger]

For å få en god forståelse av hva Linux er og hvordan du bruker det, må du prøve eksemplene selv ved å trykke på tastene og se hva som skjer. Jeg forklarer deg hva du skal gjøre, og viser noen eksempler. For å huske og kunne bruke Linux-systemet må du øve. Tast deg gjennom eksemplene på hvordan kommandoene utføres.

De fleste kapitlene kan leses uavhengig av hverandre når du har basiskunnskapen på plass. Når du har vært gjennom de innledende kapitlene, kan du lese hvor du vil i boken. Hvis du for eksempel ønsker å vite hvordan du bruker tekstredigeringsprogrammet (teksteditoren) vi, kan du lese kapitlet om vi-editoren, uten at du har lest alle de foregående kapitlene. Oppgavene på slutten av hvert kapittel gir deg flere muligheter til å øve.

Nybegynnere kan se på https://linuxjourney.com/ på engelsk som er en fint side for nybegynnere.

Bokens forklaringer[rediger]

De fleste kapitlene har en innledning som forteller hva kapitlet handler om. Det gjør det lettere å finne fram til det du søker.

Boken forklarer hvordan de forskjellige kommandoene skal utføres. Hvis du for eksempel ønsker å vite dato og klokkeslett, forklarer jeg hvordan du gjør dette på følgende måte:

  1. Skriv date.
  2. Trykk Enter.

Linux viser nå den aktuelle datoen på skjermen, for eksempel:

[david@nittedal david]$ date

Fre Nov 29 20:23:28 CET 2005

Bildedato.png

Man kan legge til «date -u» for tidzone. For å sette opp tidsone: (ubuntu\debian) Skriv: sudo dpkg-reconfigure tzdata

Det du skal skrive, eller de tastene du skal trykke, er alltid markert med uthevet skrift. Beskjeder fra Linux markeres med kursiv, som vist ovenfor.

De fleste kommandoene til Linux gis ved å trykke på Enter-tasten. Lenger ut i boken vil jeg ikke skrive Enter i kommando-forklaringene. Det er underforstått at du må trykke på Enter-tasten for å få kommandoen utført. Hvis jeg bruker Linux' grafiske grensesnitt, vil du få muligheten til å bruke musa.

Andre kommandoer kan ha tilknytning til kommandoen jeg forklarer. Da refereres det til disse, for eksempel slik: Se også 'chmod' og 'find'.

Linux og GNU[rediger]

Linux bygger på operativsystemet Unix. Den første starten til en gratis versjon av dette operativsystemet kom da en gruppe datafolk fra Massachusets Institute of Technology i 1984 startet the Free Software Foundation og utviklet GNU GPL (General Public Licence), som betyr at man gratis kan distribuere, endre, eller til og med selge produktet. GNU-prosjektet utviklet de fleste hjelpeprogrammene til et gratis Unix-system, men manglet den viktigste delen - kjernen.

Bildegnu.jpg

Figur 1.1: Linux har arvet egenskaper fra forskjellige Unix-systemer. Den siste boksen, Linux 2000, viser hvor jeg tror Linux er om noen år.

Kjernen til Linux-operativsystemet er opprinnelig utviklet av Linus Torvalds fra Finland. Prosjektet startet 1991, da Linux kom ut i versjon 0.02 og først i 1994 var versjon 1.0 av Linux-kjernen ferdig. Operativsystemet burde kanskje vært kalt GNU/Linux, men Linux er blitt det navnet som er i vanlig bruk. Senere har flere frivillige på nettet vært med på å videreutvikle operativsystemet.

GNU prosjektet har også sendere prøvd å utvikle sin egen kjerne GNU Hurd. Denne kjernen har aldri blitt noen suksess.

År Versjon Kommentar
1991 0.01 Første utgave ikke anvendelig for noe praktisk formål. Linus som bruker og 10 kB kodelinjer
1991 0.02 Andre utgave kjører bash/gcc/make/sed/compress. Bare anvendelig for hackere. 20 kB kodelinjer og 100-150 hackere som brukere.
1992 0.96 Et funksjonelt operativsystem for Intel 80386. 40 kB kodelinjer og 1000 brukere. Støtter X Windows.
1993 0.99 Arbeidsfordeling på 5 primærgrupper. Over 100 programmerere bidrar nå. 100 kB kodelinjer og 20.000 aktive brukere. Dette året startet konvertering (fra Intel 80386 kode) til Digital Alpha-prosessoren.
1994 1.0 Nettverkskommunikasjon med TCP/IP er på plass. 170 kB kodelinjer og 100.000 aktive brukere.
1995 1.2 Linux er nå portert til både Alpha- og SPARC-arkitektur. 250 kB kodelinjer og 500.000 brukere.
1996 2.0 Støtte for mange forskjellige prosessortyper. Dette året startet arbeidet med å tilpasse Linux til symmetrisk fler­prosessering (SMP) på Intel. 400 kB kodelinjer og 1,5 millioner brukere.
1997 2.0.18 Publikasjoner (blader og bøker) om Linux eksploderer. 800 kB kodelinjer og 3,5 millioner brukere
1998 2.1 Antall programmerere som deltar i utviklingen av Linux er nå 100.000. SMP er endelig på plass. 1,5 MB kodelinjer og 7,5 millioner brukere.
1999 2.2 Komplett støtte for SPARC, UltraSPARC, Alpha, M68k og PowerPC. Støtter forskjellige varianter av x86-arkitekturen. Støtte for threads, video-grabbing, IPv6, NFSv3, Unix98-ptyer, NTFS, HPFS, UFS, QNX og Mac HFS. 1,6 MB kodelinjer og 12 millioner brukere.
2001 2.4 Støtte for 8 prosessorer, USB, og I2O-bussen. Bedre ressurshåndtering (minne og filsystemer), Java og multimediastøtte. 2,0 MB kodelinjer og 25 millioner brukere.
2004 2.6 Se tabellen under for mer informasjon.
2007 2.8 Nytt innebygd journalførende filsystem. Støtte for klynger (cluster-løsninger). Tidligere Linux-versjoner har bare via Beowulf-prosjektet støttet klynger. Støtte for hot-swap av PCI-kort. Dette vil gjøre det mulig å bytte PC-kort på arbeidsstasjoner og servere uten å måte skru av maskinen eller at operativsystemet må startes på nytt. Bedre bruk av strømstyring (CPU, disk).
2015 4.2 http://kernelnewbies.org/Linux_4.2
2016 4.4 http://kernelnewbies.org/Linux_4.4
2016 4.4.5 https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.5
2016 Mars 4.4.6 https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.4.6

Linux støtter i dag de mest populære prosessorarkitekturene (ARM\intel og AMD prosesssor), som eldre Intel I386, Sun SPARC, Digital Alpha, PowerPC, MC680XX og StrongARM. Linux er et fleroppgave- (multitasking) og flerbrukeroperativsystem med mange "Unix-egenskaper".

Siste versjon av Linux-kjernen[rediger]

I 2016 kom versjon 4.4.6 av Linux-kjernen. Denne nye kjernen har mange forbedringer ARM64, Btrfs, JFFS2, og bedre støtte for AMDGPU . I dag er dette standard i 4.4 kjernen. NUMA gjør det mulige å bruke flere prosessorer og man utnytte minne på en bedre måte. Antall prosessor som Linux nå kan støtte er 255. Med Intels støtte for PAE (Physical Address Extension) har du muligheten til å ha opptil 512 GB RAM. (Sokkel 2001-3 dual cpu Xeon QPI). Den nye Linux-kjernen har dynamisk håndtering på antall åpne filer. I tabellene under finner du flere nøkkeltall.

Funksjonalitet Begrensninger Funksjonalitet Begrensninger
Intern minne 64 GB Antall prosessorer 255 Antall brukere (UID/GUI)
4 milliarder Antall åpne filer Dynamisk Antall prosesser
1 milliard Filsystem-størrelse 16 TB
Standardisering Definering av subarkitektur med felles elementer på tvers av maskinarkitektur. Hyper-threadning Støtte for flere virtuelle prosesser i en fysisk prosessor
SkaleringBedre nedskaleringsstøtte. Støtte for mange nye prosessorarkitekturer. Multi-threadning Omskrevet og støtter nå Native POSIX Thread Library (NTPL) Styre-programmer
Bedre støtte for PCI, PC Card, ISA PnP). Oppdatert UDM (Unified Device Modell). Forbedret håndtering av moduler Maskinvare-støtte Støtte for PnP BIOS, USB 2.0, Irda og Bluetooth. ALSA (Advanced Linux Sound Architecture) overtar for OSS (Open Sound Systen). Oppgradering av V4L (Video for Linux). Bedre laptop støtte.


Funksjonalitet Begrensninger Funksjonalitet Begrensninger
FilsystemerMulig å bruke metadata i filsystemene. POSIX tilgangskontroll. Støtte for EVMS (Enterprise Volume Management System), XFS (Journal basert filsystem fra SGI) og JFS (Journal basert filsystem fra IBM). TCP/IP Støtte for IPsec (dvs. kryptering over IPv4 og Ipv6). Oppdatert støtte for Ipv4 og Ipv6. NFS
Støtter versjon 4 med bedre kryptering og autentisering. SMB Støtte for montering av CIFS (Common Internet Filesystems) filsystemer. Nettverks-filsystener
Støtte for AFS (bare les) og InterMezzo. Sikkerhet Linux Security Module (LSM). Bruker mekanismen "capabilities" for filtrering av brukertilgang. Binære moduler begrenser hva styreprogrammer kan gjøre. Virtuelt OS
Støtte for kjøre flere virtuelle OSer på en maskin Vedlikehold Enklere vedlikehold alt definert i .config-filen

Hvordan installere nyere kernel i fedora? https://fedoraproject.org/wiki/Kernel_Vanilla_Repositories

Laster ned og installerer nyeste repo:

[root@nittedal david]$ curl -s https://repos.fedorapeople.org/repos/thl/kernel-vanilla.repo | sudo tee /etc/yum.repos.d/kernel-vanilla.repo

Aktiver nyeste repo kernel vanilla:

[root@nittedal david]$ sudo dnf --enablerepo=kernel-vanilla-mainline update

Etter installasjonen må du restarte maskinen også:

[root@nittedal david]$ uname -r

Da burde du få: 4.6.0-0.rc1.git0.1.vanilla.knurd.1.fc23.x86_64.

Kernel 4.6 fedora.png

Hvis du har problemet med den nyeste\ eller vil deaktivere denne:

[root@nittedal david]$ sudo dnf --enablerepo=kernel-vanilla-stable update

Linus Torvalds (cropped).jpg

Figur 1.2: Linus Torvalds, hjernen bak Linux-kjernen.

Kenneth Lane "Ken" Thompson født 4 februar, 1943 har også vært med å utvikle linux fra bell labs nå google var utvikler til operativsystemet Unix.

Richard Stallman at Pittsburgh University.jpg

Richard Matthew Stallman (født 16. mars 1953) er en amerikansk programvareutvikler og fri programvare-forkjemper. Han er mest kjent som grunnleggeren av GNU-prosjektet og Free Software Foundation, som mannen bak programvarelisenser som GNU General Public License og som opphavsmannen til teksteditoren Emacs.

Forskjellige Linux-distribusjoner[rediger]

Du finner i dag flere forskjellige distribusjoner av Linux. Linux-distribusjonene varierer i installasjonsrutiner utvalg av drivere og tilleggsprogrammer.

Dette viser opensuse KDE desktop med ekstra tema

Figur 1.3: Slik ser skrivebordet ut i opensuse. Dette bildet viser det grafiske grensesnittet KDE under Opensuse leap Linux. Det fins også flere andre tilsvarende grensesnitt. Har lagt til Tema\sidebar gadget, skrivebordikoner etc for det skal bli nærmest windows 10

I denne boken handler om Fedora\Opensuse\Skolelinux

Fedora Gnome Workstation Live DVD (https://getfedora.org/nb/workstation/) Fedora Gnome Server Live DVD (https://getfedora.org/nb/server/)

Det finnes som Ubuntu\Kubuntu\Xubuntu

Også flere versjoner av fedora:

Nevner blant annet: Fedora XFCE: (https://spins.fedoraproject.org/nb/xfce/) Fedora KDE: (https://spins.fedoraproject.org/nb/kde/) Fedora LXDE: (https://spins.fedoraproject.org/nb/lxde/)

De mest populære distribusjonene av Linux i dag er:

Koster penger:

Red Hat Enterprise Linux (www.redhat.com)
SuSE Enterprice (www.suse.com)

Gratis (frie) for nybegynnere:

Vanskligere:

Ønsker du en komplett liste bør du gå inn på www.distrowatch.com eller https://livecdlist.com/. I dag er Ubunto,Fedora, Mint og Opensuse de Linux-distribusjonene som har lavest brukerterskel. I disse distribusjonene følger det bare med de programmene som en vanlig bruker har brukt for. I tillegg er brukergrensesnittet grafisk for alle programmer. Oppdatering av programvare er bare pek og klikk. I den andre ytterkanten finner du distribusjoner som Slackware og Gentoo som krever at man har kjennskap til de kommandolinjeprogrammene under Linux. Gentoo distribusjonen er et fint utgangspunkt hvis du for eksempel ønsker å lage din egen Linux-distribusjon som er optimalisert for en multimedia TV-boks.

For å konkretisere kommandoer og eksempler har vi konsentrert oss mest rundt Fedora (https://getfedora.org/) som er arvtakeren til gratisvarianten av Red Hat Linux. Fedora Linux og SuSE Linux har i dag over 60 % av Linux-markedet. I boken er de fleste GUI eksemplene basert på Fedora men du finner også mange eksempler fra Opensuse og Skolelinux (Debian). Du kan selv laste ned Linux-distribusjonene Fedora, SuSE, Skolelinux eller Debian fra nettet. Vi ser at Fedora Linux tar stadige markedsandeler fra Red Hat noe som har sammenheng med at du kan gratis laste ned Fedora Linux fra Internett. Har du installert Fedora Linux har du også muligheten til få gratis oppdateringer via Internett. Laster du ned Fedora, SuSE eller Debian distribusjonen fra nettet vil du få med mange forskjellige typer utviklingsverktøy, for eksempel C, C++, Fortran og Perl. Du vil også finne forskjellige servertjenester (Apache, Squid, NFS, MySQL), kontorverktøy (tekstbehandling, regneark, presentasjon og prosjektstyringsverktøy) og spill. Andre nyttige programmer som følger med er KDE, GNOME, GNU Emacs, Evolution, GIMP, Ekiga, MrProject, Mozilla Firefox, Perl, XFree86, BIND konfigurasjonsverktøy (enkelt verktøy for oppsett av DNS), CUPS-utskriftstjener, Sendmail og Postfix MTA. Både Fedora og Opensuse Linux har også støtte for USB 3.0-standarden og utvidet støtte for digitale mediaspillere og kamera.

Fedora Linux støtter Intel X86 og intel X86-64 bits maskinarkitekturen. Støtter også ARM: https://fedoraproject.org/wiki/Architectures/ARM

Ønsker du støtte for flere maskinarkitekturer bør du se på alternativene Red Hat, SuSE eller Debian. SuSE og Red Hat støtter IA64 (Itanium), PowerPC (IBM modellene eSeries, iSeries, pSeries) og IBM stormaskin S/390 (IBM modellene zSeries). Debian støtter hele 11 forskjellige arkitekturer. I kapittel 25 går vi igjennom Skolelinux som er 100% Debian-basert.

Oppgaver til kapittel 1[rediger]

Oppgave 1.1 Hva er Linux?

Oppgave 1.2 Hvilke forskjeller er det mellom Linux-distribusjonene?

Oppgave 1.3 Hvem står bak GNU?

Oppgave 1.4 Hva betyr GPL?

Oppgave 1.4 Hvilket år startet Linus Torvalds sitt Linux-prosjekt?

Oppgave 1.4 Hva er forskjellen mellom 2.4 og 4.6 kjernen?

Oppgave 1.5 Hva er de generelle forskjellene mellom Linux-distribusjonene?

Oppgave 1.6 Hva er nytt i siste versjon av Opensuse Linux og Fedora Linux (sjekk på nettet)?

Kap 2: Operativsystemet[rediger]

Linux-operativsystemet[rediger]

Uten programmer har du liten nytte av datamaskinen. Den er da bare en samling av elektroniske og mekaniske komponenter som du ikke kan bruke. Programmene kan deles inn i tre nivåer; grunnleggende oppstartsprogram innebygd i datamaskinen (BIOS), operativsystemet og brukerprogrammene som du kjører.

BIOS (Basic Input Output System) starter når du slår på maskinen. Dette programmet gjennomfører en del tester for å sjekke om maskinen fungerer slik den skal. Når testene er utført, starter det innlesing av programmet som kalles operativsystemet.

EFI bios (Extensible Firmware Interface) er for Apple maskiner, som ikke gir grafisk GUI for å tilpasse maskinvare\programvare til oppstartlasteren.

UEFI bios (Unified Extensible Firmware Interface) Er dagens bios der man får bedre sikkerhet Security boot eller mulighet å laste ned nyere firmware direkte fra UEFI.

Operativsystemprogrammet er ikke alltid bare ett program, men kan være en samling programmer. Det er operativsystemet som gjør det mulig å bruke maskinen. Operativsystemet fungerer som en administrator for maskinen og andre maskinressurser som skrivere og lagringsmedier, for programmene, og for deg og andre brukere. Vi skal nå se nærmere på de forskjellige oppgavene som operativsystemet utfører.

Linux kontrollerer[rediger]

Når du for eksempel trykker en tast på tastaturet, oversetter operativsystemet det signalet som sendes fra tastaturet inn til maskinen, og sørger for at det blir sendt et signal som får den bokstaven du trykte på fram på skjermen. Når du skriver ut en tekst, sørger operativsystemet for å starte skriveren og sende teksten slik at den blir skrevet ut.

Når du skal bruke et program som hører inn under operativsystemet, eller et annet program, henter operativsystemet det inn, og sørger for at du får tilgang til det.

Linux oversetter[rediger]

De fleste kommandoene i brukerprogrammer som tekstbehandling, regneark eller database kan ikke forstås direkte av maskinen. Operativsystemet virker som en oversetter mellom disse programmene og maskinen.

Operativsystemet virker også som en hjelper for brukerprogrammene. Programmene er laget for et bestemt operativsystem og ikke for en bestemt maskin. Dette gjør det lettere å lage programmer som kan utføre mange forskjellige kompliserte oppgaver, fordi programmet kan utnytte operativsystemet. Det blir enklere å flytte data fra en maskin til en annen. "Alt" som trengs, er at den andre maskinen bruker det samme operativsystemet.

Linux’ oppgaver[rediger]

Operativsystemet utfører også en rekke praktiske oppgaver. Med operativsystemet kan du klargjøre disketter for bruk (formatere), du kan finne innholdsfortegnelser på disker og disketter, og du kan kopiere og slette filer. Med et avansert operativsystem som Linux har du, som du senere skal se, en mengde muligheter.

Linux finner feil[rediger]

En viktig oppgave for operativsystemet er å kontrollere om alt virker som det skal. Operativsystemet finner feil og gir beskjed til deg om de feilene det har funnet. Mindre feil kan det rette opp selv. I andre tilfeller gir det deg beskjed om feilen og spør om hva som skal gjøres videre.

Flerbrukeroperativsystem[rediger]

Linux er et flerbrukeroperativsystem. Dette gjør det mulig for flere brukere å bruke maskinen samtidig. Dette blir gjort ved såkalt tidsdeling. Det betyr at operativsystemet deler tiden mellom de forskjellige brukerne.

Hvis for eksempel to eller flere brukere samtidig ønsker å skrive ut på den samme skriveren, ordner operativsystemet en kø og slipper til først den ene, så den andre osv. Hvis samme bruker kjører forskjellige programmer som alle skal bruke samme del av maskinen, fordeler operativsystemet på tilsvarende måte tiden mellom disse programmene.

Operativsystemet passer også på at dataene fra forskjellige brukere ikke blandes, og at en bruker ikke forstyrrer det en annen bruker gjør.

Hvis to brukere holder på med samme program, for eksempel et tekstbehandingsprogram, fordeler operativsystemet tilgangen til programmet. Hver bruker anvender det samme programmet, men de holder på med hver sine data.

Datamaskinen utfører sine oppgaver så raskt at du vanligvis ikke merker at det er andre brukere på maskinen samtidig.

Konsepter og teknologi[rediger]

Jeg skal nå se nærmere på noen av egenskapene til Linux, og forklare noen spesielle ord og uttrykk som brukes i forbindelse med Linux:

  • programmer og prosesser
  • bakgrunnsprosesser
  • ressursdeling og prioritet
  • mellomlagring, lagerveksling og sideveksling
  • instruksjonsdel og datadel

Programmer og prosesser[rediger]

Oppgaver som kan utføres av datamaskinen, kaller man ofte prosesser. En prosess kan være å lese inn data fra en fil, skrive ut et dokument, utføre en beregning eller kjøre et større program. En bruker kan ha flere prosesser i gang på samme tid.

Bakgrunnsprosesser[rediger]

Enkelte prosesser kaller man bakgrunnsprosesser. Det betyr at prosessene kjøres i bakgrunnen i forhold til terminalen (systemenheten eller X-terminalen) du sitter ved. Hvis du for eksempel ønsker å kjøre et program som tar flere minutter, kan det være kjedelig å sitte ved terminalen og vente på at dette skal bli ferdig. Du kan da kjøre programmet som en bakgrunnsprosess, og mens programmet utføres, kan du gjøre andre ting på terminalen.

Ressursdeling og prioritet[rediger]

Ressursene du har tilgjengelig, er for eksempel datamaskinens prosessor (CPU), internhukommelse, maskinvare (skrivere, plottere, eller eksternlager) og hele eller deler av et program. Linux sørger for å fordele tilgangstiden til disse ressursene mellom de enkelte brukerne og mellom den enkelte brukers forskjellige programmer. Linux gir hver av de ventende prosessene en prioritet. Prioriteten bestemmer i hvilken rekkefølge prosessene skal utføres. Ofte er rekkefølgen bestemt av den rekkefølgen prosessene har bedt om tilgang til ressursen. Prioriteten kan også bestemmes på annen måte:

Som bruker kan du påvirke prioriteten. Linux kan også ha lagt inn mekanismer som bestemmer prioritet, eller systemet kan være satt opp slik at det gir bestemte prioritetsfordelinger.

Mellomlagring og veksling[rediger]

Linux er bygd opp slik at bare en liten del av Linux befinner seg i internhukommelsen. De øvrige delene, som ikke er i bruk hele tiden, ligger lagret på harddisken. Linux leser inn disse delene når det er behov for dem. De blir lagt ut igjen på harddisken når det ikke lenger er behov for å ha dem i internhukommelsen.

Har man andre store programmer, kan de overflyttes mellom internhukommelsen og harddisken på samme måte.

En teknikk som noen operativsystemer bruker til denne type overføringer, kalles lagerveksling (swapping; to swap er engelsk for å veksle). Swapping betyr at hele programmer lastes inn og ut av internhukommelsen.

Sideveksling (paging) er navnet på en annen teknikk. Med denne teknikken overføres bare biter av programmet. Størrelsen på programbitene er som regel 1 kB, 2 kB eller 4 kB (1 kB er ca. 1000 tegn). Linux bruker sideveksling.

Instruksjonsdel og datadel[rediger]

Hvis for eksempel fire brukere samtidig bruker samme programdel i OpenOffice (www.openoffice.org) sier man at de bruker den samme instruksjonsdelen av programmet. Hvis denne er på 100 kB, vil dette ikke føre til at plassbehovet i internhukommelsen er 400 kB (100 x 4), men atskillig mindre, for eksempel bare 250 kB. Instruksjonsdelen av programinstruksjonen er nemlig felles, mens datadelen er spesiell for hver bruker.

Linux og arkitekturstøtte[rediger]

Linux er et flyttbart operativsystem (støttes i dag på plattformene Intel, SPARC, Alpha, PowerPC, MCXXX og StrongARM), eller portabelt som det også kalles. Det betyr at mange forskjellige prosessorarkitekturer kan bruke operativsystemet Linux. Fordelen er at de fleste brukerprogrammer er laget for et bestemt operativsystem og ikke for en bestemt maskin.

I praksis betyr det at "programmer" (kildekoder) du har lagret på en maskin under Linux, kan brukes på en helt annen maskin som også bruker Linux.

Linux-kjernen[rediger]

Linux er et omfattende program som er delt opp i mange større og mindre delprogrammer. Den viktigste delen av Linux kalles kjernen. Den ligger fast lagret i datamaskinens internhukommelse når du har startet opp maskinen. Det er kjernen som styrer ressursfordelingen mellom de forskjellige programmene og brukerne.

De fleste andre deler av Linux-operativsystemet brukes ikke hele tiden. Kjernen sørger for å hente inn disse delene av programmet fra harddisken til maskinens internhukommelse når det er behov for dem. Du kommuniserer med Linux-kjernen via et program som kalles skallet. Dette er illustrert i figur 2.1.

Linux-skallet[rediger]

Den delen av Linux som du ser mest til som bruker, er det Linux-programmet som kalles skallet. Dette er en slags oversetter mellom deg og de andre delene av Linux-operativsystemet. Du skriver dine kommandoer, og skallet oversetter slik at andre programmer og Linux-kjernen forstår hva du mener.

Det finnes flere forskjellige skallprogrammer som kan brukes med Linux. Jeg kan blant annet nevne Bourne Again Shell (bash), C shell with file name completion and command line editing (tcsh) og Z Shell (zsh). Det skallet som er mest benyttet, er Bourne Again Shell (bash).

Verktøy og hjelpeprogrammer[rediger]

I tillegg til skallet og kjernen inneholder Linux en rekke andre programmer som ofte kalles hjelpeprogrammer eller verktøy. De kan brukes hver for seg, eller du kan lage større Linux-programmer som benytter flere slike verktøy. Det finnes også en mengde andre verktøy som kan brukes som en del av operativsystemet Linux.<<BR>><<BR>>

En spesiell type nytteprogrammer er programmer som tekstbehandling, regneark og databaseprogram. Det finnes en mengde slike programmer som kan kjøres under Linux. "Kjøres under Linux" betyr at disse programmene kan kommunisere med Linux, det vil si at du kan kjøre programmene hvis du har installert Linux på din maskin. Du kan starte opp programmene fra Linux, og programmene bruker Linux når de utfører forskjellige funksjoner, for eksempel å kjøre utskrifter.<<BR>><<BR>>

Linuxoppbyggning2.png

Figur 2.1: Linux-oppbygging

Bruke Linux-kommandoer[rediger]

Du gir kommandoer til Linux via skallet. Hvis du for eksempel vil skrive ut innholdsfortegnelsen i en katalog, gjør du slik:

  1. Skriv kommandoen for innholdsfortegnelse ls.
  2. Du gir beskjed til Linux om å utføre kommandoen ved å trykke Enter.

Du får nå opp innholdsfortegnelsen. Denne kan for eksempel se slik ut:

batch

c-files

dhry.c

dok

mbox

norsk.inn

tekst

usr


Til de fleste kommandoene finner du tillegg. Med tilleggene kan du styre kommandoens funksjonalitet. Disse tilleggene består av opsjoner (ofte kalt argumenter) og filnavn (inndata). Under har jeg et eksempel:

tar -zxvf minfil.tgz

Her er tar kommandoen -zxvf tilleggene (opsjonene) og minfil.tgz filnavnet, det vil si filen som kommandoen skal behandle. I stedet for filnavn vil du ofte se ordet argument. I et argument brukes i noen tilfeller både filnavn og opsjoner blandet sammen eller bare opsjoner.

Når jeg vil vise deg at en kommando kan bruke tillegg (opsjoner) og filnavn så skriver jeg det på følgende måte:

Kommando [opsjon][filnavn]

eller

Kommando [opsjon][argument]

Kommandoen er navnet på det programmet eller den funksjonen som skal kjøres; den angis alltid først. Det skal som regel være et mellomrom mellom kommando, opsjon og argument (filnavn).

[ ]

Når opsjon står i hakeparentes, betyr det at den er valgfri, det vil si at du kan gi kommandoen uten noen opsjon.

...

Er det flere forekomster av en opsjon eller et argument, viser jeg dette med ...

-opsjoner

I de fleste tilfellene skal den første opsjonen innledes med - (bindestrek).

Argument betyr at du kan gi tilleggsbeskjeder om hva kommandoen skal virke på.

For å skille hva som skrives av bruker, og hva som skrives ut på skjermen av programmet, har jeg brukt følgende skrivemåte i eksemplene:

Det brukeren skal skrive, er uthevet med halvfet skrift: ls -la. Utskrift fra programmet på skjermen er skrevet i kursiv.

Eksempel:

elboth@suselap:~> '''ls -la

total 7433

&drwxr-xr-x 61 elboth users 2928 2004-04-02 10:51

drwxr-xr-x 4 root root 96 2004-02-02 02:10

-rw-r--r-- 1 elboth users 43827 2004-02-13 11:37 1002susenvidia.jpg

-rw-r--r-- 1 elboth users 82476 2004-02-13 13:26 1003yast.jpg

-rw-r--r-- 1 elboth users 74456 2004-02-27 19:55 1501C-montsuse.jpg

drwx------ 2 elboth users 112 2004-02-02 03:38 .AbiSuite

drwxr-xr-x 2 elboth users 72 2004-02-10 10:20 .acrobat

-rw-r--r-- 1 elboth users 2048000 2004-02-10 10:20 AcroN0

drwxr-xr-x 13 elboth users 424 2004-02-02 01:07

drwx------ 2 elboth users 128 2004-03-06 22:50 .adobe

-rw------- 1 elboth users 412 2004-03-14 19:32 alert.tx

drwxr-xr-x 2 elboth users 72 2004-02-06 08:40

-rw------- 1 elboth users 3978 2004-04-01 22:30 .bash_history

-rw-r--r-- 1 elboth users 1536 2004-02-02 01:06 .bashrc

drwxr-xr-x 2 elboth users 72 2004-03-19 22:14

drwxr-xr-x 2 elboth users 48 2004-01-30 12:57

-rwxr-xr-x 1 elboth users 6754423 2004-03-30 11:42 boken.gz

drwxr-x--- 2 elboth users 144 2004-03-14 21:01 cbi

drwx------ 3 elboth users 72 2004-02-13 08:18 .config}}

-rw-r--r-- 1 elboth users 1554 2004-03-14 20:47 osi.head_logo.gif

drwxr-xr-x 2 elboth users 240 2004-01-31 12:15 .crafty&lt

-rw-r--r-- 1 elboth users 5 2004-01-31 12:15 .craftyrc

elboth@suselap:~>

Et eksempel på hvordan en kommando med en opsjon og et argu­ment kan se ut er:

ls -t htm*

ls er en kommando som sender en innholdsfortegnelse på skjermen. Opsjonen -t gir beskjed om at innholdsfortegnelsen skal sorteres i kronologisk rekkefølge. Filene blir sortert etter årstall, måned og klokkeslett. De ferskeste filene blir satt på lista først, de eldste kommer til slutt.

Argumentet htm* gir beskjed om at innholdsfortegnelsen for alle filer med navn som begynner med htm, skal skrives ut til skjermen.

Konsole ikon.png

En kommando kan også skrives uten opsjoner og argumenter. Kommandoen utføres da i sin standardutførelse. Det betyr at kommandoen har en standardopsjon og et standardargument som brukes hvis ikke andre opsjoner og argumenter er oppgitt. La oss igjen ta kommandoen ls som et eksempel:

ls

Uten noen opsjoner eller argumenter gir denne kommandoen beskjed om at innholdsfortegnelsen til aktiv katalog skal skrives ut på skjermen.

Rør, filtre og omdirigering[rediger]

I Linux kan du lage nye kommandoer ved å koble sammen kommandoer. Et eksempel på en slik sammenkoblet kommando er:

ls | wc -l

Kommandoen ls lager først en innholdsfortegnelse. Kommandoen wc -l teller så antall linjer i denne innholdsfortegnelsen.

Slike koblinger mellom kommandoer kalles rør. Den engelske betegnelsen er "pipe". Jeg forestiller meg at den første kommandoen gir et resultat som så blir ført i et slags rør til den neste kommandoen. Denne utfører en ny operasjon på resultatet av den første kommandoen.

Man bruker symbolet | for rør. Når dette symbolet står mellom to kommandoer, betyr det altså at den andre kommandoen utfører sine operasjoner på resultatet av den første.

På denne måten kan du koble sammen mange programmer. Hvert program i en slik rekke utfører bestemte operasjoner på dataene. En annen måte å se dette på er at programmet filtrerer dataene før de sendes videre til neste program. Derfor kalles slike programmer også filterprogrammer.

I tillegg til at kommandoene har bestemte standardutførelser, så henter kommandoene data fra en bestemt kanal og skriver resultatet av behandlingen ut på en annen kanal. Kommandoen ls for innholdsfortegnelse hentet informasjon fra tastaturet og skrev resultatet ut på skjermen. Standard innkanal (inndata) for ls er derfor tastaturet, og standard utkanal (utdata) er skjermen. En vanlig rørkobling er da å koble standard utkanal fra et program til standard innkanal til et annet program.

Det er også mulig å forandre standard inn- og utkanaler. Hvis jeg for eksempel ønsker å skrive ut en innholdsfortegnelse et annet sted enn på skjermen, kan jeg gjøre det. Kommandoen ls > /dev/lp0

skriver innholdsfortegnelsen ut på skriveren i stedet for på skjermen.

Kommandoen

ls > datafil

skriver innholdsfortegnelsen ut på en datafil i stedet for på skjermen. Når jeg forandrer standard innkanal eller utkanal på denne måten, kaller jeg det å omdirigere dataene.

Redigere tekst[rediger]

Linux inneholder flere programmer for tekstredigering. De mest brukte er editorene ed (linjeeditor), red (linjeeditor), vi (skjermeditor), pico (skjermeditor), emacs (skjermeditor) og xedit (X-basert editor). Med de forskjellige editorene kan du skrive, slette, tilføye eller flytte tekst. Du kan også kopiere tekst fra andre filer. Den populære vi-editoren har meget avanserte teksthåndteringsverktøy.

Systemadministrator eller root[rediger]

Rootadmin.png

Systemadministrator kan starte og stoppe Linux. Det er systemadministrator som legger inn eller fjerner brukere. Systemadministrator sørger for å vedlikeholde Linux-systemet. Det betyr at de bruker en del kommandoer for å kontrollere systemets tilstand. De holder øye med hvor mye av systemet som er brukt. Hvis for eksempel lagringskapasiteten begynner å bli brukt opp, kan systemadministrator oppfordre brukerne til å rydde opp blant filene sine og slette dem de ikke trenger. Når du har installert Linux på din egen PC, har du muligheten til å være både systemadministrator og/eller vanlig bruker.

For å kunne gjøre en del av de oppgavene som hører til under systemadministrasjonen, må du ha tilgang til spesielle kommandoer som ikke kan brukes av den vanlige bruker. De som har denne spesielle tilgangen kalles systemadministrator eller root. Systemadministratorer har spesiell bruker-id (0) og gruppe-id (0) som gir dem tilgang til de aktuelle systemadministrasjons-kommandoene.

En del av stoffet i boken forutsetter at du er systemadministrator (root). For mange kommandoer er det satt inn kommentarer myntet på systemadministrator (root). Dette stoffet er noen ganger vanskeligere å forstå enn det øvrige. Du som er vanlig bruker og har en ferdig oppsatt maskin, kan gjerne hoppe over disse kommentarene, uten at det ødelegger for din forståelse av det som forklares.

Oppgaver til kapittel 2[rediger]

Oppgave 2.1 Hva betyr det at Linux er et flerbrukeroperativsystem? Er Windows 10 eller Windows 8.1 et flerbrukeroperativsystem?

Oppgave 2.2 Forklar hvordan mellomlagring og veksling fungerer under Linux?

Oppgave 2.3 Vil to identiske programmer på en og samme Linux-maskin bruke dobbelt så mye minne som ett program? Hvordan fungerer dette under Windows?

Oppgave 2.4 Hva er forskjellen mellom Linux-kjernen og Linux-skallet?

Kap 3: Installasjon[rediger]

Jeg har også i et avsnitt i dette kapittelet sett på hvordan du kan installere Opensuse Linux. Installasjon og konfigurasjon av Skolelinux (Debian) er dekket i kapittel 25.

Før installering av Linux[rediger]

Før du setter i gang med å installere Linux, er det viktig med planlegging, spesielt hvis du allerede kjører andre operativsystemer på maskinen (PC). Det er en stor fordel å velge en PC som benytter seg av standard PC-komponenter. De mest populære PC-komponentene finnes det nemlig Linux-drivere (styreprogrammer) til.

Før du begynner installeringen, bør du skaffe deg en oversikt over hvordan PC-hovedkortet og PC-kortene er satt opp med hensyn til minneadresser, I/U-adresser, DMA-kanaler og maskinvare-interrupter (avbruddslinjer). Har du Windows fra før, finner du all teknisk dokumentasjon i Windows. Fra Windows velger du Start> Kontrollpanel> System>. Alternativ kan du bruke explorer\mappe ikonet høyreklikke "Denne PCen" og velge Egenskaper. Siste måte er å sjekke msinfo32 ved å kjøre fra startmenyen.

width=800

Figur 3.1: Systemoppsett avlest fra Microsoft Windows 10 (System egenskaper)

Her har du en enkel sjekkliste:

  • maskinarkitektur - type (ix86, SPARC, Alpha, PowerPC, MC68XXX, MIPS, StrongARM)
  • harddisker - type (SATA/SAS/PCI-E), størrelse, parametere
  • UEFI/BIOS-type - minnestørrelse
  • DVD-ROM-type (SATA, SAS), parametere
  • skjermkort - type, parametere (hvor mye RAM)
  • skjerm - produsent, modell, tekniske data
  • SCSI-kort- type, parametere
  • nettverkskort - type, parametere
  • lydkort - type, parametere
  • båndstasjon/kort - type, parametere
  • mus - type, parametere
  • I/U-porter - type (RS232, parallellport, USB)
  • Maskinvare på USB som kamera, skriver etc.

Det er viktig at du gjennom hele Linux-installerings-prosessen noterer deg alt du gjør, og hva du taster inn. Hvis ting går galt, vet du hvor det gikk galt, og hvor du var i installerings-prosessen. Pass på at du har alt av dokumentasjon til din egen maskinvare og til den Linux-distribusjonen du skal installere. Disse rådene er nyttige uansett hvilket operativsystem man skal installere fra bunnen av.

Har du en moderne PC med PCI-baserte enheter, vil Linux ved installasjon i de fleste tilfellene finne alle maskinvarekomponentene dine. Er du usikker om Linux støtter din maskinvare, kan du for eksempel sjekke Fedoras, Red Hats, SuSEs, Debians (Skolelinux) eller Ubuntu egen liste over maskinvare som støttes (Linux Hardware Compatibility List).

UEFI[rediger]

Skulle du få problemet med UEFI er rEFInd Boot Manager redningen som funger helt til Windows 10 og de fleste linux distribusjonene. Da det fremdeles er ikke alle maskiner UEFI\Bios boot funger optimalt med grub2 ennå.

Endre Windows-partisjon[rediger]

I den videre installasjonen forutsetter jeg at du har ledig plass på harddisken din til Linux. Ledig plass betyr ikke ledig plass på en Windows-partisjon (C..Z) men at det er fysisk ledig plass utenfor din Windows-partisjon. Tar Windows-partisjonen din hele disken kan du redusere størrelsen på Windows-partisjonen med programmer for eksempel PartionMagic og fips. PartionMagic må kjøpes og er enkelt å bruke eller Partition Master Free 10.8.

1. Ta komplett sikkerhetskopi av Windows-partisjonen/dokumenter eller filer 2. Start programmet, enten i Windows eller i bios, det finnes f.eks Ultimate boot CD (Ranish Partition Manager) men er ikke egnet for UEFI bios. 3. Du kan eventuelt bruke Hirens boot CD.

OpenSuSE Linux-distribusjon[rediger]

Skolelinux/DebianEdu er Linux-distribusjonen tilpasset Skole. Ønsker du å installere Skolelinux/DebianEdu finner du siste versjon på https://wiki.debian.org/DebianEdu/. Mer beskrivelse på hvordan du installere og setter opp Skolelinux finner du i kapittel 25. SuSE Linux krever noe mer enn Skolelinux. Siste versjon av SuSE Linux finner på https://www.opensuse.org. Fra hjemmesidene til OpenSuSE kan du til noen maskinarkitekturer laste ned ferdige ISO-filer. Du lager selv dine egne DVD fra ISO-filene. Hvis du kjøper en komplett pakke fra SuSE får du tillegg til gratis support også med en mer omfattende distribusjon. I vår enkle beskrivelse under forutsetter vi du bruker DVD\minnepenn som media. Vær oppmerksom på at ikke alle SuSE distribusjoner kan lastes ned som ferdige ISO-filer. Alternativet for deg er da installere OpenSuSE direkte fra Internett. Den kan installeres over nettverk.

Det er viktige å merke seg IP-adressen til kilden du laster ned fra. For nybegynnere kan installasjonen virke komplisert.

Vi antar videre at du ha media på DVD\minnepenn. Du starter installasjonen med laste inn Opensuse Linux fra DVD\minnepenn. Maskinen din må kunne laste inn operativsystemet fra DVD\minnepennen din. Fra første skjermbilde velger du "Installation". Tilsvarende som under Fedora. Første del av installasjonen er delt inn i følgende valg:

  • Valg av språk (velg norsk eller engelsk språkdrakt)
  • Valg av tastatur (her bør du velge norsk)
  • Type mus
  • Antall og type partisjoner (er du usikker velger du standard)
  • Programvarekomponenter
  • Oppstartsprogram
  • Tidssone og språk

Lar du SuSE håndtere partisjonene (Windows partisjoner og Linux filsystemer) vil det ble tatt hensyn til om du har FAT (Windows) eller NTFS (Windows 10 eller eldre) partisjon fra før av. På valget programvare kan du velge et standard system eller velge "Detaljert valg" hvor du også kan få med deg alle servertjenester (som for eksempel Apache, Samba, NFS) og et komplett Linux utviklingsmiljø. Til slutt er det bare å bekrefte og innstallasjonsprogrammet begynner å kopiere fra DVD-plata til harddisken. Etter at kopiering av media må du gjennom følgende valg:

  • Spørsmål om passord for root (dette er det samme som systemansvarlig)
  • Type nettverkskonfigurasjon (i mange tilfeller kan du velge det som er foreslått)
  • Sjekke noter og oppdateringer (det er viktige at du leser igjennom denne filen)
  • Autentiseringsmetode for maskinen din. Her velger du om du har din egen server eller om maskinen skal knyttes opp mot en server.
  • Definere lokale brukere (du kan ikke bare ha definert systemansvarlig)
  • Skjerm og skjermkort
  • Skriverkø med tilhørende skriver

Ulikt Fedora finner Opensuse Linux automatisk alle Windows-partisjonene dine og er et fornuftig første valg for de som er ferske Linux-brukere.

Du vil finne en komplett logg over installeringen i filen /tmp/install.log etter omstart av systemet. Denne loggen er grei å ha som dokumentasjon på hva som er installert. De siste notene finner du filen /usr/share/doc/release-notes/RELEASE-NOTES.en.rtf

Du finner også en egen html-versjon som har filendelsen *.html. Innholdet av den ser best med en nettleser som for eksempel Mozilla firefox.

I resten av kapittelet ser vi på en standard Fedora installasjon.

rsync[rediger]

rsync "options" "source" "destination" (Valg\kilde\plassering) -v : verbose -a : archive mode (Arkiv-modus) -z : compress file data (Komprimer fildata) h : human-readable (Menskelig-tilgang)

Installere på fedora: yum install rsync

Debian: apt-get install rsync

rsync -Pavy dl.fedoraproject.org::fedora-stage/16-Final.RC1/Fedora/$(uname -i)/iso/Fedora-16-$(uname -i)-DVD.iso

Torrent[rediger]

For fiberbrukere (På grunn av ofte lik opplasting\nedlasting) Kan det være lurt å vurdere torrent, da kan man få høyere hastighet hvis mange deler på image. Men for de andre DSL\Coax\mobil bredbånd brukere bør dette gå tregere.

http://www.bittorrent.org/beps/bep_0005.html

IPXE & PXE[rediger]

Det er mulig å installere fra internett\LAN Til dette trenger du installasjonskript: (install.ipxe:) #!ipxe prompt -k 0x197e -t 2000 Press F12 to install CentOS... || exit set base http://mirror.centos.org/centos/6/os/x86_64 kernel ${base}/images/pxeboot/vmlinuz stage2=${base}/images/install.img ksdevice=${netX/mac} initrd ${base}/images/pxeboot/initrd.img boot

Du trenger å sette opp DHCP serveren for å gi tilgang til dette:

host centos { hardware ethernet 00:1b:11:64:0a:66; option root-path iscsi:10.0.0.6::::iqn.2010-04.org.ipxe.dolphin:storage"; filename "http://10.0.0.6/boot/install.ipxe"; } Nettverkkortet må støtte IPXE for dette skal virke.

Ellers bør du lese disse hvis du ønsker å vite hvordan det gjøres.

Det bør skrives litt om: http://wiki.mate-desktop.org/download Et tillegg for de fleste distribusjonene som burde være en del av.

Fedora Installasjon[rediger]

Forbedrelse før installasjon[rediger]

Først bør du sjekke om maskinvaren er støttet: https://access.redhat.com/ecosystem/

Stort sett pleier fedora gjøre det ganske bra på drivere. Med untakk av det nyeste AMD skjermkort og trådløs av spessielle typer. Intel\AzureWave Broadcom pleier stort sett å gå ganske plug an play.

Men spessielle trådløs\nettverkkort f.eks Killer™ Wireless-AC kan være vanskeligere å få fungere.

Fedora-operativsystemet[rediger]

Ønsker du siste versjon av Fedora Linux kan du laste det ned fra nettet (https://getfedora.org/). I dette kapitlet skal jeg forklare hvordan du kan installere Linux. Linux er gratis, og ingen enkel organisasjon eller enhet har ansvar for utgivelse av nye versjoner og distribusjon av programvaren. Derfor kan hvem som helst sette sammen og distribuere Linux-programvaren. Jeg har her konsentrert meg om hvordan Fedora Linux installeres. Jeg har ikke diskutert alle installasjonsvariantene, det hadde tatt en hel bok. Forklaringen av installasjonen er mest mulig sentrert rundt en "standard" installasjon.

Under installasjons av f.eks fedora bruker du Ctrl+Alt+F6 for å komme til tekstkommando. Her kan du bruke f.eks lspci eller lsusb og fdisk -l.

Du bruker Ctrl+Alt+F1 for å komme tilbake til installeringen.

Du finner mere informasjon på: Fedora installering avansert

width=800

width=800

Forskjellen mellom Fedora og Redhat enterprice[rediger]

Mens fedora ofte har hyppige utvidelser 1-2 år med oppdateringer har Redhat enterprice 10 år med oppdateringer Redhat gir support for bedrifter. Men frie fedora må man bruke dokumentasjon eller forum for å hjelp hvis man ikke kjenner noen som kan hjelpe.

Fedora Linux-distribusjon[rediger]

Ønsker du siste versjon av Fedora Linux, kan du laste den ned fra https://getfedora.org/nb/workstation/download/. Har du bare Windows installert på PCen, kan du laste ned ISO-image filene enten med http (via nettleser) eller med ftp (ftp-protokollen). Har du Linux installert på PCen, har du muligheten til å bruke ftp eller ncftp til nedlastingen. Fordelen med ncftp er at du kan fortsette å laste ned etter brudd. Det er mest vanlig å laste ned ISO-imagene konvertere disse til komplette diskbilder (katalog-struktur) med DVD-brenneprogrammet. Det raskeste er å laste ned imagene "lokalt" fra for eksempel

http://ftp.uninett.no/linux/Fedora/releases/23/Workstation/.

Når du har lastet ned ISO-imagene, bør de sjekkes. Det enkleste er å laste ned sjekksumfilen md5sums\sha256sum. Filen md5sums\sha256sum finner du i samme katalog som ISO-imagene. Ved å sjekke mot sjekksumfilen får du verifisert at ISO-imagene ikke er blitt ødelagt under nedlasting.Sha256sum gir større sikkerhet mot feil derfor anbefales det å bruke dette. For Linux distribusjonen gjøres dette slik:

Installere fra nett

[root@nittedal /root]# md5sum Fedora-Workstation-netinst-x86_64-26.iso

[root@nittedal /root]# sha256sum Fedora-Workstation-netinst-x86_64-26.iso

Eller hvis du har Live DVD-plate

[root@nittedal /root]# md5sum Fedora-Workstation-Live-x86-25-1.3.iso [root@nittedal /root]# sha256sum Fedora-Live-Workstation-x86_64-25-1.3.iso

Installasjons DVD Foreløpig ikke bygget

[root@nittedal /root]# md5sum Fedora-26-x86_64-DVD.iso

[root@nittedal /root]# sha256sum Fedora-26-x86_64-DVD.iso

Disse kommandoene tar tid og du kan derfor ta deg en pause fra maskinen. Til slutt kommer det en kode på skjermen. Denne koden skal sjekkes mot sjekksumfilen md5sums\sha256sum. Ved hjelp av Linux cat-kommandoen (type under DOS) ser du innholdet i sjekksum filen.

[root@nittedal /root]# cat md5sums

[root@nittedal /root]# cat sha256sum

-----BEGIN PGP SIGNED MESSAGE-----

Hash: SHA256

f38d1aca6211b6bbb2873a550f393d03866294e3e5094256feb4cd647c25a310 Fedora-Workstation-netinst-x86_64-25.iso

a91eca2492ac84909953ef27040f9b61d8525f7ec5e89f6430319f49f9f823fe Fedora-Live-Workstation-x86_64-25-1.3.iso

-----BEGIN PGP SIGNATURE-----

Version: GnuPG v1.2.6 (GNU/Linux)

iQIcBAEBCAAGBQJWM9N7AAoJEDJHTPg07Jy6vLQP/2m9NYWcPo8cIZDw7fq+u5LC g50R+8TQlY76LMzv0NAuIsx6pw3JW/BZSRVd74Jlg+cPK6te9XVmJ2HS9WoSWvPw T821eRRbV8ou3JthST/ZPbcdy1L3Qz6Xbfu1u7LwE4yjgh+8fQJ7ZKANpchEuOhk j9JK45vwbgUj9gWSQghoe+2dXOtTmtJAnPjTirYmeB0JJubwjEgT+O9y+EaUXABs oKTUH2ej6qsLSWjbjcH3bxjaQwvzZKEN3KgKyFIBpIdeCVMp/JiLqHwQ8Fqtwsu9 j2sv7oB+arE/RjOprgC6TDgbx753zoFmHo0maiCMCCFfSDsea8pHay3n7u/Exr/8 8XE9UFXRMnFPFmdY21uE8SIilnE/Ig3BAqCIo2qN/8gx6bEAIaC10B+h7gtS2D46 J5982pneqyw88MCLUIN27kx59vTr9N6DNPomz5VEgf2J7rmfE3ZbrIS45r2zJPjt sbr6mjmJrx+sPWx5Ie0pgkjMbgQeZ8yN4GegyJwwhjRIoYZl3W7QyAaYJbKRfFPP hn+oOoe3RB8Jhhoma29MezDesL9t8wafmPelp5sNU02ORvuhvwcpKdmPyku0VzI+ PuYzDB19DCNjHV3UKMQ2BlR6m1AevCtra/WDqeXliwFWGT//iQjIBMwB4o2byxFe R3cfguVlycgsPAIPKhKW =Jvm2

-----END PGP SIGNATURE-----

Hvis du ønsker å laste ned dokumentasjon til Fedora Core 26 kan du gjøre dette fra Fedora sine hjemmesider (https://getfedora.org/). Dokumentasjonen finnes også som en egen ISO-fil. Du finner en egen md5sums-fil til denne. Disse linjene skal være identiske med de enkelte sjekksummene. Hvis de ikke er identiske, er det ikke noe poeng å brenne ISO-imaget. Du må da laste ned imaget på nytt. Selve brenningen av CDen kan du gjøre under Linux eller Windows. For å sjekke ISO filen i windows (Windows 10 eller eldre) kan du bruke: MD5 & SHA-1 Checksum Utility https://raylin.wordpress.com/downloads/md5-sha-1-checksum-utility/

Du kan brenne platen med K3b (KDE) eller Brasero (Gnome)for linux. I Windows kan du bruke Nero eller CDBurnerXP: Free samt Free ISO Burner. Husk også på å brenne som iso fil det vil si filen må pakkes ut ved brenning.

For å lage en minnepenn med image (Windows) prøv Universal-USB-Installer Eller

Bruk kommandoen i linux:

root@nittedal /root]# dd if=Fedora-Live-Workstation-x86_64-26-3.iso of=/dev/sdb bs=512k

Første er iso filen du skal bruke så kommer der minnepennen er plassert, bs står for blocksize som er 512 kb er anbefalt.

Installeringsoversikt[rediger]

I dette kapitlet skal jeg beskrive hvordan du installerer Fedora Linux, men den generelle metoden for installasjon er den samme uansett hvilken Linux-distribusjon du bruker. Du skal:

  • identifisere maskinvarerepartisjonere harddisken(e) slik at det blir plass til Linux
  • starte opp Linux-installasjonen (CD, FTP, NFS, HTTP etc.)
  • definere Linux-partisjoner
  • definere filsystemer og veksellager (swap)
  • installere Linux-distribusjonen på de nye filsystemene
  • installere og konfigurere maskinvare
  • installere applikasjonsprogramvare på de nye filsystemene

Fedora Linux har to installeringsprogrammer, et tegnbasert og et grafisk. Begge installeringsprogrammene leder deg gjennom installerings-prosessen og automatiserer ett eller flere av stegene omtalt ovenfor. Installerings-prosessen er beskrevet i detalj på Fedora sin hjemmeside (fedora.redhat.com). Du kan også laste ned dokumentasjonen og lage din egen dokumentasjons-CD.

Linux og tastaturet[rediger]

Under selve Fedora-installerings-prosessen har taster og funksjonstaster faste funksjoner. Med piltastene eller musen kan du forflytte deg mellom de forskjellige feltene.

Velger du en tegnbasert installasjon, kan du flytte deg fremover med [Tab] og flytte deg bakover fra felt til felt på skjemen med [Alt] og [Tab]. Ønsker du å velge et felt, trykker du på mellomromstasten eller Enter-tasten direkte.

Velger du en tegnbasert installasjon, merker du eller fjerner du merkingen av en avmerkingsboks ved å trykke på mellomromstasten. Trykker du på funksjonstasten F12, blir feltverdien lagret, og du går videre til neste skjermfelt.

Når du starter (booter) opp Linux med installerings-platen, har du allerede et fleroppgave- og flerbrukeroperativsystem som gjør det mulig for deg å ha flere virtuelle skjermer.

Du kan når som helst i installerings-prosessen veksle mellom disse virtuelle skjermene. Under installerings-prosessen er de viktigste skjermene skjerm 1, som gir deg installasjons-dialogen, og skjerm 3, som gir deg installasjonsloggen. Velger du en grafisk installasjon, er det fornuftig å holde seg til skjerm 7 (X Windows). Har du valgt en grafisk installasjon er det bare å klikke med musa hvis du ønsker å gå forover (Next) eller bakover (Back) under installeringsprosessen.

Velge installeringsmetode[rediger]

Installeringsvalget "Oppstart fra DVD-ROM eller CD-ROM" bruker du når maskinen kan laste Linux-operativsystemet direkte fra en CD som har oppstartspor (boot-spor). Du har da en nyere PC (BIOS\UEFI) som støtter standarden for Blueray-ROM. Mediet brukes oppstartskjernen boot.iso under katalogen images på første plate. Har du eksterne lagringsenheter som er USB-basert brukes oppstartskjernen diskboot.iso i samme katalog som for intern DVD.

Ønsker du å foreta installasjonen via NFS, FTP eller HTTP må du lese RELEASE-NOTES som følger med på første CD-ROM eller DVD-ROM-platen. Denne installasjonsmetoden krever at du har kopiert alle Fedora Linux-filene til en lokal disk (DOS/Windows). Har du en Linux- eller Unix-maskin<<FootNote( Det er også mulig aa kjøre en Windows(r) XP Professional eller Windows(r) 10 maskin som NFS-tjener.)>> som er satt opp i nettverket ditt, kan du alternativt installere via NFS. Det eksterne NFS-filsystemet kan være en del av en harddisk, hele harddisken eller en delt Linux CD-ROM-plate. Har du satt opp en FTP-server som har Linux-filene, har du muligheten til å installere direkte fra FTP-serveren. FTP-serveren kan også være plassert på Internett. Det siste alternativet er HTTP-server. Her kan du installere Linux på PCen fra en HTTP-server.

Mer utfyllende beskrivelse av hvordan du kan laste ned andre alternative oppstartskjerner, (http://gnome-look.org/content/show.php/Gort+Plymouth+Splash+Theme?content=163850) eller (http://kde-look.org/index.php?xcontentmode=35x45). Fra de enkelte oppstartskjernene kan du igjen velge forskjellige installeringsmetoder for operativsystemet Fedora Linux.

Videre i denne forklaringen av installasjonen antar jeg at du installer fra CD-ROM eller fra en DVD-CD.

Oppstart[rediger]

Du begynner installeringen av Fedora med å plassere Fedora CD\DVD-platen i PCen eller arbeidsstasjonen, deretter slår du på maskinen. Hvis maskinen din har muligheten til å starte opp direkte fra minnepenn, noe de fleste nye PCer har går dette raskere en plate.

Starter du Linux-installasjonen fra DVD\CD eller minnepenn, vil det komme opp en oppstartsmeny på skjermen. Her blir du presentert for en del alternativer.

width=800

Figur 3.2: Oppstartsskjermbilde

( Start Fedora live ) Starter fedora på vanlig måte.

( Trobleshooting -> Run a memory test ) gjør du kan teste rambrikke for feil.

Trykker du (Trobleshooting -> Start Fedora live in basic grafic mode) for du mer hjelp med oppstartsvalgene.

Ellers kan du velge å starte fra harddisk som siste alternativ.

Trykker du (Trobleshooting -> Test this media and start fedora) blir platen testet for feil for så å starte manuelt. Greit å teste hvis platen har riper\smuss. For mere informasjon sjekk under denne:

Test av media (CD-plate)[rediger]

Et nytt menybilde gir deg muligheten til å teste om CD-platen er i orden.

width=800

width=800

Figur 3.3: Test av media

Denne opsjonen gjør det samme som sjekksumprogrammet md5sum eller sha256sum. Du kan her teste alle CD-platene. Har du testet CD-platene på forhånd velger du «skip» og starter installasjonen.

Velge språk og tegnsett[rediger]

Når du har trykket på Enter, blir du ønsket velkommen til Fedora Linux. Etter at teksten er lest kan du her trykke next for å komme videre. Det kommer opp et skjermbilde hvor du har muligheten til å velge språket som skal benyttes under installerings-prosessen.

Skjermbildet er delt i 2. Høyre side av skjermen viser deg dine valgmuligheter. Venstre skjermside gir deg informasjon om de forskjellige valgene. Du kan i venstre skjermbilde også lese kommentarer til denne utgaven (Release Notes) fra Fedora. Ønsker du ingen form for hjelp, kan du trykke på knappen skjul hjelp (Hide Help). Jeg anbefaler at hjelpesidene (Online Help) og kommentarnotatene leses. I dette skjermbilde (Language Selection) velger du norsk (Norwegian).

width=800

Figur 3.4: Velge språk

Tastatur blir automatisk satt til språket som blir valgt. I eldre varianter av Red Hat Linux (lavere versjoner enn Red Hat Linux 7.3) var det norske tegnsett basert på ISO 8859 latin 1 tegnsett med støtte for de norske tegnene Æ, Ø og Å. Dette er det samme tegnsettet som også Microsoft Windows 9x bytter seg av.

Partisjonering[rediger]

Etter språk og tegnsett kommer du inn i menybildet for partisjonering av harddisken. For de fleste brukere kan man velge forvalt utforming av partisjoner. Velg de stasjonene du vil bruke for denne installasjonen. Du har også muligheten å velge avansert konfigurasjon for lagring.

width=800

width=800

width=800

Figur 3.6: Valg av partisjonering

Konfigurere nettverk[rediger]

I neste skjermbilde får du spørsmål om å konfigurere nettverkskort. Du får ikke spørsmål om nettverkskort i maskinen hvis Linux ikke finner nettverkskortet ditt. Selv om installeringsprogrammet ikke finner nettverkskortet, kan Linux-distribusjonen ha 100 % støtte for nettverkskortet. Du må i så fall konfigurere nettverkskortet senere, etter installeringen. Nettverksdrivere settes opp som en modul. Du finner moduler i /lib/modules/4.2.3-300.fc23.x86_64/kernel/drivers/net/. Sjekk fra Windows hvordan nettverkskortet ditt er satt opp. Kjør deretter /sbin/modprobe programmet med driver navn og oppsettet til kortet. Syntaksen er: modeprobe nettverksdriver IO=xxx irq=xx dma=xx xcvr=xx etc.

Får du dette til å virke manuelt kan du senere definere nettverksdriver med tilhørende nettverksparamtere med # neat (Fedora). Neste gang du laster opp maskinen vil den nye nettverksdriveren med tilhørende parametere lastes opp automatisk.

Normaltsett bør ikke dette trenges å settes opp hvis det er RJ45 (Gigabit kort). Unntaket er usb baserte mobil bredbånd\trådløse usb enheter som man må gjøre dette med.

F.eks:

https://github.com/abperiasamy/rtl8812AU_8821AU_linux

Er et sted å starte.

Ønsker du å lære mere kommando kan: Engelske fedora dokumentasjon Comando line interface være stedet.

Hvis du startet Fedora-insteringen via FTP, NFS eller HTTP får du heller ikke spørsmål om nettverkskort. Hvis du ikke setter opp nettverkskommunikasjonen, vil Linux-maskinen ikke ha muligheten til å snakke med andre maskiner via nettverkskortet. Installeringsprogrammet prøver å analysere og identifisere nettverkskortet. Hvis du har et kjent kort, vil installeringsprogrammet finne kortet med de riktige maskinvare-parameterne. Det neste som skal forklares, er hvordan IP-adressen skal settes opp.

Du har valgene DHCP eller fast IP-adresse. Velger du DHCP, må du ha en DHCP-server i nettet som kan gi deg en IP-adresse. Har du ingen DHCP-server, må du velge fast IP-adresse.

width=800

Figur 3.7: Nettverkskonfigurasjon (TCP/IP)

Oppsett av TCP/IP[rediger]

Oppsett av TCP/IP består av 3 x 1/3 menysider. I øverste delmeny kan du definere om nettverkskortet(ene) skal startes opp ved normal oppstart. Her kan du også manuelt sette om du skal bruke IPv4 eller IPv6 etc. I neste meny definerer du om maskinen skal være en DHCP-klient ved oppstart eller om IP-adresse skal settes manuelt.

I siste delmeny kan du sette standard gateway (angir hvilken IP-adresse som skal brukes når man skal nå maskiner i andre nettverk), primær DNS-navneserver (løser opp domenenavnene dine til riktig IP-adresse), sekundær DNS-navneserver og tertiær DNS-navneserver.

I eksemplet under har Pcen min fått navnet dellwork.elboth.no. Den har IPv4-adressen 192.168.1.10 med ipv6-adressen Fe80::f8c8:454b:a071:7865%16. Domenenavnet er elboth.no. Mer om netmask (255.255.255.0), nettverk (192.168.1.0) og kringkastingsadresse (192.168.1.255) i kapittel 22. Default gateway er IP-adressen til den vertsmaskinen som har utgang mot Internett. I mitt tilfelle er det 192.168.1.1 og Fe80::f8c8:454b:a071:7860%16. Denne vertsmaskinen bruker videre IP-forwarding mot det reelle nettverkskortet jeg har mot Internett. De siste IP-adressene er DNS (Domain Name Server). Med DNS kan man bruke navn som www.linux.no i stedet for en IP-adresse. Jeg har satt opp 3 DNS-servere. Det kan være greit med flere hvis en skulle gå ned, kan man fortsatt surfe på Internett.

Felt Eksempel på verdi
IP-adresse ipv4 192.168.1.10
IP-adresse ipv6 Fe80::f8c8:454b:a071:7865%16
Netmask 255.255.255.0
Nettverk 192.168.1.0
Kringkasting 192.168.1.255
Vertsnavn dellwork.elboth.no
Gateway ipv4 192.168.1.1
Gateway ipv6 Fe80::f8c8:454b:a071:7860%16
Primær DNS ipv4 217.118.32.12
Sekundær DNS 217.118.32.13
Tertiær DNS 193.216.69.12
Primær DNS ipv6 2001:4860:4860::8888
Tertiær DNS ipv6 2001:4860:4860::8844

Definere root-passord[rediger]

Installeringsprogrammet vil deretter spørre deg om root-passord (systemadministrator). Dette passordet bruker du senere når du skal logge deg inn for å konfigurere Linux-systemet, definere brukere og installere andre programpakker etc. Root-passordet må være minst 6 tegn langt, og passordet skrives inn to ganger. Bruk et passord som er enkelt for deg å huske, men vanskelig for andre å gjette.

width=800

Figur 3.9: Definere root bruker

Passordet kan bestå av både bokstaver og tall. Du kan ikke bruke kontrolltegn i passordet. Systemet skiller mellom små og store bokstaver. Et godt passord er en blanding av bokstaver og tall. Ikke glem at konsekvensene av å glemme root-passordet kan være at det blir vanskelig å komme inn på systemet ditt. I alle fall hvis du ikke har fysisk tilgang til det. Hvis du har fysisk tilgang til maskinen, kan du imidlertid starte opp på nytt og skrive “linux single" på GRUB eller LILO-kommandolinjen. Du vil da få opp et skall med root-privilegier, og kan sette et nytt passord for root hvis du ønsker dette. Når du logger deg inn som root, har du tilgang til alle tjenester. Vær derfor forsiktig. Ikke logg deg inn som root for å gjøre ting som ikke krever root-rettigheter, det skaper bare unødvendig stor risiko. Du kan senere endre root-passordet med passwd eller system-config-rootpassword.

Definere brukere[rediger]

Tilsvarende som Windows 10 kan du definere brukere. I praksis er det ingen begrensinger på antall brukere. Du kan også senere definere brukere med å kjøre programmene system-config-users eller useradd-programmet. Dette er også beskrevet i kapittel 19.

width=800

Figur 3.13: Definere brukere fra Fedora installasjon under GNOME

Installasjonsklasser[rediger]

Etter velkomstbildet fra Fedora kommer du inn i menybildet for installasjonsklasse. Du velger fra følgende installasjonsklasser:

  • Kontor og produktivitet
  • Programvareutvikling
  • Webtjener

I tillegg kan du velge Fedora Extras. Anmerker du denne opsjonen får masse tilleggsprogramvare fra Fedora. Du kan eventuelt senere installere Fedora Extras. Du har også muligheten til å manuelt bestemme hvilke spesifikke programkomponenter du ønsker å ha med.

Figur 3.10: Installasjonsklasser

Dessverre er dette ikke tilgjengelig ennå Heller ikke RPM Fusion som gjør det mulig å installere Steam og andre programmer som flash.

Kopiere inn data[rediger]

Du kan nå klikke på Neste for å starte installeringen av Fedora Linux. Du vil finne en komplett logg over installeringen i filen /tmp/install.log etter omstart av systemet. Denne loggen er grei å ha som dokumentasjon på hva som er installert.

Installeringsprogrammet vil nå begynne å installere de enkelte pakkene. Installasjonsstatus vil hele veien gi deg en oversikt over innholdet i den enkelte pakken, samt hvor mye som gjenstår av installeringen de enkelte pakkene og av hele installasjonen.

Figur 3.11: Kopiere inn data

Avslutte installeringen[rediger]

Installeringsprogrammet gir deg nå beskjed om at systemet er klart for omstart av Linux-operativsystemet. Fjern platen fra maskinen. Du kan nå velge å kjøre systemet ned. Dette vil kunne ta noen minutter.

width=800

Figur 3.12: Ferdig med installasjonen

Blir PCen din automatisk avslått, slår du den på igjen. Når PCen din har kjørt en normal oppstartssekvens, ser du GRUB eller LILO-kommandolinjen som er "boot:"

For å starte opp uten spesielle parametre, trykker du på Enter.

Linux

GRUB boot:

Det grafiske login-bildet bør etter noen minutter dukke opp hvis du har valgt å installere og starte X Windows System med enten GNOME- eller KDE-grensesnittet.

Se på meldingene når systemet lastes opp. Noter deg eventuelle feilmeldinger. Fikk du problemer med installeringen, anbefaler jeg at du kikker på Fedoras hjemmeside (http://fedora.redhat.com) og i forskjellige linux informasjonsider:

Hjelp og informasjonssider[rediger]

Informasjonsider Beskrivelse
https://fedoramagazine.org/ Fedora magasin på engelsk
http://fedoranews.org/ What is FedoraNEWS.ORG?
https://fedoraproject.org/wiki/FWN FWN
http://www.phoronix.com/scan.php?page=news_topic&q=Fedora phoronix.com
https://www.reddit.com/r/fedora reddit.com
http://www.fedorafaq.org/ Fedora Faq

Bruker du IRC anbefaler vi irc.freenode.net med kanalene #fedora og #fedora-devel.

Etter installeringen[rediger]

Etter installeringen av Fedora Linux skal du gjennom følgende punkter:

  • Bli ønsket velkommen
  • Godta lisensbetingelsene
  • Sette opp brannvegg
  • Sette opp SELinux
  • Definere dato og klokkeslett
  • Sett tidsone
  • Opprette brukere
  • Sette opp lydkort.

Godta lisensbetingelsene[rediger]

Første punktet er å godta Fedora sine lisensbetingelser. Les igjennom lisensbetingelsene. Fedora forutsetter at du godkjenner lisensbetingelsene.

Velge tegnsett[rediger]

width=800

I Fedora er tegnsettet basert på UTF8 (basert på Unicode som er et 16 bits tegnsett). Dette er det det tegnsettet som Windows 2000 og Windows XP bruker i dag. Du velger her no-latin1. Du kan uansett endre på oppsettet etter installeringen ved å kjøre kommandoen kbdconfig. Du kan alternativt kjøre kommandoen /usr/bin/'system-config-keyboard' fra GNOME eller KDE og velge 'Norwegian' som standard locale. Dette vil hjelpe en del andre programmer til å bruke norsk språk på riktig måte. Noen norske spesialtegn er sammensatte. Du må derfor trykke flere taster i kombinasjon for få tegnene fram på skjermen.

Konfigurere brannmur[rediger]

I neste skjermbilde setter du opp brannveggen. Skal PCen din være tilgjengelig for andre på Internett, må sikkerhet tas med i betraktningen. Hvis Linux-PCen din bare skal brukes som arbeidsstasjon, og samtidig være tilknyttet Internett, vil middels sikkerhet være tilfredsstillende. Skal maskinen fungere som en server, bør du tilpasse de enkelte tjenestene (/etc/service). Er du på et lukket nettverk hvor du stoler på alle, kan du velge ingen brannmur.

Konfigurere SELINUX[rediger]

I neste skjermbilde definerer du om ønsker å utvide Linux operativsystemet med SELinux. Som er forkortelsen for Security Enhanced Linux. Dette betyr i praksis at du har høyere oppløsning på Linux-sikkerheten enn det som er normalt. For de fleste greier seg uten denne tilleggsfunksjonaliteten.

For dokumentasjon se: Se Linux fedora dokument dokumentasjonen

Konfigurere tidssone[rediger]

Normalsett settes tidsone basert på språket du velger under installasjonen hvis det ikke går automatisk kan du sette det manuelt ved å trykke på klokken i KDE\Gnome "Adjust date\time" og velge tidsone UTC (Coordinated Universal Time som er det samme som GMT) eller som funksjon av fysisk lokasjon. Jeg anbefaler her at du velger å sette klokken som funksjon av fysisk lokasjon=Europa/Oslo. Dette valget finner du i listen.

width=800

Figur 3.8: Konfigurere tidssone

Du kan alltid endre tidssone senere ved å kjøre setup-programmet eller programmet /usr/sbin/timeconfig direkte. Alternativt under GNOME eller KDE er programmet /usr/share/system-config-date.

Konfigurere dato og klokkeslett[rediger]

På neste skjermbilde definer du dagens dato og klokkeslett. Systemet vil senere automatisk ta hensyn til sommer og vintertid.

Definere lydkort[rediger]

Lydkortet blir automatisk funnet. I denne seksjonen kan du teste lyd og gjøre mindre justeringer på lydkortet. Etter at lydkortet er sjekket er du klar til å logge inn på systemet og bruke det. Skal du bruke Displayport\HDMI som lyd må du sette opp drivere og velge primærenheten avhengig av distribusjon.

Starte Windows 10 og Linux[rediger]

Ønsker du å ha muligheten til å både laste Windows (Windows 10 og eldre) og Linux, er det mer å passe på. Jeg anbefaler at for eksempel Windows installeres først. Vær klar over at oppstartsprogrammet i Windows ønsker at oppstartssektoren fra andre operativsystemer er tilgjengelig som egne filer. Ønsker du å benytte NTFS-partisjoner, bør du sjekke adressen:

http://linux-ntfs.sourceforge.net/.

Nedenfor har jeg hovedpunktene du må gjennom for at PCen din skal kunne håndtere "dual boot". Senere går jeg i mer detalj:

  • Installere Windows
  • Installere Fedora Linux
  • Verifisere Windows-oppstart
  • Fedora Linux-oppstart
  • Kopiere Fedora Linux-oppstartssektoren til diskett
  • Kopiere Fedora Linux-oppstartssektoren til Windows
  • Oppdatere boot.ini-filen til Windows
  • Omstart

Installer Windows på vanlig måte. Husk bare på å ikke benytte hele disken til Windows. Når du er ferdig med installeringen av Windows, starter du installeringen av Fedora, slik jeg har beskrevet i begynnelsen av kapittel 3. I noen tilfeller kan Linux oppstartslasteren gjøre det umulig å laste opp Windows. I stedet for å installere oppstartslasteren i /dev/hda hvor MBR (Master Boot Record) er plassert, velger du derfor å installere oppstartslasteren i første sektor i oppstartspartisjonen, for eksempel /dev/hda1 eller /dev/hdb1 (installerer du MS Windows XP eller eldre brukes MBR (Master Boot Record) som vi har nevnt tidligere i dette kapitlet).

På noen eldre maskiner får man ikke lastet opp Windows (Windows XP) selv om man har fulgt den oppskriften som jeg har skissert med dual boot (Linux & Windows). Er du så uheldig finner du en grei beskrivelse på hvordan du kommer i kontakt igjen med din Windows-partisjon på Fedora sin hjemmeside https://getfedora.org/ eller i Linuxbladet lwn.net (http://lwn.net/Articles/86835/).

Får du ikke kontakt med din Linux-partisjon etter installasjon kan du bruke Live-DVD-en for å fikse grub2. Alternativet er skulle du få problemet med UEFI er rEFInd Boot Manager redningen som funger helt til Windows 10 og de fleste linux distribusjonene. Da det fremdeles er ikke alle maskiner UEFI\Bios boot funger optimalt med grub2 ennå.. Fra oppstartsprogrammet etter boot skriver du linux rescue (boot: linux rescue).

Når Fedora Linux er installert, starter du maskinen på nytt for å bekrefte at maskinen starter Windows. Virker Windows feilfritt, starter du maskinen på nytt. Logg inn som systemadministrator (root) på en av de virtuelle konsollene (Ctrl-Alt-Fn). Når du er inne som systemadministrator, kopierer du oppstartssektoren fra Linux-root-partisjonen. Hvis root-partisjonen er satt opp på /dev/hda2, blir kommandoen:

[root@nittedal /root]# dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1

Hvis root-partisjonen er satt opp på /dev/hdb1, blir kommandoen:

[root@nittedal /root]# dd if=/dev/hdb1 of=/bootsect.lnx bs=512 count=1

Du bør nå sjekke at filen bootsect.lnx ikke er større enn 512 bytes. Er den det, har du gjort en feil eller det er noe galt med root-partisjonen din. Hvis du nå ikke har montert opp Windows-diskene dine, må filen bootsect.lnx kopieres ut på en Windows (DOS)-diskett. Det gjør du enkelt med Mtools kommandoen mcopy.

[root@nittedal /root]# mcopy /bootsect.lnx a:

Det er også mulig å montere disken hvis du ikke har installert Mtools-pakken.

[root@nittedal /root]# mount -t msdos /dev/fd0 /mnt

[root@nittedal /root]# cp /bootsect.lnx /mnt

[root@nittedal /root]# umount /mnt

Ta nå ut disketten og start Windows XP eller eldre. Logg inn som systemadminstrator og kopierer inn bootsect.lnx til C:\.

C> COPY a:\bootsect.lnx c:\.

I Windows har C:\boot.ini omtrent samme funksjon som /etc/grub.conf (ved bruk av grub som oppstartsprogram) eller /etc/lilo.conf (ved bruk av lilo som oppstartsprogram) har i Linux. Denne filen har attributtene S (system), H (hidden) og R (read). Disse attributtene fjerner vi med:

C> ATTRIB -s -h -r c:\boot.ini

Vi lager en sikkerhetskopi før vi går videre:

C> COPY c:\boot.ini c:\boot.000

I Windows Notisblokk oppdaterer vi siste linje med C:\ C:\BOOTSECT.LNX="Linux". I eksemplet nedenfor er boot.ini tatt fra en av PCene i mitt hjemmenettverk.

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)\WINNT

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows XP Professional" /fastdetect

C:\BOOTSECT.LNX="Linux"

Når du har oppdatert boot.ini, lagrer du filen. Attributtene kan nå settes tilbake.

C> ATTRIB +s +h +r c:\boot.ini

Du kan nå ta ned maskinen. Neste gang du starter PCen vil du se følgende melding når maskinen har startet opp:

Please select the operating system to start:

Windows XP Professional

Linux

eller hvis du har Windows NT Workstation:

Please select the operating system to start:

Windows NT Workstation Version 4.0

Linux

Du kan nå selv velge hvilket operativsystem du ønsker å laste. Velger du Linux, kommer følgende melding opp:

LILO loading zImage ....

Husk at hver gang du gjør endringer i Linux-boot-sektoren må den oppdaterte bootsect.lnx-filen overføres til Windows-partisjonen på C:\bootsect.lnx. Noen oppgraderinger av Linux-operativsystemet og alle nye Linux-installasjoner kreve at du må lage en ny bootsect.lnx-fil.

Ønsker du mer hjelp rundt hvordan du kan ha både Windows (Windows XP eller eldre) og Linux på samme maskin, kan du lese HOWTOen "Linux+NT-Loader". Du finner peker til den fra www.linux.no eller du kan gå direkte til kilden:

http://www.linuxdoc.org/HOWTO/mini/Linux+NT-Loader.html

For nyere maskiner UEFI\EFI bør du prøve rEFInd Boot Manager https://sourceforge.net/projects/refind/files/0.10.2/refind-cd-0.10.2.zip/download Da UEFI kan være trøblete særlig hvis du har flere operativssystem-er.

Fjerne Linux[rediger]

Hvis du ønsker å fjerne Linux-partisjonen, finnes det flere alternativer. Det mest drastiske alternativet er å lavformatere hele harddisken. De fleste harddiskleverandører kan i dag tilby lavformateringsprogrammer. Du finner også lavformateringsprogrammer på nettet. Når du lavformaterer harddisken din, forsvinner alt som er installert på maskinen. Alle partisjoner forsvinner uansett hva slags operativsystem de tilhører. Lavformateringsprogrammer leveres vanligvis på egne oppstartsdisketter. Disse er som regel basert på MS-DOS. Etter oppstarten er det bare å følge menyalternativene.

Ønsker du å bare å fjerne Linux, er lavformatering unødvendig. Fra Linux kan du fjerne GRUB fra MBR ved å kjøre grub-programmet (/sbin/grub). Hjelp gir deg opsjonene som du trenger bruke. Fra Linux kan du fjerne LILO fra MBR ved å kjøre LILO-programmet (/sbin/lilo).

Eksempel:

# /sbin/lilo -u

Ved å bruke opsjonen -u får du tilbake den opprinnelige MBR-konfigurasjonen. Ønsker du bare å fjerne enkelte Linux-partisjoner kan du også bruke Linux-kommandoene parted og rm.

# parted /dev/hda

Her fjernes Linux-partisjonen (med filsystem) /dev/hda. Hvis du vet sekundært (minor) nummer (prøv med print) til partisjonen kan du bruke rm-kommanoden.

# rm 4

Her fjerner vi partisjonen med minor nummer 4. Du kan også bruke Microsofts fdisk. Hvis du vil fjerne Linux fra en maskin som har både Linux og Windows, bør du forsikre deg om at du har en oppstartsdiskett for Windows 98. Du kan da starte maskinen fra denne og bruke fdisk-kommandoen med mbr-opsjonen. Dette er en udokumentert opsjon som virker både på GRUB og LILO.

Eksempel:

C> fdisk /mbr

Her settes MBR til å peke til den primære DOS-partisjonen, og Windows vil på nytt starte normalt. Av og til kan det være problemer med å få fjernet en Linux-partisjon med Microsofts fdisk. Du kan da starte maskinen med en Linux-bootdiskett og bruke Linux' fdisk til å fjerne partisjonen. Etter omstart av maskinen kan du så bruke Microsofts fdisk til å lage en partisjon som Windows kan bruke.

For de som har installert Windows 10 eller Windows 8.1 med filsystemet NTFS og satt opp systemet med Dual boot, fjernes ikke oppstarten av Linux med fdisk-kommandoen. Gå til I386-katalogen på platen med Windows XP eller eldre. Fra denne katalogen kan du enten skrive fixboot eller mbrfix for å få tilbake den opprinnelige MBR-konfigurasjonen.

Eksempel:

D:\I386> fixboot eller D:\I386> mbrfix

For nyere UEFI 64 bits:

\EFI\BOOT\BOOTX64.EFI /sys/firmware/efi [-d/sys/firmware/efi]&&echo "EFI boot on HDD" || echo "Legacy boot on HDD" Sett opp: /boot/efi på enten 100\200 mb størrelse. Type: FAT32 med boot\oppstartpartion.

Eller prøv følgende kommando: grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

su lsblk blkid | grep -i efi grep -i efi /etc/fstab

ls -l /boot/efi/EFI/

SecureBoot Er en ny funsjon for sikkerhet i UEFI som gjør at operativsystemet er mindre sårbar for virus rettet mot bios skadevare.

Oppgaver til kapittel 3[rediger]

Oppgave 3.1 Hvilke verktøy finnes for å endre partisjonstabellen?

Oppgave 3.2 Hvorfor er det viktig med en oversikt over maskinvaren (type, I/U-parametere) før man installerer Linux?

Oppgave 3.3 Hvordan kan man sjekke Fedora ISO-imagene som man har lastet ned fra Internett for feil?

Oppgave 3.4 Installer Linux på tradisjonell måte. Lag et eget filsystem på 4 GB som du kaller redhat. Kopier installasjons-platen til filsystemet til redhat fedora. Bruk denne maskinen som server og installer 3 nye arbeidsstasjoner. Disse skal installeres via nettverket. Prøv de forskjellige installasjonsalternativene, for eksempel ftp, nfs og http.

Oppgave 3.5 Hvordan går du fram (Bios\UEFI) hvis du skal ha valgfri oppstart (dualboot) mellom Linux og Windows XP eller windows 10?

Oppgave 3.6 Hvilken kommando kan du kjøre under Fedora og Windows/DOS hvis du ønsker å gå tilbake til tidligere partisjonstabell?

Ubuntu Installasjon[rediger]

Forbredelse før installasjon[rediger]

Først av alt bør du sjekke om Ubuntu støttes maskinvaren din. Særlig AMD skjermkort har ofte driverproblemet med ubuntu i følge min erfaring. Opensuse er langt bedre der.

Støttet maskinvare

Denne kan være fin for nybegynnere som kan engelsk. Forhåpentligvis blir den oversatt til norsk. Ubuntu offentlig hjelpeside på engelsk

Setter opp mulighet å lage minnepenn i ubuntu:

sudo add-apt-repository ppa:mkusb/ppa og trykk Enter

sudo apt-get update

sudo apt-get install mkusb

Ubuntu-operativsystemet[rediger]

Kubuntu\Ubuntu stammer fra debian sin kjerne Men har nyere repoer\ i dag 16.04 kom ganske nylig.

Ubuntu Linux-distribusjon[rediger]

Ønsker du siste versjon av Ubuntu, kan du laste den ned fra http://www.ubuntu.com/desktop

Kubuntu: http://kubuntu.com/getkubuntu/

Xubuntu: http://xubuntu.org

Ultimate edition: http://ultimateedition.info/ultimate-edition/ultimate-edition-4-4/

Har du bare Windows installert på PCen, kan du laste ned ISO-image filene enten med http (via nettleser) eller med ftp (ftp-protokollen). Har du Linux installert på PCen, har du muligheten til å bruke ftp eller ncftp til nedlastingen. Fordelen med ncftp er at du kan fortsette å laste ned etter brudd. Det er mest vanlig å laste ned ISO-imagene konvertere disse til komplette diskbilder (katalog-struktur) med DVD-brenneprogrammet. Det raskeste er å laste ned imagene "lokalt" fra for eksempel

Når du har lastet ned ISO-imagene, bør de sjekkes. Det enkleste er å laste ned sjekksumfilen md5sums\sha256sum. Filen md5sums\sha256sum finner du i samme katalog som ISO-imagene. Ved å sjekke mot sjekksumfilen får du verifisert at ISO-imagene ikke er blitt ødelagt under nedlasting.Sha256sum gir større sikkerhet mot feil derfor anbefales det å bruke dette. For Linux distribusjonen gjøres dette slik:

[root@nittedal /root]# md5sum ubuntu-16.04-desktop-amd64.iso

[root@nittedal /root]# sha256sum ubuntu-16.04-desktop-amd64.iso

[root@nittedal /root]# sha256sum (all)buntu-DVD-x86-64.iso

-----BEGIN PGP SIGNED MESSAGE-----

Hash: MD5sum

c94d54942a2954cf852884d656224186 *ubuntu-16.04-desktop-amd64.iso

610c4a399df39a78866f9236b8c658da *ubuntu-16.04-desktop-i386.iso

Hash: SHA256

4bcec83ef856c50c6866f3b0f3942e011104b5ecc6d955d1e7061faff86070d4 *ubuntu-16.04-desktop-amd64.iso

b20b956b5f65dff3650b3ef4e758a78a2a87152101a04ea1804f993d8e551ceb *ubuntu-16.04-desktop-i386.iso

Her finner du hvis du vil laste ned rask hvor du bør laste ned ubuntu fra: https://launchpad.net/ubuntu/+cdmirrors

Disse kommandoene tar tid og du kan derfor ta deg en pause fra maskinen. Til slutt kommer det en kode på skjermen. Denne koden skal sjekkes mot sjekksumfilen md5sums\sha256sum. Ved hjelp av Linux cat-kommandoen (type under DOS) ser du innholdet i sjekksum filen.

Hvis du ønsker å laste ned dokumentasjon til kan du gjøre dette fra Dokumentasjonen

finnes også som en egen ISO-fil. Du finner en egen md5sums-fil til denne. Disse linjene skal være identiske med de enkelte sjekksummene. Hvis de ikke er identiske, er det ikke noe poeng å brenne ISO-imaget. Du må da laste ned imaget på nytt. Selve brenningen av CDen kan du gjøre under Linux eller Windows. For å sjekke ISO filen i Windows (Windows 10 eller eldre) kan du bruke: MD5 & SHA-1 Checksum Utility https://raylin.wordpress.com/downloads/md5-sha-1-checksum-utility/

Du kan brenne platen med K3b (KDE) eller Brasero (Gnome)for linux. I Windows kan du bruke Nero eller CDBurnerXP: Free samt Free ISO Burner. Husk også på å brenne som iso fil det vil si filen må pakkes ut ved brenning.

For å lage en minnepenn med image (Windows) prøv Universal-USB-Installer Eller

Bruk kommandoen i linux:

Første er iso filen du skal bruke så kommer der minnepennen er plassert, bs står for blocksize som er 512 kb er anbefalt.

Installeringsoversikt[rediger]

I dette kapitlet skal jeg beskrive hvordan du installerer Opensuse Linux, men den generelle metoden for installasjon er den samme uansett hvilken Linux-distribusjon du bruker. Du skal:

  • identifisere maskinvarerepartisjonere harddisken(e) slik at det blir plass til Linux
  • starte opp Linux-installasjonen (CD, FTP, NFS, HTTP etc.)
  • definere Linux-partisjoner
  • definere filsystemer og veksellager (swap)
  • installere Linux-distribusjonen på de nye filsystemene
  • installere og konfigurere maskinvare
  • installere applikasjonsprogramvare på de nye filsystemene

Velge installeringsmetode[rediger]

Installeringsvalget "Oppstart fra DVD-ROM eller CD-ROM" bruker du når maskinen kan laste Linux-operativsystemet direkte fra en CD som har oppstartspor (boot-spor). Du har da en nyere PC (BIOS\UEFI) som støtter standarden for Blueray-ROM. Mediet brukes oppstartskjernen boot.iso under katalogen images på første plate. Har du eksterne lagringsenheter som er USB-basert brukes oppstartskjernen diskboot.iso i samme katalog som for intern DVD.

Ønsker du avansert installasjon sjekk: https://help.ubuntu.com/lts/serverguide/kernel-crash-dump.html Men dette bør avanserte brukere i så fall sette seg inn i.

Figur 3.2: Oppstartsskjermbilde width=800

Test av media (CD-plate)[rediger]

Velge om du vil ha java\flash eller skjermkortdrivere[rediger]

width=800

Partisjonering[rediger]

width=800

Har du Windows fra før bør du velge avansert.. Hvis du ikke har windows eller andre operativsystemer eller installerer i virtuel klient kan du velge første steget.

width=800

For å installere med UEFI basert hovedkort velger du f.eks slik oppsett. Swap området bør minst være samme som rambrikkene, hjemmemappen velger du selv vil være på eget området eller ikke.

Etter installeringen[rediger]

Etter installeringen av Ubuntu Linux skal du gjennom følgende punkter:

  • Konfigurere nettverk
  • Konfigurere brannmur
  • Konfigurere SELINUX
  • Definere lydkort (særlig hvis du har PCI lydkort eller skjermkort som lydkort)
  • Skjermkort (Drivere/skjermtilpassing)
  • Linux\windows 10 tilpassing av Grup2 dualboot

Konfigurere nettverk[rediger]

Figur 3.7: Nettverkskonfigurasjon (TCP/IP)

Oppsett av TCP/IP Fast eller statisk[rediger]

Du bør sette enten Fast IP (Som under eller statisk DHCP) mest vanlig hjemme. Oppsett av TCP/IP består av 3 x 1/3 menysider. I øverste delmeny kan du definere om nettverkskortet(ene) skal startes opp ved normal oppstart. Her kan du også manuelt sette om du skal bruke IPv4 eller IPv6 etc. I neste meny definerer du om maskinen skal være en DHCP-klient ved oppstart eller om IP-adresse skal settes manuelt.

I siste delmeny kan du sette standard gateway (angir hvilken IP-adresse som skal brukes når man skal nå maskiner i andre nettverk), primær DNS-navneserver (løser opp domenenavnene dine til riktig IP-adresse), sekundær DNS-navneserver og tertiær DNS-navneserver.

I eksemplet under har Pcen min fått navnet dellwork.elboth.no. Den har IPv4-adressen 192.168.1.10 med ipv6-adressen Fe80::f8c8:454b:a071:7865%16. Domenenavnet er elboth.no. Mer om netmask (255.255.255.0), nettverk (192.168.1.0) og kringkastingsadresse (192.168.1.255) i kapittel 22. Default gateway er IP-adressen til den vertsmaskinen som har utgang mot Internett. I mitt tilfelle er det 192.168.1.1 og Fe80::f8c8:454b:a071:7860%16. Denne vertsmaskinen bruker videre IP-forwarding mot det reelle nettverkskortet jeg har mot Internett. De siste IP-adressene er DNS (Domain Name Server). Med DNS kan man bruke navn som www.linux.no i stedet for en IP-adresse. Jeg har satt opp 3 DNS-servere. Det kan være greit med flere hvis en skulle gå ned, kan man fortsatt surfe på Internett.

Felt Eksempel på verdi
IP-adresse ipv4 192.168.1.10
IP-adresse ipv6 Fe80::f8c8:454b:a071:7865%16
Netmask 255.255.255.0
Nettverk 192.168.1.0
Kringkasting 192.168.1.255
Vertsnavn dellwork.elboth.no
Gateway ipv4 192.168.1.1
Gateway ipv6 Fe80::f8c8:454b:a071:7860%16
Primær DNS ipv4 217.118.32.12
Sekundær DNS 217.118.32.13
Tertiær DNS 193.216.69.12
Primær DNS ipv6 2001:4860:4860::8888
Tertiær DNS ipv6 2001:4860:4860::8844

http://askubuntu.com/questions/468691/usb-mobile-broadband-dongles-in-ubuntu-14-04-where-to-start

Konfigurere brannmur[rediger]

I neste skjermbilde setter du opp brannveggen. Skal PCen din være tilgjengelig for andre på Internett, må sikkerhet tas med i betraktningen. Hvis Linux-PCen din bare skal brukes som arbeidsstasjon, og samtidig være tilknyttet Internett, vil middels sikkerhet være tilfredsstillende. Skal maskinen fungere som en server, bør du tilpasse de enkelte tjenestene (/etc/service). Er du på et lukket nettverk hvor du stoler på alle, kan du velge ingen brannmur.

Konfigurere SELINUX[rediger]

I neste skjermbilde definerer du om ønsker å utvide Linux operativsystemet med SELinux. Som er forkortelsen for Security Enhanced Linux. Dette betyr i praksis at du har høyere oppløsning på Linux-sikkerheten enn det som er normalt. For de fleste greier seg uten denne tilleggsfunksjonaliteten.

Definere lydkort[rediger]

Lydkortet blir automatisk funnet. I denne seksjonen kan du teste lyd og gjøre mindre justeringer på lydkortet. Etter at lydkortet er sjekket er du klar til å logge inn på systemet og bruke det. Skal du bruke Displayport\HDMI som lyd må du sette opp drivere og velge primærenheten avhengig av distribusjon.

Skjermkort[rediger]

F.eks: Debian\ubuntu med nvidia drivere:

sudo apt-get install nvidia-current-updates

Linux\windows 10 tilpassing av Grup2 dualboot[rediger]

  • Installere Windows
  • Installere Ubuntu\kubuntu Linux
  • Verifisere Windows-oppstart
  • Ubuntu Linux-oppstart

Installer Windows på vanlig måte. Husk bare på å ikke benytte hele disken til Windows. Når du er ferdig med installeringen av Windows, starter du installeringen av Ubuntu, slik jeg har beskrevet i begynnelsen av kapittel 3. I noen tilfeller kan Linux oppstartslasteren gjøre det umulig å laste opp Windows. I stedet for å installere oppstartslasteren i /dev/hda hvor MBR (Master Boot Record) er plassert, velger du derfor å installere oppstartslasteren i første sektor i oppstartspartisjonen, for eksempel /dev/hda1 eller /dev/hdb1 (installerer du MS Windows XP eller eldre brukes MBR (Master Boot Record) som vi har nevnt tidligere i dette kapitlet).

Får du ikke kontakt med din Linux-partisjon etter installasjon kan du bruke Live-DVD-en for å fikse grub2. Alternativet er skulle du få problemet med UEFI er rEFInd Boot Manager redningen som funger helt til Windows 10 og de fleste linux distribusjonene. Da det fremdeles er ikke alle maskiner UEFI\Bios boot funger optimalt med grub2 ennå.. Fra oppstartsprogrammet etter boot skriver du linux rescue (boot: linux rescue).

Når Ubuntu\kubuntu Linux er installert, starter du maskinen på nytt for å bekrefte at maskinen starter Windows. Virker Windows feilfritt, starter du maskinen på nytt. Logg inn som systemadministrator (root) på en av de virtuelle konsollene (Ctrl-Alt-Fn). Når du er inne som systemadministrator, kopierer du oppstartssektoren fra Linux-root-partisjonen. Hvis root-partisjonen er satt opp på /dev/hda2, blir kommandoen:

Hjelp og informasjonssider[rediger]

Informasjonsider Beskrivelse
http://ubuntuforums.org/ Forum
https://help.ubuntu.com/ ubuntu documentation
https://help.ubuntu.com/stable/ubuntu-help/ Ubuntu Desktop Guide
https://wiki.ubuntu.com/DebuggingProgramCrash DebuggingProgramCrash
https://wiki.ubuntu.com/Valve Steam for buntu
https://help.ubuntu.com/community/OperaBrowser Opera nettleser
https://www.pcsteps.com/5110-install-origin-linux-mint-ubuntu-wine/ Orgin wine

Bruker du IRC anbefaler vi irc.freenode.net med kanalene #ubuntu og #kubuntu.

Fjerne Linux[rediger]

Hvis du ønsker å fjerne Linux-partisjonen, finnes det flere alternativer. Det mest drastiske alternativet er å lavformatere hele harddisken. De fleste harddiskleverandører kan i dag tilby lavformateringsprogrammer. Du finner også lavformateringsprogrammer på nettet. Når du lavformaterer harddisken din, forsvinner alt som er installert på maskinen. Alle partisjoner forsvinner uansett hva slags operativsystem de tilhører. Lavformateringsprogrammer leveres vanligvis på egne oppstartsdisketter. Disse er som regel basert på MS-DOS. Etter oppstarten er det bare å følge menyalternativene.

Ønsker du å bare å fjerne Linux, er lavformatering unødvendig. Fra Linux kan du fjerne GRUB fra MBR ved å kjøre grub-programmet (/sbin/grub). Hjelp gir deg opsjonene som du trenger bruke. Fra Linux kan du fjerne LILO fra MBR ved å kjøre LILO-programmet (/sbin/lilo).

Eksempel:

# /sbin/lilo -u

Ved å bruke opsjonen -u får du tilbake den opprinnelige MBR-konfigurasjonen. Ønsker du bare å fjerne enkelte Linux-partisjoner kan du også bruke Linux-kommandoene parted og rm.

# parted /dev/hda

Her fjernes Linux-partisjonen (med filsystem) /dev/hda. Hvis du vet sekundært (minor) nummer (prøv med print) til partisjonen kan du bruke rm-kommanoden.

# rm 4

Her fjerner vi partisjonen med minor nummer 4. Du kan også bruke Microsofts fdisk. Hvis du vil fjerne Linux fra en maskin som har både Linux og Windows, bør du forsikre deg om at du har en oppstartsdiskett for Windows 98. Du kan da starte maskinen fra denne og bruke fdisk-kommandoen med mbr-opsjonen. Dette er en udokumentert opsjon som virker både på GRUB og LILO.

Eksempel:

C> fdisk /mbr

Her settes MBR til å peke til den primære DOS-partisjonen, og Windows vil på nytt starte normalt. Av og til kan det være problemer med å få fjernet en Linux-partisjon med Microsofts fdisk. Du kan da starte maskinen med en Linux-bootdiskett og bruke Linux' fdisk til å fjerne partisjonen. Etter omstart av maskinen kan du så bruke Microsofts fdisk til å lage en partisjon som Windows kan bruke.

For de som har installert Windows 10 eller Windows 8.1 med filsystemet NTFS og satt opp systemet med Dual boot, fjernes ikke oppstarten av Linux med fdisk-kommandoen. Gå til I386-katalogen på platen med Windows XP eller eldre. Fra denne katalogen kan du enten skrive fixboot eller mbrfix for å få tilbake den opprinnelige MBR-konfigurasjonen.

Feilsøk og etterinstallering

Installere ubuntu skrivebord: sudo apt-get update sudo apt-get install ubuntu-desktop sudo apt-get install gnome-session sudo apt-get install lightdm sudo apt-get install unity-greeter sudo dpkg-reconfigure lightdm

Installere Kubutu: sudo apt-get install kubuntu-desktop sudo apt-get install kdm

Ved feil av kubuntu:

sudo apt-get install --reinstall kubutu-desktop kde-* || sudo apt-get install -f apt-get install --reinstall plasma-desktop apt-get -f install

~$ cd ~/.cache ~/.cache$ rm -rf *plasma* *kde* sudo add-apt-repository ppa:kubuntu-ppa/staging-misc sudo apt-get update sudo apt-get install kde-l10n sudo apt-get install plasma-desktop

Reinstallere ubuntu: sudo apt-get update sudo apt-get install --reinstall ubuntu-desktop sudo apt-get install unity sudo shutdown -r now

rm -rf .compiz-1

Fikse unity: sudo apt-get install ppa-purge sudo ppa-purge ppa:unity-team/staging apt-get install unity

XFCE: sudo apt-get install xfce4 sudo add-apt-repository ppa:xubuntu-dev/xfce-4.12 sudo apt-get update && sudo apt-get dist-upgrade sudo apt-get install xfce4 sudo apt-get install xfce-goodies

Steam: (Problemet med steam finnes kun i 32 bits offsielt). wget http://media.steampowered.com/client/installer/steam.deb

 sudo apt-get install gdebi-core
 sudo gdebi steam.deb 

Eller

sudo apt-get install libgl1-mesa-dri:i386 libgl1-mesa-glx:i386 steam

Fjern steam ved problemer: sudo apt-get remove steam sudo apt-get purge steam (i tilfelle remove ikke funker) sudo apt-get autoremove sudo apt-get autoclean

Steam må startes med kommandoen: LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam

Debugging for ubuntu hvis du får feilmelding er det lettere å finne hvorfor:

sudo apt-get install xserver-xorg-core-dbg

Wine: sudo add-apt-repository ppa:ubuntu-wine/ppa -y sudo apt-get update sudo apt-get install wine1.7 -y

Gparted, 7zip, ntfs-3g:

sudo apt-get install gparted grub-pc-bin p7zip-full ntfs-3g sudo apt-get install gparted unetbootin

Microsofts .Net Core sudo apt-get install dotnet-dev-1.0.0-preview2-003121

Advarsel til problemer styr unna disse

Følgene pakker bør fjernes for godt:

sudo dpkg --remove unity-scope-gdrive & kde-config-telepathy-accounts & account-plugin-google

Da det er kjent disse kan skape trøbbel ved installere nye programvare. Man vet aldri når dette blir fikset.

Fingerprint i linux

sudo add-apt-repository ppa:fingerprint/fingerprint-gui sudo apt-get update sudo apt-get install libbsapi policykit-1-fingerprint-gui fingerprint-gui sudo apt-get install libpam-fprintd

Oppgaver til kapittel 3[rediger]

Oppgave 3.1 Hvilke verktøy finnes for å endre partisjonstabellen?

Oppgave 3.2 Hvorfor er det viktig med en oversikt over maskinvaren (type, I/U-parametere) før man installerer Linux?

Oppgave 3.3 Hvordan kan man sjekke Ubuntu ISO-imagene som man har lastet ned fra Internett for feil?

Oppgave 3.4 Installer Linux på tradisjonell måte. Lag et eget filsystem på 4 GB som du kaller ubuntu. Kopier installasjons-platen til filsystemet til Ubuntu. Bruk denne maskinen som server og installer 3 nye arbeidsstasjoner. Disse skal installeres via nettverket. Prøv de forskjellige installasjonsalternativene, for eksempel ftp, nfs og http.

Oppgave 3.5 Hvordan går du fram (Bios\UEFI) hvis du skal ha valgfri oppstart (dualboot) mellom Linux og Windows XP eller windows 10?

Oppgave 3.6 Hvilken kommando kan du kjøre under ubuntu og Windows/DOS hvis du ønsker å gå tilbake til tidligere partisjonstabell?

Opensuse[rediger]

Opensuse Leap 42.1 stammer fra Suse Enteprice sin kjerne. Hvis du ønsker nyere versjon sjekk Opensuse Tumbleweed.

Microsoft\AMD\Novell suse er store sponsorer av opensuse.

For folk som kan engelsk anbefaler jeg nybegynnere å lese:

http://doc.opensuse.org/documentation/leap/startup/html/book.opensuse.startup/index.html Da dette kapittelet ikke utfyller opensuse fult ut, men gir kun en kort innføring i opensuse. Ting går mere i detaljer og gir mere nyttig informasjon.

Forskjellen mellom opensuse\Suse Enterprise[rediger]

SUSE Linux Enterprise (SLE) er vedlikeholt for 10 år (Men kan bli utvidet til 13 år), mens en openSUSE utgivelse er vedlikeholdt i 18 måneder. SUSE gir også support og kurs for SLE, men ikke for openSUSE. Last, SLE basisen for alle andre SUSE produkter, som f.eks SUSE Cloud og SUSE Enterprise Lagring / Storage (som andre).

Opensuse Linux-distribusjon[rediger]

Ønsker du siste versjon av opensuse, kan du laste den ned fra https://software.opensuse.org/421/en

Har du bare Windows installert på PCen, kan du laste ned ISO-image filene enten med http (via nettleser) eller med ftp (ftp-protokollen). Har du Linux installert på PCen, har du muligheten til å bruke ftp eller ncftp til nedlastingen. Fordelen med ncftp er at du kan fortsette å laste ned etter brudd. Det er mest vanlig å laste ned ISO-imagene konvertere disse til komplette diskbilder (katalog-struktur) med DVD-brenneprogrammet. Det raskeste er å laste ned imagene "lokalt" fra for eksempel

Når du har lastet ned ISO-imagene, bør de sjekkes. Det enkleste er å laste ned sjekksumfilen md5sums\sha256sum. Filen md5sums\sha256sum finner du i samme katalog som ISO-imagene. Ved å sjekke mot sjekksumfilen får du verifisert at ISO-imagene ikke er blitt ødelagt under nedlasting.Sha256sum gir større sikkerhet mot feil derfor anbefales det å bruke dette. For Linux distribusjonen gjøres dette slik:

[root@nittedal /root]# md5sum openSUSE-Leap-42.1-DVD-x86_64.iso

[root@nittedal /root]# sha256sum openSUSE-Leap-42.1-DVD-x86_64.iso

-----BEGIN PGP SIGNED MESSAGE-----

Hash: MD5sum

2bc74929bfa9772a5637f76ddde8784b *openSUSE-Leap-42.1-DVD-x86_64.iso.iso

Hash: SHA256

8576e84822cdbe566bf551e28a169fc028229831eba9f07a4c1f84302c5ddb09 *openSUSE-Leap-42.1-DVD-x86_64.iso

BEGIN PGP SIGNATURE

Version: GnuPG v1.0.7 (GNU/Linux) iQEVAwUBVjNG4biLL9Q9vcKEAQgyDwf/SPb6+yDdCYfxN4/9f+yAsjdPLQ7u jvAqmzQ2/0tETz5ysXF4GWnEJ2xmK9oU3w7O1SroyqYDpa2HLtoTHO+ZHxp9oF23 2gQCAwOLcujrNKN7/K4jLKiIgspQyo8h3bwkFpkwa7wT1WA5lNNgw1LSXNQnrte8 U23dZUTYlx+tysxsOkK6uLvq+ZUn94lIAtRzAtBRVnNF7PjTtUbg3yvPwmnoTga6 RxwUU5w+lcmqhW+dqjcx0VTAij5s4P9YhXt/PYBlI4OgOxJ+ZkaJQzW/R+cE62Cw /d5k8MKmZqE74Bgttmhz1DaCPx6iv3QkNPo7H4OTLgfCAHXz+JPVsBNYzQ== =udVX

END PGP SIGNATURE

Disse kommandoene tar tid og du kan derfor ta deg en pause fra maskinen. Til slutt kommer det en kode på skjermen. Denne koden skal sjekkes mot sjekksumfilen md5sums\sha256sum. Ved hjelp av Linux cat-kommandoen (type under DOS) ser du innholdet i sjekksum filen.

Hvis du ønsker å laste ned dokumentasjon til kan du gjøre dette fra Dokumentasjonen

finnes også som en egen ISO-fil. Du finner en egen md5sums-fil til denne. Disse linjene skal være identiske med de enkelte sjekksummene. Hvis de ikke er identiske, er det ikke noe poeng å brenne ISO-imaget. Du må da laste ned imaget på nytt. Selve brenningen av CDen kan du gjøre under Linux eller Windows. For å sjekke ISO filen i Windows (Windows 10 eller eldre) kan du bruke: MD5 & SHA-1 Checksum Utility https://raylin.wordpress.com/downloads/md5-sha-1-checksum-utility/

Du kan brenne platen med K3b (KDE) eller Brasero (Gnome)for linux. I Windows kan du bruke Nero eller CDBurnerXP: Free samt Free ISO Burner. Husk også på å brenne som iso fil det vil si filen må pakkes ut ved brenning.

For å lage en minnepenn med image (Windows) prøv Universal-USB-Installer Eller

Bruk kommandoen i linux:

Første er iso filen du skal bruke så kommer der minnepennen er plassert, bs står for blocksize som er 512 kb er anbefalt.

Installeringsoversikt[rediger]

I dette kapitlet skal jeg beskrive hvordan du installerer Opensuse Linux, men den generelle metoden for installasjon er den samme uansett hvilken Linux-distribusjon du bruker. Du skal:

  • identifisere maskinvarerepartisjonere harddisken(e) slik at det blir plass til Linux
  • starte opp Linux-installasjonen (CD, FTP, NFS, HTTP etc.)
  • definere Linux-partisjoner
  • definere filsystemer og veksellager (swap)
  • installere Linux-distribusjonen på de nye filsystemene
  • installere og konfigurere maskinvare
  • installere applikasjonsprogramvare på de nye filsystemene

Velge installeringsmetode[rediger]

Installeringsvalget "Oppstart fra DVD-ROM eller CD-ROM" bruker du når maskinen kan laste Linux-operativsystemet direkte fra en CD som har oppstartspor (boot-spor). Du har da en nyere PC (BIOS\UEFI) som støtter standarden for Blueray-ROM. Mediet brukes oppstartskjernen boot.iso under katalogen images på første plate. Har du eksterne lagringsenheter som er USB-basert brukes oppstartskjernen diskboot.iso i samme katalog som for intern DVD.

Husk å velg MBR\BIOS på både Windows 10\Opensuse. Eller UEFI boot fra DVD\minnepenn på begge systemer ellers er det ikke sikkert du får listet opp begge operativsystemer i grub2 oppstartbehandler. Husk også viktigheten å velge expert partitioner. Så ikke Windows blir overskrevet.

Bootopensuse.png

Figur 3.2: Oppstartsskjermbilde

Test av media (CD-plate)[rediger]

Mediacheckopensuse.png

Velge språk[rediger]

Opensusespraak.png

Tillegg under installasjon[rediger]

Opensuseinstallrepo.png

Anbefaler å ikke trykke noe her, i mitt tilfelle låse hele maskinen seg så vil anbefale å legge dette senere, da det unngår en del problemer. Særlig om du har AMD cpu\skjermkort av nyere utgave.

Partisjonering[rediger]

Opensusepartisjonere.png

Det som er viktig med partisjon er å passe på windows 10 ikke blir overskrivet. Så du må velge manuelt hvis du ikke vil harddisken\SSD skal bli overskrevet.

Opensusediskoppsett.png

Dette er et eksempel på UEFI boot oppsett, som funger, skal du ha bios trenger du ikke å definere \Boot\EFI. Normalsett bør SWAP området være 2x mere en ram. Hjemmemappen kan være greit å ha en del plass i siden ofte steam blir installert der, men skal du reinstallere opensuse slipper du å miste dine dokumenter. Viktig: \Boot\EFI skal være fat32 hvis du bruker Windows Vista eller nyere. Det er fordi microsoft ikke klarer å lese linux sitt filsystem.

Tidssone[rediger]

Opensuseinstalltidsone.png

Normalsett burde du ta neste hvis du har valgt riktig språk og er i riktig relgion burde dette ikke være nødvendig å endre, med mindre du er på ferie i et annet land.

Valg av grafisk skrivebord miljø[rediger]

Opensuseinstalldesktop.png

Nå kommer valg av skrivebordmiljø opensuse støtter KDE\Gnome XFCE\LXDE.

Opprett bruker[rediger]

Opensuseinstalluser.png

Tilsvarende som Windows 10 kan du definere brukere. I praksis er det ingen begrensinger på antall brukere. Du kan også senere definere brukere med å kjøre programmene system-config-users eller useradd-programmet. Dette er også beskrevet i kapittel 19.

Lag deg en brukerkonto.

Programvare-valg[rediger]

Opensuseinstallsoftware.png

Da kan du velge programvare eller siste steget før opensuse blir ferdig installert. Etter dette får du beskjed avhenging av hvor mye programmer du velger, kan ta 20-30 minutter for selve installeringen er ferdig avhenger av om du har SSD\harddisk eller minnepenn\DVD.

Du vil finne en komplett logg over installeringen i filen /tmp/install.log etter omstart av systemet. Denne loggen er grei å ha som dokumentasjon på hva som er installert.

Installeringsprogrammet vil nå begynne å installere de enkelte pakkene. Installasjonsstatus vil hele veien gi deg en oversikt over innholdet i den enkelte pakken, samt hvor mye som gjenstår av installeringen de enkelte pakkene og av hele installasjonen.

Etter det får du beskjed om du kan starte på nytt. Har du Windows fra før burde du få valg i oppstart.

Dessverre som du sikkert ser får du ikke lagt til verken flash\java eller andre Packman repo https://en.opensuse.org/Additional_package_repositories

Det må du sette opp med skjermkortdrivere etter installasjon.

Etter installeringen

Etter installeringen av Opensuse Linux skal du gjennom følgende punkter:

  • Konfigurere nettverk
  • Konfigurere skjermkortdrivere under OpenSuSE etter installasjon
  • Sjekke om Windows har blitt lagt til grub2 oppstartlaseren.
  • Brannmur

Konfigurere nettverk[rediger]

Opensuseinstallnettverk.png

Figur 3.7: Nettverkskonfigurasjon (TCP/IP)

Oppsett av TCP/IP

Du bør sette enten fast ip (Som under eller statisk DHCP der routeren velger ip adresser) som er mest vanlig hjemme.

Oppsett av TCP/IP består av 3 x 1/3 menysider. I øverste delmeny kan du definere om nettverkskortet(ene) skal startes opp ved normal oppstart. Her kan du også manuelt sette om du skal bruke IPv4 eller IPv6 etc. I neste meny definerer du om maskinen skal være en DHCP-klient ved oppstart eller om IP-adresse skal settes manuelt.

I siste delmeny kan du sette standard gateway (angir hvilken IP-adresse som skal brukes når man skal nå maskiner i andre nettverk), primær DNS-navneserver (løser opp domenenavnene dine til riktig IP-adresse), sekundær DNS-navneserver og tertiær DNS-navneserver.

I eksemplet under har Pcen min fått navnet dellwork.elboth.no. Den har IPv4-adressen 192.168.1.10 med ipv6-adressen Fe80::f8c8:454b:a071:7865%16. Domenenavnet er elboth.no. Mer om netmask (255.255.255.0), nettverk (192.168.1.0) og kringkastingsadresse (192.168.1.255) i kapittel 22. Default gateway er IP-adressen til den vertsmaskinen som har utgang mot Internett. I mitt tilfelle er det 192.168.1.1 og Fe80::f8c8:454b:a071:7860%16. Denne vertsmaskinen bruker videre IP-forwarding mot det reelle nettverkskortet jeg har mot Internett. De siste IP-adressene er DNS (Domain Name Server). Med DNS kan man bruke navn som www.linux.no i stedet for en IP-adresse. Jeg har satt opp 3 DNS-servere. Det kan være greit med flere hvis en skulle gå ned, kan man fortsatt surfe på Internett.

Felt Eksempel på verdi
IP-adresse ipv4 192.168.1.10
IP-adresse ipv6 Fe80::f8c8:454b:a071:7865%16
Netmask 255.255.255.0
Nettverk 192.168.1.0
Kringkasting 192.168.1.255
Vertsnavn dellwork.elboth.no
Gateway ipv4 192.168.1.1
Gateway ipv6 Fe80::f8c8:454b:a071:7860%16
Primær DNS ipv4 217.118.32.12
Sekundær DNS 217.118.32.13
Tertiær DNS 193.216.69.12
Primær DNS ipv6 2001:4860:4860::8888
Tertiær DNS ipv6 2001:4860:4860::8844

Det er viktig du sjekker at nettverkkortet er satt til enten Fast IP\DHCP Da dette ikke blir satt automatisk,og må settes manuelt.

Etter det er gjort kan du installere nye programvare eller bruke maskinen på internett om du har trådløs\nettverk forbindelse, for mobil bredbånd må det settes opp.

Du bør passe på installasjonsplaten er deaktivert i pakkebønnen ellers kan du få spørsmål å sette platen i DVD stasjonen.

Opensuserepoconfig.png

Konfigurere skjermkortdrivere under OpenSuSE etter installasjon[rediger]

Installere følgene for nvidia: Eller du kan besøke: http://opensuse-guide.org/3d.php Der installer du http://opensuse-community.org/nvidia.ymp enkelt.

[david@nittedal /home]# zypper install -t pattern devel_C_C++ devel_kernel

Logg deg på som root: [root@nittedal /root]# su -

Gå til nvidia pakken [root@nittedal /root]# sh /home/user/NVIDIA*.run

[root@nittedal /root]# mkinitrd

Svartelist nouveau: [root@nittedal /root]# echo "blacklist nouveau" >> /etc/modprobe.d/50-blacklist.conf && mkinitrd && reboot

Sett opp skjermkortet: [root@nittedal /root]# nvidia-settings

For AMD skjermkort:

Svartelist nouveau: [root@nittedal /root]# echo "blacklist nouveau" >> /etc/modprobe.d/50-blacklist.conf && mkinitrd && reboot

YaST2 > Pakkebrønner > Legg til > Uoffisielle pakkebrønner > velg AMD/ATI Graphic drivers og så OK

Her kan du også legge til flash, Packman repository som er en samling av Essentials og Multimedia & Extra samt spill det funger både til AMD\Nvidia skjermkort i tillegg til intel.

Etter på YaST2 > Programmer > Tillegg > Install all matching Recommended packages og så OK

Så burde du starte om maskinen så burde driverne være på plass.

Starte Windows 10 og Linux[rediger]

Ønsker du å ha muligheten til å både laste Windows (Windows 10 og eldre) og Linux, er det mer å passe på. Jeg anbefaler at for eksempel Windows installeres først. Vær klar over at oppstartsprogrammet i Windows ønsker at oppstartssektoren fra andre operativsystemer er tilgjengelig som egne filer. Ønsker du å benytte NTFS-partisjoner, bør du sjekke adressen:

http://linux-ntfs.sourceforge.net/.

Nedenfor har jeg hovedpunktene du må gjennom for at PCen din skal kunne håndtere "dual boot". Senere går jeg i mer detalj:

   * Installere Windows
   * Installere Opensuse Linux
   * Verifisere Windows-oppstart
   * Opensuse Linux-oppstart
   * Omstart 

Installer Windows på vanlig måte. Husk bare på å ikke benytte hele disken til Windows. Når du er ferdig med installeringen av Windows, starter du installeringen av opensuse, slik jeg har beskrevet i begynnelsen av kapittel 3. I noen tilfeller kan Linux oppstartslasteren gjøre det umulig å laste opp Windows. I stedet for å installere oppstartslasteren i /dev/hda hvor MBR (Master Boot Record) er plassert, velger du derfor å installere oppstartslasteren i første sektor i oppstartspartisjonen, for eksempel /dev/hda1 eller /dev/hdb1 (installerer du MS Windows XP eller eldre brukes MBR (Master Boot Record) som vi har nevnt tidligere i dette kapitlet).

På noen eldre maskiner får man ikke lastet opp Windows (Windows XP) selv om man har fulgt den oppskriften som jeg har skissert med dual boot (Linux & Windows). Er du så uheldig finner du en grei beskrivelse på hvordan du kommer i kontakt igjen med din Windows-partisjon på Opensuse sin hjemmeside https://www.opensuse.org/ eller i Linuxbladet lwn.net (http://lwn.net/Articles/86835/).

Får du ikke kontakt med din Linux-partisjon etter installasjon kan du bruke Live-DVD-en for å fikse grub2. Alternativet er skulle du få problemet med UEFI er rEFInd Boot Manager redningen som funger helt til Windows 10 og de fleste linux distribusjonene. Da det fremdeles er ikke alle maskiner UEFI\Bios boot funger optimalt med grub2 ennå.. Fra oppstartsprogrammet etter boot skriver du linux rescue (boot: linux rescue).

Når Opensuse Linux er installert, starter du maskinen på nytt for å bekrefte at maskinen starter Windows. Virker Windows feilfritt, starter du maskinen på nytt. Logg inn som systemadministrator (root) på en av de virtuelle konsollene (Ctrl-Alt-Fn). Når du er inne som systemadministrator, kopierer du oppstartssektoren fra Linux-root-partisjonen. Hvis root-partisjonen er satt opp på /dev/hda2, blir kommandoen:

For nyere UEFI 64 bits:

\EFI\BOOT\BOOTX64.EFI /sys/firmware/efi [-d/sys/firmware/efi]&&echo "EFI boot on HDD" || echo "Legacy boot on HDD" Sett opp: /boot/efi på enten 100\200 mb størrelse. Type: FAT32 med boot\oppstartpartion.

Eller prøv følgende kommando: grub2-mkconfig -o /boot/efi/EFI/Opensuse/grub.cfg

su lsblk blkid | grep -i efi grep -i efi /etc/fstab

ls -l /boot/efi/EFI/

SecureBoot Er en ny funsjon for sikkerhet i UEFI som gjør at operativsystemet er mindre sårbar for virus rettet mot bios skadevare.

Konfigurere brannmur[rediger]

I neste skjermbilde setter du opp brannveggen. Skal PCen din være tilgjengelig for andre på Internett, må sikkerhet tas med i betraktningen. Hvis Linux-PCen din bare skal brukes som arbeidsstasjon, og samtidig være tilknyttet Internett, vil middels sikkerhet være tilfredsstillende. Skal maskinen fungere som en server, bør du tilpasse de enkelte tjenestene (/etc/service). Er du på et lukket nettverk hvor du stoler på alle, kan du velge ingen brannmur.

Konfigurere SELINUX[rediger]

I neste skjermbilde definerer du om ønsker å utvide Linux operativsystemet med SELinux. Som er forkortelsen for Security Enhanced Linux. Dette betyr i praksis at du har høyere oppløsning på Linux-sikkerheten enn det som er normalt. For de fleste greier seg uten denne tilleggsfunksjonaliteten.

Informasjon\hjelp[rediger]

Informasjonsider Beskrivelse
https://news.opensuse.org/ Opensuse news
https://forums.opensuse.org/forum.php Forum engelsk
https://en.opensuse.org/Portal:Documentation Documentation
https://doc.opensuse.org/ Official Documentation

Bruker du IRC anbefaler vi webchat.freenode.net med kanalene #opensuse-project og (irc.freenode.net) #openSUSE-forums.

Oppgaver til kapittel 3[rediger]

Oppgave 3.1 Hvilke verktøy finnes for å endre partisjonstabellen?

Oppgave 3.2 Hvorfor er det viktig med en oversikt over maskinvaren (type, I/U-parametere) før man installerer Linux?

Oppgave 3.3 Hvordan kan man sjekke opensuse ISO-imagene som man har lastet ned fra Internett for feil?

Oppgave 3.4 Installer Linux på tradisjonell måte. Lag et eget filsystem på 4 GB som du kaller Opensuse. Kopier installasjons-platen til filsystemet til opensuse. Bruk denne maskinen som server og installer 3 nye arbeidsstasjoner. Disse skal installeres via nettverket. Prøv de forskjellige installasjonsalternativene, for eksempel ftp, nfs og http.

Oppgave 3.5 Hvordan går du fram (Bios\UEFI) hvis du skal ha valgfri oppstart (dualboot) mellom Linux og Windows XP eller windows 10?

Oppgave 3.6 Hvilken kommando kan du kjøre under opensuse og Windows/DOS hvis du ønsker å gå tilbake til tidligere partisjonstabell?


Debian Installasjon[rediger]

Debian Nedlasting jigdo[rediger]

Alternativ kan du bruke: Ubuntu\Debian: apt-get install jigdo-file

Du trenger: filnavn.jigdo filnavn.template For å laste ned filen. Fordelen med jido er at du slipper å lase ned alt på nytt. Ulempen er litt mere vanskelig for nybegynnere. Bruk ls kommandoen for å liste opp filer. Skriv f.eks jigdo-lite filnavn.jigdo i terminal for å starte nedlastingen.

F.eks: [root@nittedal /home/download]# ls debian-8.3.0-amd64-DLBD-2.jigdo debian-8.3.0-amd64-DLBD-1.jigdo debian-8.3.0-amd64-DLBD-1.template debian-8.3.0-amd64-DLBD-2.template

[root@nittedal /home/download]# jigdo-lite debian-8.3.0-amd64-DLBD-2.jigdo debian-8.3.0-amd64-DLBD-1.jigdo

Så velger du nedlasting sted f.eks http://linux.csua.berkeley.edu/debian/

Så burde nedlastingen starte.

Debian-operativsystemet[rediger]

Debian startet i 1993 som hovedsak webserver\ftp server men har utvidet seg en del siden den tiden. I dag er debian en komplett distribusjon.

Les mere om debian på Debian dokumentasjon engelsk

Debian Linux-distribusjon[rediger]

Ønsker du siste versjon av , kan du laste den ned fra https://www.debian.org/support Har du bare Windows installert på PCen, kan du laste ned ISO-image filene enten med http (via nettleser) eller med ftp (ftp-protokollen). Har du Linux installert på PCen, har du muligheten til å bruke ftp eller ncftp til nedlastingen. Fordelen med ncftp er at du kan fortsette å laste ned etter brudd. Det er mest vanlig å laste ned ISO-imagene konvertere disse til komplette diskbilder (katalog-struktur) med DVD-brenneprogrammet. Det raskeste er å laste ned imagene "lokalt" fra for eksempel

Når du har lastet ned ISO-imagene, bør de sjekkes. Det enkleste er å laste ned sjekksumfilen md5sums\sha256sum. Filen md5sums\sha256sum finner du i samme katalog som ISO-imagene. Ved å sjekke mot sjekksumfilen får du verifisert at ISO-imagene ikke er blitt ødelagt under nedlasting.Sha256sum gir større sikkerhet mot feil derfor anbefales det å bruke dette. For Linux distribusjonen gjøres dette slik:

[root@nittedal /root]# md5sum debian-8.4.0-amd64-DVD-1.iso

[root@nittedal /root]# sha256sum debian-8.4.0-amd64-DVD-1.iso

-----BEGIN PGP SIGNED MESSAGE-----

Hash: MD5sum

220b082ea0de3e74d33720a664fe5a1b *debian-8.4.0-amd64-DVD-1.iso f66246855e4c269779481e2b87fe3fdc *debian-8.4.0-amd64-DVD-2.iso

Hash: SHA256

0242a72c29ace7b5d52693c9427a9f6b56bc4de4d8d06ec3ed78893436af1679 *debian-8.4.0-amd64-DVD-1.iso

a491648896337a47fdb424dd42bcd55eb45a582d7371fe0bda3f50883f81e8b2 *debian-8.4.0-amd64-DVD-2.iso


Disse kommandoene tar tid og du kan derfor ta deg en pause fra maskinen. Til slutt kommer det en kode på skjermen. Denne koden skal sjekkes mot sjekksumfilen md5sums\sha256sum. Ved hjelp av Linux cat-kommandoen (type under DOS) ser du innholdet i sjekksum filen.

Hvis du ønsker å laste ned dokumentasjon til kan du gjøre dette fra Dokumentasjonen

finnes også som en egen ISO-fil. Du finner en egen md5sums-fil til denne. Disse linjene skal være identiske med de enkelte sjekksummene. Hvis de ikke er identiske, er det ikke noe poeng å brenne ISO-imaget. Du må da laste ned imaget på nytt. Selve brenningen av CDen kan du gjøre under Linux eller Windows. For å sjekke ISO filen i Windows (Windows 10 eller eldre) kan du bruke: MD5 & SHA-1 Checksum Utility https://raylin.wordpress.com/downloads/md5-sha-1-checksum-utility/

Du kan brenne platen med K3b (KDE) eller Brasero (Gnome)for linux. I Windows kan du bruke Nero eller CDBurnerXP: Free samt Free ISO Burner. Husk også på å brenne som iso fil det vil si filen må pakkes ut ved brenning.

For å lage en minnepenn med image (Windows) prøv Universal-USB-Installer Eller

Bruk kommandoen i linux:

Første er iso filen du skal bruke så kommer der minnepennen er plassert, bs står for blocksize som er 512 kb er anbefalt.

Installeringsoversikt[rediger]

I dette kapitlet skal jeg beskrive hvordan du installerer Debian Linux, men den generelle metoden for installasjon er den samme uansett hvilken Linux-distribusjon du bruker. Du skal:

   * identifisere maskinvarerepartisjonere harddisken(e) slik at det blir plass til Linux
   * starte opp Linux-installasjonen (CD, FTP, NFS, HTTP etc.)
   * definere Linux-partisjoner
   * definere filsystemer og veksellager (swap)
   * installere Linux-distribusjonen på de nye filsystemene
   * installere og konfigurere maskinvare
   * installere applikasjonsprogramvare på de nye filsystemene 

Velge installeringsmetode[rediger]

Installeringsvalget "Oppstart fra DVD-ROM eller CD-ROM samt Blueray" bruker du når maskinen kan laste Linux-operativsystemet direkte fra en CD som har oppstartspor (boot-spor). Du har da en nyere PC (BIOS\UEFI) som støtter standarden for Blueray-ROM. Mediet brukes oppstartskjernen boot.iso under katalogen images på første plate. Har du eksterne lagringsenheter som er USB-basert brukes oppstartskjernen diskboot.iso i samme katalog som for intern DVD.

Oppstart fra plate:

Debian boot.png

Test av media (CD-plate)[rediger]

600px

Velge språk[rediger]

Debianespraak.png

Tidssone[rediger]

Debiantimezone.png

Tastatur[rediger]

Debiantastatur.png

Sett opp nettverket[rediger]

Debianlanname.png

Debianserver.png

Opprett root passord[rediger]

Installeringsprogrammet vil deretter spørre deg om root-passord (systemadministrator). Dette passordet bruker du senere når du skal logge deg inn for å konfigurere Linux-systemet, definere brukere og installere andre programpakker etc. Root-passordet må være minst 6 tegn langt, og passordet skrives inn to ganger. Bruk et passord som er enkelt for deg å huske, men vanskelig for andre å gjette.

Debianroot.png

Figur 3.9: Definere root-bruker

Passordet kan bestå av både bokstaver og tall. Du kan ikke bruke kontrolltegn i passordet. Systemet skiller mellom små og store bokstaver. Et godt passord er en blanding av bokstaver og tall. Ikke glem at konsekvensene av å glemme root-passordet kan være at det blir vanskelig å komme inn på systemet ditt. I alle fall hvis du ikke har fysisk tilgang til det. Hvis du har fysisk tilgang til maskinen, kan du imidlertid starte opp på nytt og skrive “linux single" på GRUB eller LILO-kommandolinjen. Du vil da få opp et skall med root-privilegier, og kan sette et nytt passord for root hvis du ønsker dette. Når du logger deg inn som root, har du tilgang til alle tjenester. Vær derfor forsiktig. Ikke logg deg inn som root for å gjøre ting som ikke krever root-rettigheter, det skaper bare unødvendig stor risiko. Du kan senere endre root-passordet med passwd eller system-config-rootpassword.

Opprett bruker[rediger]

Debianuser.png

Debianuserpassord.png

Tilsvarende som Windows 10 kan du definere brukere. I praksis er det ingen begrensinger på antall brukere. Du kan også senere definere brukere med å kjøre programmene system-config-users eller useradd-programmet. Dette er også beskrevet i kapittel 19

Partisjonering[rediger]

Debianpart.png

Valg av grafisk skrivebord miljø[rediger]

Debiangui.png

Grafisk behandler i oppstart[rediger]

Debiangrafiskbehandler.png

Kopiere inn data[rediger]

Du kan nå klikke på Neste for å starte installeringen av Debian Linux. Du vil finne en komplett logg over installeringen i filen /tmp/install.log etter omstart av systemet. Denne loggen er grei å ha som dokumentasjon på hva som er installert.

Installeringsprogrammet vil nå begynne å installere de enkelte pakkene. Installasjonsstatus vil hele veien gi deg en oversikt over innholdet i den enkelte pakken, samt hvor mye som gjenstår av installeringen de enkelte pakkene og av hele installasjonen.

Figur 3.11: Kopiere inn data

Avslutte installeringen[rediger]

Installeringsprogrammet gir deg nå beskjed om at systemet er klart for omstart av Linux-operativsystemet. Fjern platen fra maskinen. Du kan nå velge å kjøre systemet ned. Dette vil kunne ta noen minutter.

Blir PCen din automatisk avslått, slår du den på igjen. Når PCen din har kjørt en normal oppstartssekvens

Etter installeringen[rediger]

Etter installeringen av Debian Linux skal du gjennom følgende punkter:

  • Konfigurere skjermkortdrivere under Debian etter installasjon
  • Oppsett av TCP/IP
  • Sette opp lydkort.
  • Sette opp brannvegg
  • Sette opp SELinux

Konfigurere skjermkortdrivere under Debian etter installasjon[rediger]

F.eks: Debian\ubuntu med nvidia drivere:

sudo apt-get install nvidia-current-updates

Figur 3.7: Nettverkskonfigurasjon (TCP/IP)

Oppsett av TCP/IP[rediger]

Oppsett av TCP/IP består av 3 x 1/3 menysider. I øverste delmeny kan du definere om nettverkskortet(ene) skal startes opp ved normal oppstart. Her kan du også manuelt sette om du skal bruke IPv4 eller IPv6 etc. I neste meny definerer du om maskinen skal være en DHCP-klient ved oppstart eller om IP-adresse skal settes manuelt.

I siste delmeny kan du sette standard gateway (angir hvilken IP-adresse som skal brukes når man skal nå maskiner i andre nettverk), primær DNS-navneserver (løser opp domenenavnene dine til riktig IP-adresse), sekundær DNS-navneserver og tertiær DNS-navneserver.

I eksemplet under har Pcen min fått navnet dellwork.elboth.no. Den har IPv4-adressen 192.168.1.10 med ipv6-adressen Fe80::f8c8:454b:a071:7865%16. Domenenavnet er elboth.no. Mer om netmask (255.255.255.0), nettverk (192.168.1.0) og kringkastingsadresse (192.168.1.255) i kapittel 22. Default gateway er IP-adressen til den vertsmaskinen som har utgang mot Internett. I mitt tilfelle er det 192.168.1.1 og Fe80::f8c8:454b:a071:7860%16. Denne vertsmaskinen bruker videre IP-forwarding mot det reelle nettverkskortet jeg har mot Internett. De siste IP-adressene er DNS (Domain Name Server). Med DNS kan man bruke navn som www.linux.no i stedet for en IP-adresse. Jeg har satt opp 3 DNS-servere. Det kan være greit med flere hvis en skulle gå ned, kan man fortsatt surfe på Internett.

Felt Eksempel på verdi
IP-adresse ipv4 192.168.1.10
IP-adresse ipv6 Fe80::f8c8:454b:a071:7865%16
Netmask 255.255.255.0
Nettverk 192.168.1.0
Kringkasting 192.168.1.255
Vertsnavn dellwork.elboth.no
Gateway ipv4 192.168.1.1
Gateway ipv6 Fe80::f8c8:454b:a071:7860%16
Primær DNS ipv4 217.118.32.12
Sekundær DNS 217.118.32.13
Tertiær DNS 193.216.69.12
Primær DNS ipv6 2001:4860:4860::8888
Tertiær DNS ipv6 2001:4860:4860::8844

Definere lydkort[rediger]

Lydkortet blir automatisk funnet. I denne seksjonen kan du teste lyd og gjøre mindre justeringer på lydkortet. Etter at lydkortet er sjekket er du klar til å logge inn på systemet og bruke det. Skal du bruke Displayport\HDMI som lyd må du sette opp drivere og velge primærenheten avhengig av distribusjon.

Konfigurere brannmur[rediger]

I neste skjermbilde setter du opp brannveggen. Skal PCen din være tilgjengelig for andre på Internett, må sikkerhet tas med i betraktningen. Hvis Linux-PCen din bare skal brukes som arbeidsstasjon, og samtidig være tilknyttet Internett, vil middels sikkerhet være tilfredsstillende. Skal maskinen fungere som en server, bør du tilpasse de enkelte tjenestene (/etc/service). Er du på et lukket nettverk hvor du stoler på alle, kan du velge ingen brannmur.

Konfigurere SELINUX[rediger]

I neste skjermbilde definerer du om ønsker å utvide Linux operativsystemet med SELinux. Som er forkortelsen for Security Enhanced Linux. Dette betyr i praksis at du har høyere oppløsning på Linux-sikkerheten enn det som er normalt. For de fleste greier seg uten denne tilleggsfunksjonaliteten.

Starte Windows 10 og Linux[rediger]

Ønsker du å ha muligheten til å både laste Windows (Windows 10 og eldre) og Linux, er det mer å passe på. Jeg anbefaler at for eksempel Windows installeres først. Vær klar over at oppstartsprogrammet i Windows ønsker at oppstartssektoren fra andre operativsystemer er tilgjengelig som egne filer. Ønsker du å benytte NTFS-partisjoner, bør du sjekke adressen:

http://linux-ntfs.sourceforge.net/.

Nedenfor har jeg hovedpunktene du må gjennom for at PCen din skal kunne håndtere "dual boot". Senere går jeg i mer detalj:

  • Installere Windows
  • Installere Debian Linux
  • Verifisere Windows-oppstart
  • Debian Linux-oppstart

Installer Windows på vanlig måte. Husk bare på å ikke benytte hele disken til Windows. Når du er ferdig med installeringen av Windows, starter du installeringen av debian, slik jeg har beskrevet i begynnelsen av kapittel 3. I noen tilfeller kan Linux oppstartslasteren gjøre det umulig å laste opp Windows. I stedet for å installere oppstartslasteren i /dev/hda hvor MBR (Master Boot Record) er plassert, velger du derfor å installere oppstartslasteren i første sektor i oppstartspartisjonen, for eksempel /dev/hda1 eller /dev/hdb1 (installerer du MS Windows XP eller eldre brukes MBR (Master Boot Record) som vi har nevnt tidligere i dette kapitlet).

På noen eldre maskiner får man ikke lastet opp Windows (Windows XP) selv om man har fulgt den oppskriften som jeg har skissert med dual boot (Linux & Windows).

Får du ikke kontakt med din Linux-partisjon etter installasjon kan du bruke Live-DVD-en for å fikse grub2. Alternativet er skulle du få problemet med UEFI er rEFInd Boot Manager redningen som funger helt til Windows 10 og de fleste linux distribusjonene. Da det fremdeles er ikke alle maskiner UEFI\Bios boot funger optimalt med grub2 ennå.. Fra oppstartsprogrammet etter boot skriver du linux rescue (boot: linux rescue).

Når Debian Linux er installert, starter du maskinen på nytt for å bekrefte at maskinen starter Windows. Virker Windows feilfritt, starter du maskinen på nytt. Logg inn som systemadministrator (root) på en av de virtuelle konsollene (Ctrl-Alt-Fn). Når du er inne som systemadministrator, kopierer du oppstartssektoren fra Linux-root-partisjonen. Hvis root-partisjonen er satt opp på /dev/hda2, blir kommandoen:

[root@nittedal /root]# dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1

Hvis root-partisjonen er satt opp på /dev/hdb1, blir kommandoen:

[root@nittedal /root]# dd if=/dev/hdb1 of=/bootsect.lnx bs=512 count=1

Du bør nå sjekke at filen bootsect.lnx ikke er større enn 512 bytes. Er den det, har du gjort en feil eller det er noe galt med root-partisjonen din. Hvis du nå ikke har montert opp Windows-diskene dine, må filen bootsect.lnx kopieres ut på en Windows (DOS)-diskett. Det gjør du enkelt med Mtools kommandoen mcopy.

For nyere UEFI 64 bits:

\EFI\BOOT\BOOTX64.EFI /sys/firmware/efi [-d/sys/firmware/efi]&&echo "EFI boot on HDD" || echo "Legacy boot on HDD" Sett opp: /boot/efi på enten 100\200 mb størrelse. Type: FAT32 med boot\oppstartpartion.

Eller prøv følgende kommando: grub2-mkconfig -o /boot/efi/EFI/debian/grub.cfg

su lsblk blkid | grep -i efi grep -i efi /etc/fstab

ls -l /boot/efi/EFI/

SecureBoot Er en ny funsjon for sikkerhet i UEFI som gjør at operativsystemet er mindre sårbar for virus rettet mot bios skadevare.

Hjelp og informasjonssider[rediger]

Informasjonsider Beskrivelse
http://forums.debian.net/ Forum
https://www.debian.org/doc/ Debian documentation
https://wiki.debian.org/DebianDesktopHowTo Debian desktop how to
https://wiki.debian.org/IRC/ Debian IRC

Bruker du IRC anbefaler vi irc.debian.org eller irc.oftc.net med kanalene #debian.

Fjerne Linux[rediger]

Hvis du ønsker å fjerne Linux-partisjonen, finnes det flere alternativer. Det mest drastiske alternativet er å lavformatere hele harddisken. De fleste harddiskleverandører kan i dag tilby lavformateringsprogrammer. Du finner også lavformateringsprogrammer på nettet. Når du lavformaterer harddisken din, forsvinner alt som er installert på maskinen. Alle partisjoner forsvinner uansett hva slags operativsystem de tilhører. Lavformateringsprogrammer leveres vanligvis på egne oppstartsdisketter. Disse er som regel basert på MS-DOS. Etter oppstarten er det bare å følge menyalternativene.

Ønsker du å bare å fjerne Linux, er lavformatering unødvendig. Fra Linux kan du fjerne GRUB fra MBR ved å kjøre grub-programmet (/sbin/grub). Hjelp gir deg opsjonene som du trenger bruke. Fra Linux kan du fjerne LILO fra MBR ved å kjøre LILO-programmet (/sbin/lilo).

Eksempel:

  1. /sbin/lilo -u

Ved å bruke opsjonen -u får du tilbake den opprinnelige MBR-konfigurasjonen. Ønsker du bare å fjerne enkelte Linux-partisjoner kan du også bruke Linux-kommandoene parted og rm.

  1. parted /dev/hda

Her fjernes Linux-partisjonen (med filsystem) /dev/hda. Hvis du vet sekundært (minor) nummer (prøv med print) til partisjonen kan du bruke rm-kommanoden.

  1. rm 4

Her fjerner vi partisjonen med minor nummer 4. Du kan også bruke Microsofts fdisk. Hvis du vil fjerne Linux fra en maskin som har både Linux og Windows, bør du forsikre deg om at du har en oppstartsdiskett for Windows 98. Du kan da starte maskinen fra denne og bruke fdisk-kommandoen med mbr-opsjonen. Dette er en udokumentert opsjon som virker både på GRUB og LILO.

Eksempel:

C> fdisk /mbr

Her settes MBR til å peke til den primære DOS-partisjonen, og Windows vil på nytt starte normalt. Av og til kan det være problemer med å få fjernet en Linux-partisjon med Microsofts fdisk. Du kan da starte maskinen med en Linux-bootdiskett og bruke Linux' fdisk til å fjerne partisjonen. Etter omstart av maskinen kan du så bruke Microsofts fdisk til å lage en partisjon som Windows kan bruke.

For de som har installert Windows 10 eller Windows 8.1 med filsystemet NTFS og satt opp systemet med Dual boot, fjernes ikke oppstarten av Linux med fdisk-kommandoen. Gå til I386-katalogen på platen med Windows XP eller eldre. Fra denne katalogen kan du enten skrive fixboot eller mbrfix for å få tilbake den opprinnelige MBR-konfigurasjonen.

Oppgaver til kapittel 3[rediger]

Oppgave 3.1 Hvilke verktøy finnes for å endre partisjonstabellen?

Oppgave 3.2 Hvorfor er det viktig med en oversikt over maskinvaren (type, I/U-parametere) før man installerer Linux?

Oppgave 3.3 Hvordan kan man sjekke Debian ISO-imagene som man har lastet ned fra Internett for feil?

Oppgave 3.4 Installer Linux på tradisjonell måte. Lag et eget filsystem på 4 GB som du kaller redhat. Kopier installasjons-platen til filsystemet til debian. Bruk denne maskinen som server og installer 3 nye arbeidsstasjoner. Disse skal installeres via nettverket. Prøv de forskjellige installasjonsalternativene, for eksempel ftp, nfs og http.

Oppgave 3.5 Hvordan går du fram (Bios\UEFI) hvis du skal ha valgfri oppstart (dualboot) mellom Linux og Windows XP eller Windows 10?

Oppgave 3.6 Hvilken kommando kan du kjøre under Debian og Windows/DOS hvis du ønsker å gå tilbake til tidligere partisjonstabell?

Open Mandriva Installasjon[rediger]

Open Mandriva historie[rediger]

Som alle vet historien om Mandrake som måtte bytte navn til Mandriva på grunn av et blad som heter det samme, senere ble det til Mandriva siden (The Hearst Corporation saksøkte Mandrakesoft på bakgrunn av varmerket «Mandrake the Magician») Tidligere Mandrakesoft har flere ganger hatt økonomisk-problem, men dette ordnet seg i 2007 da investeringsfondet Occam gikk inn med 3 millioner euro. Samme år kjøpte Mandriva opp selskapet Linbox. I dag er Mandriva en betydelig aktør i utviklingen av Linux-programvare, blant annet KDE.

I Mandriva linux 2009 er KDE4 og GNOME standard.

På grunn av dette har aldri mandriva blitt noe suksess, selv om de prøvde seg på Mandrake Powerpack, som hadde flash\java og andre ting i selve distribusjonen for å kunne konkurrere. Men noe de aldri har klart. Selv i dag har Open Mandriva ganske utdatert grafisk grensesnitt mangler\dårlig UEFI støtte i kjernen etc. Selv om de har klart å få på plass norsk språk er de tilbake til sist nivå når Powerpack var ute. Det er noen år siden.

Openmandriva systemet[rediger]

Du kan lese Mandriva offentlige dokumentasjon installasjon på engelsk

Eller hovedsiden OM Dokumentasjon Engelsk

Ønsker du siste versjon av , kan du laste den ned fra https://www.openmandriva.org/Downloads

Har du bare Windows installert på PCen, kan du laste ned ISO-image filene enten med http (via nettleser) eller med ftp (ftp-protokollen). Har du Linux installert på PCen, har du muligheten til å bruke ftp eller ncftp til nedlastingen. Fordelen med ncftp er at du kan fortsette å laste ned etter brudd. Det er mest vanlig å laste ned ISO-imagene konvertere disse til komplette diskbilder (katalog-struktur) med DVD-brenneprogrammet. Det raskeste er å laste ned imagene "lokalt" fra for eksempel

Når du har lastet ned ISO-imagene, bør de sjekkes. Det enkleste er å laste ned sjekksumfilen md5sums\sha256sum. Filen md5sums\sha256sum finner du i samme katalog som ISO-imagene. Ved å sjekke mot sjekksumfilen får du verifisert at ISO-imagene ikke er blitt ødelagt under nedlasting.Sha256sum gir større sikkerhet mot feil derfor anbefales det å bruke dette. For Linux distribusjonen gjøres dette slik:

[root@nittedal /root]# md5sum OpenMandriva.2014.0-kde4.x86_64.iso

[root@nittedal /root]# sha256sum OpenMandriva.2014.0-kde4.x86_64.iso

MD5 sum

a567f5d3832e133f9c5c5fa444fad941 OpenMandrivaLx.2014.1-kde4.i586.iso

49787f30627e520025c450fe8017b64a OpenMandrivaLx.2014.1-kde4.x86_64.iso

Disse kommandoene tar tid og du kan derfor ta deg en pause fra maskinen. Til slutt kommer det en kode på skjermen. Denne koden skal sjekkes mot sjekksumfilen md5sums\sha256sum. Ved hjelp av Linux cat-kommandoen (type under DOS) ser du innholdet i sjekksum filen.

Hvis du ønsker å laste ned dokumentasjon til kan du gjøre dette fra Dokumentasjonen

finnes også som en egen ISO-fil. Du finner en egen md5sums-fil til denne. Disse linjene skal være identiske med de enkelte sjekksummene. Hvis de ikke er identiske, er det ikke noe poeng å brenne ISO-imaget. Du må da laste ned imaget på nytt. Selve brenningen av CDen kan du gjøre under Linux eller Windows. For å sjekke ISO filen i Windows (Windows 10 eller eldre) kan du bruke: MD5 & SHA-1 Checksum Utility https://raylin.wordpress.com/downloads/md5-sha-1-checksum-utility/

Du kan brenne platen med K3b (KDE) eller Brasero (Gnome)for linux. I Windows kan du bruke Nero eller CDBurnerXP: Free samt Free ISO Burner. Husk også på å brenne som iso fil det vil si filen må pakkes ut ved brenning.

For å lage en minnepenn med image (Windows) prøv Universal-USB-Installer Eller

Bruk kommandoen i linux:

Første er iso filen du skal bruke så kommer der minnepennen er plassert, bs står for blocksize som er 512 kb er anbefalt.

Openmandriva Installasjon[rediger]

Installeringsoversikt[rediger]

I dette kapitlet skal jeg beskrive hvordan du installerer Openmandriva Linux, men den generelle metoden for installasjon er den samme uansett hvilken Linux-distribusjon du bruker. Du skal:

  * identifisere maskinvarerepartisjonere harddisken(e) slik at det blir plass til Linux
  * starte opp Linux-installasjonen (CD, FTP, NFS, HTTP etc.)
  * definere Linux-partisjoner
  * definere filsystemer og veksellager (swap)
  * installere Linux-distribusjonen på de nye filsystemene
  * installere og konfigurere maskinvare
  * installere applikasjonsprogramvare på de nye filsystemene 

Velge installeringsmetode[rediger]

Installeringsvalget "Oppstart fra DVD-ROM eller CD-ROM" bruker du når maskinen kan laste Linux-operativsystemet direkte fra en CD som har oppstartspor (boot-spor). Du har da en nyere PC (BIOS\UEFI) som støtter standarden for Blueray-ROM. Mediet brukes oppstartskjernen boot.iso under katalogen images på første plate. Har du eksterne lagringsenheter som er USB-basert brukes oppstartskjernen diskboot.iso i samme katalog som for intern DVD.

Oppstart fra plate:

OpenMandriva boot.png

Trobleshoothing = Feilsøk, her kan du teste rambrikkene for feil. Eller du kan starte fra harddisken i sikkermodus\feilsøking. Run super grub2 gjør det mulig å reparere feil på grub2 oppstartlasteren.

Språk[rediger]

Mandrivalanguage.png

Velg språk

Godta lisensen[rediger]

Mandrivalicense.png

Les gjennom lisensen hvis alt se greit ut velg godta.

Tidssone[rediger]

Sett tidsone velg f.eks oslo.

Mandrivatimezone.png

Mandrivatimezone2.png

Nå får du spørsmål om du vil bruke UTC Universial Time (Universell tid) eller lokal tid.

Tastatur[rediger]

Mandrivakeyboard.png

Velg tastatur, f.eks norsk.

Oppstart programvare[rediger]

Mandrivabootapps.png

Her velger du prgorammer som skal starte opp med openmandriva

Partisjonering[rediger]

Mandrivapartition.png

Velg riktig harddisk\SSD du vil installere på i tillegg partisjoner.

Oppstartlaster[rediger]

Mandrivabootloader.png

Velg riktig disk for å starte mandriva, dette bør være disken du har satt bios til å starte fra.

Opprett root passord[rediger]

Installeringsprogrammet vil deretter spørre deg om root-passord (systemadministrator). Dette passordet bruker du senere når du skal logge deg inn for å konfigurere Linux-systemet, definere brukere og installere andre programpakker etc. Root-passordet må være minst 6 tegn langt, og passordet skrives inn to ganger. Bruk et passord som er enkelt for deg å huske, men vanskelig for andre å gjette.

Mandrivaroot.png

Figur 3.9: Definere root-bruker

Passordet kan bestå av både bokstaver og tall. Du kan ikke bruke kontrolltegn i passordet. Systemet skiller mellom små og store bokstaver. Et godt passord er en blanding av bokstaver og tall. Ikke glem at konsekvensene av å glemme root-passordet kan være at det blir vanskelig å komme inn på systemet ditt. I alle fall hvis du ikke har fysisk tilgang til det. Hvis du har fysisk tilgang til maskinen, kan du imidlertid starte opp på nytt og skrive “linux single" på GRUB eller LILO-kommandolinjen. Du vil da få opp et skall med root-privilegier, og kan sette et nytt passord for root hvis du ønsker dette. Når du logger deg inn som root, har du tilgang til alle tjenester. Vær derfor forsiktig. Ikke logg deg inn som root for å gjøre ting som ikke krever root-rettigheter, det skaper bare unødvendig stor risiko. Du kan senere endre root-passordet med passwd eller system-config-rootpassword.

Opprett bruker[rediger]

Mandrivauser.png

Tilsvarende som Windows 10 kan du definere brukere. I praksis er det ingen begrensinger på antall brukere. Du kan også senere definere brukere med å kjøre programmene system-config-users eller useradd-programmet. Dette er også beskrevet i kapittel 19.

Du kan nå klikke på Neste for å starte installeringen av Open Mandriva Linux. Du vil finne en komplett logg over installeringen i filen /tmp/install.log etter omstart av systemet. Denne loggen er grei å ha som dokumentasjon på hva som er installert.

Installeringsprogrammet vil nå begynne å installere de enkelte pakkene. Installasjonsstatus vil hele veien gi deg en oversikt over innholdet i den enkelte pakken, samt hvor mye som gjenstår av installeringen de enkelte pakkene og av hele installasjonen.

Ferdig satt opp mandriva[rediger]

Mandrivainstalled.png

Konfigurere brannmur[rediger]

I neste skjermbilde setter du opp brannveggen. Skal PCen din være tilgjengelig for andre på Internett, må sikkerhet tas med i betraktningen. Hvis Linux-PCen din bare skal brukes som arbeidsstasjon, og samtidig være tilknyttet Internett, vil middels sikkerhet være tilfredsstillende. Skal maskinen fungere som en server, bør du tilpasse de enkelte tjenestene (/etc/service). Er du på et lukket nettverk hvor du stoler på alle, kan du velge ingen brannmur.

Definere lydkort[rediger]

Lydkortet blir automatisk funnet. I denne seksjonen kan du teste lyd og gjøre mindre justeringer på lydkortet. Etter at lydkortet er sjekket er du klar til å logge inn på systemet og bruke det. Skal du bruke Displayport\HDMI som lyd må du sette opp drivere og velge primærenheten avhengig av distribusjon.

Starte Windows 10 og Linux[rediger]

Ønsker du å ha muligheten til å både laste Windows (Windows 10 og eldre) og Linux, er det mer å passe på. Jeg anbefaler at for eksempel Windows installeres først. Vær klar over at oppstartsprogrammet i Windows ønsker at oppstartssektoren fra andre operativsystemer er tilgjengelig som egne filer. Ønsker du å benytte NTFS-partisjoner, bør du sjekke adressen:

http://linux-ntfs.sourceforge.net/.

Nedenfor har jeg hovedpunktene du må gjennom for at PCen din skal kunne håndtere "dual boot". Senere går jeg i mer detalj:

   * Installere Windows
   * Installere Openmandriva Linux
   * Verifisere Windows-oppstart
   * Open Mandriva Linux-oppstart 

Installer Windows på vanlig måte. Husk bare på å ikke benytte hele disken til Windows. Når du er ferdig med installeringen av Windows, starter du installeringen av Openmandriva, slik jeg har beskrevet i begynnelsen av kapittel 3. I noen tilfeller kan Linux oppstartslasteren gjøre det umulig å laste opp Windows. I stedet for å installere oppstartslasteren i /dev/hda hvor MBR (Master Boot Record) er plassert, velger du derfor å installere oppstartslasteren i første sektor i oppstartspartisjonen, for eksempel /dev/hda1 eller /dev/hdb1 (installerer du MS Windows XP eller eldre brukes MBR (Master Boot Record) som vi har nevnt tidligere i dette kapitlet).

Får du ikke kontakt med din Linux-partisjon etter installasjon prøv rEFInd Boot Manager redningen som funger helt til Windows 10 og de fleste linux distribusjonene. Da det fremdeles er ikke alle maskiner UEFI\Bios boot funger optimalt med grub2 ennå.

For nyere UEFI 64 bits:

\EFI\BOOT\BOOTX64.EFI /sys/firmware/efi [-d/sys/firmware/efi]&&echo "EFI boot on HDD" || echo "Legacy boot on HDD" Sett opp: /boot/efi på enten 100\200 mb størrelse. Type: FAT32 med boot\oppstartpartion.

Eller prøv følgende kommando: grub2-mkconfig -o /boot/efi/EFI/mandriva/grub.cfg

su lsblk blkid | grep -i efi grep -i efi /etc/fstab

ls -l /boot/efi/EFI/

SecureBoot Er en ny funsjon for sikkerhet i UEFI som gjør at operativsystemet er mindre sårbar for virus rettet mot bios skadevare.

Bruker du IRC anbefaler vi irc.freenode.net med kanalen #openmandriva.

Hjelp og informasjonssider[rediger]

Informasjonsider Beskrivelse
https://doc.openmandriva.org/OpenMandriva-Lx-2014 Mandriva offentlige dokumentasjon installasjon på engelsk
https://doc.openmandriva.org/English OM Dokumentasjon Engelsk
https://wiki.openmandriva.org/en/Users/Contact IRC
https://forum.openmandriva.org/ forum

Bruker du IRC anbefaler vi irc.freenode.net med kanalen #openmandriva.

Fjerne Linux[rediger]

Hvis du ønsker å fjerne Linux-partisjonen, finnes det flere alternativer. Det mest drastiske alternativet er å lavformatere hele harddisken. De fleste harddiskleverandører kan i dag tilby lavformateringsprogrammer. Du finner også lavformateringsprogrammer på nettet. Når du lavformaterer harddisken din, forsvinner alt som er installert på maskinen. Alle partisjoner forsvinner uansett hva slags operativsystem de tilhører. Lavformateringsprogrammer leveres vanligvis på egne oppstartsdisketter. Disse er som regel basert på MS-DOS. Etter oppstarten er det bare å følge menyalternativene.

Ønsker du å bare å fjerne Linux, er lavformatering unødvendig. Fra Linux kan du fjerne GRUB fra MBR ved å kjøre grub-programmet (/sbin/grub). Hjelp gir deg opsjonene som du trenger bruke. Fra Linux kan du fjerne LILO fra MBR ved å kjøre LILO-programmet (/sbin/lilo).

Eksempel:

  1. /sbin/lilo -u

Ved å bruke opsjonen -u får du tilbake den opprinnelige MBR-konfigurasjonen. Ønsker du bare å fjerne enkelte Linux-partisjoner kan du også bruke Linux-kommandoene parted og rm.

  1. parted /dev/hda

Her fjernes Linux-partisjonen (med filsystem) /dev/hda. Hvis du vet sekundært (minor) nummer (prøv med print) til partisjonen kan du bruke rm-kommanoden.

  1. rm 4

Her fjerner vi partisjonen med minor nummer 4. Du kan også bruke Microsofts fdisk. Hvis du vil fjerne Linux fra en maskin som har både Linux og Windows, bør du forsikre deg om at du har en oppstartsdiskett for Windows 98. Du kan da starte maskinen fra denne og bruke fdisk-kommandoen med mbr-opsjonen. Dette er en udokumentert opsjon som virker både på GRUB og LILO.

Oppgaver til kapittel 3[rediger]

Oppgave 3.1 Hvilke verktøy finnes for å endre partisjonstabellen?

Oppgave 3.2 Hvorfor er det viktig med en oversikt over maskinvaren (type, I/U-parametere) før man installerer Linux?

Oppgave 3.3 Hvordan kan man sjekke Open mandriva ISO-imagene som man har lastet ned fra Internett for feil?

Oppgave 3.4 Installer Linux på tradisjonell måte. Lag et eget filsystem på 4 GB som du kaller mandriva. Kopier installasjons-platen til filsystemet til Mandriva. Bruk denne maskinen som server og installer 3 nye arbeidsstasjoner. Disse skal installeres via nettverket. Prøv de forskjellige installasjonsalternativene, for eksempel ftp, nfs og http.

Oppgave 3.5 Hvordan går du fram (Bios\UEFI) hvis du skal ha valgfri oppstart (dualboot) mellom Linux og Windows XP eller Windows 10?

Oppgave 3.6 Hvilken kommando kan du kjøre under Open Mandriva og Windows/DOS hvis du ønsker å gå tilbake til tidligere partisjonstabell?

Linux Mint[rediger]

Linux Mint historie[rediger]

Linux mint er basert på Debian\Ubuntu som jobber aktivt for å bli morderne operativsystem. Ble startet i 2006 som Linux Mint 1.0 "Ada" basert på kubuntu kjerne.

Linux Mint 2.0 var basert på ubuntu 6.10 i 2006.

I 2008 droppet mint versjonsnummer.

I 2010 kom Linux Mint Debian Edition, som en del av LMDE (Linux Mint Debian Edition)

Linux mint har ut av boksen full støtte for multimedia.

Og utviklet av Clement Lefebvre

Programvarebehandler[rediger]

  • MintTools
  • Software Manager (mintInstall) .mint filer
  • Update Manager (mintUpdate)
  • Main Menu (mintMenu)
  • Backup tool (mintBackup)
  • Upload Manager (mintUpload)
  • Domain Blocker (mintNanny)
  • Welcome screen (mintWelcome)
  • Mint Gnome Shell Extensions (MGSE)

Linux Mint systemet[rediger]

Du kan lese Linux mint dokumentasjon på engelsk

Eller hovedsiden Hjemmesiden til mint

Ønsker du siste versjon av , kan du laste den ned fra https://www.linuxmint.com/

Fordelen med mint er du får med Flash, java, videolan som ofte man må installere seperat på andre distribusjoner.

Har du bare Windows installert på PCen, kan du laste ned ISO-image filene enten med http (via nettleser) eller med ftp (ftp-protokollen). Har du Linux installert på PCen, har du muligheten til å bruke ftp eller ncftp til nedlastingen. Fordelen med ncftp er at du kan fortsette å laste ned etter brudd. Det er mest vanlig å laste ned ISO-imagene konvertere disse til komplette diskbilder (katalog-struktur) med DVD-brenneprogrammet. Det raskeste er å laste ned imagene "lokalt" fra for eksempel

Når du har lastet ned ISO-imagene, bør de sjekkes. Det enkleste er å laste ned sjekksumfilen md5sums\sha256sum. Filen md5sums\sha256sum finner du i samme katalog som ISO-imagene. Ved å sjekke mot sjekksumfilen får du verifisert at ISO-imagene ikke er blitt ødelagt under nedlasting.Sha256sum gir større sikkerhet mot feil derfor anbefales det å bruke dette. For Linux distribusjonen gjøres dette slik:

[root@nittedal /root]# md5sum linuxmint-17.3-cinnamon-64bit.iso

[root@nittedal /root]# sha256sum linuxmint-17.3-cinnamon-64bit.iso

MD5 sum

e71a2aad8b58605e906dbea444dc4983 linuxmint-17.3-cinnamon-64bit.iso

6e7f7e03500747c6c3bfece2c9c8394f linuxmint-17.3-cinnamon-32bit.iso

Sha 256 sum

854d0cfaa9139a898c2a22aa505b919ddde34f93b04a831b3f030ffe4e25a8e3 linuxmint-17.3-cinnamon-64bit.iso

46b8a14826a53f4cacf56d1132a5184c2132f274aef8103e5e8e8cae9e1cfde0 linuxmint-17.3-cinnamon-32bit.iso

Disse kommandoene tar tid og du kan derfor ta deg en pause fra maskinen. Til slutt kommer det en kode på skjermen. Denne koden skal sjekkes mot sjekksumfilen md5sums\sha256sum. Ved hjelp av Linux cat-kommandoen (type under DOS) ser du innholdet i sjekksum filen.

Hvis du ønsker å laste ned dokumentasjon til kan du gjøre dette fra Dokumentasjonen

finnes også som en egen ISO-fil. Du finner en egen md5sums-fil til denne. Disse linjene skal være identiske med de enkelte sjekksummene. Hvis de ikke er identiske, er det ikke noe poeng å brenne ISO-imaget. Du må da laste ned imaget på nytt. Selve brenningen av CDen kan du gjøre under Linux eller Windows. For å sjekke ISO filen i Windows (Windows 10 eller eldre) kan du bruke: MD5 & SHA-1 Checksum Utility https://raylin.wordpress.com/downloads/md5-sha-1-checksum-utility/

Du kan brenne platen med K3b (KDE) eller Brasero (Gnome)for linux. I Windows kan du bruke Nero eller CDBurnerXP: Free samt Free ISO Burner. Husk også på å brenne som iso fil det vil si filen må pakkes ut ved brenning.

For å lage en minnepenn med image (Windows) prøv Universal-USB-Installer Eller

Bruk kommandoen i linux:

Første er iso filen du skal bruke så kommer der minnepennen er plassert, bs står for blocksize som er 512 kb er anbefalt.

Linux Mint Installasjon[rediger]

Installeringsoversikt[rediger]

I dette kapitlet skal jeg beskrive hvordan du installerer Linux Mint, men den generelle metoden for installasjon er den samme uansett hvilken Linux-distribusjon du bruker. Du skal:

   * identifisere maskinvarerepartisjonere harddisken(e) slik at det blir plass til Linux
   * starte opp Linux-installasjonen (CD, FTP, NFS, HTTP etc.)
   * definere Linux-partisjoner
   * definere filsystemer og veksellager (swap)
   * installere Linux-distribusjonen på de nye filsystemene
   * installere og konfigurere maskinvare
   * installere applikasjonsprogramvare på de nye filsystemene 

Velge installeringsmetode[rediger]

Installeringsvalget "Oppstart fra DVD-ROM eller CD-ROM" bruker du når maskinen kan laste Linux-operativsystemet direkte fra en CD som har oppstartspor (boot-spor). Du har da en nyere PC (BIOS\UEFI) som støtter standarden for Blueray-ROM. Mediet brukes oppstartskjernen boot.iso under katalogen images på første plate. Har du eksterne lagringsenheter som er USB-basert brukes oppstartskjernen diskboot.iso i samme katalog som for intern DVD.

Oppstart fra plate:

Mint boot.png


Dette er første beskjeden du får når du forsøker å starte mint.

Språk[rediger]

Mintlanguage.png

Velg språk f.eks norsk eller engelsk.

Forbedelse av Linux Mint[rediger]

Mintprepare.png

Viser systemkrav, minst 9.4 GB ledig plass og internet tilkobling. Dessverre står det ikke noe om ram\cpu, men antar minst 512 mb ram og Pentium\Celeron 4 2 Ghz 64\32 bits er minste krav eller tilsvarende som dette, her burde man nok fint klare å bruke de fleste maskiner til denne.

Partisjonering[rediger]

Mintpartition.png

Velg riktig harddisk\SSD du vil installere på i tillegg partisjoner. Her velger jeg kun å installere linux mint i virtual box. Skal du ha windows i tillegg bør du velge "avansert"

Tidssone[rediger]

Minttimezone.png

Sett tidssone velg f.eks oslo.

Tastatur[rediger]

Mintkeyboard.png

Velg tastatur, f.eks norsk.

Opprett bruker[rediger]

Mintuser.png

Tilsvarende som Windows 10 kan du definere brukere. I praksis er det ingen begrensinger på antall brukere. Du kan også senere definere brukere med å kjøre programmene system-config-users eller useradd-programmet. Dette er også beskrevet i kapittel 19.

Du kan nå klikke på Neste for å starte installeringen av Linux Mint. Du vil finne en komplett logg over installeringen i filen /tmp/install.log etter omstart av systemet. Denne loggen er grei å ha som dokumentasjon på hva som er installert.

Installeringsprogrammet vil nå begynne å installere de enkelte pakkene. Installasjonsstatus vil hele veien gi deg en oversikt over innholdet i den enkelte pakken, samt hvor mye som gjenstår av installeringen de enkelte pakkene og av hele installasjonen.

Opprett root passord[rediger]

Installeringsprogrammet vil deretter spørre deg om root-passord (systemadministrator). Dette passordet bruker du senere når du skal logge deg inn for å konfigurere Linux-systemet, definere brukere og installere andre programpakker etc. Root-passordet må være minst 6 tegn langt, og passordet skrives inn to ganger. Bruk et passord som er enkelt for deg å huske, men vanskelig for andre å gjette.

Figur 3.9: Definere root-bruker

Passordet kan bestå av både bokstaver og tall. Du kan ikke bruke kontrolltegn i passordet. Systemet skiller mellom små og store bokstaver. Et godt passord er en blanding av bokstaver og tall. Ikke glem at konsekvensene av å glemme root-passordet kan være at det blir vanskelig å komme inn på systemet ditt. I alle fall hvis du ikke har fysisk tilgang til det. Hvis du har fysisk tilgang til maskinen, kan du imidlertid starte opp på nytt og skrive “linux single" på GRUB eller LILO-kommandolinjen. Du vil da få opp et skall med root-privilegier, og kan sette et nytt passord for root hvis du ønsker dette. Når du logger deg inn som root, har du tilgang til alle tjenester. Vær derfor forsiktig. Ikke logg deg inn som root for å gjøre ting som ikke krever root-rettigheter, det skaper bare unødvendig stor risiko. Du kan senere endre root-passordet med passwd eller system-config-rootpassword.

Ferdig satt opp Mint[rediger]

Mintinstalled.png

Konfigurere nettverk[rediger]

Figur 3.7: Nettverkskonfigurasjon (TCP/IP)

Oppsett av TCP/IP[rediger]

Du bør sette enten fast ip (Som under eller statisk DHCP der routeren velger ip adresser) som er mest vanlig hjemme.

Oppsett av TCP/IP består av 3 x 1/3 menysider. I øverste delmeny kan du definere om nettverkskortet(ene) skal startes opp ved normal oppstart. Her kan du også manuelt sette om du skal bruke IPv4 eller IPv6 etc. I neste meny definerer du om maskinen skal være en DHCP-klient ved oppstart eller om IP-adresse skal settes manuelt.

I siste delmeny kan du sette standard gateway (angir hvilken IP-adresse som skal brukes når man skal nå maskiner i andre nettverk), primær DNS-navneserver (løser opp domenenavnene dine til riktig IP-adresse), sekundær DNS-navneserver og tertiær DNS-navneserver.

I eksemplet under har Pcen min fått navnet dellwork.elboth.no. Den har IPv4-adressen 192.168.1.10 med ipv6-adressen Fe80::f8c8:454b:a071:7865%16. Domenenavnet er elboth.no. Mer om netmask (255.255.255.0), nettverk (192.168.1.0) og kringkastingsadresse (192.168.1.255) i kapittel 22. Default gateway er IP-adressen til den vertsmaskinen som har utgang mot Internett. I mitt tilfelle er det 192.168.1.1 og Fe80::f8c8:454b:a071:7860%16. Denne vertsmaskinen bruker videre IP-forwarding mot det reelle nettverkskortet jeg har mot Internett. De siste IP-adressene er DNS (Domain Name Server). Med DNS kan man bruke navn som www.linux.no i stedet for en IP-adresse. Jeg har satt opp 3 DNS-servere. Det kan være greit med flere hvis en skulle gå ned, kan man fortsatt surfe på Internett.

Felt Eksempel på verdi
IP-adresse ipv4 192.168.1.10
IP-adresse ipv6 Fe80::f8c8:454b:a071:7865%16
Netmask 255.255.255.0
Nettverk 192.168.1.0
Kringkasting 192.168.1.255
Vertsnavn dellwork.elboth.no
Gateway ipv4 192.168.1.1
Gateway ipv6 Fe80::f8c8:454b:a071:7860%16
Primær DNS ipv4 217.118.32.12
Sekundær DNS 217.118.32.13
Tertiær DNS 193.216.69.12
Primær DNS ipv6 2001:4860:4860::8888
Tertiær DNS ipv6 2001:4860:4860::8844

Konfigurere brannmur[rediger]

I neste skjermbilde setter du opp brannveggen. Skal PCen din være tilgjengelig for andre på Internett, må sikkerhet tas med i betraktningen. Hvis Linux-PCen din bare skal brukes som arbeidsstasjon, og samtidig være tilknyttet Internett, vil middels sikkerhet være tilfredsstillende. Skal maskinen fungere som en server, bør du tilpasse de enkelte tjenestene (/etc/service). Er du på et lukket nettverk hvor du stoler på alle, kan du velge ingen brannmur.

Definere lydkort[rediger]

Lydkortet blir automatisk funnet. I denne seksjonen kan du teste lyd og gjøre mindre justeringer på lydkortet. Etter at lydkortet er sjekket er du klar til å logge inn på systemet og bruke det. Skal du bruke Displayport\HDMI som lyd må du sette opp drivere og velge primærenheten avhengig av distribusjon.

Starte Windows 10 og Linux[rediger]

Ønsker du å ha muligheten til å både laste Windows (Windows 10 og eldre) og Linux, er det mer å passe på. Jeg anbefaler at for eksempel Windows installeres først. Vær klar over at oppstartsprogrammet i Windows ønsker at oppstartssektoren fra andre operativsystemer er tilgjengelig som egne filer. Ønsker du å benytte NTFS-partisjoner, bør du sjekke adressen:

http://linux-ntfs.sourceforge.net/.

Nedenfor har jeg hovedpunktene du må gjennom for at PCen din skal kunne håndtere "dual boot". Senere går jeg i mer detalj:

   * Installere Windows
   * Installere Mint Linux
   * Verifisere Windows-oppstart
   * Fedora Linux-oppstart 

Installer Windows på vanlig måte. Husk bare på å ikke benytte hele disken til Windows. Når du er ferdig med installeringen av Windows, starter du installeringen av Openmandriva, slik jeg har beskrevet i begynnelsen av kapittel 3. I noen tilfeller kan Linux oppstartslasteren gjøre det umulig å laste opp Windows. I stedet for å installere oppstartslasteren i /dev/hda hvor MBR (Master Boot Record) er plassert, velger du derfor å installere oppstartslasteren i første sektor i oppstartspartisjonen, for eksempel /dev/hda1 eller /dev/hdb1 (installerer du MS Windows XP eller eldre brukes MBR (Master Boot Record) som vi har nevnt tidligere i dette kapitlet).

Får du ikke kontakt med din Linux-partisjon etter installasjon prøv rEFInd Boot Manager redningen som funger helt til Windows 10 og de fleste linux distribusjonene. Da det fremdeles er ikke alle maskiner UEFI\Bios boot funger optimalt med grub2 ennå.

For nyere UEFI 64 bits:

\EFI\BOOT\BOOTX64.EFI /sys/firmware/efi [-d/sys/firmware/efi]&&echo "EFI boot on HDD" || echo "Legacy boot on HDD" Sett opp: /boot/efi på enten 100\200 mb størrelse. Type: FAT32 med boot\oppstartpartion.

Eller prøv følgende kommando: grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

su lsblk blkid | grep -i efi grep -i efi /etc/fstab

ls -l /boot/efi/EFI/

SecureBoot Er en ny funsjon for sikkerhet i UEFI som gjør at operativsystemet er mindre sårbar for virus rettet mot bios skadevare.

Hjelp og informasjonssider[rediger]

Informasjonsider Beskrivelse
https://www.linuxmint.com/documentation.php Linux mint dokumentasjons på engelsk
https://forums.linuxmint.com/ Linux mint engelsk forum
https://no.wikipedia.org/wiki/Linux_Mint Linux mint wiki

Bruker du IRC anbefaler vi irc.spotchat.org med kanalen #linuxmint-help og #linuxmint-chat.

Fjerne Linux[rediger]

Hvis du ønsker å fjerne Linux-partisjonen, finnes det flere alternativer. Det mest drastiske alternativet er å lavformatere hele harddisken. De fleste harddiskleverandører kan i dag tilby lavformateringsprogrammer. Du finner også lavformateringsprogrammer på nettet. Når du lavformaterer harddisken din, forsvinner alt som er installert på maskinen. Alle partisjoner forsvinner uansett hva slags operativsystem de tilhører. Lavformateringsprogrammer leveres vanligvis på egne oppstartsdisketter. Disse er som regel basert på MS-DOS. Etter oppstarten er det bare å følge menyalternativene.

Ønsker du å bare å fjerne Linux, er lavformatering unødvendig. Fra Linux kan du fjerne GRUB fra MBR ved å kjøre grub-programmet (/sbin/grub). Hjelp gir deg opsjonene som du trenger bruke. Fra Linux kan du fjerne LILO fra MBR ved å kjøre LILO-programmet (/sbin/lilo).

Eksempel:

  1. /sbin/lilo -u

Ved å bruke opsjonen -u får du tilbake den opprinnelige MBR-konfigurasjonen. Ønsker du bare å fjerne enkelte Linux-partisjoner kan du også bruke Linux-kommandoene parted og rm.

  1. parted /dev/hda

Her fjernes Linux-partisjonen (med filsystem) /dev/hda. Hvis du vet sekundært (minor) nummer (prøv med print) til partisjonen kan du bruke rm-kommanoden.

  1. rm 4

Her fjerner vi partisjonen med minor nummer 4. Du kan også bruke Microsofts fdisk. Hvis du vil fjerne Linux fra en maskin som har både Linux og Windows, bør du forsikre deg om at du har en oppstartsdiskett for Windows 98. Du kan da starte maskinen fra denne og bruke fdisk-kommandoen med mbr-opsjonen. Dette er en udokumentert opsjon som virker både på GRUB og LILO.

Oppgaver til kapittel 3[rediger]

Oppgave 3.1 Hvilke verktøy finnes for å endre partisjonstabellen?

Oppgave 3.2 Hvorfor er det viktig med en oversikt over maskinvaren (type, I/U-parametere) før man installerer Linux?

Oppgave 3.3 Hvordan kan man sjekke Linux mint ISO-imagene som man har lastet ned fra Internett for feil?

Oppgave 3.4 Installer Linux på tradisjonell måte. Lag et eget filsystem på 4 GB som du kaller mandriva. Kopier installasjons-platen til filsystemet til redhat fedora. Bruk denne maskinen som server og installer 3 nye arbeidsstasjoner. Disse skal installeres via nettverket. Prøv de forskjellige installasjonsalternativene, for eksempel ftp, nfs og http.

Oppgave 3.5 Hvordan går du fram (Bios\UEFI) hvis du skal ha valgfri oppstart (dualboot) mellom Linux og Windows XP eller Windows 10?

Oppgave 3.6 Hvilken kommando kan du kjøre under Linux mint og Windows/DOS hvis du ønsker å gå tilbake til tidligere partisjonstabell?

PearOS[rediger]

PearOS historie[rediger]

PearOS startet som Apple konkurerende OS basert på linux i 1992. Men ble avsluttet i 11.9.1-2014

Grunnen for jeg skriver om denne er fordi tidligere dreamlinux også ble avsluttet. Per dags dato finnes det kun http://lifehacker.com/5665765/macbuntu-makes-your-linux-desktop-look-like-mac-os-x måten i ubuntu å få til å bli mac ubuntu: http://www.noobslab.com/2015/11/macbuntu-1510-transformation-pack-for.html

Håper noen kan finne et alternativ prosjekt som kan erstatte denne.

Programvarebehandler[rediger]

Samme som ubuntu

PearOS systemet

Du kan lese Pear OS dokumentasjon på engelsk

Eller hovedsiden Hjemmesiden til PearOS

Ønsker du siste versjon av , kan du laste den ned fra http://linuxfreedom.com/pear/download.html

Har du bare Windows installert på PCen, kan du laste ned ISO-image filene enten med http (via nettleser) eller med ftp (ftp-protokollen). Har du Linux installert på PCen, har du muligheten til å bruke ftp eller ncftp til nedlastingen. Fordelen med ncftp er at du kan fortsette å laste ned etter brudd. Det er mest vanlig å laste ned ISO-imagene konvertere disse til komplette diskbilder (katalog-struktur) med DVD-brenneprogrammet. Det raskeste er å laste ned imagene "lokalt" fra for eksempel

Når du har lastet ned ISO-imagene, bør de sjekkes. Det enkleste er å laste ned sjekksumfilen md5sums\sha256sum. Filen md5sums\sha256sum finner du i samme katalog som ISO-imagene. Ved å sjekke mot sjekksumfilen får du verifisert at ISO-imagene ikke er blitt ødelagt under nedlasting.Sha256sum gir større sikkerhet mot feil derfor anbefales det å bruke dette. For Linux distribusjonen gjøres dette slik:

[root@nittedal /root]# md5sum pearos7-amd64.iso

[root@nittedal /root]# sha256sum pearos7-amd64.iso

MD5 sum

72c16239c24c41e111909cdb65315fc3 pearos7-amd64.iso

Disse kommandoene tar tid og du kan derfor ta deg en pause fra maskinen. Til slutt kommer det en kode på skjermen. Denne koden skal sjekkes mot sjekksumfilen md5sums\sha256sum. Ved hjelp av Linux cat-kommandoen (type under DOS) ser du innholdet i sjekksum filen.

Hvis du ønsker å laste ned dokumentasjon til kan du gjøre dette fra Dokumentasjonen

finnes også som en egen ISO-fil. Du finner en egen md5sums-fil til denne. Disse linjene skal være identiske med de enkelte sjekksummene. Hvis de ikke er identiske, er det ikke noe poeng å brenne ISO-imaget. Du må da laste ned imaget på nytt. Selve brenningen av CDen kan du gjøre under Linux eller Windows. For å sjekke ISO filen i Windows (Windows 10 eller eldre) kan du bruke: MD5 & SHA-1 Checksum Utility https://raylin.wordpress.com/downloads/md5-sha-1-checksum-utility/

Du kan brenne platen med K3b (KDE) eller Brasero (Gnome)for linux. I Windows kan du bruke Nero eller CDBurnerXP: Free samt Free ISO Burner. Husk også på å brenne som iso fil det vil si filen må pakkes ut ved brenning.

For å lage en minnepenn med image (Windows) prøv Universal-USB-Installer Eller

Bruk kommandoen i linux:

Første er iso filen du skal bruke så kommer der minnepennen er plassert, bs står for blocksize som er 512 kb er anbefalt.

PearOS Installasjon[rediger]

Installeringsoversikt[rediger]

I dette kapitlet skal jeg beskrive hvordan du installerer Pear OS Linux, men den generelle metoden for installasjon er den samme uansett hvilken Linux-distribusjon du bruker. Du skal:

   identifisere maskinvarerepartisjonere harddisken(e) slik at det blir plass til Linux
   starte opp Linux-installasjonen (CD, FTP, NFS, HTTP etc.)
   definere Linux-partisjoner
   definere filsystemer og veksellager (swap)
   installere Linux-distribusjonen på de nye filsystemene
   installere og konfigurere maskinvare
   installere applikasjonsprogramvare på de nye filsystemene 

Velge installeringsmetode[rediger]

Installeringsvalget "Oppstart fra DVD-ROM eller CD-ROM" bruker du når maskinen kan laste Linux-operativsystemet direkte fra en CD som har oppstartspor (boot-spor). Du har da en nyere PC (BIOS\UEFI) som støtter standarden for Blueray-ROM. Mediet brukes oppstartskjernen boot.iso under katalogen images på første plate. Har du eksterne lagringsenheter som er USB-basert brukes oppstartskjernen diskboot.iso i samme katalog som for intern DVD.

Oppstart fra plate:

Pearosboot.png


Dette er første beskjeden du får når du forsøker å starte PearOS.

Språk[rediger]

PearOSlanguage.png

Velg språk f.eks norsk eller engelsk.

Forbedelse av PearOS[rediger]

Pearosprepare.png

Partisjonering[rediger]

Pearospartition.png

Sett tidssone velg f.eks oslo.

Pearostimezone.png

Tastatur[rediger]

Pearoskeyboard.png

Velg tastatur, f.eks norsk.

Opprett bruker[rediger]

Tilsvarende som Windows 10 kan du definere brukere. I praksis er det ingen begrensinger på antall brukere. Du kan også senere definere brukere med å kjøre programmene system-config-users eller useradd-programmet. Dette er også beskrevet i kapittel 19.

Du kan nå klikke på Neste for å starte installeringen av PearOS Linux. Du vil finne en komplett logg over installeringen i filen /tmp/install.log etter omstart av systemet. Denne loggen er grei å ha som dokumentasjon på hva som er installert.

Installeringsprogrammet vil nå begynne å installere de enkelte pakkene. Installasjonsstatus vil hele veien gi deg en oversikt over innholdet i den enkelte pakken, samt hvor mye som gjenstår av installeringen de enkelte pakkene og av hele installasjonen.

Opprett root passord[rediger]

Installeringsprogrammet vil deretter spørre deg om root-passord (systemadministrator). Dette passordet bruker du senere når du skal logge deg inn for å konfigurere Linux-systemet, definere brukere og installere andre programpakker etc. Root-passordet må være minst 6 tegn langt, og passordet skrives inn to ganger. Bruk et passord som er enkelt for deg å huske, men vanskelig for andre å gjette.

Figur 3.9: Definere root-bruker

Passordet kan bestå av både bokstaver og tall. Du kan ikke bruke kontrolltegn i passordet. Systemet skiller mellom små og store bokstaver. Et godt passord er en blanding av bokstaver og tall. Ikke glem at konsekvensene av å glemme root-passordet kan være at det blir vanskelig å komme inn på systemet ditt. I alle fall hvis du ikke har fysisk tilgang til det. Hvis du har fysisk tilgang til maskinen, kan du imidlertid starte opp på nytt og skrive “linux single" på GRUB eller LILO-kommandolinjen. Du vil da få opp et skall med root-privilegier, og kan sette et nytt passord for root hvis du ønsker dette. Når du logger deg inn som root, har du tilgang til alle tjenester. Vær derfor forsiktig. Ikke logg deg inn som root for å gjøre ting som ikke krever root-rettigheter, det skaper bare unødvendig stor risiko. Du kan senere endre root-passordet med passwd eller system-config-rootpassword.

Ferdig satt opp PearOS[rediger]

Pearosinstalled.png

Konfigurere nettverk[rediger]

Figur 3.7: Nettverkskonfigurasjon (TCP/IP)

Oppsett av TCP/IP[rediger]

Du bør sette enten fast ip (Som under eller statisk DHCP der routeren velger ip adresser) som er mest vanlig hjemme.

Oppsett av TCP/IP består av 3 x 1/3 menysider. I øverste delmeny kan du definere om nettverkskortet(ene) skal startes opp ved normal oppstart. Her kan du også manuelt sette om du skal bruke IPv4 eller IPv6 etc. I neste meny definerer du om maskinen skal være en DHCP-klient ved oppstart eller om IP-adresse skal settes manuelt.

I siste delmeny kan du sette standard gateway (angir hvilken IP-adresse som skal brukes når man skal nå maskiner i andre nettverk), primær DNS-navneserver (løser opp domenenavnene dine til riktig IP-adresse), sekundær DNS-navneserver og tertiær DNS-navneserver.

I eksemplet under har Pcen min fått navnet dellwork.elboth.no. Den har IPv4-adressen 192.168.1.10 med ipv6-adressen Fe80::f8c8:454b:a071:7865%16. Domenenavnet er elboth.no. Mer om netmask (255.255.255.0), nettverk (192.168.1.0) og kringkastingsadresse (192.168.1.255) i kapittel 22. Default gateway er IP-adressen til den vertsmaskinen som har utgang mot Internett. I mitt tilfelle er det 192.168.1.1 og Fe80::f8c8:454b:a071:7860%16. Denne vertsmaskinen bruker videre IP-forwarding mot det reelle nettverkskortet jeg har mot Internett. De siste IP-adressene er DNS (Domain Name Server). Med DNS kan man bruke navn som www.linux.no i stedet for en IP-adresse. Jeg har satt opp 3 DNS-servere. Det kan være greit med flere hvis en skulle gå ned, kan man fortsatt surfe på Internett.

Felt Eksempel på verdi
IP-adresse ipv4 192.168.1.10
IP-adresse ipv6 Fe80::f8c8:454b:a071:7865%16
Netmask 255.255.255.0
Nettverk 192.168.1.0
Kringkasting 192.168.1.255
Vertsnavn dellwork.elboth.no
Gateway ipv4 192.168.1.1
Gateway ipv6 Fe80::f8c8:454b:a071:7860%16
Primær DNS ipv4 217.118.32.12
Sekundær DNS 217.118.32.13
Tertiær DNS 193.216.69.12
Primær DNS ipv6 2001:4860:4860::8888
Tertiær DNS ipv6 2001:4860:4860::8844

Konfigurere brannmur[rediger]

I neste skjermbilde setter du opp brannveggen. Skal PCen din være tilgjengelig for andre på Internett, må sikkerhet tas med i betraktningen. Hvis Linux-PCen din bare skal brukes som arbeidsstasjon, og samtidig være tilknyttet Internett, vil middels sikkerhet være tilfredsstillende. Skal maskinen fungere som en server, bør du tilpasse de enkelte tjenestene (/etc/service). Er du på et lukket nettverk hvor du stoler på alle, kan du velge ingen brannmur.

Definere lydkort[rediger]

Lydkortet blir automatisk funnet. I denne seksjonen kan du teste lyd og gjøre mindre justeringer på lydkortet. Etter at lydkortet er sjekket er du klar til å logge inn på systemet og bruke det. Skal du bruke Displayport\HDMI som lyd må du sette opp drivere og velge primærenheten avhengig av distribusjon.

Starte Windows 10 og Linux[rediger]

Ønsker du å ha muligheten til å både laste Windows (Windows 10 og eldre) og Linux, er det mer å passe på. Jeg anbefaler at for eksempel Windows installeres først. Vær klar over at oppstartsprogrammet i Windows ønsker at oppstartssektoren fra andre operativsystemer er tilgjengelig som egne filer. Ønsker du å benytte NTFS-partisjoner, bør du sjekke adressen:

http://linux-ntfs.sourceforge.net/.

Nedenfor har jeg hovedpunktene du må gjennom for at PCen din skal kunne håndtere "dual boot". Senere går jeg i mer detalj:

  * Installere Windows
  * Installere Mint Linux
  * Verifisere Windows-oppstart
  * Fedora Linux-oppstart 

Installer Windows på vanlig måte. Husk bare på å ikke benytte hele disken til Windows. Når du er ferdig med installeringen av Windows, starter du installeringen av Openmandriva, slik jeg har beskrevet i begynnelsen av kapittel 3. I noen tilfeller kan Linux oppstartslasteren gjøre det umulig å laste opp Windows. I stedet for å installere oppstartslasteren i /dev/hda hvor MBR (Master Boot Record) er plassert, velger du derfor å installere oppstartslasteren i første sektor i oppstartspartisjonen, for eksempel /dev/hda1 eller /dev/hdb1 (installerer du MS Windows XP eller eldre brukes MBR (Master Boot Record) som vi har nevnt tidligere i dette kapitlet).

Får du ikke kontakt med din Linux-partisjon etter installasjon prøv rEFInd Boot Manager redningen som funger helt til Windows 10 og de fleste linux distribusjonene. Da det fremdeles er ikke alle maskiner UEFI\Bios boot funger optimalt med grub2 ennå.

For nyere UEFI 64 bits:

\EFI\BOOT\BOOTX64.EFI /sys/firmware/efi [-d/sys/firmware/efi]&&echo "EFI boot on HDD" || echo "Legacy boot on HDD" Sett opp: /boot/efi på enten 100\200 mb størrelse. Type: FAT32 med boot\oppstartpartion.

Eller prøv følgende kommando: grub2-mkconfig -o /boot/efi/EFI/pear/grub.cfg

su lsblk blkid | grep -i efi grep -i efi /etc/fstab

ls -l /boot/efi/EFI/

SecureBoot Er en ny funsjon for sikkerhet i UEFI som gjør at operativsystemet er mindre sårbar for virus rettet mot bios skadevare.

Hjelp og informasjonssider[rediger]

Informasjonsider Beskrivelse
http://linuxfreedom.com/pear/download.html Pear OS hjemmeside
http://forum.pinguyos.com/Thread-Pear-OS-8 Pear OS engelsk forum
https://sourceforge.net/projects/pearlinux/ Pear OS

Fjerne Linux[rediger]

Hvis du ønsker å fjerne Linux-partisjonen, finnes det flere alternativer. Det mest drastiske alternativet er å lavformatere hele harddisken. De fleste harddiskleverandører kan i dag tilby lavformateringsprogrammer. Du finner også lavformateringsprogrammer på nettet. Når du lavformaterer harddisken din, forsvinner alt som er installert på maskinen. Alle partisjoner forsvinner uansett hva slags operativsystem de tilhører. Lavformateringsprogrammer leveres vanligvis på egne oppstartsdisketter. Disse er som regel basert på MS-DOS. Etter oppstarten er det bare å følge menyalternativene.

Ønsker du å bare å fjerne Linux, er lavformatering unødvendig. Fra Linux kan du fjerne GRUB fra MBR ved å kjøre grub-programmet (/sbin/grub). Hjelp gir deg opsjonene som du trenger bruke. Fra Linux kan du fjerne LILO fra MBR ved å kjøre LILO-programmet (/sbin/lilo).

Eksempel:

  1. /sbin/lilo -u

Ved å bruke opsjonen -u får du tilbake den opprinnelige MBR-konfigurasjonen. Ønsker du bare å fjerne enkelte Linux-partisjoner kan du også bruke Linux-kommandoene parted og rm.

  1. parted /dev/hda

Her fjernes Linux-partisjonen (med filsystem) /dev/hda. Hvis du vet sekundært (minor) nummer (prøv med print) til partisjonen kan du bruke rm-kommanoden.

  1. rm 4

Her fjerner vi partisjonen med minor nummer 4. Du kan også bruke Microsofts fdisk. Hvis du vil fjerne Linux fra en maskin som har både Linux og Windows, bør du forsikre deg om at du har en oppstartsdiskett for Windows 98. Du kan da starte maskinen fra denne og bruke fdisk-kommandoen med mbr-opsjonen. Dette er en udokumentert opsjon som virker både på GRUB og LILO.

Oppgaver til kapittel 3[rediger]

Oppgave 3.1 Hvilke verktøy finnes for å endre partisjonstabellen?

Oppgave 3.2 Hvorfor er det viktig med en oversikt over maskinvaren (type, I/U-parametere) før man installerer Linux?

Oppgave 3.3 Hvordan kan man sjekke PearOS ISO-imagene som man har lastet ned fra Internett for feil?

Oppgave 3.4 Installer Linux på tradisjonell måte. Lag et eget filsystem på 4 GB som du kaller PearOS. Kopier installasjons-platen til filsystemet til redhat fedora. Bruk denne maskinen som server og installer 3 nye arbeidsstasjoner. Disse skal installeres via nettverket. Prøv de forskjellige installasjonsalternativene, for eksempel ftp, nfs og http.

Oppgave 3.5 Hvordan går du fram (Bios\UEFI) hvis du skal ha valgfri oppstart (dualboot) mellom Linux og Windows XP eller Windows 10?

Oppgave 3.6 Hvilken kommando kan du kjøre under PearOS og Windows/DOS hvis du ønsker å gå tilbake til tidligere partisjonstabell?

Ark Linux[rediger]

Arch linux histore[rediger]

Arch linux installering[rediger]

https://www.archlinux.org/ Dette er operativsystemet for utviklere. Derfor er det ganske gammeldags måte å installere på brukeren må ofte bruke youtube\kommandoer, https://wiki.archlinux.org/index.php/installation_guide

https://wiki.archlinux.org/index.php/beginners'_guide

Slackware[rediger]

Slackware historie[rediger]

Slackware installering[rediger]

http://www.slackware.com/install/

http://docs.slackware.com/slackware:install

Som dere ser her er installeringen ganske vanskelig du må være god på kommandoer for å klare dette. Selv foretrekker jeg grafisk installering selv det muligens krever litt mere ram\cpu så er det langt brukervennlig for de som ikke er detaljorientert nok å ha full kontroll over maskinen. Da installasjon av pakker f.eks kan velge alt selv, du kan sette firefox 46.01 som nettleser uten å måtte oppdatere under installasjon, ulempen du må kjenne avhening. Da særlig x.org\KDE\gnome eller andre må ha visse grunnpakker etc pakker før du kan installere programmet i installasjon.

FreeBSD[rediger]

FreeBSD Historie[rediger]

FreeBSD Installering[rediger]

https://www.freebsd.org/docs.html https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ https://docs.freebsd.org/

Som dere ser her, er FreeBSD som er unix basert fremdeles ganske vanskelig å sette opp.

ReactOS[rediger]

ReactOS historie[rediger]

ReactOS er et prosjekt som har som mål å utvikle et fritt operativsystem som er binært kompatibelt med programvare og drivere for Windows NT versjon 5.1, dvs. Windows XP. ReactOS distribueres under GNU General Public License.

Prosjektet er per 2016 i en alfa-fase i utviklingen, men har allerede rukket å nå flere viktige mål. Utviklerne selv mener imidlertid at systemet ennå ikke egner seg i praktisk innsats for vanlige brukere.[1]

Utviklingen startet i 1996 som en Windows 95 klone prosjekt som var i 1998 fortsettelsen som en nyere utgave av ReactOS.

ReactOS er hovedsak skrevet i C men noen elementer f.eks ROS explorer altså filbehandleren er skrivet i C++. Det jobbes også med 64 bit støtte (AMD64) og ARM.

ReactOS er del av FOSS ecko-system som er en del av wine prosjektet

FreeWin95 til ReactOS

Ved 1996 var en gruppe av gratis og åpen kildekode programvare utviklene startet et prosjekt som heter FreeWin95, for å implementere et Klone av Windows 95. Prosjektet startet i diskusjon av utsendet til systemet.

Det ble ledet av kordinator Jason Filby som er en doplikat av Windows NT.

For senere å opprette nytt prosjekt som heter ReactOS.

Navnet kommer av Jeff Knox sin uttalse OS "Operativsystem" og react fra gruppens misliket microsoft sin monopol situasjon.

Programvarebehandler[rediger]

ReactOS systemet[rediger]

Du kan lese ReactOS dokumentasjon på engelsk

Eller hovedsiden Hjemmesiden til ReactOS

Ønsker du siste versjon av , kan du laste den ned fra http://reactos.org/

Har du bare Windows installert på PCen, kan du laste ned ISO-image filene enten med http (via nettleser) eller med ftp (ftp-protokollen). Har du Linux installert på PCen, har du muligheten til å bruke ftp eller ncftp til nedlastingen. Fordelen med ncftp er at du kan fortsette å laste ned etter brudd. Det er mest vanlig å laste ned ISO-imagene konvertere disse til komplette diskbilder (katalog-struktur) med DVD-brenneprogrammet. Det raskeste er å laste ned imagene "lokalt" fra for eksempel

Når du har lastet ned ISO-imagene, bør de sjekkes. Det enkleste er å laste ned sjekksumfilen md5sums\sha256sum. Filen md5sums\sha256sum finner du i samme katalog som ISO-imagene. Ved å sjekke mot sjekksumfilen får du verifisert at ISO-imagene ikke er blitt ødelagt under nedlasting.Sha256sum gir større sikkerhet mot feil derfor anbefales det å bruke dette. For Linux distribusjonen gjøres dette slik:

[root@nittedal /root]# md5sum ReactOS-0.4.0.iso

[root@nittedal /root]# sha256sum ReactOS-0.4.0.iso

MD5 sum

Bruk [root@nittedal /root]# wget -qO - https://sourceforge.net/projects/reactos/files/ReactOS/0.4.0/ReactOS-0.4.0-iso.zip/download | md5sum


Disse kommandoene tar tid og du kan derfor ta deg en pause fra maskinen. Til slutt kommer det en kode på skjermen. Denne koden skal sjekkes mot sjekksumfilen md5sums\sha256sum. Ved hjelp av Linux cat-kommandoen (type under DOS) ser du innholdet i sjekksum filen.

Hvis du ønsker å laste ned dokumentasjon til kan du gjøre dette fra Dokumentasjonen

finnes også som en egen ISO-fil. Du finner en egen md5sums-fil til denne. Disse linjene skal være identiske med de enkelte sjekksummene. Hvis de ikke er identiske, er det ikke noe poeng å brenne ISO-imaget. Du må da laste ned imaget på nytt. Selve brenningen av CDen kan du gjøre under Linux eller Windows. For å sjekke ISO filen i Windows (Windows 10 eller eldre) kan du bruke: MD5 & SHA-1 Checksum Utility https://raylin.wordpress.com/downloads/md5-sha-1-checksum-utility/

Du kan brenne platen med Cdbuner XP Pro eller Nero. Husk også på å brenne som iso fil det vil si filen må pakkes ut ved brenning.

For å lage en minnepenn med image (Windows) prøv Universal-USB-Installer Eller

Bruk kommandoen i linux:

Første er iso filen du skal bruke så kommer der minnepennen er plassert, bs står for blocksize som er 512 kb er anbefalt.

ReactOS Installasjon[rediger]

Installeringsoversikt[rediger]

I dette kapitlet skal jeg beskrive hvordan du installerer ReactOS, men den generelle metoden for installasjon er den samme uansett hvilken Linux-distribusjon du bruker. Du skal:

  * identifisere maskinvarerepartisjonere harddisken(e) slik at det blir plass til Linux
  * starte opp Linux-installasjonen (CD, FTP, NFS, HTTP etc.)
  * definere Linux-partisjoner
  * definere filsystemer og veksellager (swap)
  * installere Linux-distribusjonen på de nye filsystemene
  * installere og konfigurere maskinvare
  * installere applikasjonsprogramvare på de nye filsystemene 

Velge installeringsmetode[rediger]

Installeringsvalget "Oppstart fra DVD-ROM eller CD-ROM" bruker du når maskinen kan laste Linux-operativsystemet direkte fra en CD som har oppstartspor (boot-spor). Du har da en nyere PC (BIOS\UEFI) som støtter standarden for Blueray-ROM. Mediet brukes oppstartskjernen boot.iso under katalogen images på første plate. Har du eksterne lagringsenheter som er USB-basert brukes oppstartskjernen diskboot.iso i samme katalog som for intern DVD.

Språk[rediger]

Dette er første beskjeden du får når du forsøker å starte ReactOS.

Reactos boot.png

Velg språk f.eks norsk eller engelsk.

Bli ønsket velkommen ReactOS[rediger]

Reactosprepare.png

Tastatur[rediger]

Reactoskeyboard.png

Velg tastatur, f.eks norsk.

Partisjonering[rediger]

Du kan nå klikke på Neste for å starte installeringen av ReactOS. Du vil finne en komplett logg over installeringen i filen etter omstart av systemet. Denne loggen er grei å ha som dokumentasjon på hva som er installert.

Reactospartition.png

Installeringsprogrammet vil nå begynne å installere de enkelte pakkene. Installasjonsstatus vil hele veien gi deg en oversikt over innholdet i den enkelte pakken, samt hvor mye som gjenstår av installeringen de enkelte pakkene og av hele installasjonen.

Opprett bruker[rediger]

Reactosuser.png

Tilsvarende som Windows 10 kan du definere brukere. I praksis er det ingen begrensinger på antall brukere. Du kan også senere definere brukere med å kjøre programmene User account (Brukerkonto).

Opprett admin passord[rediger]

Installeringsprogrammet vil deretter spørre deg om admin-passord (systemadministrator). Dette passordet bruker du senere når du skal logge deg inn for å konfigurere ReactOS-systemet, definere brukere og installere andre programpakker etc. Admin-passordet må være minst 6 tegn langt, og passordet skrives inn to ganger. Bruk et passord som er enkelt for deg å huske, men vanskelig for andre å gjette.

Reactosadmin.png

Figur 3.9: Definere admin-bruker

Passordet kan bestå av både bokstaver og tall. Du kan ikke bruke kontrolltegn i passordet. Systemet skiller mellom små og store bokstaver. Et godt passord er en blanding av bokstaver og tall. Ikke glem at konsekvensene av å glemme admin-passordet kan være at det blir vanskelig å komme inn på systemet ditt. I alle fall hvis du ikke har fysisk tilgang til det. Hvis du har fysisk tilgang til maskinen. Når du logger deg inn som administrator, har du tilgang til alle tjenester. Vær derfor forsiktig. Ikke logg deg inn som administrator for å gjøre ting som ikke krever administrator-rettigheter, det skaper bare unødvendig stor risiko. Du kan senere endre administrator-passordet.

Tidssone[rediger]

Reactostimezone.png

Sett tidssone velg f.eks oslo.

Ferdig satt opp ReactOS[rediger]

Reactosinstalled.png

Figur 3.7: Nettverkskonfigurasjon (TCP/IP)

Oppsett av TCP/IP[rediger]

Oppsett av TCP/IP består av 3 x 1/3 menysider. I øverste delmeny kan du definere om nettverkskortet(ene) skal startes opp ved normal oppstart. Her kan du også manuelt sette om du skal bruke IPv4 eller IPv6 etc. I neste meny definerer du om maskinen skal være en DHCP-klient ved oppstart eller om IP-adresse skal settes manuelt.

I siste delmeny kan du sette standard gateway (angir hvilken IP-adresse som skal brukes når man skal nå maskiner i andre nettverk), primær DNS-navneserver (løser opp domenenavnene dine til riktig IP-adresse), sekundær DNS-navneserver og tertiær DNS-navneserver.

I eksemplet under har Pcen min fått navnet dellwork.elboth.no. Den har IPv4-adressen 192.168.1.10 med ipv6-adressen Fe80::f8c8:454b:a071:7865%16. Domenenavnet er elboth.no. Mer om netmask (255.255.255.0), nettverk (192.168.1.0) og kringkastingsadresse (192.168.1.255) i kapittel 22. Default gateway er IP-adressen til den vertsmaskinen som har utgang mot Internett. I mitt tilfelle er det 192.168.1.1 og Fe80::f8c8:454b:a071:7860%16. Denne vertsmaskinen bruker videre IP-forwarding mot det reelle nettverkskortet jeg har mot Internett. De siste IP-adressene er DNS (Domain Name Server). Med DNS kan man bruke navn i stedet for en IP-adresse. Jeg har satt opp 3 DNS-servere. Det kan være greit med flere hvis en skulle gå ned, kan man fortsatt surfe på Internett.

Felt Eksempel på verdi
IP-adresse ipv4 192.168.1.10
IP-adresse ipv6 Fe80::f8c8:454b:a071:7865%16
Netmask 255.255.255.0
Nettverk 192.168.1.0
Kringkasting 192.168.1.255
Vertsnavn dellwork.elboth.no
Gateway ipv4 192.168.1.1
Gateway ipv6 Fe80::f8c8:454b:a071:7860%16
Primær DNS ipv4 217.118.32.12
Sekundær DNS 217.118.32.13
Tertiær DNS 193.216.69.12
Primær DNS ipv6 2001:4860:4860::8888
Tertiær DNS ipv6 2001:4860:4860::8844

Konfigurere brannmur[rediger]

I neste skjermbilde setter du opp brannveggen. Skal PCen din være tilgjengelig for andre på Internett, må sikkerhet tas med i betraktningen. Hvis ReactOS-PCen din bare skal brukes som arbeidsstasjon, og samtidig være tilknyttet Internett, vil middels sikkerhet være tilfredsstillende. Skal maskinen fungere som en server, bør du tilpasse de enkelte tjenestene . Er du på et lukket nettverk hvor du stoler på alle, kan du velge ingen brannmur.

Definere lydkort[rediger]

Lydkortet blir automatisk funnet. I denne seksjonen kan du teste ly og gjøre mindre justeringer på lydkortet. Etter at lydkortet er sjekket er du klar til å logge inn på systemet og bruke det. Skal du bruke Displayport\HDMI som lyd må du sette opp drivere og velge primærenheten avhengig av distribusjon.

Starte Windows 10 og ReactOS[rediger]

Ønsker du å ha muligheten til å både laste Windows (Windows 10 og eldre) og ReactOS, er det mer å passe på. Jeg anbefaler at for eksempel Windows installeres først. Vær klar over at oppstart-programmet i Windows ønsker at oppstart-sektoren fra andre operativsystemer er tilgjengelig som egne filer. Ønsker du å benytte NTFS-partisjoner, bør du sjekke adressen:

http://linux-ntfs.sourceforge.net/.

Nedenfor har jeg hovedpunktene du må gjennom for at PCen din skal kunne håndtere "dual boot". Senere går jeg i mer detalj:

   * Installere Windows
   * Installere ReactOS
   * Verifisere Windows-oppstart
   * ReactOS-oppstart 

Installer Windows på vanlig måte. Husk bare på å ikke benytte hele disken til Windows. Når du er ferdig med installeringen av Windows, starter du installeringen av ReactOS, slik jeg har beskrevet i begynnelsen av kapittel 3. I noen tilfeller kan ReactOS oppstartslasteren gjøre det umulig å laste opp Windows. I stedet for å installere oppstart-lasteren i MBR (Master Boot Record) er plassert, velger du derfor å installere oppstart-lasteren i første sektor i oppstart-partisjonen (installerer du MS Windows XP eller eldre brukes MBR (Master Boot Record) som vi har nevnt tidligere i dette kapitlet).

Får du ikke kontakt med din Linux-partisjon etter installasjon prøv rEFInd Boot Manager redningen som funger helt til Windows 10 og de fleste linux distribusjonene.

SecureBoot Er en ny funsjon for sikkerhet i UEFI som gjør at operativsystemet er mindre sårbar for virus rettet mot bios skadevare.

Hjelp og informasjonssider[rediger]

Informasjonsider Beskrivelse
https://sourceforge.net/projects/reactos/?source=typ_redirect ReactOS Sourceforge
https://reactos.org/ ReactOS Hjemmeside
https://www.reactos.org/forum/ Pear OS

Oppgaver til kapittel 3[rediger]

Oppgave 3.1 Hvilke verktøy finnes for å endre partisjon-tabellen?

Oppgave 3.2 Hvorfor er det viktig med en oversikt over maskinvaren (type, I/U-parametere) før man installerer ReactOS?

Oppgave 3.3 Hvordan kan man sjekke ReactOS ISO-imagene som man har lastet ned fra Internett for feil?

Oppgave 3.4 Installer Linux på tradisjonell måte. Lag et eget filsystem på 4 GB som du kaller ReactOS. Kopier installasjons-platen til filsystemet til ReactOS. Bruk denne maskinen som server og installer 3 nye arbeidsstasjoner. Disse skal installeres via nettverket. Prøv de forskjellige installasjons-alternativene, for eksempel ftp, nfs og http.

Oppgave 3.5 Hvordan går du fram (Bios\UEFI) hvis du skal ha valgfri oppstart (dualboot) mellom Linux og Windows XP eller Windows 10?

Oppgave 3.6 Hvilken kommando kan du kjøre under ReactOS og Windows/DOS hvis du ønsker å gå tilbake til tidligere partisjon-tabell?


Kap 4: Arbeidsøkt i Linux[rediger]

Etter installasjonen. For å kunne bruke Linux må du være registrert som Linux-bruker på en maskin som har installert Linux. Du har fått et brukernavn og ditt eget passord. Har du nettopp installert Linux selv på en PC, kan det være bare én Linux-bruker som er definert, og det er systemadministrator (root). Hvordan du definerer nye Linux-brukere er beskrevet i kapittel 19. NB! Jeg anbefaler sterkt at du definerer en vanlig bruker som noe av det første du gjør. Du bør bare bruke maskinen som root når du skal konfigurere systemet. Ellers bør du av sikkerhetsmessige grunner være logget på som en vanlig bruker.

Brukernavn og passord[rediger]

Alle brukere som er registrert på en Linux-maskin, har et loginnavn/brukernavn og et hemmelig passord. Hver bruker har sitt eget område på disken som vi kaller brukerens hjemmekatalog. Standard hjemmekatalog i Linux er /home/loginnavn. Alle brukere er også medlem i én eller flere grupper. Loginnavn (kalles også bruker-id) er som regel navn som er knyttet til brukerens eget navn. Jeg pleier vanligvis å bruke fornavn, etternavn, prosjektnavn, initialer, firmanavn osv. Brukernavnet eller loginnavnet må som regel være minimum 5 tegn og maksimum 8 tegn (kan være lengre på noen systemer). Loginnavnet bør ikke bestå av store bokstaver og bør ikke begynne med et tall eller et spesialtegn. Passordet kan bestå av maksimalt 256 tegn med både små og store bokstaver, men ikke kontrolltegn.

Logge inn under Linux[rediger]

For å logge deg inn på Linux-maskinen gjør du slik:

1. Slå på maskinen

2. Du får nå opp åpningsskjermbildet, som kan se slik ut:

Fedoraoppstart.png

Figur 4.1: Grafisk Innlogging under Fedora Linux Åpningsbildet kan også være tegnbasert.

Kommentar til passordet[rediger]

Passordet vises av sikkerhetsgrunner ikke på skjermen. For å hindre at uvedkommende kommer inn på systemet, kan det være lurt å skifte passord (passwd) med jevne mellomrom. Har du gjort en feil, får du en melding som dette:

   Fedora release 23
   Kernel 4.3.3-300 on an i686
   login: david{{{}}}H{{{{{{}}}}}}H{{{^}}}H
   Password:
   Login incorrect
   login: Du må da prøve å logge deg inn på nytt. Husk at hver gang du har skrevet en kommando, må du trykke Enter. 

Terminalvindu[rediger]

Hvis du har logget deg inn i et grafisk grensesnitt, vil du kunne velge kommandoer via ikoner, menyer og museklikk. Jeg vil her ta videre utgangspunkt i det tegnbaserte grensesnittet. Fra det grafiske grensesnittet kan du få fram et tegnbasert grensesnitt på tre forskjellige måter:

       * Åpne et terminalvindu i det grafiske grensesnittet
       * Avslutte det grafiske grensesnittet med for eksempel Control-Alt-Backspace eller et menyvalg

Gå over i et skjermbasert konsoll med Control-Alt-F1 (til F6) I det tegnbaserte grensesnittet er du i Linux-skallet. Skallet er den programdelen som håndterer kommunikasjonen mellom deg som bruker og operativsystemet Linux. Terminalledeteksten (skall-ledeteksten) viser at Linux nå er klar til å ta i mot dine kommandoer. Hvordan ledeteksten ser ut, avhenger av skalltypen.

Ledeteksten [david@nittedal david]$ viser at jeg kjører Linux' bash-skall, som er det mest brukte skallet under Linux. Bourne-skall kan også indikeres med $. Er du systemadministrator (root), vil ledeteksten være #. Under Linux er det vanlig at både root og brukere har bash-skallet som standard. Men du kan selv velge andre skall, for eksempel tcsh (mer om de forskjellige skallene i kapitlene 16 og 18).

Kommandoer fra Linux-skallet[rediger]

   * Når du har ledeteksten framme, kan du gi kommandoer. Det gjør du på denne måten:
   * Skriv kommandoen. Hvis du for eksempel ønsker en oversiktskalender for 2008, skriver du cal 2008.
   * Trykk Enter. Oversikts-kalenderen for 2008 kommer nå på skjermen. Videre i boken vil jeg ikke forklare så detaljert hva du skal gjøre for å gi en kommando. Jeg vil skrive kommandoen over slik:
   [david@nittedal david]$ cal 2008 Dette betyr da at du først skriver inn cal 2008 og så trykker Enter. 

Redigeringstaster i skallet[rediger]

Tastene som brukes til redigering, kan variere fra system til system. Følgende taster er mye brukt:

Redigeringstaster Beskrivelse
BACKSPACE Sletter tegnet foran markør
"<Ctrl-U>" Sletter en hel linje
"<Ctrl-C>" Avbryter kommando/program
DEL Avbryter kommando/program
"<Ctrl-S>" Stopper midlertidig utføring av kommando/program
ENTER Skallet søker gjennom brukerens PATH etter kommando/program, og starter programmet hvis det finnes.

Hjelp under Linux[rediger]

For å hjelpe deg å bruke de forskjellige Linux-kommandoene, har Linux flere hjelpesystemer. I dette avsnittet går jeg gjennom kommandoene man, whatis, help og info. Felles for alle disse kommandoene er at de kjøres i et terminalvindu. Vi ser også på hvordan du kan få hjelp i de grafiske grensesnittene GNOME og KDE. Til slutt viser jeg deg hvordan du kan finne informasjon i LDP (Linux Documentation Project) databasen.

Hjelp med man-kommandoen[rediger]

Linux har et «manual»-system med et dokument pr. kommando. Du får tilgang til disse manualsidene med man-kommandoen. Skriver du man og navnet på en Linux-kommando, får du en full beskrivelse av de forskjellige opsjonene og argumentene som kan brukes til kommandoen. Med man kan du slå opp på en kommando i en seksjon eller slå opp på en side. Man er forkortelsen for manual. Syntaksen fra kommandolinjen er: man [kommando]

   Under viser jeg eksempler fra kommandolinjen.
   [david@nittedal david]$ man man Gir mer informasjon om man. Du trykker på q (quit) for å gå ut av man.
   [david@nittedal david]$ man ls Gir opplysninger om kommandoen ls.
   [david@nittedal david]$ man bash Gir opplysninger om bash-skallet (NB: Dette dokumentet er langt). Ønsker du en papirutgave, skriver du:
   [david@nittedal david]$ man -t bash | lpr Ønsker du å bruke dokumentasjonen i en tekstfil må den reformateres. Dette kan gjøres med følgende kommando:
   [david@nittedal david]$ man bash | col -b > dokumentasjon.txt 

Hjelp med whatis-kommandoen[rediger]

Problemet med man er den kan presentere veldig mye informasjon. Dersom man bare ønsker å se et 1-linjes sammendrag av hva en kommando gjør, kan man bruke whatis-kommandoen. Ved hjelp av kommandoen makewhatis opprettes det en database på maskinen din over de mest brukte Linux-kommandoene. Disse kan du søke på ved bruke kommandoen whatis. Kjører du SuSE Linux er det unødvendige å kjøre makewhatis. Da databasen er allerede er på plass. Informasjonen du får med kommandoen whatis er på et overordnet nivå. For opprette denne database må du logge inn som systemadministrator.

   [root@nittedal /root]# makewhatis Det lages nå en database over alle man-dokumenter på din maskin. Denne kommandoen kan ta noen minutter. Nå er vi klar til prøve whatis:
   [david@nittedal david]$ whatis bash Her får jeg informasjon om bash-skallet.
   [david@nittedal david]$ whatis lpr Her får jeg informasjon om utskrift ved hjelp av lpr-kommandoen. 

Hjelp med hjelp-kommandoen[rediger]

Skallet har egne innebygde kommandoer. For å få litt hjelp hvordan disse brukes, må du bruke en egen kommando: help. . Denne kommandoen er nyttig hvis du ønsker å lage batch-programmer (mer om batch-programmer i kapittel 16) under for eksempel bash eller hvis du ønsker å optimalisere ditt bash-miljø. Du kan få hjelp om alle innebygde kommandoer og parametere som finnes i bash-skallet. Syntaksen er: help [kommando] Ønsker du hjelp om bash-skallet, kan du skrive:

   [david@nittedal david]$ help Her får du Linux' innebygde hjelp for bash-skall.
   [david@nittedal david]$ help history Gir opplysninger om kommandoen history i skallet bash. Skriver du bare help, får du en oversikt. 

Hjelp med info-kommandoen[rediger]

Linux har også et eget enkelt hypertekst-hjelpesystem, utviklet lenge før HTML og HTTP. Ønsker du mer omfattende informasjon enn hva kommandoene man (xman) og help (bare skallet) kan gi, bør du prøve dette hjelpesystemet ved å gi kommandoen info. Men for å ha nytte av systemet, må du lære deg de vanligste tastetrykkene inne i hjelpesystemet (se nedenfor, eller prøv «info info»). Syntaksen er:

   info [infotekst/kommando] Skriver du bare info, starter du på toppen av informasjonstreet. 

[david@nittedal david]$ info

Her kan du bruke markør-, tab- og Enter-tastene til å flytte deg nedover eller oppover i informasjonstreet. Ønsker du for eksempel å vite mer om Linux-tar-kommandoen, kan du skrive direkte:

   [david@nittedal david]$ info tar 

Hjelp via LDP-databasenLinux Documetation Project (LDP) har påtatt seg å å dokumentere forskjellige løsninger under Linux i form av HOWTOer, Guider og FAQer. Mye av dette arbeidet tar Linux-distributørene å legger inn i sine distribusjoner. I nesten alle Linux-distribusjoner blir denne informasjonen lagt inn i /usr/share/doc-katalogen. Dokumentasjonsdatabasen kan du lese med Linux-kommandoene less, more eller cat. Mer oppdatert informasjon om LDP finner du på webadressen:

http://ldp.linux.no/ Du kan selv kopiere denne informasjonen til din /usr/share/doc-katalog. La oss si at du ønsker å vite mer om pakkede filer, ZIP:

[david@nittedal david]$ cd /usr/share/doc/zip-2.3 Her går jeg først ned på ZIP-dokumentasjonskatalogen.

[david@nittedal zip-2.3]$ less *

Den siste kommandoen sendes alle dokumentasjonsfilene som ligger i denne katalogen til skjermen. Nå kan du lese filene. Ønsker du dokumentasjonen i HTML-format, går du ned i katalogen /usr/share/doc/HTML. Populære spørsmål og svar finner du i katalogen /usr/share/doc/FAQ og /usr/share/doc/"tema"/FAQ. Du vil finne at noen Linux-distribusjoner har plassert populære spørsmål i katalogen /usr/doc/FAQ.

I katalogene /usr/share/doc/HOWTO og /usr/share/doc/-"tema"/HOWTO finner du en beskrivelse av hvordan man setter opp de forskjellige Linux-tjenester og funksjoner. Filene her er pakket med programmet gzip. Ønsker du å lese HOWTO-filene direkte, kan du bruke Linux-kommandoen zless. Hvis du ønsker å vite hvordan du setter opp et lydkort, gjør du følgende:

[david@nittedal david]$ cd /usr/share/doc/HOWTO

[david@nittedal HOWTO]$ zless Sound-HOWTO.gz Den siste kommandoen pakker ut filen slik at du kan lese den på skjermen. Hvis filen ikke er pakket, kan du skrive:

[david@nittedal HOWTO]$ less Sound-HOWTO I katalogen /usr/share/doc/HOWTO/mini finner du en ASCII-versjon av HOWTO-dokumentasjonen. Den er ikke så omfattende som den orginale HOWTO-dokumentasjonen. I katalogen /usr/share/doc/HOWTO/other-formats/html finner du en komplett HTML-versjon av alle HOWTO-beskrivelsene, en omfattende beskrivelse av Linux-installasjonen, samt en forklaring på hvordan du lettest kommer igang når du er ferdig med installasjonen. Kjører du SuSE Linux finner du håndbøkene for brukeradministrasjon og systemadministrasjon i katalogen /usr/share/doc/packages/. Filene starter med tekststrengen suselinux*. Dokumentasjon vil du finne i enten PDF- eller HTML-format.

Hjelp fra GUI-grensesnittet[rediger]

Fra GNOME og KDE kan du også få hjelp. Fra GNOME og KDE kan du trykke på GNOME/KDE-knappen og deretter velge hjelp fra menyen. Disse hjelpesystemene er HTML-baserte og dermed lettere å bruke, da du ikke trenger å huske masse kommandospesifikke taster (ls, less, cat). Ønsker du informasjon om kommandoer du kan kjøre fra terminalvinduet må du bruke hjelpesystemene man, info, whatis og hjelp.

Gnome help fedora.png

Figur 4.3: Bruk av GNOME hjelp fra GNOME I figur 4.3 ser du hjelpesystemet under GNOME. I figur 4.2 ser du hjelpesystemet under KDE.

Fedora kde help.png

Figur 4.2: Bruk av KDE hjelp fra KDE

Arbeidsøkt under Linux[rediger]

Tidligere bestod en typisk arbeidsøkt i Linux å skrive kommandoer i et Linux-skall. I dag kan man velge et grafisk grensesnitt (X11) i stedet. Hvis du er logget inn i et tegnbasert grensesnitt, skriver du bare startx for å starte det grafiske miljøet X11:

   [david@nittedal david]$startx 

Ofte logger du deg inn på en Linux-maskin for å starte et brukerprogram, og ikke for å gi Linux-kommandoer. Hvis du for eksempel ønsker å starte databaseserveren sqlora, trenger du bare å skrive sqlora og trykke Enter. En rekke programmer kan bare kjøres direkte fra X Windows.

Gnome fedora menu.png

Figur 4.4: Eksempel på GNOME brukergrensesnittet

Skal du kjøre en ekstern programpakke, forutsetter det selvfølgelig at du som systemadministrator har installert programpakken. Du som bruker må også ha en søkebane til hvor programpakken er plassert.

Når du har avsluttet ditt brukerprogram, kan du fortsette å arbeide med Linux, eller du kan logge deg ut.

Logge ut fra Linux-systemet[rediger]

Du logger det ut fra bash- , zsh- eller tcsh-skallved å trykke <Ctrl-d>:

   [david@nittedal david]$ <Ctrl-d> 

Trykk på kontrolltasten og hold den nede samtidig som du trykker på d (liten d). Dersom du kjører tcsh-skall, kan du bruke kommandoen logout:

   [david@nittedal david]$ logout 

Husk å trykke Enter når du har skrevet kommandoen. Du kan også logge deg ut med exit-kommandoen:

   [david@nittedal david]$ exit 

Du logges nå ut av systemet, og login-bildet kommer på skjermen. Skal du logge deg ut fra X Windows (GNOME), velger du System fra den øverste nedtrekksmenyen og Logg ut (Log out). Husk bruker-ident (brukernavnet) og passordet ditt for neste pålogging!

Kjøre ned Linux-systemet[rediger]

En Linux-maskin skal ikke bare slås av, den må stoppes kontrollert. Du må logge deg inn som systemadministrator (root) eller ha tilgang til nedkjøringsrutinene for å stoppe systemet. I kapittel 19 går jeg gjennom de forskjellige mulighetene du har til å stoppe operativsystemet. Ønsker du å stoppe systemet fra X Windows (GNOME), velger du først Logg ut. Deretter velger du "Slå av". Alternativt kan du fra kommandomodus (du må her være systemadministrator dvs. root-bruker) skrive: [root@nittedal /root]# shutdown Når det bare står System halted eller System down, kan du slå av maskinen. Dette er siste melding som kommer på maskinen, og det kan ta fra 30 sekunder til 10 minutter før du får denne meldingen. Hvis du får en feilmelding når du skriver init 0, kan det bety at du ikke er inne som systemadministrator (root).

   [root@nittedal /root]#shutdown

Når det bare står System halted eller System down, kan du slå av maskinen. Dette er siste melding som kommer på maskinen, og det kan ta fra 30 sekunder til 10 minutter før du får denne meldingen. Hvis du får en feilmelding når du skriver init 0, kan det bety at du ikke er inne som systemadministrator (root).

Oppgaver til kapittel 4[rediger]

Oppgave 4.1 Når du har logget deg inn, starter du X Windows. Hva er forskjellen mellom X Windows og en tradisjonell terminaløkt?

Oppgave 4.2 Logg deg inn med det brukernavnet og passordet du har fått. Finn ut hvilket skall du bruker.

Oppgave 4.3 Hvilken redigeringstast kan du bruke for å midlertidig stoppe utføring av en kommando eller et program?

Oppgave 4.4 Hvordan kan du få hjelp angående de forskjellige Linux-kommandoene? Øv deg i å bruke de forskjellige hjelpefunksjonene.

Oppgave 4.5 Hvordan avslutter du en terminaløkt?

Oppgave 4.6 På hvilken ukedag ble du født (Tips: prøv cal.)?

5: Informasjon fra Linux-systemet[rediger]

Linux-kommandoene jeg går igjennom i dette kapitlet, er lette å bruke. Selv om du skulle gjøre feil, er det ingen risiko for å gjøre noen skade. Alle kommandoene henter bare ut informasjon, de endrer ikke tilstanden på systemet. Når du bruker disse kommandoene får du øvelse i å bruke Linux, og du lærer litt mer om systemet.

Kalender – cal[rediger]

   cal-kommandoen gir en kalender for dag, måned og år. 
Kommandoen cal viser kalender
Kommando: cal [måned] [år]
Funksjon: enkelt Linux-program som gir deg en kalender; oversikt over dag, måned eller år
Argument: måned og/eller år
Opsjoner: ingen
   Eksempler med Opensuse Linux:
       elboth@nittedal:~> cal 

Mai 2016 2019 2

   Gir kalenderen for forrige, inneværende og neste måned.
       elboth@nittedal:~> cal 6 2016 

Juni 2016 Gir kalenderen for mai i år 2016.

Ekko til skjerm – echo[rediger]

Med kommandoen echo kan du sende koder til skjermen. Kommandoen echo forventer et argument, som kan være tekst eller spesielle koder. Denne kommandoen er ikke spesielt nyttig i seg selv, men kan være en nyttig i et script med mange kommandolinjer.

Kommandoen echo echo tegn til skjerm
Kommando: echo [argument]
Funksjon: enkelt Linux-program som sender tekststreng eller koder til skjermen
Argument: tekst eller kontrollkode og/eller jokere
Opsjoner: Se også Linux-man-sidene.

Kommandoen echo uten argumenter sender bare en tom streng til skjermen. Blant andre kan følgende koder settes inn i teksten: \b - ett tegn til venstre (backspace) \c - tar ikke linjeskift \f - blankettmating (formfeed) \n - ny linje \t - tabulator \n - hvor n er et oktalt siffer Eksempler:

   [david@nittedal david]$ echo Linux er gøy Sender tekststrengen "Linux er gøy" til skjermen. Du kan få sendt ut tegn fra ASCII- eller ISO-tabellen ved å gi koden for dette: 

[david@nittedal david]$ echo "\07"

   Sender koden <Ctrl-g> (kontroll g) til skjermen.
   [david@nittedal david]$ echo "\063" Sender tallet 3 til skjermen.
   [david@nittedal david]$ echo "\0101" Sender bokstaven A til skjermen.
   [david@nittedal david]$ echo "Hei på deg!! \c" Sender tekststrengen "Hei på deg!!" til skjermen, uten at den følges av et linjeskift.
   [david@nittedal david]$ echo * Har samme funksjon som ls-kommandoen, se nedenfor. Lister ut alle filene på den katalogen kommandoen blir utført fra. Hvis du har spesialtegn i teksten(Se kapittel 6), må du bruke anførselstegn:
   [david@nittedal david]$ echo "*! er spesialtegn" Se også: bash, ls

Fil- og katalogoversikt – ls[rediger]

ls skriver ut (lister) en oversikt over filer og kataloger. ls tilsvarer kommandoen DIR under MS-DOS/Windows. DIR-kommandoen finnes også under Linux, (Se kapittel 15) , men ls har flere muligheter enn DIR. Dessuten har ikke alle versjoner av Unix støtte for DIR, slik at hvis du kommer borti en annen Unix-versjon enn Linux, så er det greit å være fortrolig med ls.

Kommandoen ls Fil-og katalogoversikt
Kommando: ls [-aCilrRt] [argument]
Funksjon: Gir innholdsfortegnelse over filer og kataloger. Uten opsjoner får du en liste over filer sortert etter navn. Bruker du forskjellige opsjoner, får du med eier, gruppe, størrelse i antall tegn (byte), oppdateringsdato, m.m.
Argument: fil og/eller katalog med eller uten jokere
Opsjoner: Se også Linux-man-sidene.
-a Viser alle filer, også systemfiler, som begynner med punktum, for eksempel .profile, .login, .cshrc, .mailrc etc.
-C Filene og katalogene blir listet ut i flere kolonner.
-i Skriver ut tilhørende inodenummer til filen
-l Gir et langt format med: tilgangstillatelse antall referanser til en fysisk fil eier størrelse dato
-r Sorterer i omvendt rekkefølge
-R Viser alle underliggende kataloger
-t Kronologisk rekkefølge
-Z Viser sikkerhets context
--scontext Viser kun sikkerhets context og filnavn

Argumentet kan være filer og/eller kataloger. Kommandoen ls uten opsjon skriver alle standard filer og kataloger i aktiv katalog til skjermen. Terminalfedoralsit.png

Figur 5.1: Bruk av Linux-kommandoen ls fra et terminalvindu Systemfiler i Linux har filnavn som begynner med punktum. Disse vises normalt ikke av ls-kommandoen. Men, tar du med opsjonen -a, vises også systemfilene. Det er en konvensjon i Linux at programmer som oppretter konfigurasjonsfiler knyttet til din Linux-bruker, legger disse på ditt hjemmeområde, og gir filene et filnavn med punktum først i navnet. Disse filene skal vanligvis ikke endres på av deg og skjules derfor av ls. Eksempler:

[david@nittedal david]$ ls -la Gir en liste over alle filer og kataloger, inkludert systemfiler. Listen kommer ut i langt format.

[david@nittedal david]$ ls -lt Her får jeg bare en liste over standard filer og kataloger. Siden jeg bruker opsjonen -t, får jeg lista ut i kronologisk rekkefølge.

[david@nittedal david]$ ls -Z Her får jeg med en tilhørende sikkerhets contex-liste. Denne listen får bare opp hvis du kjører SElinux med økt sikkerhet.

[david@nittedal david]$ ls --scontext Bruker du opsjonen --scontext får du kun med sikkerhets contexen og filenavn. Se også: dir, vdir, chmod og find

Dato og klokkeslett – date[rediger]

Med date kan du se eller endre dato og klokkeslett.

Kommandoen date Lese/sette dato og klokke
Kommando: date [MMddhhmm[år]] [+format]
Funksjon: Viser dato og klokkeslett. Dato og klokkeslett som vises på skjermen, kan presenteres på ulike formater. Er du systemadministrator, kan du også endre dato og klokkeslett.
Argument: Dato og/eller klokkeslett
Opsjoner: Se også Linux-man-sidene.

Formatet defineres med et sett feltkoder. Forkortelsene for dato og klokkeslett er definert nedenfor: MM - måned dd - dato hh - timer mm - minutter år - årstall Format-feltet gir deg full kontroll på datoformatet ut fra kommandoen. Formatet, angis som fritekst ispedd passende feltkoder. Hver feltkode erstattes med del av dato, eller tidspunkt eller et spesialtegn. Feltkodene angis med en bokstav prefikset med et %-tegn.. Feltkoder: n - tvinger inn et linjeskift t - tvinger inn et tabulator-tegn m - måneden kommer i formatet 01 til 12 d - datoen kommer i formatet 01 til 31 y - bare de to siste sifrene i årstallet kommer med H - timene i klokkeslettet kommer i formatet 00 til 23 M - minuttene i klokkeslettet kommer i formatet 00 til 59 S - sekunder i klokkeslettet kommer i formatet 00 til 59 Hvis formatet begynner med +, blir utskriften styrt av bruker. Eksempel:

   elboth@dhcppc3:~> date
   ma. 25. april 07:50:52 +0200 2016
   elboth@dhcppc3:~> (CET står her for sentraleuropeisk tid.) Gir dagens dato og klokkeslett. Vanlige brukere kan bare se dagens dato og klokkeslett, mens systemadministrator kan sette ny dato og nytt klokkeslett for systemet:
   [root@nittedal /root]# date 07291545 

Her setter systemadministrator datoen til 29. juli og klokkeslettet til 15.45.

Hvis klokka i systemet går galt, vil det påvirke alle kommandoer som relaterer seg til tid. Systemadministrator må passe på at klokka er riktig. Ønsker du å stille dato/klokkeslett, kan du også bruke X Windows-programmet dateconfig (bare Red Hat og Fedora).

   Figur 5.2: Eksempel på bruk av Khrone fra SuSE Jeg tar til slutt med et eksempel på bruk av format til kommandoen date:
   [david@nittedal david]$ date '+Dagens dato: %m/%d/%y%nKlokkeslett: %H:%M:%S' Som gir: Dagens dato, for eksempel: 07/13/05
       Klokkeslett, for eksempel: 22:01:49 
       Se også: Kapittel 11, Prosesser, og kapittel 16, Skallprogrammering 

Det er også mulighet å hente klokke\tid basert på geografisk plasering. F.eks hvis du skal reise på ferie så slipper du å sette opp tidsone på nytt. Men dette kan gi noen problemer hvis du bruker VPN. Les mere om det på. https://github.com/cdown/tzupdate

Hvem er på systemet? – who[rediger]

Ønsker du å vite hvem som er pålogget systemet, kan du bruke who-kommandoen:

   Kommandoen who uten opsjon viser navnene på brukere som er pålogget, og som er i aktivitet, samt når vedkommende ble pålogget. Velges opsjonen -u, får du listet opp prosessidentene assosiert med brukeren. (Se også kapittel 11.) Eksempler:
   [david@nittedal david]$ who
   david ttyp0 Nov 17 11:34
   root tty2 Nov 17 11:44
   erik tty6 Oct 9 00:46 Her ser vi navnene på brukere som er pålogget, og som er i aktivitet, samt når vedkommende ble pålogget.
   [david@nittedal david]$ who -u
   root tty1 Nov 27 10:48 00:04
   david tty6 Nov 27 12:21 .
   david ttyp0 Nov 27 11:00 . (207.117.119.220) De brukerne som har vært aktive det siste minuttet, er merket med punktum. Er ikke terminalen brukt de siste 24 timene, blir dette markert med old. Helt til høyre er IP-adressen (207.117.119.220) til den innloggede brukeren.
   [david@nittedal david]$ who -T
   root - tty1 Nov 27 10:48
   david + tty6 Nov 27 12:21
   david + ttyp0 Nov 27 11:00 (207.117.119.220) Med T-opsjonen får du status på terminalen. + betyr at du kan skrive til terminalen. (Se mesg-kommandoen.) Se også: date, login, who am i, ps, mesg 

Hvem er jeg? – who am i[rediger]

   Har du flere bruker-identer, kan det fort gå i surr. Kommandoen "who am i" gir deg klar beskjed om hvem du er.

Brukerinformasjon – finger[rediger]

Med kommandoen finger får du systeminformasjon om de forskjellige brukerne på systemet.

[david@nittedal david]$ finger

Login Name Tty Idle Login Time Office Office Phone

david David Elboth 6 1:17 Nov 27 12:21 Nittedal 67075694

david David Elboth p0 Nov 27 11:00 (207.117.119.220)

root root *1 Nov 27 10:48 Nittedal 67078944 Utskriftene vil avhenge av blant annet sikkerhetsnivået for systemet. Her er et eksempel fra Fedora Linux. Fra utskriften kan jeg lese at jeg har 3 brukere inne på systemet. Jeg ser brukernes komplette navn, hvilken terminaldriver som brukes, brukt tid, når de logget seg inn på systemet, kontoradresse/plassering og telefon.

Fingerfedoraterminal.png

Figur 5.3: Eksempel på bruk av Linux-kommandoen finger Her er et eksempel hvor jeg har brukt vertsnavn:

[david@nittedal david]$ finger david@nittedal.c2i.net

[nittedal.c2i.net]

Login: david Name: David Elboth

Directory: /home/david Shell: /bin/bash

Office: Nittedal, 22777696

On since Fri Nov 27 12:21 (CEST) on tty6 1 hour 29 minutes idle

On since Fri Nov 27 11:00 (CEST) on ttyp0 from 207.117.119.220

1 second idle

No mail.

No Plan. Programmet finger krever at en servertjeneste kjøres, og det har vært mye sikkerhetsproblemer med denne tjenesten - så det er ikke alltid den følger med alle Linux-distribusjoner. Se også: date, who, who am i, ps

Aktuell filtype – file[rediger]

Hvis du lurer på hva en bestemt fil inneholder, eller hvilket program som har laget den, kan du bruke file-kommandoen. Den utfører en serie tester. Er filen din en ASCII-fil, blir den første blokken testet for å se hvilket språk den er skrevet i. Finner den et 8-bits tegn, blir filen automatisk definert som 8-bits tekst. Flere forskjellige formater blir gjenkjent.

Kommandoen file Hvilken type fil?
Kommando: file [-f] fil/katalog [filnavn]
Funksjon: Gir informasjon om filtype (katalog)
Argument: File-kommandoen krever et argument, dvs enten et filnavn eller jokere. (Se kapittel 6 om bruk av jokere.) Brukes opsjonen -f, er filen en liste over filnavn.
Opsjoner: Se også Linux-man-sidene.
-f Neste argument er en fil med en liste over filnavn
Filtype Beskrivelse
ascii text Tekstfiler hvor mindre enn 20 % av kommandoene har blanke tegn eller linjeskift bak
cannot open Lesing er ikke tillatt
c program text c-kildekodeprogram
commands text Filen er et bash-skall-program (skript)
directory En katalog
empty En tom fil
data En standard datafil

Eksempel: Fedoracdlist.png

[david@nittedal david]$ file *

batch: commands text

c‑files: directory

cls.bat: commands text

cls.c: c program text

convert.c: c program text

fil: empty

ifs: commands text

test: directory

uni.c: c program text

uniconv.c: c program text

Figur 5.3: Eksempel på bruk av Linux-kommandoen fileTerminalnavnet – tty[rediger]

Terminalen kontrollerer alle prosessene som startes av en bruker. Hver perifereenhet styres av en driver. Standard I/U (inndata/utdata) og feil blir automatisk koblet til brukerens terminal. Ønsker du å vite hvilken driver og hvilket navn din terminal har, kan du bruke kommandoen tty.

Kommandoen tty Hvilken terminaldriver?
Kommando: tty [opsjon]
Funksjon: Gir navnet på terminaldriveren du bruker
Argument: Fil eller katalog
Opsjoner: Se også Linux-man-sidene.


Eksempel:

[david@nittedal david]$ tty

/dev/tty1

Diskforbruk – du[rediger]

Ved hjelp av kommandoen du (Disk Usage) får du en oversikt over hva en bruker eller hele systemet opptar av 512-byte (evt 1024 byte) blokker. Som systemadministrator kan du bruke denne kommandoen for å finne hvilke brukere eller programmer som tar mest plass på systemets harddisker.

Kommandoen du Diskforbruk per fil/katalog
Kommando: du [-as] [argument]
Funksjon: Angir diskforbruket for hver fil, for hver katalog og katalogstruktur (totalt)
Argument: Fil eller katalog
Opsjoner: Se også Linux-man-sidene.
-a Antall blokker hver fil og katalog opptar
-s Viser bare totalt antall blokker brukt av de katalogene som angis som argument

Uten opsjoner får du antall blokker, kataloger og totalt blokk-forbruk på disken. Eksempel:

   [root@nittedal /usr/bin]# du -a /root
   1 /root/.prognet/RealServer50
   2 /root/.prognet
   2 /root/.Xdefaults
   1 /root/.seyon/startup
   14 /root/.seyon
   3 /root/.bash_history
   1 /root/Xrootenv.0
   1 /root/.FVWM2-errors
   29 /root
   [root@nittedal /usr/bin]# Tallene representerer blokkforbruket for hver fil og katalog. Det siste tallet gir totalforbruket.
   [root@nittedal /usr/bin]# du -s /root
   29 /root
   [root@nittedal /usr/bin]# Her får jeg totalt blokkforbruk til katalogen /root. 

Linux-versjon/-navn – uname[rediger]

Med kommandoen uname finner du hva slags Linux- (eller Unix-) system du jobber mot. Dette er nyttig å vite ved system til system-kommunikasjon. Bruker du ikke opsjoner, får du Linux-systemnavnet på terminalen. Eksempler:

Kommandoen uname Linux-operativsystem/systemnavn
Kommando: uname [-snrvma]
Funksjon: Viser maskinarkitektur, Linux-systemnavn og maskinnavnet på Linux-maskin
Argument: Ingen
Opsjoner: Se også Linux-man-sidene.
-s Skriver ut operativsystemnavnet
-s Skriver ut maskinnavnet, "nodenavnet"; dette navnet brukes som referanse ved nettverkskommunikasjon.
-r Skriver ut utgaven (releasen) av operativsystemet
-v Skriver ut versjonen av operativsystemet
-m Angir hvilken maskinvare som brukes, f.eks Pentium, MC68XXX, Alpha etc.
-a Skriver ut all informasjon

Bruker du ikke opsjoner, får du Linux-systemnavnet på terminalen. Eksempler:

[david@nittedal david]$ uname -s

Linux Dette betyr at systemnavnet er Linux.

[root@dhcppc6 ~]# uname -a

Linux dhcppc6 2.6.18-1.2798.fc6 #1 SMP Mon Oct 16 14:37:32 EDT 2006 i686 i686 i386 GNU/Linux

Her får jeg med operativsystem navnet (Linux), maskinnavnet, "nodenavnet" (dhcppc6), utgaven av operativsystemet (2.6.18-1.2798.fc6 #1 SMP), versjonen av operativsystemet (#1 SMP Mon Oct 16 14:37:32 EDT 2006) og maskinarkitektur (ii686 i686 i386 GNU/Linux). Ønsker du å endre maskinnavnet på maskinen din bruker du kommandoen hostname (Se kapittel 22).

Oppgaver til kapittel 5[rediger]

Oppgave 5.1 Lag en kalender for neste år. Skriv navnet ditt på skjermen med echo-kommandoen. Prøv flere av variantene til ls-kommandoen.

Oppgave 5.2 Er systemets systemtid riktig? Logg deg inn som systemadministrator(root) og sett systemets dato og klokke riktig.

Oppgave 5.3 Sjekk brukere og virtuelle terminaler med who-kommandoen. Er det noen som sover ved terminalene sine? Prøv forskjellige opsjoner til who-kommandoen.

Oppgave 5.4 Hva slags filer har du i katalogene /usr/bin og /usr/doc?

Oppgave 5.5 Hvilke to metoder kan du bruke for å finne driveren for terminalen din? Prøv begge to.

Oppgave 5.6 Hva er Linux-systemets totale blokkforbruk? Hva slags Linux-system kjører du, og hva slag maskinarkitektur kjører du på?

6: Filhåndtering[rediger]

Linux-kommandoene jeg går igjennom i dette kapitlet, brukes for å håndtere filer. Felles for alle disse kommandoene er at de er lette å bruke.

Opensuse kde konqueror.png

Figur 6.1: KDE konqueror filemanager under OpenSuSE Linux

   De fleste kommandoene i dette kapitlet kan også utføres fra grensesnittet Nautilus filemanager ([david@nittedal david]$ nautilus & ), GNOME filemanager GNU Midnight Commander ([david@nittedal david]$ gmc & eller fra KDEs filemanager kfm 

([david@nittedal david]$ konqueror & ).

Linux-filnavn[rediger]

Et Linux-filnavn kan maksimalt bestå av 256 tegn. Men bare de første 64 tegnene er signifikante. Noen Unix-varianter håndterer bare 14 tegn. Har du tidligere brukt DOS eller Windows, er du vant til at de 3 siste tegnene i filnavnet beskriver filtype. I Linux er det mest vanlig å ha ett tegns haleheng, for eksempel program.c eller program.o. Det er tillatt å ha flere punktum i filnavnet.

Jeg understreker her at Linux ikke legger noen begrensning på filnavnene; navnene er helt opp til deg å bestemme. I motsetning til i Microsoft DOS eller Windows er ikke en fils kjørbarhet knyttet opp til filnfigavnet (exe, com og lignende), men om den er definert som kjørbar i filsystemet. Det er selvfølgelig også i Linux-miljøet vanlig å benytte seg av standard 3-4 tegns haleheng for filtyper som gif, jpg, pdf, html og lignende. (Se kapittel 7.)

Figur 6.2: Markering av fil fra Nautilus under GNOME Linux har følgende regler for filnavn:

Filnavn kan bestå av maksimalt 256 tegn.

Følgende spesialtegn kan benyttes i Linux-kommandoer og bør (dette er avhengige av tegnsettet som brukes) derfor ikke brukes i filnavn: ( ) æ å ? [ ] < > ; ø ' {{{`}}} " \ &

Mellomromstegnet og kontrolltegn bør heller ikke benyttes i filnavn. Har du definert et filnavn med mellomrom kan du bruke tegnet ' (det er også mulig å bruke «») som separator, for eksempel [david@nittedal david]$ cat 'Filnavn med mellomrom'). Du kan som alternativt bruke backslash \ som separator når du har mellomrom (# cd /windows/C/My\ \Music) Linux skiller mellom store og små bokstaver. Det er mest vanlig å bruke små bokstaver i filnavn. Det er viktig å bruke filnavn med mening, da er det lettere å finne igjen filene. Skriv for eksempel brev.elboth.jul i stedet for brev. Alle innloggingsfiler har filnavn som begynner med punktum: for eksempel .bash_profile, .bashrc, profile, .login, .cshrc, .tcshrc og .kshrc. Ønsker du å gjøre en fil «usynlig», kan du innlede navnet på filen med punktum, for eksempel .brevanne. At filen er usynlig, betyr at den vises bare hvis du tar med -a som opsjon i kommandoen ls.

Linux-filtyper[rediger]

Linux støtter flere forskjellige filtyper. Når du bruker GNOME Natutilus eller kommandoen ls, får du fram opplysninger om filen. Linux-kommandoen ls er mest omfattende og gir deg også informasjon om filens eier, hvilken gruppe filen tilhører og tilganger til filen eller katalogen. I listen fra «ls -l»-kommandoen angir første kolonneposisjonen filtype. De andre kolonneposisjonene gir tilgangskoder. Dette er en liste over forskjellige filtyper: - - standard Linux-fil d - katalog b - blokkdriver (device-driver) c - tegnbasertdriver (device-driver) For filtyper som gif, jpg, pdf, html og lignende, se kapittel 7.

Tilgang til filer og kataloger[rediger]

Den som oppretter en fil/katalog, blir automatisk eier av filen/katalogen. Eieren av en fil/katalog kan bestemme tilgangen til filen/katalogen for seg selv, medlemmene i sin brukergruppe og alle de andre. Når du oppretter en fil eller katalog, blir det satt på tilgangskoder som bestemmer hvem som kan lese, skrive eller utføre filen. Hele kapittel 8 handler om tilgangskoder: hvordan du setter dem, endrer dem, osv.

Bruk av jokertegn[rediger]

Linux bruker følgende spesialtegn som jokere (wildcharacters) i fil- eller katalognavn: ? [ ] Der du skriver et jokertegn, setter Linux inn andre tegn etter reglene under. Ved hjelp av jokertegnene kan du derfor navngi en fil/katalog eller en gruppe av filer/kataloger. Følgende regler gjelder for bruk av jokertegn: ? -et enkelt men vilkårlig tegn -null eller flere vilkårlige tegn [ ] -representerer tegn eller intervall (ved bruk av bindestrek) Jokertegnene kan kombineres med hverandre og med vanlige tegn.

Jokertegn Beskrivelse
* alle filer i angitt katalog
f* alle filer med filnavn som starter på f
*.o alle filer med filnavn som ender på o
???? alle filer med filnavn som består av 4 tegn
Linux? alle filer med filnavn som starter med Linux og har ett tegn til, for eksempel Linuxa, Linuxb, Linux1 etc.
Linux[1-4] tilsvarende Linux1, Linux2, Linux3 etc.
[LU]inux enten Linux eller Unix

Disse eksemplene på jokertegn kan benyttes til de fleste kommandoene som behandler filer i Linux. Kommandoene behandler da filer med filnavn som passer med det mønsteret som er angitt.

Bruk jokere med forsiktighet! Kommandoen rm * vil for eksempel fjerne alle filene i den aktuelle katalogen.

Eksempler på kommandoer med jokertegn: cat * ls -la t* cat /usr/u* rm 'øøøø' (fjerner filen øøøø) lp chap[1-20] ls -la chap??? ls -la .* rm del?.test ls ???S* ls f??g Hvis du bruker enkle apostrofer (' ') eller anførselstegn (" "), mister jokertegnene sin virkning. Jokertegnet oppfattes da som vanlig tekst.

Skrive fil til skjerm – cat[rediger]

Med cat-kommandoen kan du skrive tekstfilene dine til skjermen. cat er en forkortelse for "concatenate" og er opprinnelig konstruert for å kombinere flere filer til én fil. Skriver du cat uten parametere, forventer kommandoen data fra standard input-kanal, dvs. tastaturet. Du kan alltid avslutte med <Ctrl-d>.

Kommandoen cat skriver innhold av fil til skjerm
Kommando: cat [-s] [-v] [argumenter ...]
Funksjon: Viser innholdet av en tekstfil på skjerm eller kopierer én eller flere filer til skjerm/fil
Argumenter: Fil, katalog og/eller jokere
Opsjoner: Se også Linux-man-sidene.
-s Ingen meldinger om ikke eksisterende filer
-v Kontrolltegn blir vist, for eksempel {{{}}}X, {{{{{{}}}}}}?

Bruker du cat-kommandoen uten opsjoner, vil du bare få listet opp filen(e) på skjermen. Argument kan være én eller flere filer. Argument er ikke nødvendig. Med cat-kommandoen kan du også skrive direkte til skjermen. Eksempel:

[david@nittedal david]$ cat

Dette er et eksempel på en tekst som er skrevet ved hjelp

Dette er et eksempel på en tekst som er skrevet ved hjelp

av cat-kommandoen.

av cat-kommandoen.

Her avslutter du med Control d.

Her avslutter du med Control d.

<Ctrl-d>

Figur 6.3: Eksempel på bruk av Linux-kommandoen cat Hver linje kommer to ganger, dvs. først en gang når du skriver teksten, og så en gang som utdata fra cat. Eksempel:

[david@nittedal david]$ cat -v davidtekst Skriver tekstfilen davidtekst med alle kontrolltegn til skjermen. Se også kapittel 7 og 8.

Kopiere filer – cp[rediger]

Med cp kan du kopiere enkeltfiler eller grupper av filer innenfor en katalog eller fra/til en katalog. Vil du kopiere en fil, må du ha lesetilgang til filen og skrivetilgang til katalogen du vil kopiere filen til.

Kommandoen cp kopiering av filer
Kommando: cp fil1 fil2 eller cp filer katalog
Funksjon: Kopiering av enkeltfiler og grupper av filer
Argumenter: Fil, katalog og/eller jokere
Opsjoner: Se også Linux-man-sidene.
-f Tvinger overskriving av målfil(er)
-p Bevarer de originale attributtene, for eksempel eier, rettigheter og tidspunktet filen sist ble endret.
-r (-R) Kopierer også de underliggende katalogene
-v Verbose modus=vise; skriver navnet på de enkelte filene som blir kopiert
fil1: Navn på filen som skal kopieres (originalen)
fil2: Navn på filen det kopieres til (kopien)

Eksempler:

[david@nittedal david]$ cp rapport rapport1 Filen rapport blir kopiert til en ny fil som får navnet rapport1.

[david@nittedal david]$ cp *nrf tekst/ Alle filer som har endelsen nrf, blir kopiert til katalogen tekst/. De nye filene har samme filnavn, bruker-id, gruppe-id osv. Om kataloger, se kapittel 7.

[david@nittedal david]$ cp brev1 brev 2 /usr/brevkat Kopierer brevene brev1 og brev2 til katalogen /usr/brevkat. Se også: cpio, ln, mv, rm, chmod

Flytte/endre navn på filer – mv[rediger]

Med kommandoen mv kan du flytte en fil fra én katalog til en annen og samtidig gi filen et nytt navn. Er det en fil som har samme navn som målfilen, blir den slettet før filflyttingen skjer. Du kan også skifte navn på kataloger.

Kommandoen mv navneskifte av filer/kataloger
Kommando: cmv [-f] fil1 fil2 eller mv [-f] katalog1 katalog2 eller mv [-f] fil ... katalog
Funksjon: Navneskifte og/eller flytting av filer; kataloger kan du bare skifte navn på.
Argumenter: Fil, katalog og/eller jokere
Opsjoner: Se også Linux-man-sidene.
-f Filflytting skjer selv om det eksisterer en fil med samme navn som kopifilen, og selv om denne er skrivebeskyttet.
fil1: Navn på filen som skal flyttes og/eller skifte navn (originalen)
fil2: Det nye navnet på filen

Eksempler:

[david@nittedal david]$ mv smb.conf smb Her skifter filen smb.conf navn til smb.

[david@nittedal david]$ mv linux* linuxbok Alle filer som begynner på linux flyttes til katalogen linuxbok.

[david@nittedal david]$ mv /tmp/brev /home/david/brev-kopi Her flytter jeg filen brev i katalogen /tmp til katalogen /home/david. Filen skifter samtidig navn til brev-kopi.

[david@nittedal david]$ mv /home/david/wp /home/david/corel Her skifter jeg navn på katalogen fra wp til corel. Hvis fil1 og fil2 er plassert på et annet filsystem, må mv-kommandoen først kopiere og fjerne originalen. I dette tilfellet blir eieren av filen den som kopierer, og tidligere linkreferanser går tapt. Se også: cp, chmod

Slette filer og kataloger – rm[rediger]

Med kommandoen rm fjerner du enkeltfiler eller grupper av filer, Du kan slette én eller flere filer, eller en hel katalogstruktur. Sletting av filer krever at du har skrivetilgang til katalogen. Er du eier av filen, kreves ingen andre rettigheter.

Kommandoen rm fjerne én eller flere filer/kataloger
Kommando: rm [-fri] [argument]
Funksjon: Fjerner én eller flere filer/kataloger
Argumenter: Fil, katalog og/eller jokere
Opsjoner: Se også Linux-man-sidene.
-f Sletter skrivebeskyttede filer uten advarsel
-r Sletter alle filer/kataloger og nedover (underkataloger); denne opsjonen må du bruke forsiktig.
-i Velger du interaktiv sletting, blir hvert filnavn som skal fjernes, vist på skjermen. Ønsker du å slette, må du svare bekreftende med y, i motsatt fall trykker du n.
   NB! Når du har overflødige filer som du kjenner opphavet til, bør de fjernes.
   Figur 6.4: Eksempel på bruk av Linux-kommandoen rm Eksempler:
   [david@nittedal david]$ rm linux.fil Fjerner filen linux.fil.
   [david@nittedal david]$ rm /bin/test Fjerner filen test som er plassert i katalogen /bin.
   [david@nittedal david]$ rm -f mess* Fjerner uten advarsel alle filene som begynner på mess.
   [david@nittedal david]$ rm -i testdir Her får jeg spørsmål om jeg ønsker å fjerne filen testdir.
   [david@nittedal david]$ rm -r /home/david Fjerner katalogen /home/david og alle tilhørende underkataloger.
   [david@nittedal david]$ rm -r *

I det siste eksemplet fjernes alle filer i gjeldende katalog og alle underkataloger under gjeldende katalog.

r‑opsjonen kan være farlig å bruke. Bruker du r-opsjonen, vil den ikke fjerne mer enn 17 underkatalog-nivåer. (Om kataloger, se kapittel 7.) Se også: rmdir

Flere navn på én fil – ln[rediger]

Det kan av og til være nyttig å ha flere navn på én fil. Ett navn kan vise hvilket prosjekt filen tilhører, mens et annet sier noe om innholdet av filen. Man kaller dette å linke (knytte) flere referanser (filnavn) til den samme fysiske filen.

Kommandoen ln lage en link til en fil/katalog
Kommando: ln [opsjon] fil1 fil2 eller ln [opsjon] fil1 ... katalog
Funksjon: Lager en link til en fil, dvs. gjør det mulig å ha flere navn på en fysisk fil; filen med navnet fil1 får også navnet fil2. Det som logisk skjer er at du definerer to filnavn som refererer til samme inodenummer. Det er mulig å linke filer over forskjellige filsystemer. Det samme kan gjøres med kataloger.
Argumenter: Fil, katalog og/eller jokere
Opsjoner: Se også Linux-man-sidene.
-f Lager en link selv om det nye filnavnet eksisterer
-s Lager en symbolsk link; en symbolsk link kan gå over forskjellige filsystemer. Som standard (default) har man hardlink. Hardlink går bare over ett og samme filsystem.

Når du bruker rm-kommandoen, blir ikke filen fjernet før du fjerner den siste referansen (filnavn) til filen. Eksempler:

[david@nittedal david]$ ln sfjord tekstsf Nå refererer filene sfjord og tekstsf til samme inode. (Se kapittel 7 og 8.)

[david@nittedal david]$ ln .profile /home/anne/.profile

Her har to brukere tilgang til samme systemfil. Linken går her over en annen katalog. Kommandoen ln kan være nyttige hvis du bruker OpenOffice under Linux og har alle tekstfilene på en Windows-partisjon. I eksemplet under linker jeg opp min Windows-partisjon under Linux mot katalogen books (home/david/books)

[david@nittedal david]$ ln -s /windows/C/data-new/de/boker/linux books Drivere kan ha lange navn. Her definerer jeg et kort navn som er lett å huske. I eksemplet under bruker jeg driveren til diskettstasjonen.

[david@nittedal root]# ln /dev/fd0H1440 /dev/A I dette siste eksemplet må du være systemadministrator.

Figur 6.5: Eksempel på bruk av Linux-kommandoen ln Du fjerner en link med rm-kommandoen, dvs. du fjerner et av filnavnene.

[david@nittedal david']'$ rm sfjord Fjerner navnet sfjord på filen og dermed linken. Kommandoen ln har svært mange bruksområder som ikke alltid er like innlysende for en som er vant til å bruke Microsoft DOS eller Windows. La meg nevne to praktiske eksempler.

Alle nye programmer som er laget ved hjelp av gtk (et verktøy for å lage grafiske grensesnitt under Linux (http://www.gtk.org), benytter seg av en fil som heter gtkrc for å bestemme utseendet på programmet. (Se http://gnome-look.org/?xcontentmode=100). Denne filen blir vanligvis opprettet i en underkatalogen. Hvis du har flere slike programmer, så vil det være uhensiktsmessig å redigere oppsettet for hvert av dem når du skal bytte utseende. Løsningen er å bruke ln til å sørge for at det er den samme filen som ligger i alle mappene. Når du så oppdaterer filen et sted, blir den oppdatert over hele linjen.

Et annet eksempel som illustrerer hvordan ln kan benyttes, er følgende: Jeg skulle sette opp en bærbar maskin som ikke hadde CD-ROM med Linux. Det den derimot hadde, var en dokking-stasjon med innebygd ethernett-kort. Jeg koblet den bærbare maskinen sammen med min stasjonære maskin som hadde en FTP-server installert. Jeg lagde deretter en link fra CD-ROMen til FTP-katalogen ved hjelp av ln. Dermed ble hele CD-ROMen tilgjengelig via FTP uten at jeg måtte kopiere den inn på harddisken. Jeg kjørte deretter installering av Linux via FTP på den bærbare maskinen.

Se også: cp, rm, mv, inodenummer.

Oppgaver til kapittel 6[rediger]

Oppgave 6.1 Bruk kommandoen ls og jokertegn for å finne ut følgende om ditt system: a) Hvilke filnavn har akkurat 14 tegn? b) Hvilke filnavn har akkurat 5 tegn? c) Hvilke filnavn ender på sss? d) Hvilke filnavn på 4 tegn begynner med d og ender på e? e) Hvilke filnavn på 3 tegn ender med en bokstav i intervallet [e-k]? f) List alle filnavn som slutter på ?. g) List alle filnavn som begynner på *.

Oppgave 6.2 Klarer du å lage ulovlige filnavn? Hvordan kan du bruke disse filene senere?

Oppgave 6.3 Hva slags filtype er dine filer?

Oppgave 6.4 Hvordan kan du representere filene under med jokertegn? a) abc abd abe b) rapp1 rapp2 rapp3 c) x1s xes d) Alle filer som begynner på bokstavene s til d.

Oppgave 6.5 Skriv ut alle dine tekstfiler til skjermen med og uten kontrolltegn.

Oppgave 6.6 Lag sikkerhetskopier av alle systemfilene dine.

Oppgave 6.7 Skift navn på sikkerhetskopiene.

Oppgave 6.8 Prøv å fjerne en tekstfil med opsjonen -f.

Oppgave 6.9 Lag flere navn på sikkerhetskopiene dine.

7: Kataloger og filsystemer[rediger]

I dette kapitlet går jeg gjennom begrepene kataloger og filsystemer. Jeg ser også på hvordan Linux-filsystemet er bygd opp, og hva du finner i de forskjellige katalogene. I siste del av kapitlet tar jeg opp hvordan du navigerer i katalogstrukturen, samt hvordan du oppretter og fjerner kataloger.

Kataloger og filsystemer

   En fil er en samling av data. En slik samling har et filnavn. En katalog kan bestå av en liste filer og en liste over kataloger. En katalog blir av operativsystemet tolket som en fil, men uprivilegerte (dvs. programmet må ha bestemte rettigheter) programmer kan ikke skrive i den. Et filnavn blir spesifisert med et banenavn, for eksempel /home/david/perl-test. Søkebanen her er først root-filsystemet, så katalogene, home og david. Hvis søkebanen ikke innledes med / , vil systemet begynne å lete fra den katalogen brukeren står i (arbeidskatalogen). Hver katalog har minst to adresser sett fra et terminalvindu:
       . peker til arbeidskatalogen
       .. peker til arbeidskatalogens moderkatalog 

Filsystemet i Linux består av filer og kataloger, foruten nødvendig informasjon for å lokalisere og få tilgang til dem. Hvert filsystem er en selvstendig enhet. Kataloger behandles nøyaktig som andre filer, med ett unntak: Linux tillater ikke at du skriver direkte til kataloger. I katalogene finner du filnavnene. Hvert oppslag i katalogen består av to deler:

  * et filnavn på opptil 256 tegn (variabelt)
   * en peker som man kaller link 

Linken peker på inoden (informasjonsnoden), som holder på informasjon om filen for operativsystemet. Inoden har all informasjon om en fil, som lengde, opprettelsesdato, eierforhold, peker til første datablokk osv. Selve filen eksisterer derfor ikke fysisk i en katalog. Katalogoppslaget består bare av navnet på filen og en peker. Når Linux prøver å åpne en fil, finner den først filens inodenummer i den katalogen hvor filnavnet står. Deretter leser den inoden for å avgjøre filtype og tilgangsrettigheter. Er filen en standardfil eller en katalog, blir peker til første datablokkpeker brukt til å finne hvor innholdet i filen begynner.

Inoder[rediger]

Alle filer har bare én inode. Det finnes ikke noe fast en-til-en forhold mellom filnavn og fysiske datafiler. To eller flere kataloger kan ha filnavn som peker til samme fil. Når du har en fysisk fil med flere navn, sier man at filnavnene er linket sammen (se også om ln-kommandoen i kapittel 6). Linux støtter også symbolsk linking, dermed kan du krysse filsystemer og linke kataloger. En symbolsk link får sin egen inode med tilhørende inodenummer. Når du bruker rm, blir ikke filen (og inoden) fjernet før du fjerner den siste referansen til filen. Inoder er Linux-systemets beskrivelse av filer, mens katalog-oppslag gjør at brukeren kan referere til en fysisk fil med et navn. Inodesystemet gjør at Linux-systemet kan lokalisere datablokkene meget raskt. I ytterligere detalj inneholder en inode blant annet følgende:

      * inodenummerfilens lengde
      * når filen ble laget
      * siste gang filen ble gitt tilgang til
      * siste gang filen ble endret
      * siste gang inoden ble endret
      * eier og gruppestørrelsetilgangsattributter
      * direkte pekere til datablokker
      * indirekte pekere til datablokker
      * dobbelt indirekte pekere til datablokker
      * trippelt indirekte pekere til datablokker 

Bruker du forskjellige opsjoner til ls-kommandoen, får du nesten all inodeinformasjon. Opsjonen -i gir deg for eksempel inodenummeret til de forskjellige filene.

Det fysiske filsystemet[rediger]

Linux håndterer alle filer i blokker på 1 kB (noen Unix systemer har 512 byte, 1 kB, 2 kB, 4 kB eller 8 kB blokker) som nummereres fra 0, 1, 2, osv. Første blokk på disken er bootblokken (GRUB(2) eller (E)LILO), også kalt primærblokken.

Superblokk[rediger]

Den andre blokken på disken er filsystemets superblokk. Her finner jeg størrelsen på filsystemet i antall blokker, fsize, som gir oss antall blokker som er reservert for inoder, og isize, som peker på første ledige blokk. Superblokken inneholder i tillegg generell statusinformasjon, som antall inoder i systemet, antall ledige inoder og datablokker osv. All statusinformasjon blir hentet fra superblokken. Superblokken blir oppdatert på harddisk ca. hvert 30. sekund.

Blokkene fra 2+isize til fsize er reservert for lagring av data. De ledige datablokkene blir kjedet sammen og danner en friliste.

Diskblokker.jpg

Figur 7.1: Fysisk organisering av Linux-filsystemet Isize er en peker som viser til begynnelsen av listen over ledige blokker. Blokkene fra isize+2 til fsize er reservert for lagring av data.

Paging[rediger]

Den gjenværende plassen på det fysiske filsystemet blir brukt til lagerutveksling (swapping/paging). Paging og swapping er beskrevet i kapittel 2 og 3.

250px

Figur 7.2: Linux-filsystemet

Indirekte adressering[rediger]

Inoder har bare et begrenset antall blokkpekere, avhengig av størrelsen på filen. Er filen stor, bruker inoden tre pekere til indirekte blokker.

Maksimal filstørrelse[rediger]

En inode kan maksimalt adressere 10 datablokker à 1 kB (noen systemer 2, 4 eller 8 kB, eller 512 byte). Hvis filen er større, bruker inoden tre pekere til indirekte blokker som hver inneholder 256 pekere til datablokker. Den maksimale filstørrelsen under Linux blir dermed:

1024 byte * (10+256+256**2+256**3)=17 247 250 432 byte

Dette gjelder når diskblokkene blir allokert i en fast størrelse på 1024 byte. Er diskblokkene à 4 kB, blir maksimal filstørrelse 68 GB. Er diskblokkene à 8 kB, blir den maksimale filstørrelsen 136 GB.

Linux-filsystemet Ext4 med 1 kB blokker er begrenset til en maksimal størrelse på 16 TB. Enkeltfiler under filsystemet Ext3 er begrenset til maksimalt 16 GB. Med versjon 2.6 av Linux-kjernen støttes i dag 16 TB med blant annet filsystemene ext3 (jfs.ext3) og reiserfs (standard filsystemet i SuSE). Filsystemet Ext2 kom i 1992 (Linux 0.96c). Dette er et solid filsystem med gode reperasjonsverktøy (e2fsck) men analyse/reperasjon av "urene" filsystemer tar lang tid. Ext3 filsystemet er basert på det stabile ext2-filsystemet og er journal basert. Man kan oppgradere fra ext2 (tune2fs -j). Ext3 har tre modes : journal = maksimal sikkerhet. Journal på data og metadata. Ordered = journal for kun metadata + data og metadata integritet (default) og writeback = best ytelse, men kun metadata journal.

Kjører du et Linux-filsystem med 1 kB blokker, bør du aldri ha flere enn 286 filer i en katalog. Har du under 30 filer, blir disksøk effektivt fordi forbruket bare blir én diskblokk.

Forskjellige filsystemer[rediger]

Hvert Linux-system har minst ett filsystem på den første harddisken. Dette filsystemet, som blir kalt root-filsystemet, er representert med symbolet /. Root-filsystemet består av programmer og kataloger som tilsammen utgjør operativsystemet.

Fedoramontering.png

Figur 7.3: Mountering av filsystemet gnome

Det er mulig å ha opptil 16 filsystemer på en fysisk harddisk (gjelder PC-arkitektur). De mest benyttede navnene på filsystemene er /home, /usr, /bin, /var, /usr2 osv.

I mange tilfeller kan vedlikeholdet for deg som systemadministrator (root) bli enklere med flere filsystemer. Har du for eksempel et eget filsystem for brukere (/home), blir det enklere å ta sikkerhetskopier ved montering og avmontering. Har du ledig harddisk-kapasitet (med et filsystem), kan du montere et nytt filsystem med mount-kommandoen. Linux df-kommandoen gir deg oversikt over filsystemene. Figuren under viser deg filsystemadministrasjon fra GNOME med usermount (root@nittedal /root # usermount &).

Fedoradiskoppsett.png

eller:

Gammelbok.jpg

Figur 7.3: Administrasjon av filsystemer fra usermount Linux støtter forskjellige filsystemer, de viktigste er:

       Linux-baserte
       * ext2\3 Eldre filsystemer som ikke lengere brukes så mye.
       * ext4 (standard filsystemet i Fedora og Red Hat)
       * Ext3cow
       * Btrfs (B-tree file system) Opensuse filsystem
       * reiserfs (standard filsystemet i SuSE)
       * jfs.ext3xfs (brukes også på Unix-baserte systemer)
       Andre
       * FATFAT32NTFS (bare lesing)
       * HFSISO 9660
       * Next3
       * ZFS (Ubuntu filsystem fra 16.04) 

Andre (Windows):

   * NTFS-3G
   * exfat-utils 

OSX:

   * hfsprogs 

Figur 7.4: Størrelsen på filsystemene

Standard filsystem som brukes av Fedora Linux er ext4. Ext4-filsystemet er nedoverkompatibelt med ext3-filsystemet. Den største forskjellen mellom disse to filsystemene er at ext4-filsystemet er journalførende. Linux rydder opp i et journalbasert filsystem som ext4 på noen sekunder, mens oppryddingen av et ext2basert (e2fsck) filsystem kan ta lang tid. Glemmer du å ta ned din Linux-maskin på normal måte vil filsystemet med forskjellige pekere bli feil. Har du et journal basert filsystemet går opprydningen alltid mye raskere.

Den interne strukturen av Linux- og Unix-filsystemet er noe forskjellig. Et av de mest brukte filsystemene for Unix-operativsystem er AFS, som er raskere enn ext3 og reiserfs som brukes av Linux. AFS støttes av SCO UnixWare. Solaris 2.x fra Sun benytter filsystemet UFS som standard.

Katalogstrukturen i filsystemet[rediger]

Linux bruker et hierarkisk filsystem (fil-tre) for organisering av sine egne systemfiler. I hver enkel katalog lagres de forskjellige komponentene av Linux-systemet. Linux-kjernen (kernel) er alltid lagret under katalogen boot og kjerne-navnet begynner som regel på vmlinuz-xxxx, for eksempel vmlinuz-4.2.2-2. Hver bruker har sitt eget brukerområde hvor alle brukerfilene og katalogene er lagret. Disse brukerkatalogene er som regel satt opp som kataloger under /home, /home1, /usr osv. Ofte er disse katalogene egne filsystemer. For eksempel hører Davids filer til i /home/david eller /usr/david og Vigdis' filer hører hjemme i /home/vigdis eller /usr/vigdis. Som sagt - en katalog kan inneholde én eller flere underkataloger eller filer. Fra root finner jeg følgende systemkataloger: /home -Linux-brukerens hjemmekataloger /bin -Linux-kommandoer /dev -drivere (device-drivere) /etc -administrasjon-katalog

/boot/efi -UEFI boot katalogen

/lib -biblioteker brukt av Linux-operativsystemet /mnt -mount-katalog (mer om dette senere) /procs -består av virtuelle filer (Linux-kjernen) /sbin -systemprogrammer som kjøres ved boot /usr -brukerrutiner og brukerområde /tmp -bare midlertidige filer

Alle disse katalogene er nødvendige for systemet. Katalog og filstruktur standarden for Linux er definert på adressen: http://www.pathname.com/fhs/

Fedoradolphy.png

Figur 7.5: Kataloger (filsystemer) sett fra Dolphi i fedora.

Fedorals.png

Fedoralsall.png

Figur 7.6: Kataloger (filsystemer) sett fra terminal ved hjelp av ls kommandoen

/bin‑katalogen

I denne katalogen finner du systemkommandoer. Det kan være Linux-kommandoer og Linux-batch-rutiner. Eksempler på programmer du finner her er: basename echo passwd su cp expr rm sync date fsck sh tar dump login sleep restore

/dev-katalogen

/dev-katalogen inneholder systemfiler for styring av harddisker, diskettstasjoner, båndstasjoner, skjermer osv. De fleste filene i denne katalogen brukes og må derfor ikke fjernes. Under /dev finner du egne underkataloger for bestemte enheter, for eksempel båndstasjoner, harddisker etc.

/etc-katalogen

/etc-katalogen inneholder administrasjonsfiler og tabeller for systemadministrator. Ingen filer i denne katalogen kan fjernes.

/boot/efi-katalogen

/boot/efi-katalogen innholder oppstartpartisjonen for UEFI\EFI systemet.

/lib-katalogen

I lib-katalogen finner du biblioteksfilene for forskjellige programmeringsspråk, for eksempel GNU C, C++, FORTRAN osv.

/mnt-katalogen

mnt-katalogen er en tom katalog som er reservert for tilkobling (montering) av eksterne filsystemer (NFS=Network File System) som senere kan frakobles. 

/tmp-katalogen

I /tmp-katalogen lagres bare midlertidige filer, det vil si filer som har en kort levetid. Levetiden tilsvarer som regel levetiden til det programmet filen hører til. Stoppes programmet på en unaturlig måte, kan midlertidige filer fortsatt eksistere. Midlertidige filer kan fjernes hvis de ikke tilhører et program som kjøres. Vanligvis tømmes denne katalogen når du starter Linux.

/procs-katalogen

/procs er et virtuelt filsystem som består av virtuelle filer. Disse filene gir deg status på din Linux-kjernen i øyeblikket. Filsystemet blir automatisk montert opp når du slår på maskinen. I /etc/fstab vil følgende være definert:

none /proc proc defaults 0 0 Du finner ut mer om filsystemet ved å bare liste dataene i /proc. For systemadministrator er /proc en enkel metode for å finne status på individuelle prosesser, interrupts, meminfo, monteringer og partisjoner. Du vil finne at strukturen i /proc er logisk presentert for eksempel alt rundt ide (ide-kontroller) er plassert i katalogen /proc/ide. Mer om /proc finner du i kapittel 21.

/usr-katalogen

I usr-katalogen finner du katalogene til brukerne i systemet og flere andre kataloger og brukerkommandoer. Viktige underkataloger er blant annet:

Katalog Beskrivelse
/usr/X11 Linux X-Windows
/usr/iP5-linux Linux-biblioteker
/usr/docs Linux-dokumentasjon
/usr/share/docs Linux-dokumentasjon
/usr/man Linux-man-sidene
/usr/games Linux-spill
  • Linux-filtyper
Katalog Beskrivelse
.Z Komprimert tfil
.tar Arkivert fil (tar-format)
.gz Komprimert (gzippet)fil
.tgz Tar- og gzippet-fil
.bz2 Pakket med bzip2 (buzip2)
.txt Ren tekstfil
.html/htm HTML-fil
.ps PostScript-fil.au
.au Lydfil
.wav Lydfil ofte brukt i spill
.xpm Grafikkfil
.jpg Grafikkfil\Bildefil som er komprimert
.gif Grafikkfil
.png Bildefil ofte brukt på internett
.rpm Fedora/SuSE pakkefil
.conf Konfigurasjonsfil
.a Arkivfil
.lock Låsfil
.h C- eller C++-headerfil
.c C-kildekodefil
.cpp C++- kildekodefil
.o Objektfil.pl
.pl Perl-skriptfil

Arbeidskatalog pwd[rediger]

Hvilken katalog du jobber i, finner du ut med pwd-kommandoen. Denne kommandoen viser oss det fullstendige banenavnet, fra root og ned i katalogstrukturen.

Kommandoen pwd arbeidskatalog
Kommando: pwd
Funksjon: Viser fullstendig banenavn
Argumenter: Ingen
Opsjoner: Ingen

Eksempler:

   [david@nittedal david]$ pwd
   /home/david Her er plasseringen i hjemmekatalogen /home/david.
   [david@nittedal david]$ pwd
   /u/hansen Her er plasseringen i hjemmekatalogen /u/hansen. 

[david@nittedal david]$ pwd

   /usr/spool/lp/interface 

Her er plasseringen i katalogen /usr/spool/lp/interface.

Se også: cd, mkdir, rmdir, Linux-dos

Pwdkommando.png

Figur 7.7: Eksempel på bruk av pwd-kommandoen

Skifte katalog – cd[rediger]

Ved hjelp av Linux-kommandoen cd (change directory) kan du flytte mellom hjemmekatalogen og andre kataloger. (Forutsetter at du ikke er satt opp i versjoner av Linux med høy sikkerhet med Restricted skall, B1/B2 eller A1/A2 )

Kommandoen cd endre arbeidskatalog
Kommando: cd [katalog]
Funksjon: Endre arbeidskatalog
Argumenter: Banenavn/arbeidskatalog
Opsjoner: Ingen


Skriver du cd uten noen argumenter, kommer du automatisk til ditt hjemmeområde, for eksempel /home/david.

   cd /katalog1 -flytter til katalog1 

cd .. -flytter én katalog (node) opp cd ../../ -flytter to kataloger (noder) opp cd / -flytter til topp-nivå (root), uansett hvor du er cd ~/brev -går til underkatalogen brev under din hjemmekatalog cd ../katalog2 -går én node opp og derfra ned til katalog2 Eksempler:

[david@nittedal david]$ cd / Flytter deg opp i root, dvs. på toppen av fil-treet. Prøv her med pwd for å få en bekreftelse på at du er i root. Kommandoen ls -la vil her gi en oversikt over filer og kataloger i root.

[david@nittedal david]$ cd ../david Går ett hakk lenger opp og derfra ned til david.

[david@nittedal david]$ cd ../../etc Går to hakk opp og derfra ned til /etc. Det hadde vært lettere å skrive

[david@nittedal david]$ cd /etc I neste eksempel er plasseringen i katalogen /usr/david:

[david@nittedal david]$ cd wp Flytter ned i katalogen /home/david/wp. Alternativet er å skrive med full syntaks:

[david@nittedal david]$ cd /home/david/wp Ønsker du å flytte fra /home/david/wp/txt til nabokatalogen data, skriver du:

[david@nittedal david]$ cd ../data Skal du gå to katalognivåer opp til /home/david, skriver du:

[david@nittedal david]$ cd ../../ Du kan også skrive cd uten noe argument. Dette bringer deg alltid til hjemmekatalogen din ($HOME). Se også: pwd, mkdir, rmdir

Lage katalog – mkdir[rediger]

Hver gang du logger deg inn på en Linux-maskin, vil du havne på ditt brukerområde. Det betyr at du vil stå i din hjemmekatalog, for eksempel /home/david eller /usr/david. Din hjemmekatalog er der hvor mesteparten av ditt arbeid vil bli gjort. Fra hjemmekatalogen og dens underkataloger kan du bruke mkdir til å lage underkataloger.

Kommandoen mkdir lage katalog
Kommando: mkdir [argument] ...
Funksjon: Lager en katalog
Argumenter: Katalognavn
Opsjoner: Se også Linux-man-sidene.

Jeg (/home/david) ønsker å opprette fire kataloger: wp, linux, c og bin. Ved hjelp av kommandoen mkdir (make directory) kan jeg opprette kataloger og dermed bygge opp min egen trestruktur. Opprettelsen av katalogene kan gjøres på følgende måte:

[david@nittedal david]$ mkdir wp Her opprettes katalogen wp. De andre katalogene kan opprettes på samme måte som jeg opprettet katalogen wp.

[david@nittedal david]$ mkdir linux

[david@nittedal david]$ mkdir c

[david@nittedal david]$ mkdir bin Kataloger kan alternativt opprettes med fullt veinavn (syntaks):

[david@nittedal david]$ mkdir /home/david/wp Det er bare nødvendig å bruke full syntaks hvis du ikke står i katalogen der du ønsker å opprette de nye katalogene. NB! Ønsker du å opprette en katalog, må du alltid ha skrivetillatelse fra den katalogen du skal opprette en ny katalog under. Se også: rmdir, umask

Fjerne katalog – rmdir[rediger]

Å slette tomme kataloger er like lett som å slette en fil. Skal du slette en katalog, stilles det følgende krav:

  • Katalogen må være tom for filer.
  • Katalogen må være tom for underkataloger.
  • Du kan ikke stå i den katalogen du skal slette.
Kommandoen rmdir fjerne katalog
Kommando: rmdir [argument] ...
Funksjon: Fjerner katalog
Argumenter: Katalognavn
Opsjoner: Se også Linux-man-sidene.

Eksempler: For å fjerne katalogen /home/david/corel/wp skriver du:

[david@nittedal david]$ rmdir wp Hvis du ikke er plassert på moderkatalogen til wp, skriver du:

[david@nittedal david]$ rmdir /home/david/corel/wp Se også: mkdir, rm

Ledig plass per filsystem – df[rediger]

Ved hjelp av Linux-kommandoen df kan du få en oversikt over hvilke filsystemer du har og hvor mye ledige plass det er per filsystem. Hvilke filsystemer du har, kan du også få fra GNOME- eller KDE-grensesnittet. Du kan bruke “User Mount Tool" (usermount). Med disse verktøyene kan du også montere (mount) og avmontere (umount) filsystemene.

Kommandoen df ledig plass per filsystem
Kommando: df [-a] [-i] [-k]
Funksjon: Gir deg informasjon om hvilke filsystemer som er montert opp og hvor mye plass som er ledig.
Argumenter: Se også Linux-man-sidene
Opsjoner: Se også Linux-man-sidene
-a Viser alle filsystemer selv om de bare er på 0 blokker
-i Viser forbruk inoder
-k Viser forbruk i kilobytes (Kb)

Skriver du df uten noen opsjoner, får du opp alle monterte filsystemer. Du får informasjon om størrelsen på filsystemene i Kb blokker, forbruk i Kb blokker, ledig i Kb blokker, forbruk i % og hvor filsystemet er montert. Eksempel: [elboth@elboth elboth]$ df

Dfkommando.png

Figur 7.8: Eksempel på bruk av df-kommandoen

Oppgaver til kapittel 7[rediger]

Oppgave 7.1 Hva er en inode?

Oppgave 7.2 Hva gjør superblokken?

Oppgave 7.3 Gi en beskrivelse av hvordan Linux-filsystemet er bygd opp på en Linux-maskin.

Oppgave 7.4 Hva betyr indirekte adressering?

Oppgave 7.5 Hvor stor fil kan du ha på et Linux-system?

Oppgave 7.6 Hva er forskjellen mellom filsystemene ext4 og ext2?

Oppgave 7.7 Hvor mange filsystemer (partisjoner) kan du ha på en og samme harddisk (PC-arkitektur)?

Oppgave 7.8 Hvor er Linux-kjernen plassert og hva begynner alltid kjernenavnet med?

Oppgave 7.9 Er det noe forskjell mellom Linux og Windows filtyper?

Oppgave 7.10 Gå til din hjemmekatalog; bruk absolutt veinavn. List ut de filene som ligger i root; bruk absolutt veinavn. Se på innholdsfortegnelsen på ditt Linux-filtre; benytt deg av ls-kommandoen. Hvor mange kataloger går ut fra root på ditt system? Hvor er alle brukerne plassert? List ut hva som ligger i root, nå med relativt veinavn.

8: Passord og tilganger[rediger]

Linux-kommandoene jeg går igjennom i dette kapitlet har med passord og brukertilganger (tilgangsrettigheter) til fil og katalog å gjøre. Feil her kan gjøre at du mister tilgang til systemet.

Endre Linux-passord[rediger]

Du bør skifte passord med jevne mellomrom for å hindre at uvedkommende kan komme inn i systemet. De som er opptatt av å velge sikre passord finner mye informasjon om dette på Internett, f.eks. «How to pick a safe password» av Eric Wolfram:

http://wolfram.org/writing/howto/password.html

Kommandoen passwd endre brukerpassord
Kommando: passwd [-u brukernavn]
Funksjon: Endrer ditt eller andres passord
Opsjoner: Se også Linux-man-sidene.
-u bruker Endring av passord til bruker; bare systemadministrator kan endre passord til andre brukere.

Skriver du bare passwd, kan du endre ditt passord på systemet

Fedoraendrepassorterminal.png

Figur 8.1: Endre passord fra GNOME- eller KDE- brukergrensesnittet. Eksempel: Du ønsker å endre passordet til deg selv (david):

[david@nittedal david]$ passwd

Changing password for david

(current) UNIX password: dfhg657ui

New UNIX password: nmjklo9897

Retype new UNIX password: nmjklo9897

passwd: all authentication tokens updated successfully NB! Passordene vises ikke på skjermen. Husk å trykke Enter etter hver gang du har skrevet et passord. Av sikkerhetsgrunner blir passordene du skriver ikke synlige på skjermen. Klarer du å skrive det nye passordet riktig inn to ganger, får du et nytt passord. Det er viktig å huske passordet ditt. Uten passordet kommer du ikke inn i systemet. Hvis du har passordet til systemadministrator (root), kan du endre og fjerne alle andre passord. Har du ikke root-passordet, må du boote Linux-systemet fra diskett og montere root-filsystemet. Det er da relativt enkelt å endre nøkkelfilene /etc/passwd og /etc/group. Hvilke rettigheter(autorisering) du har i Linux, er avhengig av hva du valgte når du installerte Linux. Alternativene er SHA-256/512/MD5 password, Shadow password, LDAP-autentisering, Kerberos 5, SMB-autentisering og Windbind-autentisering . Informasjons om brukere kan lagres i en buffer eller man kan bruke Hesiod, LDAP, NIS eller Winbind. Både SMB- og Windbind autentisering brukes i forbindelse med integrasjon med Windows-miljø. Bruker du Windows share enheter eller Active Directory (AD) velges SMB- og Windbind autentisering. NIS velges hvis man ønsker integrasjon med et Unix-miljø. I alle valgene snakker vi om sentralstyring av brukerkonfigurasjonen (passord og gruppe). Snakk derfor med systemadministrator hvis du har spørsmål rundt autorisering på nettverket. Har du derimot valgt Shadow-passord, får du litt bedre sikkerhet på Linux-systemet ditt, da det krypterte passordet blir plassert i filen /etc/shadow i stedet for i /etc/password. Filen /etc/shadow-filen har du ikke muligheten til å lese som vanlig bruker. Derimot kan du lese /etc/password som vanlig bruker. Har du også valgt MD5-passord, kan passordet ditt bestå av opptil 256 tegn. Har du ikke valgt MD5, må passordet normalt bestå av minst 8 tegn. Det kan bestå av mer enn 14 tegn, men bare de 14 første tegnene (på noen Unix-dialekter er det 5 eller 8) er signifikante. Passordet kan aldri begynne med et tall eller et spesialtegn. Når du er root kan du bestemme antall dager før brukeren kan forandre passordet sitt. Du kan også tvinge brukerne til å skifte passord etter en vis tid. Passordet må bestå av minst ett spesialtegn (ikke kontrolltegn) eller tall. Du har ikke lov å velge et passord som er brukt tidligere. De forskjellige passordparameterne kan endres. Det finnes ingen begrensninger for root (systemadministrator). Root kan skifte passord for alle brukere. Root er den eneste brukeren som kan definere passord for både seg selv og andre brukere. Ønsker du å fjerne passordet til en bruker, kan u-opsjonen velges sammen med passwd-kommandoen:

[david@nittedal david]$ passwd -u nils Du trykker bare Enter når systemet spør etter det nye passordet. Det hemmelige (krypterte) passordet blir under Linux plassert i filen /etc/passwd. Er sikkerhetsnivået gradert til Shadow-password eller C2 eller B1, blir kodet passord plassert i en egen krypteringsfil /etc/shadow. Dette er også standard under Unix V.4. Passordparametere settes opp under Linux i filene /etc/passwd/etc/shadow/etc/pam.conf (Linux-PAM-fil) Se også: su, mask, chgrp, chown

Endre aktiv bruker-id – su[rediger]

Med kommandoen su kan du skifte bruker-id. Ønsker du å være en annen "bruker-id", med forskjellige brukerrettigheter, tilganger og en annen hjemmekatalog, forutsettes det at du kjenner navnet og passordet til den andre brukeren. su er en meget grei kommando å bruke når du trenger å være systemadministrator (root) i en kort periode.

Kommandoen su endre aktiv bruker-id
Kommando: su [-] [-c kommando] [-l] [brukernavn] [argument]
Funksjon: Skifter bruker-id
Opsjoner: Se også Linux-man-sidene.
- Lager et nytt skall som fungerer som et login-skall; alle miljøparametere blir endret. Unntaket er variablene TERM, HOME og SHELL. Skallet leser inn brukerens login-filer (.profile, .bashrc) og utfører det som står der, for eksempel flytte bruker-id til hjemmekatalog.
-c kommando Utfører bare kommandoen som den spesifiserte bruker
-l Samme funksjon som - ; her kan du operere som annen bruker med bestemte skall-argumenter.
bruker Bruker-id du ønsker å skifte til. Sjekk bruker-id fra filen /etc/passwd.
Argument: Her kan du for eksempel sette skall-variabler.

Eksempler:

[david@nittedal david]$ su vigdis Her endrer jeg bruker-id til vigdis uten å laste opp vigdis' skall-miljø.

[david@nittedal david]$ su - Her endrer jeg bruker-id til systemansvarlig (root). Jeg laster samtidig opp roots skall-miljø.

[david@nittedal david]$ su -c “init 2"

Her har jeg bruker-id til systemadministrator (root) mens kommandoen “init 2" kjøres (systemet kjører ned til kjørenivå 2). Passordparametre settes opp under Linux i filene /etc/passwd /etc/pam.conf (Linux-PAM-fil) Se også: passwd, mask, chgrp, chown

Linux-tilgangskoder[rediger]

Linux har tre typer tilganger (tilgangsrettigheter) til filer og kataloger:

tilgang til lesingtilgang til skrivingtilgang til kjøring av filen eller det som ligger i katalogen Tilgangskoder (tilgangsrettigheter) setter du for hver av de fire brukerkategoriene u, g, o og a. Brukerkategoriene er: u -eier (user) g -gruppe (group) o -andre (other) a -alle (all) Siste a (all) er bare en opsjon til chmod som betyr «ugo» - og ingen egen kategori. Eieren er som regel den som har opprettet filen. Gruppen er alle dem som tilhører samme gruppe som eieren av filen. Grupper blir definert av systemadministrator. Brukere som ikke tilhører eierens gruppe, blir definert som andre (other). En fil kan beskyttes på tre nivåer. Man har tilgangsrettigheter for eier, for medlemmer i gruppen og for alle de andre. Skal alle ha full tilgang, må du tildele lese- og skriverett til (u) eier, (g) gruppe, og (o) andre. Du ser hvilke tilgangskoder en fil eller katalog har med ls-kommandoen.

   [david@nittedal david]$ ls -la tekst
   total 20
   -rw-r--r-- 1 david Support 544 Oct 22 23:21 tekst
   Figur 8.2: Fra KDE Konqueror kan du se hvilke tilgangskoder som er satt 

Utskriften forteller oss:

   total 20 -totalt antall blokker som katalogen bruker 
   -rw-r--r-- -filtype og tilgangskoder
       1 -antall linker filen har (dvs. en fysisk fil kan ha flere navn) 
   david -navnet på eieren av filen Support -navnet på gruppen som filen er medlem av 544 -antall bytes (tegn) filen består av Oct 22 23:21 -tidspunktet for siste endring av filen tekst -filens navn Som nevnt i kapittel 6, angir første tegn filtypen. De 9 neste tegnene er tilgangskodene som beskrives nedenfor. Du kan gi følgende tilgangskoder:
       r, lese (read), dvs. rettighet til å lese innholdet i en fil til skjerm eller skriver. Har du en katalog, kan du lese innholdet.
       w, skrive (write), dvs. rettighet til å endre på filens innhold. Har du en katalog, kan én eller flere av filene i katalogen slettes, eller det kan opprettes nye filer.
       x, utføre (execute), dvs. tillatelse til å kjøre eller åpne en fil, eller søke i katalogen. 
   Du kan bruke alle mulige kombinasjoner av disse rettighetene. De tre første tegnene i tilgangskoden viser eierens rettigheter (u-user). De tre neste gjelder gruppen (g-group), og de tre siste viser rettighetene til alle andre (o-other). Vil du kjøre et program eller en kommandofil, kreves det at du har tilgangskode for å kjøre. Ønsker du å lese eller skrive en fil, må du ha tilgangskode til katalogen og lese- eller skrivetilgang til filen. Skal du forandre tilgangskoder til en fil, må du ha skrivetilgang til katalogen filen ligger på. Eksempel på tilgangsrettigheter:
   -rwxrw-r--- Vanligvis er tilgangskodene:
   rw for bruker
   r for gruppe
   r for andre Lager du en kommandofil (se kapittel 16) med vi eller emacs (se kapittel 12), må du derfor sette på x for å kunne kjøre programmet. Du må forandre tilgangskoden med kommandoen chmod. 

Endre tilgangskoder – chmod[rediger]

Kommandoen for å endre tilgangskodene er chmod. Med denne kommandoen kan du endre de forskjellige tilgangskodene til én eller flere filer, eller til en katalog. Det er som regel bare eier av filen og systemadministrator som kan endre tilgangskodene.

Kommandoen chmod endre tilgangskoder
Kommando: chmod [-R][modus] [argument] eller chmod [hvem]+ - =[tillatelse ...] fil/katalog ...
Funksjon: Endrer tilgangskoder til filer og kataloger; endrer lese-, skrive- og kjørerettighetene til filer og kataloger
Argument: Fil, katalog og/eller jokere
Opsjoner: Se også Linux-man-sidene.
-R Bruker du opsjonen -R, vil kommandoen utføres rekursivt, dvs. fra en spesifisert katalog og alle tilhørende underkataloger. Bruk denne opsjonen med forsiktighet!
Modus: Modus består av hvem tilgangen skal gjelde for, hvordan tilgangskoden skal endres, og hvilken tilgangskode som skal endres. Disse kodene kan angis oktalt eller i ASCII-kode. (Se også på kommandoen umask.)

Tilgangen gjelder for:

   u user eier
   g gruppe eierens gruppe
   o other alle utenom gruppe og eier
   a alle alle inkludert eier 

Hvis ikke det blir spesifisert hvem tilgangen gjelder for, gjelder chmod-kommandoen for alle.

Hvordan tilgangen skal endres:

   + gir rettighet
   - fratar rettighet
   = setter rettighet 

Tilgangskoder som kan endres:

   r lese
   w skrive
   x utføre
   - ingen tilgang 

Spesielle tilgangskoder:

   s setter eier-id eller gruppe når filen blir utført
   t setter sticky bit (filen blir satt opp i RAM)
   l Lås ved tilgang; bare én bruker kan få tilgang til filen om gangen 

Tilgangskode s gjør det mulig å definere en bestemt eier og gruppe når filen blir utført. chmod u+s setter brukernavn for filen, og chmod g+s setter gruppenavn på filen. Alle andre kombinasjoner har ingen effekt. Programmer som har satt sticky bit blir automatisk plassert i internminnet. Derfor kalles det sticky bit (Sticky = klebrig, dvs. programmet "klistrer" seg fast i internminnet). Bare chmod u+t setter sticky bit. Ingen andre kombinasjoner med t har effekt. Utføringen av disse programmene vil derfor gå meget raskt. Hvor lønnsomt det er å ha sticky bit satt på noen programmer, er avhengig av internminnet, diskstørrelse, programstørrelse og maskinarkitektur. Bare systemadministrator kan sette sticky bit på bestemte programmer. NB! Det er ikke noe poeng å sette sticky bit på tekstfiler. Tilgangskoden l gjør at filen blir låst for alle andre når en bruker får tilgang til den; det betyr at bare én bruker kan bruke filen om gangen. Tegnene som angir opsjoner, må oppgis i rekkefølgen

Hvem Hvordan Hvilken For eksempel: g-r Alternativet til tilgangskodene r, w, x og - er å bruke et 3-sifret oktalt tall:

Kode Betyr Tilsvarer
7 lese-, skrive- og kjøretilgang rwx
6 lese- og skrivetilgang rx
5 lese‑ og kjøretilgang rx
4 lesetilgang r
3 skrive- og kjøretilgang wx
2 skrivetilgang w
1 kjøretilgang x
0 ingen tilgang -


   Første siffer gjelder eier, andre siffer går på gruppe, mens det tredje sifferet går på andre brukere.
   Figur 8.4: Fra KDE Konqueror eller GNOME Nautilus kan du også endre på tilganger Eksempler:
   [david@nittedal david]$ chmod u+x program Eier gis rett (tilgang) til å utføre filen program.
   [david@nittedal david]$ chmod o+xw program Andre brukere gis rett (tilgang) til å utføre og skrive til katalogen program.
   [david@nittedal david]$ chmod a+rwx batch Alle gis rett til å lese, skrive og utføre filen batch.
   [david@nittedal david]$ chmod g-r brev Alle i din gruppe mister retten til å lese innholdet av filen brev.
   [david@nittedal david]$ chmod ug=rwx rapport Du og alle i din gruppe får alle rettighetene til filen rapport.
   [david@nittedal david]$ chmod g+r, o+r tekst Alle i gruppen og alle andre får lesetilgang til filen tekst.
   [david@nittedal david]$ chmod +x ikke.viktig Gir alle brukere muligheten til å utføre programmet ikke.viktig
   [david@nittedal david]$ chmod 777 ikke.viktig Gir alle brukere retten til å lese, skrive og utføre filen ikke.viktig.
   [david@nittedal david]$ chmod +l datafil Med en gang filen datafil er tatt i bruk, blir den låst for andre.
   [david@nittedal david]$ chmod u+t calc Her setter systemadministrator sticky bit på programmet calc. Dette programmet vil dermed bli plassert i maskinens internminne. Se også: ls, chgrp, chown

Endre context koder – chcon[rediger]

Kjører du SELinux modulen vil sikkerheten i ditt Linux system være mer omfattende. Kommandoen for å endre disse nye context kodene er chcon. Med denne kommandoen kan du endre de forskjellige context til én eller flere filer, eller til en katalog. Bruk kommandoene ls for å se innholdet i katalogen.

   [david@nittedal david]$ ls -Z
   [david@nittedal david]$ ls -scontext I eksemplet under endrer vi contexten til httpd_sys_content_t
   [david@nittedal david]$ chcon -t httpd_sys_content_t * Mer help får du ved å skrive:
   [david@nittedal david]$ chcon -- help 

Endre på eier – chown[rediger]

Med kommandoen chown kan du endre eierforholdet til filer og kataloger. Når du skifter eierforhold til en fil eller katalog, blir filen eller katalogen ikke flyttet.

Kommandoen chown endre eier
Kommando: chown [-R] [eier] [gruppe] [argument] ...
Funksjon: Endrer eierforhold til filer og kataloger
Eier: Eier kan være brukernummer eller brukernavn.
Eier/gruppe: Ny eier eller gruppe
Argument: Fil, katalog og/eller jokere
Opsjoner: Se også Linux-man-sidene.
-R Bruker du opsjonen -R, vil kommandoen utføres rekursivt, dvs. fra en spesifisert katalog og alle tilhørende underkataloger.
   Eier kan enten være brukernavn eller brukernummer. Vanligvis kan bare eier eller systemadministrator endre på eier eller gruppe til en fil eller katalog. Eksempler:
   [david@nittedal david]$ chown erik * Her blir erik eier av alle filene i aktuell katalog (men ikke av systemfiler, for eksempel .profile).
   [david@nittedal david]$ chown david /usr/david/* Her blir david eier av alle filene i katalogen /usr/david.
   [david@nittedal david]$ chown 555 annes.fil Her endrer jeg eier av annes.fil til bruker-id nummer 555. Systemfiler: /etc/passwd, /etc/group Se også: chgrp og chown

Endre gruppe-id – chgrp[rediger]

Eieren av en fil kan endre gruppetilhørighet til filer og kataloger. De som er medlemmer av den nye gruppen, har tilgang hvis gruppetilgangsrettighetene er satt.

Kommandoen chgrp endre gruppe-id
Kommando: chgrp [-R][gruppe] [argument] ...
Funksjon: Endrer gruppemedlemskap til filer og kataloger
Gruppe: Gruppenavn eller gruppenummer (gruppe-id)
Argument: Fil, katalog og/eller jokere
Opsjoner: Se også Linux-man-sidene.
-R Bruker du opsjonen -R, vil kommandoen utføres rekursivt, dvs. fra en spesifisert katalog og alle tilhørende underkataloger.

Gruppe kan enten være gruppenavn eller gruppenummer. Vanligvis kan bare eier eller systemadministrator endre gruppen til en fil eller katalog.

   Figur 8.5: Fra GNOME Nautilus (Fedora) kan du også endre filgruppe Eksempler:
   [david@nittedal david]$ chgrp teknisk * Skifter gruppetilhørigheten for alle filer i den aktuelle katalogen til gruppen teknisk.
   [david@nittedal david]$ chgrp teknisk .* Skifter gruppetilhørighet til systemfilene.
   [david@nittedal david]$ chgrp Support * Skifter gruppetilhørighet for alle filene i den aktuelle katalogen til gruppen Support.
   [david@nittedal david]$ chgrp Support .* Skifter gruppetilhørighet til systemfilene.
   [david@nittedal david]$ chgrp 540 tekstfil I det siste eksempelet bruker jeg gruppenummer 540. Ved å se på filen /etc/group finner du ut hvilken gruppe 540 er. Se også: chown, chmod, mask

Endre aktiv gruppe – newgrp[rediger]

En bruker kan være medlem av flere grupper, men bare aktiv i en gruppe om gangen. Med newgrp-kommandoen kan du midlertidig skifte gruppetilhørighet til en annen gruppe som du er medlem av. Alle filer som du lager, får nå det nye gruppenavnet.

Kommandoen newgrp endre aktiv gruppe
Kommando: newgrp [argument]
Funksjon: Skifter brukerens aktive gruppe
Gruppe: Gruppenavn eller gruppenummer
Argument: En gruppe du er medlem av, definert i /etc/group
Opsjoner: Se også Linux-man-sidene for bash og tcsh

Ved gruppeskifte blir et nytt skall startet opp. For brukere som er satt opp i bash-skallet, vil forskjellige skall-parametere bli null når du skifter gruppe. Skifter du gruppe for eksempel i tcsh-skall, vil history-tabellen bli nullstilt, og du må trykke <Ctrl-d> for å logge deg ut. newgrp uten argumenter gjør at brukeren kommer tilbake til den gruppen som er definert i /etc/passwd. For å skifte over til en annen gruppe må du være definert i én eller flere grupper i filen /etc/group. Når du skifter gruppe, får du tilgang til filer og kataloger den nye gruppen har tilgang til. Eksempel:

   [david@nittedal david]$ newgrp Support Når denne kommandoen utføres, får alle filene som denne brukeren lager gruppenavnet Support. Brukeren vil også ha muligheten til å få tilgang til filer og kataloger som er gruppen Support har tilgang til. Se også: chgrp, chown

Faste tilgangskoder – umask[rediger]

Hver gang du oppretter en fil eller en katalog, brukes en fast verdi for tilgangsrettighetene til filen eller katalogen. Dette kombinasjonen av tilgangsrettigheter kalles brukerens umask-verdi. Verdien som settes, er som regel 022 (oktalt), som gir alle brukerne lesetilgang. Det første sifferet setter tilgangskoden for brukeren selv, det andre for gruppen og det tredje for alle andre brukere

Figur 8.6: Tilgangskoder på filer og kataloger fra Konqueror under SuSE Linux Kjører du bash-skallet, settes umask-kommandoen i filen .profile, som utføres av alle bash-brukere ved innlogging. Hvis du ikke finner umask-kommandoen i din lokale .profile er den med stor sannsynlighet satt opp globalt i /etc/profile. På min SuSE maskin finner jeg følgende i min lokale .profile.

   elboth@suselap:~> more .profile
   # Sample .profile for SuSE Linux
   test -z "$PROFILEREAD" && . /etc/profile
   ... I test sjekkes det om variabelen $PROFILEREAD er satt til null. Som standard er denne satt til null i SuSE Linux og derfor vil den globale /etc/profile-filen kjøres. Den har blant annet følgende innhold:
   elboth@suselap:~> more /etc/profile
   #
   # The user file-creation mask
   #
   umask 022
   ... Vi ser her at umask 022 er satt som standard for alle bash-skall brukere som ikke har definert umask i noen lokal konfigurasjonsfil. Du kan også lage en $HOME/.bash_profile for hver bruker. Denne filen blir utført når brukeren logger inn som bash-bruker. Det kan også være lurt å ha konfigurasjonsfilen $HOME/.bashrc. Denne filen blir utført av alle ikke-innloggingskopier av bash. Dersom .bash_profile mangler, blir .profile brukt i stedet. Hvis du er definert som tcsh-skall bruker i stedet for bash-bruker, benyttes den globale konfigurasjonsfilen/etc/csh. Lokalt kan umask-kommandoen utføres i enten $HOME/.tcshrc ved innlogging, eller i alle nye kopier av tcsh. Har du ingen .tcshrc-fil, blir .cshrc brukt i stedet, hvis denne filen finnes. Bruker du Korn-skall, kan umask-kommandoen settes opp i .profile eller .kshrc. 
Kommandoen umask faste tilgangskoder
Kommando: umask [argument]
Funksjon: Setter tilgangskoden som automatisk blir satt på filer og kataloger du lager
Argument: 3 tall; maksimalverdi for hvert tall er 7.1 oktalt tall med 3 sifre; maksimalverdi for hvert siffer er 7.
Opsjoner: Se også Linux-man-sidene

Skriver du umask uten argument, får du vite umask-verdien som er satt. Man bruker oktalverdier. Sammenhengen mellom desimal-, oktal- og binær-verdier ser du i tabellen under:

Desimalverdi Oktalverdi Binærverdi
0 0 000
1 1 001
2 2 010
3 3 011
4 4 100
5 5 101
6 6 110
7 7 111

0 = tilgangskoden er slått på (fra den binære tabellen gir 000=rwx) 1 = tilgangskoden er slått av (fra den binære tabellen gir 111=---) Eksempel:

Umask.jpg

Figur 8.7: Eksempel på bruk av umask-kommandoen Med umask-verdi på 073 vil alle filene som du lager, ha tilgangskodene rwx for deg, ingen rettigheter for dem som er medlem i din gruppe, mens alle andre får leserettigheter til dine filer. umask uten noen argumenter viser hva umaskverdien er satt til i øyeblikket. Eksempler:

   [david@nittedal david]$ umask
   022 Du har som filens eier lese- og skriverettighet. Gruppen og andre har bare lesetilgang.
   [david@nittedal david]$ umask
   042 Medlemmer av gruppen har skriverettigheter og alle andre leserettigheter. Som filens eier får du lese- og skriverettighet. Se også: chmod, csh, sh

Oppgaver til kapittel 8[rediger]

Oppgave 8.1 Hvem eier filen /usr/bin/who? Beskriv hvordan du finner det ut.

Oppgave 8.2 Hva er filbeskyttelsen på filen /boot/vmlinux? Beskriv hvordan du finner det ut.

Oppgave 8.3 Sett filbeskyttelsen på filen test slik at ingen fra din gruppe kan endre den. Må du gjøre noe med katalogen?

Oppgave 8.4 Har noen andre enn deg selv lov til å redigere på noen av dine filer?

Oppgave 8.5 Hva er forskjellen mellom o (other) og a (all)?

Oppgave 8.6 Hva skjer hvis du fratar deg selv alle rettigheter?

Oppgave 8.7 Opprett følgende tekstfiler med tilgangskoder: Filnavn Tilgangskoder datafil1 rwx rwx rwx datafil2 r-- --- --- datafil3 rwx --x --x datafil4 rw- r-- ---

9: Omdirigering, rør og filtre[rediger]

Standard inn-, ut- og feildata[rediger]

Data til et program eller en kommando hentes fra inndata. Tastaturet er vanligvis standard inndata (0). Det betyr at hvis ikke noe annet er bestemt, hentes dataene fra tastaturet. Standard utdata (1) er som regel skjermen. Et program eller en kommando kan også sende dataene bl.a. til en harddisk, skriver, diskettstasjon eller magnetbånd (tape). Men hvis ikke annet er bestemt, sendes dataene til skjermen. Ved feil blir det skrevet ut en feilmelding, og om ikke noe annet er spesifisert, blir denne meldingen sendt til standard feildata (2). For å skille mellom standard inndata, utdata og feildata har man tildelt tre filindikatorer:

0 standard inndata (stdin)

1 standard utdata (stdout)

2 standard feildata (sterr) Filindikatorene kan betraktes som et siffer som du kan knytte til en datafil. Du kan omdirigere både inndata, utdata og feildata til forskjellige fysiske enheter. Utdata kan for eksempel omdirigeres en fil, en skriver, en annen terminal, etc. Jeg kan omdirigerer data til forskjellig forskjellige fysiske enheter (disk, bånd). Dette gjør jeg ved å dirigere dataene til spesielle filer som er tilknyttet de forskjellige enhetene. Man kaller disse filene for styreprogrammer (devicedrivere). De ligger i katalogen /dev. For eksempel representerer /dev/tty5a en terminal, og /dev/lp1 kan representere parallellporten på din Linux-maskin. Omdirigering kan også endre filindikatorene som en prosess har. Ved hjelp av rør (pipe) kan dataene fra en prosess sendes rett over til en annen prosess for viderebehandling. Jeg kommer tilbake til dette senere.

Kommando/operasjon Beskrivelse
kommando > fil sender standard utdata til fil
kommando >>fil adderer standard utdata til fil
kommando 2>fil sender standard feildata til fil
kommando 2>>fil adderer standard feildata til fil
kommando < fil leser standard inndata fra fil
kommando <<ord leser standard inndata fra alle kommando- linjer inntil ord (Se også kapittel 16)
kommando.2 resultatet av kommando.1 blir videre- behandlet av kommando.2

Figur 9.1: Standardenhetene

Standardenheterlinux.png

Figur 9.2: Standarddirigering av data

600px

Omdirigering av standard utdata[rediger]

600px

Symbolet < omdirigerer et programs inngående data fra en spesifisert fil i stedet for fra terminalen. Den spesifiserte filen kan være en driver for skriver, terminal, båndstasjon eller diskettstasjon.

Skrivemåte: kommando/program [argument]< fil Eksempel med cat og kommandokontroll:

[david@nittedal david]$ cat < tekstfil

Dette er et eksempel på en tekst som er skrevet med cat-kommandoen. Du kan gjøre tilsvarende i MS-DOS ved å skrive COPY CON og filnavn. I MS-DOS avslutter du med <Ctrl-z>, her avslutter du med <Ctrl-d>. cat leser fra filen tekstfil i stedet for fra standard inndata (0) som er tastaturet. Innholdet av tekstfilen kommer ut på skjermen.

Addere utdata til fil – >>[rediger]

   Symbolet >> adderer informasjon på slutten av filen. De eksisterende data som ligger på filen forblir urørt.
   Skrivemåte: kommando/program [argument] >> fil Eksempel:
   [david@nittedal david]$ who >> data Resultatet av who-kommandoen kommer nå på slutten av filen data. 

Omdirigering og feilmeldinger[rediger]

   Når standard inndata er omdirigert til en fil, vil en eventuell feilmelding fremdeles komme på billedskjermen. For å omdirigere standard feildata, må jeg ta med filindikatoren i kommandoen.
   I de tilfellene hvor du ønsker å registrere feilmeldinger i egne filer, bruker du notasjonen 2> for å omdirigere feilmeldingene. 1> eller bare > brukes for å fortelle hvor standard utdata skal omdirigeres. Eksempel: Jeg har to filer, minfil og superuser. Jeg har laget minfil, mens systemadministrator (root) er eier av filen /root/superuser. Jeg har ikke lese- eller skriverettigheter til denne filen. Innholdet av filen minfil består av teksten: “Her har jeg tekstfilen minfil." Jeg skriver følgende:
   [david@nittedal david]$ cat minfil /root/superuser 1> filut 2> filfeil Resultatet legges i filen filut og feilmeldinger i filen filfeil. Jeg har ikke leserettigheter til filen superuser. Derfor kommer det en feilmelding som lyder:
   cat: cannot open /root/superuser Denne blir lagt i filen filfeil. Filen minfil blir lagt i filut. Prøv også med kommandoen cat:
   [david@nittedal david]$ cat /root/superuser
   Ønsker du både standard utdata og feilmeldingen til samme fil, skriver du 2>&1. Eksempler:
   [david@nittedal david]$ cat minfil /root/superuser 1> alledata 2>&1
   [david@nittedal david]$ cat alledata
   Her har jeg tekstfilen minfil
   cat: cannot open /root/superuser 

Kombinere flere kommandoer[rediger]

Ved hjelp av rør (pipe) kan du kombinere flere programmer. Resultatet fra et program sendes da til et annet program hvor det behandles videre.

600px

Figur 9.4: Data omdirigeres Ved å bruke rør kan du kombinere mange små kommandoer til én kraftig kommando. Dermed kan du sette sammen kommandokonstruksjoner og lage egne programmer. Et rør har samme effekt som når du omdirigerer standard utdata fra et program til en fil, og deretter bruker filen igjen som standard inndata til et annet program. Man bruker symbolet | for rør. Rør er likt for alle Linux-skall.

Skrivemåte: program.1 [argumenter] | program.2 [argumenter]

   Eksempler:
   [david@nittedal david]$ ls | lpr -P HPlaser ls lister ut filene i hjemmekatalogen. Utdata fra ls blir sendt videre til programmet lpr som skriver listen ut på skriveren.
   [david@nittedal david]$ ls > tmp; lpr -P HPlaser tmp; rm tmp Alternativet til rør i dette eksemplet hadde vært de tre kommandoene over.
   [david@nittedal david]$ ls -la | wc -l Først får jeg listet opp innholdsfortegnelsen, deretter teller wc-kommandoen antall linjer.
   [david@nittedal david]$ cal | lpr Kalenderlisten blir sendt til skriver.
   [david@nittedal david]$ du | wc -w Antall ord fra du-kommandoen blir telt opp av wc-komandoen.
   [david@nittedal david]$ ls -la | more Denne kombinasjonen gir et filter som viser ett skjermbilde om gangen.
   [david@nittedal david]$ sort liste | uniq | lpr Her sorteres en fil med navnet liste. Alle unike linjer blir plukket ut og sendt til skriver. De forskjellige kommandoene er beskrevet i kapittel 12, 13 og 14.
   [david@nittedal david]$ ls -l /dev | sort -n +3 Her sorteres resultatet fra ls-kommandoen.
   [david@nittedal david]$ cat /etc/passwd | wc -l > antall.brukere Her telles antall linjer i /etc/passwd-filen, og resultatet plasseres i filen antall.brukere. Alternativt kan du skrive:
   [david@nittedal david]$ wc -l </etc/passwd >antall.brukere Her leser kommandoen wc -l fra standard inndata (0), som er /etc/passwd, og sender resultatet til standard utdata (1), som er filen antall.brukere. Du kan også skrive:
   [david@nittedal david]$ wc -l >antall.brukere </etc/passwd

Oppgaver til kapittel 9[rediger]

Oppgave 9.1

Hva skjer hvis du bare gir kommandoen cat? Opprett en fil ved hjelp av cat-kommandoen og bruk omdirigering av standard utdata (>).

Oppgave 9.2 Prøv noen enkle Linux-kommandoer med omdirigering av standard inndata og utdata. Prøv omdirigering av data og feilmeldinger til forskjellige filer og til samme fil.

Oppgave 9.3 Kombiner kommandoene ls og wc med rør. Hva er det egentlig som skjer når du bruker rør (|)?

Oppgave 9.4 Hvorfor gir ikke de to eksemplene nedenfor det samme resultatet?

1) ls > tmpfil; wc -l tmpfil; rm tmpfil 2) ls | wc -l

Oppgave 9.5 Foreslå en liten endring i oppgave 9.4 slik at begge eksemplene får det samme resultatet.

Oppgave 9.6

Hvor mange normale filer finnes det i /dev-katalogen? (Tips: Se kapittel 13: ls -l /dev | grep {{{^}}}- | wc -l.)

10: Det grafiske grensesnittet[rediger]

  * X Windows System
  * Fysisk plassering av XFree86
  * Konfigurere skjermkortdrivere under Fedora
  * Konfigurere skjermkortdrivere under SuSE
  * Oppstart av X
  * Spesialtaster i X
  * GNOME- eller KDE-brukergrensesnittet
  * GNOME med Fedora Linux
  * GNOME og bruk av mus
  * Alternativet med XFCE3
  * Standard X-applikasjoner
  * X-spill
  * X-kommandoer
  * Uten musen
  * Oppstart i GDM
  * 3D-akselerasjon og Linux
  * X Windows og referanser 

X Windows System. Når brukere diskuterer om Linux-operativsystemet kan brukes som arbeidsflate for vanlige brukere fokuseres det på egenskapene til skrivebordsmiljøene KDE eller GNOME. Dette er selvfølgelig ikke overraskende da det er i disse brukergrensesnittene man møter applikasjonene som bruker. For personer som kommer til Linux fra et Windows- eller Mac-miljø, kan oppbygningen av det grafiske grensesnittet i Linux virke forvirrende og fragmentert. Men de fleste som har brukt Linux en stund, begynner å sette pris på den fleksibiliteten som denne oppbygningen gir. De fleste av komponentene disse skrivebordsmiljøene består av finnes også i Microsoft Windows og Apple's MacOS, men siden de markedsføres som en enhet, så er de fleste ikke vant til å tenke på dem som selvstendige prosesser og systemer. Grafiske grensesnitt i Linux og Unix er basert på et system som heter X Windows System. Bak X Windows System står X.Org, et globalt konsortium av store leverandører som HP/Compaq, SGI, IBM, m.fl. X.Org's arbeid støttes også av The Open Group. X (X Windows System) er skrevet for maskinvare- og prosessor uavhengighet. X ble startet av MIT i 1984 med prosjektnavnet "Athena". Målet var at studentene skulle få muligheten til å nå distribuerte ressurser på et lettvint måte.

Programmene som lages blir derfor helt uavhengige av leverandørens maskinvarearkitektur. Det er mulig å laste ned en versjon av X fra X.Org, men dette er bare en referanse implementasjon som blant annet mangler støtte for skjermkort. Det er opp til andre å ta denne referanse implementasjonen og benytte den i sine egne løsninger. Det er dette alle de kommersielle Unix-produsentene gjør.

De fleste Linux-distribusjoner leveres med en implementasjon av X som kalles XFree86. Dette er en fri utgave av X, på samme måte som resten av Linux-systemet er fritt. XFree86 ble portert til Linux i 1992. Vi har i dag mange XFree86 baserte prosjekter, hvilket hovedsakelig skyldes den fantastiske veksten Linux har hatt de siste årene. Det finnes også tilgjengelige kommersielle versjoner av X for Linux, blant annet fra MetroLink og Xi.

X Windows System er basert på en enkel klient-/serverarkitektur, hvor X-klienten kjører selve applikasjonen, mens X-serveren rett og slett er en grafisk skjermbildeserver som bare genererer det grafiske bildet.

Kjører du Linux på en PC-boks, vil PCen fungere både som en X-klient og X-server. Men det er ikke noe i veien for at PCen kan fungere som X-server (skjermserver) for andre Linux/Unix-arbeidsstasjoner.

Med X er skjermoppløsningen bare begrenset til arbeidsstasjonens (PC) eller X-terminalens fysiske oppløsning. Hver terminalsesjon kan enten være et standard tegnbasert terminalbilde eller X Windows grafiske bilder og applikasjoner.

Siste versjon av XFree86 er 4.3 denne versjonen har mange nyheter med blant annet mange feilrettelser og driverforbedringer. Av nyheter kan vi blant annet nevne fontconfig som er et bibliotek for konfigurasjon og tilpasning av tilgang til skrifter. Fontconfig gjør det enklere å legge til nye skrifter da de vil oppdages automatisk ved installasjon og kan i tillegg finne alternative skrifter hvis forespurt skrift ikke er tilgjengelig på systemet. For utviklere har man blant annet fått oppdatert verktøyet Xft. Dette er et bibliotek som fungerer som et grensesnitt mellom FreeType rasteriseringsmotoren og det nye systemet for rendering av tekst og geometriske figurer. Ønsker du siste versjon av XFree86 må du installere den selv. De enkelte Linux-distribusjonene vil alltid henge etter med hensyn til siste versjon av Xfree86.

Men X er bare grunnmuren i det grafiske grensesnittet. Neste lag er vindusbehandleren. Mens X sørger for kontakt med maskinvaren og med en del grunnleggende grafiske biblioteker, så sørger vindusbehandleren for ting som utseende og oppførsel til vinduene i systemet. Det finnes en rekke vindusbehandlere (Window Managers) tilgjengelig for Linux. For eksempel:

   * OSF/Motif (Kommersiell implementasjon som er standard på de fleste Unix-versjoner.)
   * Fvwm (En rask og konfigurerbar vindusbehandler som lenge var De-facto standard under Linux.)
   * Qvwm (En vindusbehandler som tar sikte på å ligne mest mulig på Windows i utseende og oppførsel.)
   * Enlightenment (En vindusbehandler som har hatt som formål å være mest mulig tilpasningsbar og å se tøff ut.)
   * WindowMaker (En vindusbehandler som forsøker å etterligne NextStep, av mange ansett som et av de mest estetiske grafiske grensesnitt noensinne.)
   * Sawmill (En vindusbehandler som er lett å integrere og som bruker lite ressurser.)
   * Metacity (utviklet av Havoc Pennington og er en moderne vindusbehandler som tar lite ressurser. Ble standard vindusbehandler i Gnome fra versjon 2.2.x.) 

Det tredje laget i det grafiske grensesnittet er biblioteker, standarder og protokoller for programutvikling. I Unix-verdenen er dette sentrert rundt et sett med biblioteker kalt Motif. Problemet med Motif i Linux-miljøets øyne var at det bare var tilgjengelig kommersielt, og at det etter manges mening var dårlig konstruert. I tillegg manglet en del funksjonalitet som man mente burde være der. I Linux-miljøet har det derfor blitt utviklet en rekke frie biblioteker, samt en fri klone av Motif kalt Lesstif. Dette har ført til at Linux-programmer ikke har den samme grad av uniformt utseende som man er vant til fra Mac- og Windows-verdenen.

Som en konsekvens av dette, startet to ambisiøse prosjekter i Linux-miljøet som ønsker å skaffe Linux et integrert grafisk grensesnitt med egenskaper som er like bra som eller helst bedre enn dem man finner i Mac og Windows. Det første prosjektet som ble startet opp, heter KDE (K Desktop Environment). KDE ble utviklet med utgangspunkt i et sett kommersielle C++-biblioteker (Qt) fra et norsk firma kalt Troll Tech. Denne bindingen til et kommersielt produkt samt en del uenigheter om tekniske løsninger førte til at GNOME (Gnu Network Object Model Environment)-prosjektet ble startet opp. GNOME fikk raskt støtte fra viktige Linux-grupperinger som GNU ("GNU is Not Unix"), Debian, Suse og Red Hat. GNOME baserer seg på et C-bibliotek kalt GTK+, og som har bindinger for utvikling under en rekke språk bl.a C++, C#, python, perl og andre.

KDE og GNOME er nå begge tilgjengelig for nedlasting og leveres sammen med de fleste Linux-distribusjoner, inkludert Fedora. KDE var først ute i versjon 1.0, og har bygd seg opp en betydelig brukermasse i Linux-miljøet, men GNOME ser ut til å ha størst momentum og utviklerstøtte, og vil trolig bli standardgrensesnittet i Linux i fremtiden. Selv om lisensreglene på Qt-biblioteket har blitt modifisert i et forsøk på å komme kritikerne i Linux-miljøet i møte, så er det fortsatt en svært stor andel av Linux-miljøet som mener at bare bruk av Linux-miljøets "egen" biblioteklisens (LGPL) er bra nok for en så sentral del av operativsystemet. Qt er dobbeltlisensiert med GPL/QPL. Dette betyr at man kan utvikle fri programvare basert på Qt, men hvis man vil utvikle kommersielle applikasjoner må man betale lisens til Troll Tech. Det er ikke nødvendigvis slik at alle biblioteker må være LGPL, men det gjør det enklere å bruke dem i kommersielle applikasjoner da GPL lisensierte biblioteker ikke kan brukes på denne måten.

Fysisk plassering av XFree86[rediger]

Fedora Linux er basert på XFree86 versjon 4, som er X Windows-systemet. XFree86 versjon 4 bruker forskjellige X-biblioteker, skrifter, hjelpeprogrammer, dokumentasjon og utviklingsverktøy. Fedora støtter også den gamle versjon av XFree86 versjon 3, slik at eldre maskinvare kan kjøres. Hvilken XFree86-versjon du bruker, kan du blant annet se fra loggfilene (gjelder de fleste distribusjonene som openmandriva, SuSE, Debian, Red Hat og Fedora) dine:

Du vil se at det stor forskjell mellom Xfree86 versjon 3 og Xfree86 versjon 4 både i konstruksjon og struktur. Du vil finne konfigurasjonsfilene til XFree86-serveren i /etc/X11-katalogen. Du bør være oppmerksom på at XFree86 versjon 4 og XFree86 versjon 3 bruker forskjellige konfigurasjonsfiler og syntaks. Konfigurasjonsfiler og syntaks er ikke kompatible med hverandre. Både XFree86 versjon 3 og 4 bruker konfigurasjons filen /etc/X11/ XF86Config (XF86Config-4 for det som er spesielt for versjon 4). Når du har installert Fedora Linux, vil konfigurasjonsfilene for begge versjoner av Xfree86 bli oppdatert. Tilsvarende skjer når du kjører programmet Xconfigurator senere for å redefinere skjermkortet ditt. Går du manuelt gjennom konfigurasjonsfilene XF86Config-4 og XF86Config, vil du finne noen likheter.

Du finner alle X Windows-systemfilene til XFree86 versjon 3 og XFree86 versjon 4 i to primærkataloger:

   /usr/include/X11 

/usr/lib64/X11

I denne katalogen finner du X-klientkatalogene (/usr/X11R6/bin-katalogen), X-headerfiler (/usr/X11R6-katalogen), biblioteker (/usr/X11R6/lib-katalogen), X-manualsidene (/usr/X11R6/man-katalogen) og forskjellig X-dokumentasjon (/usr/X11R6/doc-katalogen).

/etc/X11-vindusbehandlere (Window Managers)

I katalogen /etc/X11 finner du et hierarki av konfigurasjonsfiler til de forskjellige komponentene som utgjør X Windows-systemet. De viktigste konfigurasjonsfilene er selve X-serveren, fontserveren (xfs) og xdm. Her finner du også skjermbehandlere som gdm og kdm. De mest brukte vindusbehandlere (Window Managers) og X-verktøy lagrer sine konfigurasjonsfiler i denne katalogstrukturen.

Serveren XFree86 versjon 4 finner du som en enkel binærfil i katalogen /usr/X11R6/bin/XFree86. Serveren laster opp dynamisk de enkelte X-servermodulene fra katalogen:

/usr/X11R6/lib/modules

Eksempeler på moduler er skjermdrivere, skriftdrivere og andre spesialmoduler. Noen av modulene blir automatisk lastet opp, andre må du selv spesifisere i konfigurasjonsfilen XF86Config og XF86Config-4.

Du finner alle skjermdrivere til XFree86 versjon 4 i katalogen:

/etc/X11R6/lib/modules/drivers

Når det gjelder DRI-maskinvare er de lokalisert i katalogen:

/etc/X11R6/lib/modules/dri

Under XFree86 versjon 3 finner du egne X-serverbinærfiler som støtter et bibliotek av skjermmaskinvare. De installerte XFree86-serverbinærfilene finner du i katalogen /usr/X11R6/bin med navn som XF86_<server-type>, og hvor <server-type> er navnet på serveren som brukes. Du finner mange forskjellige XFree86 versjon 3-servere inkludert basisløsningene som XF86_VGA16 og XF86_SVGA. Eksempler på mer akselererte servere er XF86_Mach64, XF86_S3 og XF86_AGX.

Konfigurere skjermkortdrivere under Fedora[rediger]

Ønsker du å konfigurere X, er det viktig at du vet mest mulig om skjermkortet ditt. Det som er viktig er typen, modellen, og brikkesettet skjermkortet ditt har. X Windows settes opp ved å kjøre Xconfigurator (Fedora Linux), som jeg gikk gjennom ved installasjonen. Etter installasjonen har du to alternativer hvis du ønsker å gjøre endringer; du kan kjøre programmet system-config-display eller XFree86. Dette programmet trenger heller ikke noe forklaring. Det er bare å følge menyene.

Oppdatert bruk: # Xorg :1 -configure

Eller:

  1. cp /root/xorg.conf.new /etc/X11/xorg.conf

Fedoraxorgconfigure.png

Produsenter av grafikkort (for eksempel NVIDIA med sin hjemmeside www.nvidia.com eller AMD http://www.amd.com/en-us og intel https://downloadcenter.intel.com/product/67709/Software)

https://getfedora.org eller www.redhat.com (www.suse.com, www.debian.org eller www.skolelinux.no)

Nedenfor har jeg et eksempel hvor driverne er i kildekodeformat og filene er lagret i tar/gz-format. Jeg bruker kommandoen wget for å laste ned filene (NVIDIA-drivere og GLX-bibliotekene):

[root@nittedal /root]# wget -c http://us.download.nvidia.com/XFree86/Linux-x86_64/346.35/NVIDIA-Linux-x86_64-346.35.run

Her pakker jeg ut filene:

[root@nittedal /root]# sudo chmod +x NVIDIA-Linux-x86_64-346.35.run

Her går jeg ned i kildekodekatalogen og lager ferdige binærfiler:

[root@nittedal /root]# ./NVIDIA-Linux-x86_64-346.35.run

Først sjekk hva du har fra før: [root@nittedal /root]# lspci |grep -E "VGA|3D"

   NVIDIA Optimus Technology 

[root@nittedal /root]# lspci |grep -E "VGA|3D" 00:02.0 VGA compatible controller: Intel Corporation 2n Generation Core Processor Family Integrated Graphics Controller (rev 09) 01:00.0 VGA compatible controller: nVidia Corporation GM204 [GeForce GTX 980] (rev a1)

Husk å svarteliste: [root@nittedal /root]# echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf

Fjern: xorg-x11-drv-nouveua

[root@nittedal /root]# dnf remove xorg-x11-drv-nouveau

Lag en initramfs:

[root@nittedal /root]# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img

Bios oppdatere grub2 [root@nittedal /root]# grub2-mkconfig -o /boot/grub2/grub.cfg

UEFI oppdatere grub2 [root@nittedal /root]# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Start på nytt i runlevel 3 [root@nittedal /root]# systemctl set-default multi-user.target

VDPAU/VAAPI støtte (for å få videoakselerasjon) [root@nittedal /root]# dnf install vdpauinfo libva-vdpau-driver libva-utils

For intel drivere prøv: [root@nittedal /root]# dnf search intel-linux

Konfigurere skjermkortdrivere under OpenSuSE[rediger]

Installere følgene for nvidia: Eller du kan besøke: http://opensuse-guide.org/3d.php Der installer du http://opensuse-community.org/nvidia.ymp enkelt.

[david@nittedal /home]# zypper install -t pattern devel_C_C++ devel_kernel

Logg deg på som root: [root@nittedal /root]# su -

Gå til nvidia pakken [root@nittedal /root]# sh /home/user/NVIDIA*.run

[root@nittedal /root]# mkinitrd

Svartelist nouveau: [root@nittedal /root]# echo "blacklist nouveau" >> /etc/modprobe.d/50-blacklist.conf && mkinitrd && reboot

Sett opp skjermkortet: [root@nittedal /root]# nvidia-settings

For AMD skjermkort:

Svartelist nouveau: [root@nittedal /root]# echo "blacklist nouveau" >> /etc/modprobe.d/50-blacklist.conf && mkinitrd && reboot

YaST2 > Pakkebrønner > Legg til > Uoffisielle pakkebrønner > velg AMD/ATI Graphic drivers og så OK

Her kan du også legge til flash, Packman repository som er en samling av Essentials og Multimedia & Extra samt spill det funger både til AMD\Nvidia skjermkort i tillegg til intel.

Etter på YaST2 > Programmer > Tillegg > Install all matching Recommended packages og så OK

Så burde du starte om maskinen så burde driverne være på plass.

Oppstart av X[rediger]

Når filen XF86Config er ferdig konfigurert, kan du starte opp X ved å skrive startx (starter opp xinit-prosessen). Hvis du ikke får startet opp X, sjekk om det er satt opp søkebane ($PATH) til /usr/X11R6/bin.

[david@nittedal david]$ startx

Når du starter opp X-serveren, vil den søke etter oppstartsfilen .xinitrc på din hjemmekatalog. Har du ingen lokal .xinitrc fil, vil systemet lese standardfilen, som er plassert på /usr/X11R6/lib/X11/xinit/xinitrc. Ønsker du å starte opp med 16 bits fargeoppløsning skriver du:

[david@nittedal david]$ startx - pixmap16

Fedorastartxlinux.png

Figur 10.4: Eksempel på oppsett med GNOME under Fedora Linux

Etter kort tid vil det dukke opp et grensesnitt som ligner det du kjenner fra Windows eller X Windows. Her bruker du musen til å navigere og aktivere vinduer og menyer. Du kan tilpasse det grafiske utseendet etter behov. Ønsker du å avslutte X, trykker du [ctrl]-[alt]-[backspace] i kombinasjon. X-serveren vil stoppe direkte, og vindus-systemet avsluttes.

Spesialtaster i X[rediger]

Hvis du i din XF86Config har definert forskjellige alternative oppløsning og fargedybde vil du ha muligheten til å skifte til de enkelte modusene ved hjelp egne kontrollkommandoer. Under har jeg laget en oversikt over de meste brukte skjermkommandoene:

Skjerm Taster Beskrivelse av skjermmodus
Tekst-skjerm[Alt]-[Fx] Hvor n er 1,2,3,4,5,6,8,9,10,11 eller 12 (de 4 siste skjermene må enables fra /etc/inittab) Grafisk-skjerm
[Alt]-[F7] Grafisk skjerm (X Windows)
Forover modi [Ctrl]-[Alt]-[+] Øker den fysiske oppløsningen og fargedybden (bruk numerisk tastatur)
Bakover modi [Ctrl]-[Alt]-[-] Reduserer den fysiske oppløsningen og fargedybden (bruk numerisk tastatur)

Tabell 14.1: Viktige kommandoer for å styre skjerm

Under har du to nyttige kommandoer for å restarte maskinen eller bare restarte X.

Status Taster Beskrivelse av status (modus)
Reboot [Ctrl]-[Alt]-[Del] Starter maskinen på nytt
Restart [Ctrl]-[Alt]-[Backspace] Starter X11 på nytt (nødløsning)


Tabell 14.2: Nyttige tastaturkommandoer

GNOME- eller KDE- brukergrensesnittet[rediger]

Under Fedora Core og Opensuse Leap Linux kan du velge mellom flere vindusbehandlere. Det er mulig å kjøre X Windows direkte fra en vindusbehandler (Metacity, Sawmill, OSF/Motif) uten brukergrensesnittet GNOME eller KDE, men du mister da de tilleggsfunksjonene som disse brukergrensesnittene kan gi. De fleste Linux-distribusjoner bruker GNOME eller KDE som grunnlag for sitt grafiske grensesnitt. Et viktig moment i den sammenheng er at den vindusbehandleren som brukes sammen med GNOME og KDE, støtter disse grensesnittene.

KDE leveres som standard med sin egen vindusbehandler kalt KWM, men også Blackbox og WindowMaker har noe KDE-støtte. GNOME har på sin side hele tiden siktet inn på å være mer uavhengig i forhold til vindusbehandlere. Enlightenment ble brukt som standard vindusbehandler frem til rundt versjon 1.0, og Sawmill/Sawfish tok over gjennom 1.2.x og 1.4.x. Den var også i bruk frem til versjon 2.0.x. Parallelt med dette startet Havoc Pennington utvikling av Metacity som ble standard vindusbehandler i 2.2.x. I tillegg har GNOME støtte for vindusbehandlere WindowMaker, Qvwm, Afterstep, Icewm, Fvwm, Sawmill og Flwm.

Det pågår stadig arbeid for å få KDE og GNOME til å kunne integreres bedre og tidlige 2004 ble det annonsert biblioteker som gjør det mulig for eksempel å bruke KDE teknologi og dialoger fra GNOME applikasjoner. Nå er det alså mulig å ha en KDE fildialog i en GNOME applikasjon, etc. I fremtiden vil også de fleste vindusbehandlere kunne benyttes sammen med begge de to systemene, fordi et felles prosjekt utarbeider en ny felles standard for vindusbehandlere.

GNOME tilbyr funksjonalitet på høyde med det du er vant til fra Windows 10. Dette omfatter kopiering til mellomlager, dra-og-slipp osv. GNOME 4.x tilbys i dag på over 30 språk, inkludert norsk. Ved siden av Linux kan GNOME kjøres på BSD, Solaris, HP-UX og Digital Unix. Flere Linux-distributører inkluderer GNOME, blant dem Fedora, Red Hat, Debian GNU/Linux, LinuxPPC og SuSE.

I dag har Debian, Fedora, Red Hat, Mint satser på GNOME, mens Openmandiva og SuSE\Opensuse er blant Linux-distributørene som satser på KDE. KDE 5.6.1 tilbys i dag på over 35 språk, inkludert norsk.

Ønsker du å laste ned en nyere versjon av KDE til din Fedora Linux, kan du besøke www.kde.org. Her finner du henvisninger videre.

GNOME og KDE skiller seg fra hverandre også på mange andre områder. Teknisk sett så ligger nok hovedforskjellen mellom valget av komponenter og arkitektur for CORBA (Common Object Request Broker Architecture). GNOME har her utviklet en arkitektur kalt Bonobo, men KDE har sin KOM/OpenParts. GNOME er også mer tilpasset utviklere som programmerer i andre språk enn C++, for eksempel Ada, C, Objective-C, TOM, Perl, Python og Guile.

GNOME ble startet av Miguel de Icaza og Federico Mena. Selve utviklingen av GNOME "ledes" av GNOME release team som består av et titalls mennesker. I dette teamet finner vi blant andre Kjartan Maraas fra Norge. Jobben til denne gruppen er å koordinere slipp av nye versjoner i tillegg til å vurdere nye moduler for de ulike delene av GNOME (developer platform, desktop, etc). Utover dette er det de enkelte ansvarlige sin modul og prioriteringer innenfor sin modul. Totalt sett er det over 350 programmerere spredt over hele kloden som bidrar til utviklingen av GNOME. De fleste av disse er frivillige. På utviklingssiden har blant annet Christian Fredrik Kalager Schaller fra Norge bidratt. I dag har GNOME flere tusen betatestere. Red Hat har støttet arbeidet. Prosjektet identifiseres med Free Software Foundation (FSF), som ledes av GNU-grunnleggeren Richard Stallman. GNU står for "GNU is Not Unix" og ble startet for å spre tanken om fritt tilgjengelig programvare. FSF har utarbeidet en lisens kjent som "General Public License" (GPL). Den innebærer full frihet til å kjøre, kopiere, distribuere, studere, endre og forbedre et hvert GPL-lisensiert program.

Ønsker du å laste ned en nyere versjon av GNOME til din Fedora eller SuSE Linux, kan du besøke www.gnome.org. Her finner du henvisninger videre.

GNOME med Fedora Linux[rediger]

I Fedora Core 24 kan du velge alternative grafiske brukergrensesnitt, for eksempel GNOME, KDE, WindowMaker og TWM. Har du installert Fedora Core, er GNOME det grafiske brukergrensesnittet som settes opp som standard.

Tilsvarende som under Microsoft Windows bruker du mus under GNOME. GNOME (X Windows) er egentlige basert på at du har en 3 knappers mus. Men de fleste Windows brukere sitter med 2 knappers mus. Bruker du 2 knappers mus emulerer du knappen på midten ved å trykke på venstre og høyre museknapp samtidig (må være definert under installasjon eller senere). Har du en mus med hjul kan du bruke hjulet som den tredje knappen. Ønsker du å gjøre endringer på oppsettet av musen går du bare inn på «Systeminnstillinger» og deretter inn på «Musekonfigurasjonen».

Når du trykker på noe med musa blir det uthevet. Du kan velge flere objekter samtidig ved å holde kontrolltasten nede. Når du dobbeltklikker på et objekt vil forvalgt handling for dette objektet utføres. Hvis det for eksempel er et dokument vil forvalgt applikasjon for denne typen dokumenter startes for å åpne dokumentet. Når du trykker på et objekt med høyre museknapp får du opp en kontekstmeny. Her kan du velge hvilken handling som skal utføres på objektet. Dette kan du også gjøre på gruppenivå dvs. du kan anmerke flere objekter ved hjelp av kontrolltasten og trykke høyre museknapp. Under finner du en tabell over greie snarveier.

I tabellen under har vi nyttige snarveier for å utføre forskjellige handlinger på GNOME-skrivebordet:

Kommando Beskrivelse av snarvei
Alt+F1 Åpner GNOME meny
Alt+F2 Viser "kjør" programdialogen
Print Screen Samme som Windows dvs. skjermdump av hele skjermen
Alt+Print Screen Skjermdump av aktivt vindu
Control+Alt+piltast Forflytter deg rundt i din virituelle desktop (standard er 4 skjermer)
Control+Alt+d Minimerer alle vinduene dine og fokus settes på bakgrunnen
F1 Starter online hjelp

Tabell 14.3: Nyttige desktop snarveier

I tabellen under har vi nyttige snarveier når du er i en applikasjon:

Kommando Beskrivelse av snarvei
Control N Ny tekst
Ctrl + X Klipp
Ctrl + C Kopier
Ctrl + V Lim inn
Ctrl + S Lagre
Ctrl + Q Avslutt


Tabell 14.4: Nyttige snarveier

I tabellen under har vi nyttige snarveier for å forflytte seg i et GNOME vindu.

Kommando Beskrivelse av snarvei
Control+Alt+Tab Skifter fokus mellom de enkelte vinduene og desktop bakgrunnen
Control+F10 Viser "kjør" programdialogen
Tab Flytter mellom objekter i et vindu
Return Utfører det valget som er anmerket
Skift F10 Åpner opp popup menyen for det valgte vindu
Piltast Åpner opp popup menyen for det valgte vindu
Piltast Flytter fokus mellom de enkelte elementene i et vindu
Esc Avslutt vindu
F10 Vil åpne applikasjonsmenyen hvis et ikon med meny vindu er valgt

Tabell 14.5: Nyttige vindu snarveier

Filkopiering og flytting er veldig analogt med Windows. Du gjør dette ved å starte opp flere Nautilus filbehandlere. På skjermens venstre side har du ikoner for Nautilus filbehandleren (Hjemmekatalogen) og et eget ikon for din søppelkurv. Ønsker du å se på innholdet av en CD-ROM, diskettstasjon eller nettverk, trykker du på fliken «Steder» som du finner øverst til venstre på skjermen her trykker du videre på « +Andre lokasjoner» og «datamaskin» eller «CD/DVD».

Fedoradatamaskin.png

Figur 10.5: Fra fliken «Datamaskin»

Hvis du ikke har disse ikonene, kan du også nå disse enhetene fra terminalvinduet. Har du en Windows- eller MS DOS-diskett, kan du bruke Linux' m-kommandoer, for eksempel (Se kapittel 15):

[david@nittedal david]$ mdir a:

Den øverste linjen i ditt GNOME skjermbilde viser deg programmer du kan starte tilsvarende som i Windows. Her ser du alle applikasjonene som er operative som applikasjons -knapper. Til høyre er det en høyttaler, klokke og agent. Flytter du markøren over klokken vises dagens dato. Ved siden av klokken finner du Fedora sin nettverksagent. Fra Fedora har du muligheten til å få automatisk oppdatering av programvare.

Fedoragnomemenu.png

Figur 10.6: GNOMEs programlinje

Fra midten av oppgavelinjen mot venstre finner du din trykknapper for OpenOffices regneark, OpenOffices presentasjonsverktøy, OpenOffices tekstbehandlingsystem, Evolution e-post og kalender og Mozilla nettleser. Videre til venstre finner du knapper for de forskjellige applikasjonsgrupper som System, Steder og Programmer.

Fra «Programmer» kan du velge: grafikk, internett, kontorstøtte, lyd og bilde, spill, systemverktøy, tilbehør, utvikling og legg til/fjern programvare.

Fra «steder» kan du velge: hjemmemappe, skrivebord, filsystem, datamaskin, CD/DVD, nettverkstasjon, koble til tjener, søk og siste dokumenter.

Fra «System» kan du velge: brukervalg, administrasjon, hjelp, om gnome, om fedora, lås skjerm, logout og avslutt.

Den nederste linjen på skjermen er oppgavelinjen den viser hvilke programmer som går i din virituelle desktop (du kan ha flere desktopper).

Fedoragnomeoppgravelinje.png

Figur 10.7: Oppgavelinjen fra GNOME

Fra oppgavelinjen finner du også ikoner for søppelkasse (nederst til høyre) og for å fjerne oppgavelinjen (nederst til venstre).

Prøv å dra System-mappen opp ved å holde muse-markøren over mappen. Når du er over knappen, kommer det opp en ny programmappe med flere systeminnstillinger. Her finner du de viktigste mappene for systemadministrasjon. I tillegg bør du sjekke mappen Brukervalg. Fra Brukervalg kan du tilpasse maskinen til dine egne behov med hensyn til for eksempel pålogging, skjermsparer, tastatur, passord, lyd og bakgrunn.

Ønsker du et grafisk grensesnitt mot filene dine, finner du det i mappen Hjemmekatalog. Hjemmekatalog er også definert som ikonet hjemmekatalog (Hjem til "navnet ditt"- Home directory). Hjemmekatalog bruker Nautilus som filbehandler.

Fedoranautilusikoner.png

Figur 10.8 Nautilus-ikonet (home) .

Med Nautilus-applikasjonen kan du manipulere filene dine. På vinduets venstre side ser du katalogene og på høyre side ser du innholdet i de valgte katalogene. Ønsker du å flytte en fil eller katalog, kan du bruke dra og slipp.

Når du skal kopiere en fil, merker du filen ved å klikke på den. Skal du kjøre et program, dobbeltklikker du på programikonet. Ønsker du å utføre andre operasjoner på en fil, for eksempel slette den eller gi den nytt navn, merker du først filen med høyre museknapp, deretter velger du ønsket alternativ. Skal du merke flere filer, holder du kontrolltasten eller skifttasten nede samtidig.

Figur 10.9: Nautilus-filbehandleren

Ønsker du å foreta operasjoner mellom flere kataloger, trenger du bare å starte flere Nautilus-filbehandlere. Du kan dra filer fra en Nautilus-filbehandler til en annen, eller til GNOME-skrivebordet.

Ønsker du hjelp om GNOME-brukergrensesnittet, trykker du på "Aktivitetet" og firkant med prikker og Hjelp-knappen som kommer opp som et valg etter at du har trykket på "Aktivitetet" må du søke etter hjelp.

Alle Linux-programmer kan kjøres direkte fra et terminal vindu. Du trykker på fliken «Programmer», «Tilbehør» og deretter «Terminal». Her skriver du bare navnet på programmet, for eksempel xboard.

Dolphinfedora.png

Figur 10.9: Dolphy-filbehandleren

Kan installeres enkelt ved å prøve å skrive "dolphin" som root i fedora. Samme brukes "dolphin" for å starte fedora 24 filbehandleren.

Fedorakjørkommando.png

Figur 10.10: Kjøre programmer fra GNOME (Kjør)

Fra fedora må dette installeres etterpå velg f.eks "Kjør program ..." i programvarebehandleren egentlig er dette for XFCE.

Ønsker du deg en ny oppgave-/programknapp er det greiest å ha bakgrunnsbildet oppe, klikke med høyre museknapp og definere en ny oppstarter (Opprett oppstarter). Her kan du lage dine egne trykk-knapper eller oppdatere nye programmer under programmer-mappen.

Figur 10.11: Definere oppstartsprogram fra Panel

Den siste og kanskje viktigste programmet er Logg ut (Log out); herfra kan du både logge deg ut og ta ned systemet. Du finner logout ved å trykke på «System» og deretter på «Logout».

Når du har bakgrunnsbildet oppe, kan du når som helst endre på skrivebordet ved å klikke med høyre museknapp. Da får du følgende valgmuligheter: opprette en ny mappe (katalog), opprette en ny oppstarter, opprette dokument, rydde opp etter navn, beholde justert oppsett, lime inn filer (tilsvarende Control V under Windows) og endre skrivebordsbakgrunn.

Ønsker du ditt eget fancy skrivebord med forskjellige X-applikasjoner, er det bare å lage din egen .xinitrc fil i din hjemmekatalog. Denne filen kan du automatisk få generert fra GNOME. Ønsker du å gjøre det manuelt, er det bare å sjekke syntaksen i filen /usr/X11R6/lib/X11/xinit/xinitrc. Mer informasjon finner du i håndboksidene under xterm, xclock og twm.

Fedorabrukervalgforbakgrunn.png

Figur 10.12: Brukervalg for bakgrunn

Ønsker du å gjøre spesialtilpasninger til ditt GNOME brukergrensesnitt, går du inn på «System» og «Brukervalg». Her har du stor frihet til å endre det meste.

GNOME og bruk av mus[rediger]

Vær oppmerksom på at venstre museknapp brukes til å merke og flytte filer eller kataloger. Høyre museknapp brukes for å vise en meny for den opsjonen du har valgt. Dette gjelder bare hvis det eksisterer en meny for den opsjonen du har valgt. De fleste Unix-systemer er basert på 3-knappers mus og knappen i midten brukes vanligvis til å lime inn tekst eller grafikk. Har du bare 2-knappers mus kan du trykke venstre og høyre museknapp samtidig for å få samme effekt.

Har du 2-tasters mus som emulerer 3-tasters mus, (det er ikke musen som emulerer, men vindusystemet) har du en funksjon tilsvarende GNOME/KDE-startknappen ved å trykke samtidig på høyre og venstre museknapp når du bare har bakgrunnsbildet på skjermen.

Alternativet med XFCE4[rediger]

Hvis du er vant til å bruke kommersielle utgaver av Unix, er du sikkert kjent med og trives med CDE-grensesnittet disse leveres med. CDE kan forøvrig også minne en del om grensesnittet til OS/2, for de som kjenner det. Det finnes et grensesnitt som ligner veldig mye på CDE under Linux kalt XFCE4. I sine siste versjoner har dette grensesnittet begynt å tilby kompatibilitet med GNOME, og begynner dermed å bli et godt alternativ. Xfce følger ikke i dag med som standard i Fedora Linux, men kan lastes fritt ned fra http://www.xfce.org.

600px

Figur 10.13: Eksempel på XFCE4s brukergrensesnitt

Standard X-applikasjoner[rediger]

Du finner mange applikasjoner i Linux som er beregnet på å gå under X. Jeg har her tatt med en samling programmer som jeg tror du kan ha nytte av. Alle X-applikasjonene kan du starte direkte fra en vindusbehandler (Window Manager) eller rett fra terminal-ledeteksten ved å skrive navnet på programmet og &. &-tegnet gjør at programmet vil kjøre i bakgrunnen.

X program (nytteprogram) Beskrivelse
gimp Grafisk program tilsvarende Adobe Photoshop
gv Greit hvis du ønsker å se på postscript-filer
ical En enkel avtalekalender
userinfo Brukerinfo
userpasswd Endre passord
usermount Montering og avmontering av filsystemer
usernet Sjekk av nettverksgrensesnitt
linuxconf Med dette programmet kan du stille inn det meste; kan sammenlignes med kontrollpanelet til windows og register applikasjonen
xcalc En enkel kalkulator
xclock En vanlig klokke
xdos DOS-emulator (kjør DOS-programmer)
xeyes Øyne som følger markøren din
xmag Forstørrelsesglass for synshemmede
xman Gir deg man-sidene (GUI-front mot man)
xpdf Gjør det mulig å se på dokumenter i forskjellige formater; bruker standardformatet til Adobe
xterm Gjør det mulig for deg å ha flere terminal-sesjoner
gdm (xdm) Styrer innlogging (X terminal)
xv Et enkelt grafikkprogram
xwd Greit å ha hvis du skal ha X11-skjermdumper i forbindelse med dokumentasjon

Den viktigste X-applikasjonen er xterm og gdm. Du finner flere X-applikasjoner for Linux enn de som er ramset opp her. Jeg har bare tatt med de mest populære.

X-spill[rediger]

Her er en oversikt for de som er interesserte i spill

X-spill Beskrivelse
acm En enkel luftspill-simulator
chromium Eksempel på arcade fly-/skytespill
paradise Nettverksbasert kampspill
FlightGear (Koster penger)X-Plane 10
Tuxracer Action spill
Supertux Action spill
xbill Et spill hvor du må stoppe et virusangrep fra "Microsoft"
xboard Et meget bra sjakkspill, kan brukes over internett
xchomp Det klassiske pac--man spillet
xdemineuer Et enkelt minesveiperspill
xjewel Det tradisjonelle Tetris-spillet med mange varianter
xeyes Øyne som følger markøren din
xlander Et enkelt månelandingsspill
xpilot Nettverkbasert kampspill
xpuzzles Nettverkbasert kampspill
DreamChess Et meget bra sjakkspill, kan brukes over Internett
Nexuiz | OpenArena | Warsow | Tremulous| Sauerbraten |
vitetris Terminal basert Tetris
LINBALL (Linux Pinball) bakno pinball
Steam spill som koster penger Counter-Strike: Global Offensive | Portal 1 & 2 | ark survival evolved

Fedoragnomechess.png

Figur 10.14: Eksempel på sjakkspillet gnome.

X-spill en hel serie med puslespill
AisleRiot Solitaire Klotski Iagno Mines Sudoku

Du finner flere X-baserte spill for Linux enn de som er ramset opp her. Jeg har bare tatt med de mest populære.

X-kommandoer

De fleste X Windows-preferansene kan du sette fra GNOME, tilsvarende har du kontrollpanelet i Windows. Et alternativ kan være å skrive X-kommandoer direkte.

Eksempler:

Ønsker du informasjon om oppsettet til X Windows, prøv kommandoen xwininfo:

[david@nittedal david]$ xwininfo

Med X Windows kan man i prinsippet logge seg inn på en hvilken som helst maskin (vertsmaskiner som støtter X Windows) i nettverket og sende GUI-bilde (X Windows) til den skjermen du ønsker. For å få dette til må du ha riktige tilgangsrettigheter, og DISPLAY-parameteren må settes riktig. Man bør også ha bra båndbredde mellom maskinene; anbefalt minimum er 100 Mbps.

[david@nittedal david]$ xhost ftpnode.c2i.no

Her gir jeg ftpnode tilgang til skjermen på nittedal.

[david@nittedal david]$ rlogin ftpnode.c2i.no

Jeg logger inn på vertsmaskinens ftpnode.

[ftpnode]$ export DISPLAY= david.nittedal.no:0

Her definerer jeg at skjermen på vertsmaskinen david.nittedal.no skal brukes. Kjører du tcsh-skallet i stedet for bash-skallet, bruker du setenv-kommandoen for eksempel:

[ftpnode]$ setenv DISPLAY david.nittedal.no:0

[ftpnode]$ xboard

Til slutt starter jeg opp sjakkspillet xboard på maskinen ftpnode. Selve skjermbildet blir sendt til min skjerm (nittedal). All CPU-prosessering som sjakkspillet genererer blir overlatt til maskinen ftpnode.

Hver gang du skal skrive til en skjerm, må du be X-Serveren om lov. På din hjemmekatalog finner du filen .Xauthority. Hvis du har en kopi av denne på en ekstern vertsmaskin, for eksempel ftpnode, har du lov til å sende skjermbilder til den vertsmaskinen. Det blir dermed unødvendig å bruke xhosts-kommandoen.

I eksemplet under bytter jeg om venstre og høyre museknapp:

[david@nittedal david]$ xmodmap -e “pointer 3 2 1"

Her øker jeg akselerasjonen på musen:

[david@nittedal david]$ xset m “50 5"

Her kjører jeg akselerasjonen ned:

[david@nittedal david]$ xset m “4 8"

Ønsker du å dumpe noen skjermbilder, kan du prøve xwd:

[david@nittedal david]$ xwd > skriverbilde

Her dumper jeg skjermen til filen skriverbilde. Denne filen kan du for eksempel jobbe videre med i programmene xv eller gimp.

[david@nittedal david]$ xsetroot -solid blue

Her setter jeg bakgrunnen til blått.

[david@nittedal david]$ xclock &

Her starter jeg opp xclock. X-applikasjonen xclock kjøres i bakgrunnen.

Oppstart i GDM[rediger]

Kjører du Fedora Core eller SuSE, vil du som standard komme opp i X Windows System. Kjører du derimot andre varianter, er det ikke sikkert at dette er tilfelle. Ønsker du da at GDM (X Display Manager) skal komme opp som standard hver gang du starter Linux-boksen din, er det bare én linje i filen /etc/inittab du trenger å endre. Du gjør følgende:

[root@nittedal /root]# vi /etc/inittab

  1. inittab This file describes how the INIT process should set up
  1. the system in a certain run-level.
  1. Author: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
  1. Modified for RHS Linux by Marc Ewing and Donnie Barnes
  1. Default runlevel. The runlevels used by RHS are:
  1. 0 - halt (Do NOT set initdefault to this)
  1. 1 - Single user mode
  1. 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
  1. 3 - Full multiuser mode
  1. 4 - unused
  1. 5 - X11
  1. 6 - reboot (Do NOT set initdefault to this)

id:5:initdefault:

  1. System initialization.

si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0

l1:1:wait:/etc/rc.d/rc 1

l2:2:wait:/etc/rc.d/rc 2

l3:3:wait:/etc/rc.d/rc 3

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

  1. Trap CTRL-ALT-DELETE

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

  1. When our UPS tells us power has failed, assume we have a few minutes
  1. of power left. Schedule a shutdown for 2 minutes from now.
  1. This does, of course, assume you have powerd installed and your
  1. UPS connected and working correctly.

pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

  1. If power was restored before the shutdown kicked in, cancel it.

pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

  1. Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6

  1. Run xdm in runlevel 5

x:5:respawn:/etc/X11/prefdm -nodaemon

Finn linjen hvor det står initdefault. Her står det på noen Linux-distribusjoner som ikke har GUI:

id:3:initdefault:

Dette betyr at standard kjørenivå er 3. Dette endrer du til 5. Hvis du ønsker et GUI-grensesnitt mot operativsystemet dvs. til:

id:5:initdefault:

Oppdater de endringene du har gjort i /etc/inittab. Reboot systemet med for eksempel init 0, reboot, shutdown, eller tving init til å lese /etc/inittab ved å skrive:

[root@nittedal /root]# /sbin/telinit q

NB! Du må være sikker på at X Windows System kommer opp på normal måte før du endrer /etc/inittab. Dette kan du teste ved å skrive startx fra terminalledeteksten. Fra boot-ledeteksten ved oppstart av maskinen, kan du også velge hvilket kjørenivå Linux skal starte i. Linux 3 bringer deg i tekstmodus selv om systemet ellers er innstilt på å starte i grafisk modus. Dette kan være kjekt hvis du har fått problem med X-serverinnstillingene. Velg modus 5 hvis du ønsker å laste opp X11 (grafisk modus med).

Ønsker du flere virtuelle tegnbaserte terminal økter er det bare å slå dette på i /etc/inittab. I /etc/inittab-filen over har jeg slått på getty på fire ekstra terminal økter. Disse er satt opp fra funksjonstast F8, F9, F10 og F11. Gjør du andre endringer i /etc/inittab enn det som jeg har spesifisert, er det mulig at du aldri mer får kontakt med Linux-boksen. Les man-sidene hvis du er usikker.

3D-akselerasjon og Linux[rediger]

Linux har lenge ligget litt etter når det gjelder støtte for 3D-akselerasjon. Riktignok har 3dfx vært støttet av Linux en stund. Det ble derfor for en tid tilbake startet et prosjekt med støtte fra bl.a. Red Hat og Silicon Graphics. Dette prosjektet ledes av et tredje firma kalt Precision Insight, som har som mål å kombinere Silicon Graphics' GLX-teknologi med den frie implementasjonen av OpenGL kalt, MesaGL.

Resultatet av dette arbeidet kan sees i Xfree 4.0 og er nå tilgjengelig. Allerede i dag har prosjektet fått støtte og drivere fra firmaer som 3dfx, Nvidia, Elsa og Matrox.

Det er allerede begynt å dukke opp flere nye titler for 3D-spill på Linux, blant annet Quake III Arena og Unreal Tournament.

Steam finnes til linux, GOG Galaxy klient for linux er på vei.

X Windows og referanser[rediger]

På Internett finner du mange referanser til X Windows. Nedenfor har jeg tatt med både internasjonale og nasjonale referanser.

Generelle beskrivelser av hvordan du setter opp X Windows, finner du blant annet på Linux-CDen under XFree86-HOWTO. Har du driver-problemer, kan du sjekke hjemmesiden til XFree86:

http://www.xfree86.org

For å sette opp nvidia 3d vision: (3d briller) https://www.talisman.org/~erlkonig/misc/nvidia-3d-vision-on-linux-opengl/

For kommersielt tilgjengelige drivere kan du sjekke:

http://www.xi.com eller

http://www.metrolink.com

For informasjon om 3dfx-kort og 3D under Linux, kan du prøve:

http://glide.xxedgexx.com

http://www.mesa3d.org og http://www.precisioninsight.com

For informasjon om kommersielle og frie spill med mer til Linux og X Windows:

http://www.linuxgames.com, http://www.happypenguin.org, http://www.lokigames.com

For mer informasjon om GNOME:

http://www.gnome.org

For mer informasjon om KDE:

http://www.kde.org

For mer informasjon om XFCE 3:

http://www.xfce.org

For informasjon om multimedia-applikasjoner:

Mp3 spiller:

http://www.xmms.org/ and http://www.mpg123.org

Mp3 til wav:

http://faceprint.com/software.phtml

http://nostatic.org/grip/

http://www.vorbis.com/

Xine (dekoding) :

http://xine.sourceforge.net/

Dvd plug-inn:

http://dvd.sourceforge.net/

Adobe Flash player:

https://get.adobe.com/flashplayer/

Real player:

http://www.real.com/

Oppgaver til kapittel 10[rediger]

Oppgave 10.1

Hva er X Windows?

Oppgave 10.2

Hvilken vindusbehandleren bruker KDE?

Oppgave 10.3

Hva er forskjellen mellom GNOME og KDE?

Oppgave 10.4

Hvilke grafiske brukergrensesnitt finnes for Linux?

Oppgave 10.5

Logg deg inn som root og prøv forskjellige oppsett på det grafiske kortet og skjermen. Noter deg endringene. Har du den mest optimale innstillingen?

11: Linux-prosesser[rediger]

Foreldre- og barneprosesser[rediger]

En prosess er et program som utføres. En prosess kan starte opp nye prosesser. Originalprosessen kaller man opphavet (foreldre), og den nye prosessen kalles barn. Når et program er utført, stopper tilhørende prosess. En foreldreprosess kan avsluttes før barnet. Barnet får da prosess 1 (/sbin/init under Linux og /etc/init under standard Unix V.4) som opphavsprosess.

Alle prosesser har et unikt prosessnummer som vanligvis kalles PID. PID-nummeret. For Linux-kjerner høyere enn 2.6 (# uname -a) kan PID-nummeret være mellom 0 og 4000000000. Har du en Linux-kjerne basert 2.4 kan PID-nummeret være mellom 0 og 65565.

Alle Linux-systemer har en grense for hvor mange prosesser som kan være aktive på systemet, og hvor mange prosesser en bruker kan ha. Disse grensene settes i Linux-kjernen.

Har du en Linux-kjerne som er lavere enn 2.5.34, er Linux-systemet ditt begrenset til totalt 32768-prosesser. I Linux-kjerner høyere eller lik 2,4, er totalt antall prosesser begrenset av systemets minne, som kan være maksimalt 512 GB (Intel socket 2011-3 Xeon dual cpu QPI).

Har du en Linux 4.5 kjerne er Linux-systemet ditt begrenset til totalt 4 billioner prosesser. I praksis er det systemets minne, som vil begrense det totale antall prosesser du kan kjøre.

Eieren av de forskjellige prosessene kan avslutte en prosess med Linux-kommandoen kill. Systemadministrator kan fjerne alle prosesser. Det er Linux-skallet som leser de kommandoene som tastes inn og utfører dem. Skallet setter i gang utførelsen, sender argumentene videre og venter til de er ferdig, før den gir deg en ny ledetekst (klarmelding).

Her skal jeg se på utførelsen av en enkel kommando som echo:

[david@nittedal david]$ echo "Hei"

Hei

Skallet (bash) leser linjen echo "Hei" og skiller ut kommandoen echo fra argumentet. Deretter skjer følgende:

   * Prosessen deler seg i to eksakte kopier.
   * Foreldreprosessen venter på at barnet skal avsluttes.
   * Barnet bytter ut det gamle programmet (bash) med den nye (kommandoen echo "Hei").
   * Barnet utfører programmet.
   * Barnet avsluttes.
   * Foreldreprosessen fortsetter, og du får ledeteksten tilbake. 

Prosessen deler seg i to eksakte kopier. For at en prosess skal kunne lage en kopi av seg selv, må funksjonskallet fork startes. Etter en fork har jeg to prosesser: en barneprosess og en foreldreprosess. Forskjellen mellom de to prosessene er at de har forskjellig PID-nummer. De to prosessene deler åpne filer, og hver prosess vet at den ene er foreldre eller barn til den andre. I vårt eksempel sier opphavet at det ønsker å vente på at barnet blir ferdig; derfor sender det funksjonskallet wait. Barnet bestemmer dermed den videre handlingen; det ønsker å utføre et nytt program og sender funksjonskallet execute. (Ved hjelp av execute kan du transformere prosessen som ble skapt med fork til et nytt program.) Barnet oppgir dermed en liste over nye argumenter til det nye programmet. Linux-kjernen frigjør hukommelse som var tildelt det gamle programmet og laster inn det nye programmet. Det nye programmet (echo) skriver ut sine argumenter på standard utdata (terminalen). Tilslutt utfører echo systemkallet exit og avsluttes. Etter barnets avslutning, våkner det ventende skallet. Foreldreprosessen fortsetter, og du får ledeteksten tilbake.

Forgrunns- og bakgrunns- prosesser[rediger]

Linux er et flerbruker- og flerprosesseringsoperativsystem. Du kan kjøre en prosess i forgrunnen eller i bakgrunnen. Kjører du prosessen i forgrunnen, kommer alle meldinger på skjermen. Du kan derfor bare ha én prosess i forgrunnen.

Du kan kjøre mange bakgrunnsprosesser samtidig. Men husk at alle utdata bør omdirigeres til en fil. Hvis programmet skal gå i forgrunnen, venter skallet på at barneprosessen skal bli ferdig. Programmet som kjøres, kan være en menybasert applikasjon med forventet input fra brukeren eller uten forventet input fra brukeren. Når barneprosessen er ferdig, vil brukeren få Linux-ledeteksten tilbake. Når brukeren setter i gang en prosess som skal gå i bakgrunnen, venter ikke skallet på at barneprosessene skal bli ferdige, men skriver i stedet ut prosessiden til barneprosessen (PID) og gir brukeren ledeteksten tilbake.

Figur 11.1: Eksempel på en forgrunnsprosess

Når du skal starte forgrunnsprosessering, skriver du bare navnet på programmet, og skjerm og tastatur er bundet til programmet.

Figur 11.2: Eksempel på en bakgrunnsprosess

Men hvis du ønsker bakgrunnsprosessering, må du ha med &-tegnet til slutt, etter kommando eller program. Når du har startet en bakgrunnsprosess, får du umiddelbart ledeteksten tilbake, og skallet er klart for nye kommandoer/program. Bakgrunnsprosessen kjøres samtidig med aktivitetene du har i forgrunnen. Den kan ikke kjøres interaktivt.

Eksempel:

[david@nittedal david]$ who > datafil &

Her starter jeg who-kommandoen, resultatet sender jeg til tekstfilen datafil. Siden jeg har tatt med &, kjøres prosessen i bakgrunnen.

Eksempel:

[david@nittedal david]$ linuxprogram &

Her starter jeg programmet linuxprogram, som settes til å kjøre i bakgrunnen.

Eksempler:

[david@nittedal david]$ gcc corelfilter.c &

Her tar jeg en kompilering av C-kildekode i bakgrunnen.

[david@nittedal david]$ who | wc -l > bruker.list &

Resultat av who | wc -l blir sendt til filen bruker.list. Prosessen kjøres i bakgrunnen. Når du starter en prosess i bakgrunnen, får den en egen prosessID (PID) som kommer på skjermen når du har gitt kommandoen.

Prosessoversikt – ps[rediger]

En prosess er vanligvis assosiert med en kommando eller et program. Hver prosess får et unikt prosess-id nummer (PID) ved oppstarten. Prosess-status brukes av driftspersonell for å finne opplysninger om bestemte prosesser eller om alle prosesser i systemet.

Prosessoversiktpsfedora.png

Figur 11.3: KDE-programmet kpm med prosess-status

Figuren over viser KDEs prosessovervåkningsprogram (kpm). Her ser du alle prosessene som kjøres.

Enhver prosess har en status som kan endre seg under kjøring. Så lenge prosessen er i gang, vil den ha samme PID-nummer og kjøre fra det samme login-skallet. Eventuelle overflødige prosesser kan fjernes med kill-kommandoen. Med ps-kommandoen ser du hvilke prosesser som er aktive.

Kommandoen ps prosessoversikt
Kommando: ps [a][e][f][l][m][u] ps help
Funksjon: Gir en prosessoroversikt
Argument: Ingen
Opsjoner: Se også Linux-man-sidene.
a Viser alle prosessene (ikke bare dine egne prosesser)
e Her får du også med miljøparametere (environment)
f Viser familietrerelasjoner.
l Viser deg langt format, som inkluderer mer informasjon
t Velg terminal device tty (ps -t5 sjekker tty5)

Eksempel:

[david@nittedal david]$ ps a

PID TTY STAT TIME COMMAND

420 1 S 0:02 /bin/login -- root

421 2 S 0:02 /bin/login -- root

422 3 S 0:00 /sbin/mingetty tty3

426 5 S 0:00 /sbin/mingetty tty5

427 6 S 0:00 /sbin/mingetty tty6

425 4 S 0:02 /bin/login -- david

685 4 S 0:00 -bash

696 4 S 0:00 sleep 10000

726 p0 S 0:02 /bin/login -h 207.117.119.10 -p

727 p0 S 0:00 -bash

[david@nittedal david]$

Programmetpsprosessstatus.png

Figur 11.4: Eksempel med programmet ps (prosess-status)

Kolonne fra ps Beskrivelse
UID Eier av prosessen
PID Prosessens prosess-id; vet du prosess-id kan du stoppe prosessen ved hjelp av kill-kommandoen.
PPID Moderprosess, eller også kalt Parent Prosess ID
TIME Systemtid brukt av prosessen
STAT Angir status for prosessen (S=sleeping/R=running)
TTY Kontrollerende terminal (enhetsnavn)
COMMAND Navnet på kommando/program
l Viser deg langt format, som inkluderer mer informasjon
t Velg terminal device tty (ps -t5 sjekker tty5)

Prosesstrukturen er hierarkisk bygd opp med foreldre og barn. Prosess nummer 0 er swapper og tilhører root. Dette er den første prosessen som blir startet av operativsystemet. Den neste prosessen er /sbin/init (nummer 1). Denne prosessen er mor til blant annet portmap. Men ser du på prosess 0, så ser du at den er moder (mor) for de fleste andre prosesser, som kflushd, kswapd, syslogd, crond, xinetd, named, lpd etc.

Eksempel:

[vigdis@nittedal david]$ ps ax

PID TTY STAT TIME COMMAND

1 ? S 0:03 init [3]

2 ? SW 0:00 (kflushd)

3 ? SW< 0:00 (kswapd)

421 2 S 0:02 /bin/login -- root

422 3 S 0:00 /sbin/mingetty tty3

743 p0 S 0:02 su - vigdis

744 p0 S 0:01 -bash

822 p0 R 0:01 ps ax

823 p0 S 0:00 more

425 4 S 0:02 /bin/login -- david

685 4 S 0:00 -bash

696 4 S 0:00 sleep 10000

726 p0 S 0:02 /bin/login -h 207.117.119.10 -p

Bundet til terminalen ttyp0, har jeg prosessen su - vigdis. Ønsker du en komplett oversikt over prosesser med tilhørende barneprosesser på systemet som helhet, er kommandoen ps alx nyttig.

Ønsker du en komplett trestruktur over alle barneprosesser til en kjørende prosess kan du bruke kommandoen pstree.

[vigdis@nittedal david]$ pstree -cp 125

Resultatet av denne kommandoen viser alle barneprosessene til httpd-serverprosessen (på min maskin er 125 prosess-id til httpd).

Systemfiler: /dev/mem minne

   /dev/ttxx terminalnavn 

Se også: kill, nice, renice, pstree

Fortsette prosesser etter utlogging – nohup[rediger]

De bakgrunns- og forgrunnsprosesser du starter fra terminalen, stoppes automatisk når du logger deg ut. Har du jobber som skal fortsette når du er utlogget, må de startes med kommandoen nohup.

Kommandoen nohup fortsette prosesser etter utlogging
Kommando: nohup kommando [argument]
Funksjon: Forhindre at prosesser dør når du har logget deg ut
Kommando programmet som skal kjøre i bakgrunnen
Argument: argumentet til kommando

Hvis resultatet av kommandoen ikke blir omdirigert, blir resultatet sendt til filen nohup.out. Har ikke brukeren skrivetillatelse til katalogen, blir resultatet sendt til $HOME/nohup.out, hvor $HOME refererer til brukerens hjemmekatalog, for eksempel /home/david.

Eksempel:

[david@nittedal david]$ nohup regnskap 2001 > resultat &

Her starter jeg programmet regnskap. Tallet 2001 er et argument til programmet regnskap. Eventuelle meldinger fra programmet regnskap blir sendt til filen resultat.

Eksempel: [david@nittedal david]$ nohup ps axl | grep httpd > /tmp/antall.httpd &

Kommandoen grep søker etter tekststrengen httpd fra resultatet av kommandoen ps. Resultatet blir plassert i filen /tmp/antall.httpd. Jeg kan logge meg direkte ut, uten å vente på resultatet av kommandoen.

Kommandoer du starter med nohup-kommandoen, kan du fjerne med kommandoen kill.

Se også: nice, kill, renice, pstree

Stoppe en prosess – kill[rediger]

Et program som startes fra terminalen som en forgrunnsprosess, kan alltid stoppes ved at du trykker på terminalens interrupttast delete eller <Ctrl-C> (PC-konsollet).

For prosesser som går i bakgrunnen, hjelper det ikke å trykke på <Ctrl-C>, du må finne prosessnummeret (PID) og fjerne prosessen med kill-kommandoen. Bare systemadministrator kan stoppe prosesser eid av andre.

Kommandoen nohup fortsette prosesser etter utlogging
Kommandoen kill avslutte prosesser
Kommando: kill [-s signal] pid

kill -l [signal]

Funksjon: Avslutte unødvendige prosesser
Opsjoner: Se også Linux-man-sidene.
-s signal Spesifiser hvilket signal som skal sendes; signalet kan være et nummer eller navn.
-l Skriver ut en liste over signalnavn
pid Prosess-id-nummeret til prosessen

Prosess-id-nummer (PID) er prosessens identifikasjonsnummer. Med ps-kommandoen kan du finne de forskjellige prosessnumrene. Signalnummer avhenger av hva slags prosessor (arkitektur) maskinen din har. Eksempel:

[david@nittedal david]$ kill -l

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL

5) SIGTRAP 6) SIGIOT 7) SIGBUS 8) SIGFPE

9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2

13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD

18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN

22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO

30) SIGPWR

Et alternativ er å sjekke filen: /usr/include/linux/signal.h. Her er en forklaring på noen av signalnumrene:

Signalnr. Beskrivelse Signalnr. Beskrivelse
1 hangup 2 interrupt
3 quit 4 illegal instruction
5 trace trap 6 IOT instruction
7 EMT instruction 8 floating point exception
9 kill 10 bus error
11 segmentation violation 12 bad argument to system call
13 write on a pipe with no one to read it 14 alarm clock
15 software (soft kill) 16 user defined signal 1
17 death of a child 18 power-fail restart

I mange tilfeller kan det være nødvendig å avslutte en prosess. Det kan for eksempel være bakgrunnsprosesser som har blitt startet med &-tegnet, og som aldri blir ferdig.

Den vanligste situasjonen er at du har en terminal som har hengt seg opp. Når en terminal har hengt seg, hjelper det ikke hva du enn trykker; terminalen tar ikke i mot tastetrykk.

Spesielt i forbindelse med kompleks skjermhåndtering kan en udefinert kontrollsekvens få terminalen til å henge seg opp. Har du en terminal som henger, kan du logge deg inn på en annen terminal (Ctrl, Alt og Funksjonstast<n>=gir deg et annet terminalvindu) med samme bruker-id og utføre ps-kommandoen. Kjenner du terminalnavnet på terminalen som henger, kan du for eksempel skrive

[david@nittedal david]$ ps t4

PID TTY STAT TIME COMMAND

425 4 S 0:02 /bin/login -- david

685 4 S 0:00 -bash

[david@nittedal david]$

Eller få en full status med:

[david@nittedal david]$ ps axl

Begge disse variantene vil gi deg prosess-id til den prosessen som henger. Prosessen avslutter du med kill-kommandoen.

Eksempler:

[david@nittedal david]$ kill -9 425

Avslutter prosess nummer 425. Du kan også avslutte brukerens skall:

[david@nittedal david]$ kill -9 685

Når du avslutter brukerens skall, må brukeren logge seg inn på nytt.

[david@nittedal david]$ kill -15 789

Avbryter prosess 789 med med signalnummer 15. Hvis signalnummer 15 ikke virker, prøv signalnummer 9:

[david@nittedal david]$ kill -9 1

Selv om du er systemadministrator (root), er det ikke mulig å drepe init-prosessen. Linux gir ingen feilmeldinger på denne kommandoen; det skjer rett og slett ikke noe som helst.

Se også: ps, bash, nice, renice, pstree

Endre prioriteten på en prosess – nice[rediger]

Ved å øke prioriten til en prosess, vil prosessen få en større del av CPU-fordelingen, og dermed går prosessen raskere. Redusert prioritert gjør at prosessen får en mindre del av CPU-fordelingen, og dermed går prosessen tregere.

Jo høyere prioritetsnummer, jo lavere blir prioriteten til prosessen. Prioriteten på en kommando angis med tall fra -20 (høyest) til 19 på alle Linux-baserte systemer. På større Unix-systemer angis prioriteten med tall fra -120 til 120. Standard prioritetsverdi er 0.

Vanlige brukere kan bare minske prioriteten på et program og ikke øke den. For å minske prioriteten adderes en verdi til prioritetstallet. Systemadministrator kan kjøre programmer som har høyere prioritet enn normalt, ved å bruke to negative tegn, for eksempel vil --10 gi en nice-verdi på 10, som er en høyere pritoritet enn 0 som er standard.

Kommandoen nice - endring på prosessprioritet
Kommando: nice [-n justering] [-justering] [--justering] kommando [argument]
Funksjon: Forandrer prioriteten på en prosess ved å legge en verdi til prioritetsnummeret
Opsjoner: Se også Linux-man-sidene.
justering Her kan du skrive en differanseverdi eller en justering som er positiv eller negativ [-20..19]. -20 er høyeste prioritering og 19 er den laveste.
Kommando: Her skriver du navnet på programmet som skal endre prioritet.
Argument: Argument til programmet ditt

Eksempler:

[david@nittedal david]$ nice -15 /usr/bin/linux_machine

Systemet vil legge 15 til den opprinnelige verdien på prioritetsnummeret. Det nye prioritetsnummeret for programmet linux_machine blir 0+15=15.

[david@nittedal david]$ nice /bin/calc/numeric

Her angir du ikke noe tall, verdien blir da økt med 10. Den nye verdien blir 0+10=10.

[root@nittedal root]$ nice --10 /bin/c-make

Her starter systemansvarlig et program (c-make). Han trekker 10 fra den opprinnelige prioriteringsverdien på 0. Nytt prioritetsnummer blir dermed 0-10=-10. Programmet /bin/c-make vil dermed kjøres med høyere prioritet enn vanlig.

Med kommandoen renice har du muligheten til å endre prioriteten på en prosess som kjører. Du kan endre prioriteten fra -20 til +20. Syntaksen er lik nice-kommandoen. Under har jeg et eksempel.

[root@nittedal root]$ renice +20 230

I dette eksemplet reduserer jeg prioriteten på prosessen som har prosessnummer 230 med 20.

Se også: nohup, ps, pstree

Tidsforbruk – time[rediger]

Kommandoen time angir hvor lang tid Linux bruker på de forskjellige Linux-kommandoene og på dine egne programmer.

Kommandoen time - tidsforbruk
Kommando: time [argument]
Funksjon: Finner ut hvor lang tid Linux-systemet bruker for å utføre en kommando
Argument: Programmet som skal kjøres
Opsjoner: Se også Linux-man-sidene.

Når kommandoen er utført, får du vite forbrukt tid i sekunder på selve kommandoen; det betyr fra du startet kommandoen til resultatet med ledeteksten kom tilbake til skjermen.

   tid i sekunder som programmet bruker i Linux-systemet
   programmets (overhead) utnyttelse av CPU i sekunder 

Eksempel:

[david@nittedal david]$ time du /home/david

1 /home/david/.tin/.mailidx

1 /home/david/.tin/.index

4 /home/david/.tin

10 /home/david

0.10user 0.07system 0:00.18elapsed 91%CPU (0avgtext+0avgdata 0maxresident)k

0inputs+0outputs (85major+14minor)pagefaults 0swaps

[david@nittedal david]$

Her får jeg vite det totale blokkforbruket fordelt per katalog og tidsforbruket på utføringen av kommandoen. Det første tallet gir brukerbelastningen (0,1 sekunder), andre tallet gir systembelastningen, det tredje tallet er totaltiden med CPU-belastningen (91 % i et intervall på 0,0018). De siste parameterene gir meg swap-belastingen (Linux bruker paging). Du kan se av tallene at swap-belastningen er lik null.

Faste bakgrunnsjobber – crontab[rediger]

Med Linux har du muligheten til å kjøre mange forskjellige typer bakgrunnsjobber som kan kjøres på bestemte tidspunkter. Jeg bruker her crontab-kommandoen til å manipulere mine faste jobber. Eksempler på jobber kan være oppdatering av loggfiler, fjerning av midlertidige filer, kjøring av bestemte e-post-lister, osv.

Dine faste jobber blir lagret i din egen katalog under /var/spool/cron/crontabs. Det er cron-prosessen crond som leser disse faste jobbene og starter programmene på spesifisert tid.

Kommandoen crontab oppdatere jobb-fil
Kommando: crontab [-l] [-r] [-e] [fil]
Funksjon: Oppdatere jobbfil (faste jobber)
Opsjoner: Se også Linux-man-sidene.
fil Navnet på jobb-filen som blir installert
-l Lister en crontab-fil
-r Fjerner din crontab-fil
-e Redigerer en crontab-fil ved å starte standard editor

Hver jobblinje i crontab-filen har seks felt. Alle feltene blir separert med mellomrom, taber eller begge deler.

Felt Beskrivelse
1 minuttet programmet skal kjøres
2 Timen programmet skal kjøres
3 Dagen i måneden programmet skal kjøres
4 Måneden programmet skal kjøres
5 Ukedag programmet skal kjøres (søndag er 0, mandag 1, etc.)
6 Programmet som skal kjøres

Tidsfeltene kan bestå av en kommaseparert liste eller * for å indikere hver eneste periode, f.eks hver time, hver uke, hver måned etc. Du kan legge til kommentarlinjer til crontabs-filen din etter #.

Anta at du har et program (ftp_data_hjemmeside) som skal oppdatere hjemmesiden din på Internett med noen data (bilder, lyd etc.), fire ganger i døgnet alle hverdager. Har du skriptet ferdig, kan crontab enkelt settes opp til å løse den faste jobben.

Eksempel:.

55 6, 12, 18, 23 * * 1-5 ftp_data_hjemmeside

Du ønsker at det skal tas sikkerhetskopi på bånd av Linux-systemet hver natt hele uka. Se eksemplet under:

55 23 * * 0-6 backup_hverdag

Hvis programmet i crontab resulterer i tekst ut til skjerm, og du ikke har overstyrt det til fil eller skriver, vil du automatisk få resultatet i form av e-post.

Du vil finne alle crontab-filene i katalogen /var/spool/cron/crontabs. Er brukernavnet ditt olav, vil du finne crontab-filen din på /var/spool/cron/crontabs/olav.

Root er /var/spool/cron/crontabs/root. Er du logget inn som root, kan du lett addere, redigere eller fjerne bruker-id-er til crontab-kommandolisten.

Hvis du ønsker å sette opp faste bakgrunnsjobber fra GNOME eller KDE grensesnittet er det bare å starte opp kcron-programmet ([root@nittedal /root]# kcron &). Eller du kan trykke på GNOME-knappen, Systemverktøy og Task Scheduler.

Oppgaver til kapittel 11[rediger]

Oppgave 11.1

Hva er forskjellen mellom en forgrunnsprosess og en bakgrunnsprosess?

Oppgave 11.2

Hvilke prosesser går nå? Se hvilke prosesser du er eier av, og finn hvilke prosesser som er foreldre til dine prosesser.

Oppgave 11.3

Start en bakgrunnsprosess, for eksempel med: sleep 500 &, og logg deg ut og deretter inn igjen. Går prosessen fortsatt? Prøv det samme med nohup sleep 500 &.

12: Linux og editorer[rediger]

Linux-editorer[rediger]

Til Linux-maskinen finnes det mange forskjellige teksteditorer tilgjengelig, inkludert vi, ex, pico, jove, joe, GNU Emacs og Lucid Emacs. Denne siste varianten finnes også som en X-Window- applikasjon. Emacs støtter et komplett LISP-basert makrospråk og tolker en kraftig kommando-syntaks. Du vil finne Emacs-makropakker, som gir deg muligheten til å lese elektronisk post og nyheter fra Emacs.

Vi-editoren er den enkleste og finnes på alle Linux- og Unix-versjoner. Jeg har derfor i dette kapitlet konsentrert meg om den.

Linux og tekstbehandling[rediger]

Det finnes mange forskjellige tekstbehandlingssystemer tilgjengelig for Linux. Jeg kan blant annet nevne textinfo, TeX, groff GNU, AbiWord, KWord, Kile, OpenOffice (Writer), Open-Office/!StarOffice (Writer) og Corel Office (Wp) og Libreoffice.

I Linux-verdenen vil vi-editoren og Emacs-editoren bare brukes til å få teksten inn. Deretter må forfatteren selv sette på forskjellige type-settings-språk, som beskriver hvordan tekst skal formateres. Når kildeteksten er komplett, kan du formatere teksten med et separat program. Dette programmet konverterer orginalteksten til et format som passer for utskrift. Unntaket er derimot WP fra Corel, StarOffice og OpenOffice; her slipper du å bruke noe type-settingsspråk, teksten er ferdig formatert. Det du ser er det "samme" som du får ut på skriveren. (What you see is what you get.) WP fra Corel var tidligere markedsleder i PC-verden. I dag finner du den på flere Unix-dialekter. Den følger også med på mange Linux-demoCDer. Andre eksempler på moderne tekstbehandlingspakker under Linux er AbiWord, KWord, OpenOffice og StarOffice.

GNU versjonen Groff er basert på tekstformatereren nroff, som først ble utviklet av Bell Labs. I mine dager på Blindern brukte jeg det moderne og komplekse tekstbehandlingssystemet TeX. Dette systemet er utviklet av Donald Knuth. En annen dialekt av TeX, er LaTeX, som også er tilgjengelig for Linux.

Tekstbehandlingssystemet texinfo er en utvidelse av TeX, som brukes av Free Software Foundation til dokumentasjon av forskjellig Linux- og Unix-programvare.

Editoren vi[rediger]

Tekst og programfiler[rediger]

Vi er en enkel teksteditor hvor du kan skrive, rette og redigere tekst. Du kan også bruke vi til å lage kommandofiler (batchfiler, skriptfiler). Kommandoene i vi kan deles i tre grupper: skjermmodus, innsettingsmodus (tekstmodus) og kommandomodus.

Skjermmodus[rediger]

Når du starter vi, kommer du alltid i skjermmodus. Er du usikker på hvilken modus du er i, kan du trykke ESC som bringer deg tilbake til skjermmodus. Trykker du ESC når du er i skjermmodus, skjer ingenting. Du hører bare et pip. I denne modusen kan du flytte omkring i dokumentet, søke etter ord og bytte ut ord. Du kan også lagre et dokument eller avslutte vi.

Innsettingsmodus[rediger]

For å skrive tekst eller gjøre endringer i filen må du være i innsettingsmodus. Innsettingsmodus kalles også ofte innskrivingsmodus, insertmodus eller tekstmodus. Du kan gå fra skjermmodus til innsettingsmodus med følgende kommandoer:

Innsettingskommando Beskrivelse
i (insert) Du kommer i innsettingsmodus der markøren står
I (insert) Går i innsettingsmodus i begynnelsen av linjen
a (append) Går i innsettingsmodus etter markørens posisjon
A (append) Går i innsettingsmodus i slutten av linjen
o (open) Går i innsettingsmodus på en åpen linje under den linjen der markøren står
O (open) Går i innsettingsmodus på en åpen linje over den linjen der markøren står
r (replace) Går i innsettingsmodus bare for det tegnet som står i markørposisjonen
R (replace) Går i innsettingsmodus (overskrivingsmodus) for resten av den linjen markøren står på

Kommandomodus[rediger]

Du kommer fra skjermmodus til kommandomodus ved å trykke : (kolon). Det vil da stå et : nederst til venstre på skjermen. Dette er tegnet på at du er i kommandomodus. I kommandomodus kan du få utført følgende kommandoer:

Kommando Beskrivelse
x Oppdaterer filen og går ut av vi
w argument Lagrer filen med navnet argument; argument er et filnavn
q Avslutter uten å lagre
q! Avslutter uten å lagre selv om filen er endret
wq Lagrer filen og avslutter vi
n Går til linje nummer n
dn Fjerner n linjer fra der markøren sto
r filnavn Leser filen med navnet filnavn
w filnavn Skriver filen med navnet filnavn

Skal du addere tekst fra andre filer, kan du gjøre det i kommandomodus.

Eksempel:

r Linuxbok-kap1

Figur 12.1: Forskjellige moduser i vi.

Lage en tekstfil[rediger]

Starte vi[rediger]

Du starter vi ved å gi kommandoen vi med et filnavn som argument. For å opprette en tekstfil med navnet tekst1, gir du kommandoen

[david@nittedal david]$ vi tekst1

Du får nå en tom skjerm der du kan skrive inn tekst. En ~ (tilde) til venstre i skjermen viser at du er i skjermmodus.

Skrive tekst[rediger]

Du kommer i innskrivingsmodus ved å gi kommandoen i.

Du kan nå skrive inn tekst. Skriv for eksempel:

Linux inneholder editorprogrammet vi. Denne kalles også en skjermeditor, fordi du kan arbeide med et dokument som kan fylle hele skjermen. Det kan også være så stort at det ikke får plass på skjermen.

Da vises bare en del av dokumentet.

Lagre filen[rediger]

For å lagre filen og gå ut av vi, gjør du slik:

   Gå til skjermmodus ved å trykke ESC.
   Avslutt vi ved å trykke ZZ (husk stor Z). 

Filen blir nå lagret med navnet tekst1, og vi avsluttes. Du er tilbake i skallet og får skall-ledeteksten på skjermen. Et alternativ er å lagre filen med kommandoene x og w når du er i kommandomodus. Vil du ikke lagre, kan du bruke kommandoen q! når du er i kommandomodus.

Starte vi[rediger]

Du kan starte vi på flere måter.

Kommandoen vi skjermeditor
Kommando: vi [opsjon] [argument]
Funksjon: Fullskjermseditor som brukes til å lage/endre tekstfiler
Argumenter: Navnet på filen som skal lages eller redigeres (redigeres)
Opsjoner: Se også Linux-man-sidene.

Kommandoen vi uten opsjon eller argument gjør at du lager et nytt dokument. Teksten du skriver blir lagret i maskinens arbeidsminne. Når du har skrevet teksten, kan du lagre den med et filnavn som du gir når du lagrer.

Eksempler:

[david@nittedal david]$ vi TilBillGates

Henter inn filen TilBillGates slik at du kan redigere den. Hvis det ikke finnes noen fil med dette navnet, vil det bli opprettet en som heter TilBillGates når du lagrer teksten du har skrevet.

[david@nittedal david]$ vi +20 notat1

Filen notat1 blir hentet for editering. Markøren står på linje 20.

[david@nittedal david]$ vi + notat2

Filen notat2 blir hentet for editering. Markøren står på siste linje.

[david@nittedal david]$ vi +/mat notat3

Filen notat3 blir hentet for editering. Markøren står på den første linjen som inneholder teksten mat.

[david@nittedal david]$ vi -r notat4

Henter filen notat4 inn for editering. Opsjonen -r brukes når en tidligere editering er blitt avbrutt på ureglementert måte, for eksempel ved et strømbrudd.

Flytte markøren[rediger]

For å flytte markøren i en fil, må du først være i skjermmodus. Trykk ESC. Du kan bruke følgende kommandoer for å flytte markøren:

Flytte markøren Beskrivelse
h en posisjon til venstre
l en posisjon til høyre
j ned en linje
k opp en linje
0 til begynnelsen av linjen
$ til slutten av linjen
b til ordet foran
w til ordet etter
e til slutten av ordet
( til begynnelsen av setningen
) til slutten av setningen
H til toppen av skjermen
L til bunnen av skjermen
G til bunnen av filen
nG til linje nummer n
"<Ctrl-u>" et skjermbilde oppover (12 linjer)
"<Ctrl-d>" et skjermbilde nedover (12 linjer)
"<Ctrl-f>" en side ned (25 linjer)
"<Ctrl-b>" en side opp (25 linjer)

Slette tekst[rediger]

For å slette tekst må du være i skjermmodus. Plasser først markøren der du vil slette tekst. Du kan bruke følgende kommandoer til å slette tekst:

Kommando Beskrivelse
x tegnet der markøren står
2x tegnet der markøren står og tegnet til høyre
xxxx tegnet der markøren står og tre tegn til venstre
dw ordet markøren står i
7dw ordet markøren står i og seks ord til høyre
dd linjen markøren står i
3dd linjen markøren står i og to linjer under til høyre
D fra markøren og ut linjen

I tre av kommandoene står det tall (2, 7 eller 3). Ved å sette inn andre tall, kan du slette et annet antall tegn, ord eller linjer.

Gjenopprette sletting[rediger]

Du kan gjenopprette siste sletting med kommandoen

u

Hvis du har gjort flere slettinger på en linje, kan du gjenopprette hele linjen med kommandoen

U

Skrive mer tekst

For å skrive mer tekst i en fil, må du være i innsettingsmodus. Når du går fra skjermmodus til innsettingsmodus, kan du samtidig plassere markøren på et ønsket sted. Kommandoene for å gå til innsettingsmodus er forklart tidligere i dette kapitlet.

Nå kan du skrive den nye teksten. Det du skriver blir plassert der markøren står. Teksten til høyre for markøren forskyves.

For å skifte linje, trykk Enter.

Du går ut av innsettingsmodus ved å trykke ESC

Flytte tekst

Du flytter tekst ved først å slette teksten, og så gjenopprette teksten på et annet sted i dokumentet. Du har følgende kommandoer for å gjenopprette slettet tekst:

p Den sist slettede teksten blir plassert etter markøren.

P Den sist slettede teksten blir plassert før markøren.

Du kan bruke alle slettekommandoene som er gjennomgått tidligere i dette kapitlet. Som et eksempel viser jeg hvordan du flytter fem linjer fra og med den linjen der markøren står. Du gjør slik:

   Gå til skjermmodus ved å trykke ESC.
   Flytt markøren til den første av de fem linjene du skal flytte.
   Slett de fem linjene ved å taste 5dd.
   Flytt markøren til det stedet der du vil ha linjene inn igjen.
   Sett de fem linjene inn ved å taste p.
   Linjene blir plassert etter der markøren står. 

Hvis du i stedet skulle flyttet tre ord, ville du i punkt 3 brukt slettekommandoen 3dw

Kopiere tekst[rediger]

Du kopierer tekst ved å først kopiere den ønskede teksten inn i et mellomlager (buffer). Så flytter du markøren til det stedet teksten skal kopieres og henter den fram med kommandoene p eller P. Du har følgende kommandoer for å kopiere tekst inn i bufferen:

Y Linjen markøren står i kopieres.

   3Y Linjen markøren står i og de to etterfølgende linjene blir kopiert. På samme måte kan du kopiere et annet antall linjer ved å sette inn et annet tall i stedet for 3. 

Følgende eksempel viser hvordan du kopierer 2 linjer.

   Gå til skjermmodus ved å trykke ESC.
   Flytt markøren til den første av de linjene du vil kopiere.
   Lagre de 2 linjene i bufferen ved å taste 2y.
   Flytt markøren dit du vil sette inn de kopierte linjene.
   Sett inn linjene ved å taste p.
   De 2 linjene blir satt inn på stedet etter der markøren sto. 

Søke etter tekst[rediger]

Kommandoen for å søke etter tekst, er /argument

Argumentet er den teksten du skal søke etter. Du kan søke etter en tekst fra der markøren står og framover eller bakover i dokumentet. Husk at du må være i skjermmodus.

Søke framover[rediger]

For å søke etter teksten Linux gjør du slik:

   Gå til skjermmodus ved å trykke ESC.
   Skriv /Linux.
   Trykk Enter.
   Markøren flytter seg til første forekomst av ordet Linux. 

Hvis du skal søke flere ganger etter samme tekst, kan du gjenta siste søking ved å trykke n.

Søke bakover[rediger]

For å søke bakover bruker du kommandoen ? i stedet for /. Ellers gjør du på samme måte som når du søker forover i teksten; dvs. at du i punkt 2 i stedet for /Linux skal skrive ?Linux.

Søk og erstatt[rediger]

I kommandomodus kan du søke etter en bestemt tekst og erstatte den med en annen med følgende kommando: g/s1/s//s2/g

Den første g'en er selve kommandoen som forteller at vi skal bytte ut tekst, s1 er teksten som skal byttes ut og s2 er den nye teksten. Bokstaven s (som står for substitutes) forteller oss at teksten s1 skal byttes ut med teksten s2.

Den siste g'en betyr at teksten s1 skal byttes globalt gjennom hele dokumentet. Tar vi ikke med den siste g'en, vil bare den første tekststrengen s1 i dokumentet bli byttet ut med s2.

   Som et eksempel skal jeg vise hvordan du skifter ut ordet Linux med ordet Open. Du gjør slik:
   Gå til skjermmodus ved å trykke ESC.
   Gå til kommandomodus ved å trykke :
   Skriv g/Linux/s//Open/g.
   Trykk Enter.
   Søkingen og erstatningen gjennomføres, og alle forekomster av Linux blir erstattet med Open 

Ønsker du å se hvor det byttes ut tekst i dokumentet, kan du skrive:

g/data/s//edb/gp (p=page=side)

Husk at du må være i kommandomodus.

Hente fil for editering[rediger]

Når du har startet vi, kan du lese en fil for å redigere den. Du gjør slik:

   Gå til skjermmodus ved å trykke ESC.
   Skriv :e notat7.
   Trykk Enter.
   Filen notat7 hentes inn, og du kan redigere denne. 

Du kan også lese inn en fil med kommandoen r i stedet for e. Med r kan du sette en fil inn i en eksisterende tekst. Den innleste filen vil plassere seg fra der markøren står og utover. Teksten bak markøren vil forskyves. I eksemplet over vil da kommandoen i punkt 2 se slik ut:

r notat7

Lagre og avslutte[rediger]

For å lagre og avslutte en fil må du være i kommandomodus. Du går til kommandomodus fra skjermmodus ved å trykke : (kolon). Du har følgende kommandoer til å lagre og/eller avslutte redigeringen av en fil:

Kommando lagre/avslutt Beskrivelse
w Lagrer filen med samme navn som den ble lest inn med
w argument Lagrer filen med navnet argument; argument er et filnavn
q Avslutter uten å lagre
q! Avslutter uten å lagre selv om filen er endret
wq Lagrer filen og avslutter vi
ZZ Lagrer filen og avslutter vi

Kommandoen ZZ kan bare gis fra skjermmodus.

Utskrift[rediger]

Du kan ta utskrift av en fil som er laget med vi, på den måten som forklares i kapittel 14. vi inneholder ingen spesielle kommandoer for utskrift.

Makrodefinisjoner[rediger]

For å lette editeringsarbeidet i vi kan du lage makroer i en oppstartsfil som man kaller .exrc. Makrodefinisjoner gjør det mulig å omdefinere en tast til en kommandosekvens eller tekststreng. Oppstartsfilen .exrc må ligge i brukeres hjemmekatalog eller i den katalogen hvor vi-programmet blir startet opp. Map-kommandoer kan også defineres direkte når du er i vi's kommandomodus.

map- og unmap-kommandoene

For å kunne omdefinere taster bruker vi map-kommandoen. Syntaksen er: map [tast] [kommando/tekststreng]

Eksempel på bruk fra vi-editoren:

map #0 Linux er bedre enn WINDOWS

Hver gang du trykker på funksjonstast F1 (når du er i innsettingsmodus), vil teksten “Linux er bedre enn WINDOWS" komme i dokumentet.

map q & w! temp<Ctrl-v><CR>

Hver gang du trykker på tasten q, vil filen som er under redigering, lagres i filen temp.

Vil du nullstille en tast når du er i vi-editoren, kan dette gjøres med umap-kommandoen. For eksempel:

unmap #0

nullstiller funksjonstast F1.

unmap *

nullstiller tasten *.

Eksempel på .exrc-fil:

map #0 r F1 erstatter et tegn.

map #1 l F2 flytter markøren til høyre.

map #2 j F3 flytter markøren ned en linje.

map #3 k F4 flytter markøren opp en linje.

map #4 dd F5 fjerner linjen markøren peker på.

map #5 x F6 fjerner tegnet markøren peker på.

map #6 R F7 skriver over tekst.

map #7 i F8 er innsettingsmodus.

map #8 u F9 er angretast.

Skal du prøve eksemplet ovenfor, skriver du bare det som står i venstre kolonne, resten er kommentarer.

Første posisjon etter map-kommandoen peker til tasten som skal defineres. #0 til #8 refererer til funksjonstast F1 til F9 på et PC eller PS/2-tastatur. Trykker du på funksjonstast F1 når du er i skjermmodus, vil du gå inn i innsettingsmodus bare for det tegnet som står i markørposisjonen. Er du i innsettingsmodus og trykker på funksjonstast F1, vil du få inn en liten r på skjermen.Trykker du på funksjonstast F2 når du er i skjermmodus, vil markøren flytte til høyre osv. Skal du jobbe med programutvikling med språket C, kan følgende .exrc-fil passe i din $HOME/C-katalog.

map #1 #include <stdio.h>

map #2 #include <curses.h>

map #3 #include <signal.h>

map #4 main()

Når du her trykker på funksjonstast F2, vil teksten #include <stdio.h> komme inn på den linjen som markøren står på. Det forutsetter at du er i innsettingsmodus. På de andre funksjonstastene vil det komme andre tekststrenger.

Forskjellige set-parametere[rediger]

Forskjellige omgivelsesparametere kan også plasseres i .exrc-filen. De viktigste er:

set viser de parameterne som er satt i vi

set ai setter autoinnrykk

set noai sletter autoinnrykk

set bf neglisjerer spesielle kontrolltegn

set nobf godtar alle kontrolltegn

set dir spesifiserer hvor vi's bufferområde skal ligge

set nu viser linjenummer på alle linjer

set nonu viser ikke linjenummer

set window=30 setter vindusstørrelsen til 30 linjer

set wm=8 setter høyremarg til 8 tegn

set wm=0 setter høyremarg til standard (0 tegn)

Alle disse set-parameterne kan også defineres direkte når du er i kommandomodus, for eksempel:

set nu

Her får du linjenummer på alle linjene i filen, noe som er spesielt nyttig når du driver med programutvikling.

Eksempel på oppsett av .exrc med map og set:

set nu

set wm=4

map #0 r

map #1 l

map #2 j

map #3 #include <signal.h>

map #4 main()

map #5 Boken kommer fra IDG Norge Books AS

I dette eksempelet setter jeg først linjenummer på alle linjer. Deretter definerer jeg høyremargen til posisjon 4. Funksjonstast F1, F2 og F3 blir definert til forskjellige kommandoer i vi. F4 og F5 gir forskjellig tekststrenger som kan være nyttige i forbindelse med C-programmering. Siste linje (F6) gir oss tekststrengen “Boken kommer fra IDG Norge Books AS".

Vi – en oppsummering[rediger]

Figur 12.2 vi - en oppsummering

Ønsker du å vite mer om vi, kan du sjekke adressen:

ftp://ftp.uib.no/pub/vi/docs/innforing.Z

Oppgaver til kapittel 12[rediger]

Oppgave 12.1

Bruk hjelpefunksjonen man til å finne ut mer om vi. Hvilke tre moduser kan du bruke i vi?

Oppgave 12.2

Start vi. Skriv inn teksten: Dette er mitt første forsøk på å bruke teksteditoren vi. Når du har skrevet teksten, skal du lagre den. Lagre denne teksten med navnet OppgaveVI og avslutt vi. Nevn tre måter å lagre et dokument i vi på. Nevn to måter å gå ut av vi på uten å lagre.

Oppgave 12.3

Hent inn teksten du laget i oppgave 12.3. Øv deg på å flytte markøren, slette tekst og sette inn ny tekst. Prøv så å flytte og kopiere tekst.

Oppgave 12.4

Skriv inn en lengre tekstfil med vi. Prøv deretter:

   a) Globalt søk både fremover og bakover i filen b) Globalt søk og erstatt på forskjellige ord 

Oppgave 12.5

Lag en .exrc-fil som definerer dine 6 mest brukte vi-kommandoer på funksjonstastene F1 til F6. Legg deretter til set-kommandoene

set window=10

set ai

set nu

i .exrc. Sjekk at .exrc-filen blir initiert når du starter opp vi.

13: Linux-verktøy[rediger]

Jeg kaller programmer som produserer et resultat for et verktøy. Det finnes to verktøytyper:

   * spesifikke verktøyprogrammer
   * fleksible verktøyprogrammer 

Videre i dette kapitlet skal vi se på de fleksible verktøyprogrammene. Disse kan utføre mange oppgaver som ligner hverandre. Verktøyprogrammene har et stort utvalg av opsjoner og kan brukes i forskjellige kombinasjoner. Ved å kombinere forskjellige verktøyprogrammer kan du utføre mange komplekse oppgaver.

De fleste verktøyprogrammene arbeider med tekst. En viktig egenskap er at verktøyprogrammene kan brukes som filtre.

I dette kapitlet har jeg tatt med noen eksempler på de mest populære verktøyprogrammene.

Innholdet i en fil – more[rediger]

Linux-kommandoen more gjør nesten det samme som cat-kommandoen, med den forskjell at more stopper for hvert nytt skjermbilde og venter på at du skal gi en kommando for å gå videre. Kommandoen more er ikke noe fleksibelt verktøyprogram, men brukes i mange tilfeller sammen med forskjellige andre verktøyprogrammer.

Kommandoen more innhold i fil(er)
Kommando: more [-an.l] [opsjon] [+linjenr] [+/<mønster>] fil …
Funksjon: Se på innholdet i én eller flere filer
-an.l (an.l = antall linjer) setter antall linjer i skjerm-bildet; dette er det samme som vindustørrelse
Linjenr: (linjenr = linjenummer) Her definerer du fra hvilken linje utskrivingen til skjermen skal begynne.
Fil: Kan være filer eller kataloger
Opsjoner: Se også Linux-man-sidene.
-c Forhindrer skrolling på skjermen, fjerner gammel linje når det skrives over med en ny linje

Når du bruker more, vil det etter utskriving av et skjermbilde stå “more" nederst på skjermen. Kommandoen more venter da på en kommando fra brukeren. Ønsker du å rulle skjermbildet videre, kan du trykke på mellomromstasten.

Nedenfor har jeg en oversikt over de mest brukte kommandoene i more:

Kommandoer i more Beskrivelse
h viser et hjelpebilde
mellomromstasten viser neste bilde
Enter-tasten viser neste linje
"<n>f" hopper n skjermbilder framover
"<n>s" hopper n linjer framover
/<mønster> søker etter teksten mønster
!<kommando> utfører Linux-kommando (starter et skall)
q går ut av more

Eksempler:

[david@nittedal david]$ more /etc/termcap

Viser innholdet av filen /etc/termcap med ett skjermbilde om gangen. Ved å trykke på mellomromstasten, får du se det neste skjermbildet.

[david@nittedal david]$ more *.c

Viser alle filene som har endelse .c.

[david@nittedal david]$ ps ex | more

Viser prosessoversikt, med ett skjermbilde om gangen.

[david@nittedal david]$ more -12 /etc/passwd

Viser innholdet av filen /etc/passwd. Skjermen er satt til en vindustørrelse på 12 linjer.

[david@nittedal david]$ more +15 /etc/hosts

Her får jeg en utskrift av filen /etc/host fra linje 15.

[david@nittedal david]$ more -12 +25 datafil

Her vil utskriften begynne fra linje 25 i filen datafil, og vindustørrelse på hvert skjermbilde er satt til 12 linjer.

[david@nittedal david]$ more +/vt220 /etc/termcap

Her vil utskrivingen starte 2 linjer før linjen med teksten vt220 dukker opp første gang i filen /etc/termcap.

Alternativ til more – less[rediger]

Et annet Linux-filter som er en variant av more, er less. Denne kommandoen gjør det samme som more, men har noen flere opsjoner.

Kommandoen less innhold av fil (er)
Kommando: less -h [-p tekstmønster] fil …
Funksjon: Se på innholdet av én eller flere filer
Fil: Kan være én eller flere filer
Opsjoner: Se også Linux-man-sidene.
--help less' hjelpeside
-p tekstmønster Viser deg filen fra det spesifiserte tekstmønstret

Eksempler:

[david@nittedal david]$ less -p Linux operativsystem_rapport

Her vil less vise siden hvor den finner første referanse til tekststrengen Linux i filen operativsystem_rapport.

[david@nittedal david]$ less --help

Her vil less gi deg en oversikt over alle opsjoner.

Sortere data – sort[rediger]

Hver linje som skal sorteres, kan bestå av tall, enkeltord eller en hel serie med ord og tall. Linjen er delt opp i felt som er atskilt med mellomrom, eller med andre tegn som du selv velger.

Sorteringen kan være i stigende eller synkende rekkefølge. Du kan fritt velge om sorteringen skal være numerisk eller alfanumerisk. Du bestemmer sorteringsfelt og hvilke felter sorteringen skal baseres på. Fordi det finnes mange opsjoner, krever sort-kommandoen en del øvelse før du blir godt kjent med den.

Kommandoen sort sortering av tekst/data
Kommando: sort [-m] [-o fil] [-dfrnu] [-t separator] [+posisjon.1] [-posisjon.2] [filliste]

eller forenklet sort [opsjon] filnavn

Funksjon: Sorterer innholdet i én eller flere filer
Opsjoner: Se også Linux-man-sidene.
-m Samsortering av inngående filer
-d Bare bokstaver, tall, mellomrom og tabulator er signifikante; alfanumerisk sortering.
-f Ingen forskjell på små og store bokstaver; med denne opsjonen blir det ikke noe forskjell mellom Kong Olav og kong olav.
-n Sorterer de spesifiserte feltene numerisk
-r Sorterer i synkende (reverse) rekkefølge
-t Omdefinerer feltseparatoren til et annet tegn, for eksempel definerer -t: kolon som feltseparator.
-u Overser gjentatte linjer
-o fil Brukes hvis du ønsker å angi en resultat-fil


Eksempler:

[david@nittedal david]$ who | sort

david tty1 Jul 11 06:15

vigdis tty2 Jul 11 06:16

root ttyp0 Jul 11 06:15

Her blir resultatet av who-kommandoen sortert alfabetisk etter brukernavnet. Hvordan sort ordner rekkefølgen på bokstaver og tall, avhenger av tegnsettet på maskinen din.

Jeg lager en datafil for å vise mer bruk av sort-kommandoen:

[david@nittedal david]$ cat > datafil

Per David:220759:Gutt:6072.55.34567:Kreditkassen

Anne:040545:Jente:9190.10.34566:Oslo Banken

Nils Erik:010356:Gutt:9190.10.56543:Oslo Banken

<Ctrl-d>

Filen datafil består av fornavn, fødselsdag, kjønn, kontonummer og bank. Denne skal nå sorteres. : er feltskilletegn (separator).

[david@nittedal david]$ sort -t: datafil Anne:040545:Jente:9190.10.34566:Oslo Banken

Nils Erik:010356:Gutt:9190.10.56543:Oslo Banken

Per David:220759:Gutt:6072.55.34567:Kreditkassen

Filen ble her sortert etter det første feltet. : var definert som feltseparator.

[david@nittedal david]$ sort -f -t: navnliste Anne:040545:Jente:9190.10.34566:Oslo Banken

Nils Erik:010356:Gutt:9190.10.56543:Oslo Banken

Per David:220759:Gutt:6072.55.34567:Kreditkassen

Her blir innholdet av filen navnliste sortert på basis av første kolonne, med hensyn til separatortegnet : og uten hensyn til forskjellen mellom stor og liten bokstav.

Posisjonsparametere[rediger]

Notasjonen +posisjon.1 og -posisjon.2 begrenser sorteringsnøkkelen fra starten av posisjon 1 til slutten av posisjon 2. Tegnene i posisjon 1 og posisjon 2 er inkludert i sorteringsnøkkelen. Tar du ikke med sluttposisjonen (posisjon.2), blir sorteringsfeltet begrenset til feltet mellom posisjon.1 og slutten av den linjen som skal sorteres.

[david@nittedal david]$ sort -t: +2 datafil

Per David:220759:Gutt:6072.55.34567:Kreditkassen

Nils Erik:010356:Gutt:9190.10.56543:Oslo Banken

Anne:040545:Jente:9190.10.34566:Oslo Banken

Filen blir sortert etter det tredje feltet (kjønn).

[david@nittedal david]$ sort +1 -o sortdata datafil

[david@nittedal david]$ cat sortdata Anne:040545:Jente:9190.10.34566:Oslo Banken

Per David:220759:Gutt:6072.55.34567:Kreditkassen

Nils Erik:010356:Gutt:9190.10.56543:Oslo Banken

Her blir filen sortert etter det andre feltet. Feltet med mellomnavn blir felt nr. 2 fordi det ikke er angitt noen skilletegn. Resultatet blir lagt i filen sortdata.

[david@nittedal david]$ sort -n +1 -t: -o sortdata datafil

Nils Erik:010356:Gutt:9190.10.56543:Oslo Banken

Anne:040545:Jente:9190.10.34566:Oslo Banken

Per David:220759:Gutt:6072.55.34567:Kreditkassen

Filen blir sortert etter det andre feltet. Angitt skilletegn er : (kolon). Fordi jeg bruker n-opsjonen, får jeg en sortering basert på det numeriske innholdet i kolonne nummer 2. Resultat blir lagt i filen sortdata.

[david@nittedal david]$ sort -t: +1 -2 datafil

Her brukes det andre feltet til å sortere filen navnliste. Opsjonen +1 forteller oss at sorteringsfeltet er starten på andre felt i linjen. Tar du ikke med sluttposisjonen (posisjon.2) blir sorteringsfeltet begrenset til feltet mellom posisjon.1 og slutten av den linjen som skal sorteres

[david@nittedal david]$ sort -t: +2n -3 /etc/passwd

Her sorteres passordlisten (eksempel på passordliste). Det gir:

root:*:0:1:Superuser:/:

daemon:*:1:1:System daemons:/etc:

bin:*:2:2:Owner of system commands:/bin:

sys:*:3:3:Owner of system files:/usr/sys:

adm:*:4:4:System accounting:/usr/adm:

Passordfilen sorteres etter numerisk brukernavn, dette er tredje kolonne. Feltseparatorer er kolon.

Finne tekstmønster – grep[rediger]

Med grep-kommandoen kan du finne tegnmønstre i én eller flere filer. Er ikke annet angitt, blir resultatet sendt til skjermen. Kommandoen grep står for Global Regular Expression Print, den er egentlig en familie av kommandoer, bestående av grep, fgrep og egrep. Grunnen til at det finnes tre grep-kommandoer, er at hver av dem har sine fordeler og ulemper. Kommandoen grep bruker mindre plass enn egrep, men den er vanligvis også langsommere. Uttrykket fgrep står for fixed grep, og med denne kommandoen kan du bare finne faste strenger og ikke jokere. Uttrykket egrep står for extended grep; egrep er et mer avansert program enn de andre grep-kommandoene og kan ta mer komplekse uttrykk. Kommandoen grep trenger en del øvelse før du blir godt kjent med den.

Kommandoen grep finner en streng i én eller flere filer
Kommando: grep [-vcln] uttrykk [fil1 ...]
Funksjon: Finner en streng i én eller flere filer
Opsjoner: Se også Linux-man-sidene.
-c Angir antall linjer som inneholder tekststrengen
-i Store og små tegn får samme kode.
-l Bare navnet på filen(e) blir skrevet ut hvis tekststrengen finnes.
-n Alle linjer hvor grep finner tekststrengen, blir skrevet ut med linjenummer.
-v Skriver ut alle linjer som ikke inneholder tekststrengen
uttrykk: Tekststrengen du søker etter
fil1: Filnavn (ett eller flere) med eller uten jokere (*, ?, [ ])

Bruker du ingen opsjoner, men spesifiserer bare en tekststreng og et filnavn, vil grep finne og skrive ut alle linjer som inneholder tekststrengen.

NB! Har strengen flere ord, må tekststrengen stå i anførselstegn.

Eksempler:

[david@nittedal david]$ grep david filnavn

Her blir alle linjer i filen filnavn som inneholder ordet david skrevet ut på skjermen.

[david@nittedal david]$ grep -n Olav datafil

I dette tilfellet finner grep-kommandoen nummeret på linjen som inneholder tekststrengen Olav.

[david@nittedal david]$ grep -c Olav datafil

Gir antall linjer i filen datafil som inneholder mønstret Olav.

[david@nittedal david]$ grep -v Olav datafil

Gir alle linjer som ikke innholder mønstret Olav.

[david@nittedal david]$ grep -i Olav datafil

Fordi jeg bruker i-opsjonen, er det her ikke gjort forskjell på små og store bokstaver.

[david@nittedal david]$ grep -l ansi /etc/termcap /etc/termcap.old /usr/lib/terminfo/a/ansi

Her blir alle filene som inneholder mønstret ansi skrevet ut på skjermen.

[david@nittedal david]$ grep -n set *

Her søkes det gjennom alle filer etter tekststrengen set. Søker du etter uttrykk med spesialtegnene [, ], }, {, \, |, $ osv, kan du slå av spesialfunksjonen med en ' (apostroftegnet) på hver side av spesialtegnet.

[david@nittedal david]$ grep -n '\|' *

Bruker du norsk 7-bits ASCII-tegnsett, er | mappet til ø, \ til stor Ø, [ til stor Æ, osv. Det vanligste er å bruke 8-bits ISO-tegnsett, som jeg anbefalte i forbindelse med Linux-installasjonen.

[david@nittedal david]$ grep 'Ole' fil

Gir de linjene hvor tekststrengen Ole står alene.

[david@nittedal david]$ grep 'O..' fil

Gir de linjene som består av 3 tegn, der det første tegnet er O.

[david@nittedal david]$ grep '[Oo]le' fil

Gir de linjene som består av både Ole og ole.

[david@nittedal david]$ grep '[^o-z]le' fil

Gir ord som består av 3 tegn, som ikke starter på bokstavene o til z, men ender på le.

[david@nittedal david]$ grep ',$' fil

Finner alle linjer som ender med komma (,).

[david@nittedal david]$ grep -n '^$' fil

Finner alle tomme linjer.

[david@nittedal david]$ fgrep "david" datafil

Her søkes det etter tekststrengen david i filen datafil. Jeg bruker her fgrep i stedet for grep ettersom jeg har en fast tekststreng.

Sammen med egrep kan du bruke følgende regulære uttrykk:

Tekststreng Forklaring
tekststreng + En eller flere tekststrenger kan settes sammen.
tekststreng ? Tekststreng pluss et tegn
uttrykk2 Søker enten uttrykk1 eller uttrykk2

[david@nittedal david]$ egrep 'An+e' navnliste

Her søkes det gjennom filen navnliste etter tekststrengen Ane, Anne, Annne osv.

[david@nittedal david]$ egrep 'david | dave' navnliste

Her søkes det etter tekststrengen david eller dave i filen navnliste.

Finne filer – find[rediger]

Med find kan du finne en spesiell fil eller katalog i filsystemet. Med find kan du ha flere søkekriterier, blant annet navnet på filen (katalogen), inodenummer på filen, eieren av filen (katalogen), filens (katalogens) gruppetilhørighet, datoen, størrelsen etc. Er ikke noe annet angitt, blir resultatet sendt til skjermen.

Kommandoen find finner én eller flere filer (kataloger)
Kommando: find katalog kriteria [filnavn] kommando

eller forenklet find hvor hva hva-gjør-vi

Funksjon: Finner én eller flere filer (kataloger) som oppfyller bestemte kriterier definert med de forskjellige uttrykkene du kan bruke
Beskrivelse: Se også Linux-man-sidene.
-name fil Sant hvis filen(e) er identisk med filnavn
-user bruker Sant hvis filen(e) tilhører bruker
-group gruppe Sant hvis filen(e) tilhører gruppe
-size n Sant hvis størrelsen er n; n er antall blokker (en blokk=512 bytes).
-atime n Sant hvis filen har vært brukt for n dager siden
-exec cmd Utfører skallkommandoen cmd
-print Viser søkebane på skjermen

Bruker du ingen kriterier, vil ikke find-kommandoen gi noe resultat.

Fedorasøketterfiler.png

Figur 13.1: Bruk av GNOMEs søkeverktøy (Søk etter filer …)

Eksempler:

[david@nittedal david]$ find . -name brev -print

Punktumet (.) gjør at jeg søker i den katalogen som kommandoen blir utført fra. Kommandoen -name brev gjør at jeg søker etter filen med navnet brev. Kommandoen print gjør at resultatet blir sendt til skjermen.

[david@nittedal david]$ find / name Linuxbok -print

Søker fra root / og nedover hele filstrukturen etter filen Linuxbok. Hvis Linuxbok blir funnet, blir resultatet vist på skjermen.

[david@nittedal david]$ find / -user david -print

Søker etter alle filer som tilhører david.

[david@nittedal david]$ find / -atime +2 -print

Søker etter alle filer som har vært i bruk de siste to dagene.

[david@nittedal david]$ find . -size 0 -print

Søker etter alle filer som har null størrelse i den katalogen kommandoen blir utført.

[david@nittedal david]$ find / -name wp -exec ls -l {} \;

Søker etter alle filer med navnet wp. Hvis en fil med wp blir funnet, skal dette vises via kommandoen ls -l. Det er exec som utfører den angitte kommandoen ls -l. Tegnet {} står for filen som er ettersøkt, mens tegnet \; står for kommandoens avslutning. (Mer om disse operatorene finner du i kapittel 16.)

Til slutt tar jeg med et mer sammensatt eksempel.

[david@nittedal david]$ find / \( -name core -o -name "*.out" \) -atime +7 -exec rm {} \;

Her sletter jeg alle filer som har navnet core, og alle filer som har endelsen .out. Bare de filene som det ikke er lest eller skrevet til de siste syv dagene, blir slettet.

Finne filer - which & locate[rediger]

Med find kan du finne en spesiell fil eller katalog i filsystemet. Med find kan du bruke mange forskjellig søkekriterier. Ønsker du bare å lokalisere søkebanen til en fil eller katalog kan du bruke which-kommandoen

elboth@suselap:~/tmp> which xine

/usr/bin/xine

Husker du bare deler av filnavnet eller katalogen er det kommandoen locate du skal bruke.

elboth@suselap:~/tmp> locate cdroast

/opt/gnome/share/icons/gnome/32x32/apps/xcdroast.png

/opt/gnome/share/icons/gnome/48x48/apps/xcdroast.png

Denne kommandoen forutsetter at databasen updatedb er oppdatert på din Linux-maskin. Du har ikke 100% utbytte av denne kommandoen hvis du ikke oppdaterer databasen daglige eller på ukelig basis avhengig av hvor ofte du bruker PCen. Dette kan du løse ved at du har en cron-jobb (jobb som kjører i bakgrunnen på bestemte tidspunkter; se kapittel 11) som kjører dette automatisk for deg .

Klippe fil – cut[rediger]

Kommandoen cut brukes til å kutte ut vertikale deler av en fil. Denne kommandoen manipulerer på inputfiler og sender resultatet til terminalen. Du får mest bruk for cut ved behandling av data som er i tabulatorformat. Kommandoen cut er ikke standard i versjon 7 eller Berkeley-baserte Unix-systemer.

For å kunne bruke cut må du vite hvordan kolonnene er separert. Den greieste feltseparatoren er tab, men du kan også bruke andre tegn som separator, for eksempel : eller mellomrom.

Kommandoen cut kutter vertikalt i en tekstfil
Kommando: cut -c liste [fil1 fil2 ...]

cut -f liste [fil1 fil2 ...] eller cut -f liste [-d separatortegn] [fil1 fil2 ...]

Funksjon: Kutter vertikalt i en tekstfil
Beskrivelse: Se også Linux-man-sidene.
-c liste Listen etter -c spesifiserer en tegnposisjon, for eksempel betyr -c1-72 at det bare blir kopiert fra tegnposisjon 1 til 72.
-f liste Feltliste, for eksempel -f1,7, betyr at bare første og syvende kolonne blir kopiert.
-d separatortegn Tegnet som etterfølger -d, er feltseparator.


Eksempler:

[david@nittedal david]$ cut -f2,5 -d":" datafil

Tar ut felt 2 og 5 i filen datafil. Feltseparator er : (kolon).

Dette gir:

220759:Kreditkassen

040545:Oslo Banken

010356:Oslo Banken

[david@nittedal david]$ cut -c1-3 datafil

Gir de tre første tegnene i første kolonne i filen datafil.

Per

Ann

Nil

[david@nittedal david]$ cut -d: -f1,5 /etc/passwd

Her tar jeg ut brukernavn og bruker-id-nummer fra filen /etc/passwd.

[david@nittedal david]$ navn=who am i | cut -f1 -d" "

Her tar jeg ut brukernavnet mitt.

Flette filer – paste[rediger]

Kommandoen paste brukes til å manipulere vertikale deler av tekstfiler. Du får mest bruk paste ved behandling av data som er i tabulatorformat. Kommandoen paste brukes til å flette inn flere filer vertikalt i en fil; paste manipulerer inputfiler og sender resultatet til terminalen.

Kommandoen paste er ikke standard i versjon 7 eller Berkeley-baserte Unix-systemer. For å kunne bruke paste må du vite hvordan kolonnene er separert. Den greieste feltseparatoren er tab, men hva som helst kan brukes.

Kommandoen paste flette filer
Kommando: paste [-s] [-d separatortegn] fil1 fil2 ...
Funksjon: Fletter flere filer vertikalt ved siden av hverandre
Beskrivelse: Se også Linux-man-sidene.
-d separatortegn Tegnet som etterfølger -d er feltseparator.
-s Omformer enkeltlinjer fra en enkelt fil

Eksempel med både cut og paste:

La oss separere fornavnene fra telefonlisten telefon.

Først lager jeg listen:

[david@nittedal david]$ cat >telefon

david 02453449

nils 02834896

ole 05749845

vigdis 07374758

geir 02549474

odne 02653433

Jeg bruker -f-opsjonen slik at det blir entydig hvilket felt det skal kuttes fra. Jeg kutter her ut første felt (fornavnene) i filen telefon og legger disse i filen fornavn:

[david@nittedal david]$ cut -f1 telefon >fornavn

Jeg ser så på innholdet i filen fornavn.

[david@nittedal david]$ cat fornavn

david

nils

ole

vigdis

geir

odne

Nå kan jeg bruke paste-kommandoen til å kombinere de vertikale tabellene. Jeg lager en ny fil som jeg kaller nyliste, hvor telefonnumrene kommer før fornavnene på hver linje. Kommandoen paste separerer automatisk de to kolonnene med en tab-karakter.

[david@nittedal david]$ cut -f1 telefon >navn

[david@nittedal david]$ cut -f2 telefon >tall

[david@nittedal david]$ paste tall navn >nyliste

[david@nittedal david]$ cat nyliste

02453449 david

02834896 nils

05749845 ole

07374758 vigdis

02549474 geir

02653433 odne

[david@nittedal david]$ rm tall navn

Fjerner filene tall og navn. Eksempler med paste-kommandoen:

[david@nittedal david]$ paste -d":" data1 data2 > data

Her setter jeg sammen kolonnene i filen data1 med kolonnene i filen data2. Den nye resultatfilen får navnet data. Jeg har definert : som kolonneseparator.

[david@nittedal david]$ ls | paste -d" " -

Lister innholdsfortegnelsen i én kolonne.

[david@nittedal david]$ ls | paste - - - -

Lister innholdsfortegnelsen i fire kolonner.

[david@nittedal david]$ paste -s -d"\t\n" navnfil

Her blir to linjer i filen navnfil til én enkel linje.

Se også: cut, grep, ls, rm

Unike linjer – uniq[rediger]

Ønsker du å fjerne gjentatte linjer i en fil, bruker du kommandoen uniq. Denne kommandoen leser fra innfil og sammenligner to linjer ved siden av hverandre. Hvis to linjer er like, blir den ene fjernet. Dette gjelder bare like linjer som ligger etter hverandre. I mange tilfeller kan jeg ha like linjer som er gjentatt forskjellige steder i en fil. For å ha muligheten til å fjerne alle like linjer, må jeg derfor først sortere filen.

Kommandoen uniq finner unike linjer i en fil
Kommando: uniq [-udc] [-felt] [+tegn] [innfil] [utfil]
Funksjon: Fjerner to like linjer som er plassert ved siden av hverandre i en fil
Opsjoner: Se også Linux-man-sidene.
-felt Her definerer du de første feltene som skal hoppes over før sammenligningen av linjer som kommer etter hverandre starter.
+tegn Her hoppes de første tegnene i hver linje over før sammenligningen av linjer som kommer etter hverandre starter. Har du først angitt et felt, vil uniq først hoppe over dette feltet før den hopper over enkelttegn.
-u Alle linjer som ikke er gjentatt, blir skrevet ut.
-d Alle de gjentatte linjene blir skrevet ut.
-c Opphever opsjonene -u og -d og viser antall gjentatte linjer

Uten opsjon vil uniq vise det samme resultat som om jeg hadde brukt både -u og -d.

Eksempler:

[david@nittedal david]$ sort datafil | uniq

Her blir filen datafil først sortert, deretter blir alle like linjer fjernet.

[david@nittedal david]$ sort datafil | uniq -c

Her blir antall gjentatte linjer vist på skjermen.

Se også: sort

Konvertere tekst – tr[rediger]

Med kommandoen tr kan du endre en tekst som er skrevet i en form til en annen form. Teksten leses inn fra standard inndata eller fra fil. Resultatet blir sendt til standard utdata hvis ikke annet er spesifisert.

Kommandoen tr konvertere datatekst
Kommando: tr [-cds] [streng1] [streng2]
Funksjon: bytter ut eller fjerner valgte tegn
Opsjoner: Se også Linux-man-sidene.
-c komplementer (inverterer) tegn gitt ved streng1 (complement)
-d Fjerner (delete) tegn gitt ved streng1.
-s Minsker (squeeze) et bestemt antall tegn som kommer etter hverandre til et tegn.

Inndata er spesifisert med streng1, og resultatet er streng2.

Eksempler:

[david@nittedal david]$ tr -s "\012" < datafil

Her vil alle tomme linjer i filen datafil bli fjernet.

[david@nittedal david]$ tr "[A-Z] [a-z]" < datafil

Her vil alle store bokstaver (her bruker jeg 7 bits; ved 8 bits ISO skriver du [A-Å]) i filen datafil bli omgjort til små bokstaver.

[david@nittedal david]$ echo "Dette er Linux-verden" | tr L U

Dette er Uinux-verden

I dette eksemplet bytter tr-kommandoen bokstaven L ut med U i tekststrengen “Dette er Linux-verden".

[david@nittedal david]$ tr -cs "[A-Z][a-z]" "[\012*]" < datafil.1 >resultat.fil

I dette eksemplet lager jeg en liste over ordene i filen datafil.1. Hvert av disse ordene blir en enkel linje i filen resultat.fil. Et ord er definert til å bestå av tegnene A-Z eller a-z. 012, som betyr linjeskift, er tatt med for å spesifisere linjeskift etter hvert ord i resultat.fil.

Se også: echo og koder

Sideformatering – pr[rediger]

Kommandoen pr brukes til å formatere tekst; pr kan brukes til formatering av tekst som skal ut på terminalen eller til en skriver. Kommandoen pr sender ikke det formaterte dokumentet direkte til skriver, men bare til standard utdata (skjerm).

Kommandoen pr sideformatering av datatekst
Kommando: pr [opsjon] [fil ...]
Funksjon: Formaterer én eller flere filer
Opsjoner: Se også Linux-man-sidene.
-(n) Du får utskriften fra fil(ene) i n-kolonner.
-h Bruker det neste argumentet som overskrift på toppen av hver side
-m Fletter de spesifiserte filene sammen til én fil. Hver fil blir plassert i en kolonne, dvs. fil1 blir plassert i kolonne 1, fil 2 blir plassert i kolonne 2, osv.
-p Utskriften til terminalen stoppes etter hvert sideskift.
-t Skriver ikke ut de 5 første og 5 siste linjene i fil(ene)
-w(n) Setter bredden av linjen til n tegn

De forskjellige opsjonene bestemmer hvordan utskriften skal se ut. Den opprinnelige filen blir ikke endret.

Eksempler:

[david@nittedal david]$ pr -3 datafil

Lister ut filen datafil i tre kolonner.

[david@nittedal david]$ pr -w70 brev-tilbud

Linjebredden (siden) blir satt til 70 i stedet for 72 som er standard.

[david@nittedal david]$ pr -h "Budsjett 2002" bud1 -h "Budsjett 2003" bud2 bud3

Her blir filen bud1 skrevet ut med toppteksten Budsjett 2002, og filene bud2 og bud3 blir skrevet ut med toppteksten Budsjett 2003.

[david@nittedal david]$ pr -h "Budsjett 2005" bud1 bud2 bud3 | lpr -P laser-III

Her blir filene bud1, bud2 og bud3 satt sammen, og toppteksten Budsjett 2005 blir satt på toppen av hver side. Til slutt blir dokumentet sendt til skriver laser-III. Originalfilene blir ikke endret.

[david@nittedal david]$ pr -m -t -p -h "IDG Forlag A/S" Regn2002 Regn2003

Regn2002 og Regn2003 blir flettet sammen til to kolonner. Regn2002 blir satt i kolonne 1, og Regn2003 blir satt i kolonne 2. De 5 første og 5 siste linjene blir ikke tatt med i filene. Toppteksten IDG Forlag blir lagt til på hver side. Etter hver side stoppes utskriften til skjermen.

[david@nittedal david]$ ls /usr/ole | pr -8 -w132 | lpr -P laser-III

Her blir utskriften fra ls-kommandoen formatert i 8 kolonner, og utskriftslinjen(siden) er satt til 132 tegn. Tilslutt blir dokumentet sendt til skriverkø laser-III.

Se også: cat

Andre nyttige GNU-verktøy[rediger]

I dette avsnittet ser jeg på andre nyttige GNU-verktøy. Mange ganger har jeg problemer med å sende større filer som vedlegg til mine samarbeidspartnere. En løsning på problemet er å splitte filene opp i mindre enheter. Under har jeg eksempel på hvor jeg splitter opp en fil i størrelse a 1 MB.

[david@nittedal david]$ split -b 1024k boken.sxw del

Alle delfilene får navnet del.aa, del.ab, del.ac. Bruker jeg diskett som media kan jeg velge en filstørrelse på 1440k.

[david@nittedal david]$ split -b 1440k boken.sxw del

Ønsker du senere å lime alle filene sammen til en fil kan du bruke cat-kommandoen. Under har jeg eksempel:

[david@nittedal david]$ cat del?? > storfil.sxw

Mange ganger får man patcher og oppdateringer og da kan være nyttige vite hva som er forskjellen mellom originalfilen og den nye filen. Jeg bruker kommandoen diff for å se forskjellen.

[david@nittedal david]$ diff -u orginal.c ny.c > patch-1

Med denne kommandoen lager jeg filen patch-1 som er endringen i C-kildefilen. Når en bruker mottar patch-filen er det bare nødvendige å plassere den patchede filen i samme katalog og kjøre patch-kommanoden

[david@nittedal david]$ patch < patch-1

patching file orginal.c

Du vil se at patch-kommandoen oppdateres endringene til orginal filen orginal.c. Patch-kommandoen er enkel kommando til å oppdatere endringer på tekstfiler.

Har du en stor tekstfil hvor du ønsker å konverter alle tab til mellomrom. Vi du finne expand nyttige.

[david@nittedal david]$ expand tab_fil > mellom_fil

I eksemplet over konverter jeg alle taber til mellomrom fra filen tab_fil. Resultatfilen er mellom_fil. Ønsker du konvertere den andre veien bruker du kommandoen unexpand.

[david@nittedal david]$ unexpand mellom_fil > tab_fil

Ønsker du at alle linjene i en tekstfil ikke skal ha mer enn et bestemt antall tegn per linje er kommandoen fold nyttige. Under har jeg et eksempel.

[david@nittedal david]$ fold -w8 datafil1 > datafil2

I eksempelet over blir linjer i datafil1 konvertert til maksimalt 8 tegn i resultatfilen datafilen2.

I tabellen nedenfor har jeg laget en oversikt over andre nyttige GNU-programmer under Linux.

Kommando Beskrivelse
cksum Sjekker CRC sjekksum og teller antall bytes i en fil. Nyttige kommando for sjekke om filen har blitt ødelagt i forbindelse med overføring (FTP).
md5sum Regner ut og sjekker om MD5 sjekksum basert 128 bit kryptering (MD5-algoritmen).
head Skriver bare ut første delen av fil.
nl Setter nummer på hver linje og sender resultatet til standard utdata.
od Skriver innholdet av filene til standard utdata i oktalt format eller andre formater.
ptx Lager en indeks av innholdet.
tac Skriver hver fil ut til standard utdata med de siste linjene først.
tsort Denne kommandoen lager en topologisk sortering (brukes til bibliotekshåndtering; sjekk kommandoene ar og ld).
* Pakkeprogrammer

Akkurat som i Microsoft DOS og Windows, finner du mange pakkeprogrammer for Linux. Til hver enkel av disse kommandoene finner du mange opsjoner. (Se også Linux-man-sidene.) Her er noen eksempler:

[david@nittedal david]$ gzip -v *

Her får jeg en oversikt over hvor mye plass jeg sparer med å pakke de enkelte filene på den katalogen jeg utfører kommandoen.

[david@nittedal david]$ gzip Linuxbok

Her pakker jeg filen Linuxbok. Den gamle filen blir fjernet. Den nye pakkede filen får navnet Linuxbok.gz.

[david@nittedal david]$ gzip -d Linuxbok

Her blir filen Linuxbok pakket ut. Det nye filnavnet blir Linuxbok.

[david@nittedal david]$ zip -e bok.zip bok.sxw

Her pakker jeg filen bok.sxw (OpenOffice-format). Filen blir pakket inn i arkivet bok.zip. Fordi jeg har med opsjonen -e blir det satt passord på arkivet.

[david@nittedal david]$ unzip -d bok.zip

Her blir alt pakket ut av arkivet. Fra arkivet får vi bok.sxw.

I tabellen nedenfor har jeg laget en oversikt over de mest brukte pakkeprogrammene for Linux.

Kommando Beskrivelse
compress Pakkeprogram som var mye benyttet tidligere. Filer som er komprimert med compress, har endelsen .Z. Filen Linux.Z er resultatet av compress, mens Linux.gz er resultatet av gzip.
uncompress Brukes for å dekomprimere filer laget med compress; gunzip kan også brukes.
gzip Pakkeprogram som bruker Lempel-Zip koding; med gzip kan du både pakke inn og ut.
gunzip Utpakkingsprogram for .gz-filer (gzip)
zcmp Pakker ut filene og sammenligner dem ved å bruke Linux-kommandoen cmp
zdiff Pakker ut filene og sammenligner dem ved å bruke Linux-kommandoen diff
zgrep Pakker ut filene og søker etter tekstmønstre ved å bruke Linux-kommandoen grep
zless Pakker ut filen og viser den på skjermen
unzip Tilsvarer programmet pkunzip for Microsoft DOS og Windows
bzip2 (buzip2) Dette er også et pakkeprogram som var mye benyttet tidligere. Filer som er komprimert med bzip2, har endelsen .bz2.

Kommandoen gunzip kan benyttes til å dekomprimere en fil som er pakket av gzip. Dette er det samme som å bruke "gzip -d".

[david@nittedal david]$ gunzip Linuxbok

Her pakker jeg ut filen Linuxbok med utpakkingsprogrammet gunzip. Det nye filnavnet blir Linuxbok.

[david@nittedal david]$ zgrep Gnome *.gz

Her får jeg en oversikt over hvilke av mine pakkede tekstfiler som har tekststrengen “Gnome".

[david@nittedal david]$ unzip Linux.zip kap1 kap2

Her pakker jeg ut filene kap1 og kap2 fra arkivet Linux.zip.

Oppgaver til kapittel 13[rediger]

Oppgave 13.1

Hva er forskjellen mellom verktøyene more og less?

Oppgave 13.2

Lag en alfabetisk liste over alle filene du har på ditt brukerområde.

Oppgave 13.3

Bruk grep-kommandoen til å finne ut om du er definert i /etc/passwd-filen.

Oppgave 13.4

Finn ut hvor mange underkataloger root har. (Tips: ls -F / | grep '/' | wc.)

Oppgave 13.5

Hvilke filer har vært i bruk på ditt arbeidsområde den siste uken? (Tips: find $HOME -name -atime +7 -print.) Plukk ut alle filene som er større enn 750 kB. (Tips: find og -size.) Plukk ut alle filene som tilhører deg. (Tips: find og -user.)

Oppgave 13.6

Hvordan kan du skrive ut alle filene som ligger under /usr-katalogen og heter test.data? Bruk find-kommandoen. (Tips: find /etc -name 'test.data' -exec ls -la {} \;)

Oppgave 13.7

Bruk cut-kommandoen til å klippe ut de brukerne som er definert i /etc/passwd. Navnelisten kan du plassere i en egen tekstfil.

Oppgave 13.8

Bruk cut-kommandoen og paste-kommandoen på /etc/passwd til å lage en liste som består av brukernavn og det tekstbeskrivende feltet i /etc/passwd.

Oppgave 13.9

Jeg har en fil som består av følgende:

ole 123456

nils 565467

anne 435674

petter 233453

kari 221209

Sorter filen ved hjelp av sort slik at den blir alfabetisk. Telefonnummeret skal deretter settes opp som første kolonne. Bruk kommandoene cut og paste.

Oppgave 13.10

Forklar hva følgende kommandoer gjør:

grep id-nummer < navnbase >> resultat

ls /etc | grep hosts | wc -l

find / -name core -print

pr -m -t test1 test2 test3

tr a g < testfil

Oppgave 13.11

Pakk alle filene på din hjemmekatalog. Du kan bruke gzip. Pakk ut filene et annet sted i Linux-strukturen. Gjør det tilsvarende med programmet zip (unzip).

14: Utskrift fra Linux[rediger]

I dette kapitlet går jeg gjennom hvordan du setter opp utskriftssystemet i Linux, start/stopp av utskriftssystemet, hvordan du tar utskrift og hvordan du stopper utskrifter.

Utskriftssystemet i Linux[rediger]

Hver gang du sender utskrift til skriver i Linux, sendes filen til et spoolingområde. Spoolingsystemet administrerer samtlige utskrifter. SPOOL står for Simultaneous Peripheral Operations On Line. Hver fil blir behandlet sekvensielt etter hverandre. Utskriftssystemet gjør det mulig å sende flere jobber til utskrift samtidig. Dette systemet gir deg muligheten til å arbeide videre med noe annet når en jobb er sendt til utskrift.

Definere utskriftssystemet[rediger]

I Unix-verdenen hadde man tidligere to forskjellige utskriftssystemer AT&T og BSD. Disse to systemene er noe forskjellige, men de gjør omtrent det samme for brukeren. AT&Ts utskriftssystem er det mest fleksible utskriftssystemet. BSD er enklere å bruke og var det som fulgte med Linux som standard tidligere. Restene av både AT&T og BSD utskriftssystemene finnes i dag i form av utskrifts-kommandoene som Linux benytter seg av. Noen av disse kommandoene går vi gjennom i dette kapittelet.

CUPS (Common Unix Printing System) er ny felles utskriftsstandard for både Linux og Unix. Mer informasjon på CUPS finner på http://www.cups.org. CUPS er basert på standarden IPP (Internet Printing Protocol) som i dag har blitt en De Jure basert standard. Med protokollen IPP har man laget et entydige grensesnitt mot skrivermiljøet som blant annet består utskriftsegenskaper, statusinformasjon på utskrift, opp/ned kjøring av kø, kansellering av skriverjobber etc. I tillegg til å støtte IPP har CUPS også støtte for lpd (Line Printer Daemon), SMB (Server Meassage Block), HP JetDirect og Novell NCP. CUPS støtter i dag de fleste av BSD og AT&T (System V) sine gamle utskriftskommandoer. Det beste med CUPS er at du kan søke i nettverket etter skrivere. Dette gjør du enkelt med system-config-printer eller Yast2.

Etter en normal installasjon av Fedora, SuSE eller Red Hat vil CUPS utskriftssystemet automatisk starte opp. Dette kan du sjekke med kommandoen:

[elboth@nittedal elboth]$ ps ax | grep | cups

Hvis CUPS serverprosessen kjører vil du se den som cupsd. CUPS utskriftssystemet (/usr/bin/lpr.cups) kan du starte opp med kommandoen:

[root@nittedal /root]# /sbin/service cups start

Du kjører ned CUPS utskriftssystemet (/usr/bin/lpr.cups) med kommandoen:

[root@nittedal /root]# /sbin/service cups stop

CUPS har også støtte for lpd (Line Printer Daemon). Ønsker du denne støtten må du installer lpd og LPRng (LPRng - /usr/bin/lpr.LPRng). Til Fedora og Red Hat finnes LPRng som egen RPM-pakke som du kan laste ned fra Fedora eller Red Hat sine hjemmesider. Etter at rpm-pakken er installert. Starter du dette utskriftssystemet med:

[root@nittedal /root]# /sbin/service lpd start

Du vil finne applikasjoner som kan skrive direkte til en skriver uten å måtte gå igjennom utskriftssystemet, vi kaller disse "print through" utskriftsdrivere.

Sette opp utskriftskø[rediger]

Etter at du har installerer Fedora Linux eller SuSE er du klar til å sette opp dine skrivere. Under GNOME trykker du på «System», «Administrasjon» og «Skrivere». Eller fra terminalvinduet system-config-printer. Under KDE er det tilsvarende. Under SuSE starter du opp YaST2 og velger maskinvare (hardware) og skriver (printer). Du har også muligheten til konfigurere CUPS fra et web-grensesnitt. Du trenger kun å skrive http://localhost:631/admin fra din nettleser. Ønsker du å gjøre alt fra kommandolinjen setter opp nye utskriftskøer med kommandoen /usr/lib/lpadmin.

Cups fedora.png

Figur 14.1: Hovedmenyen i system-config-printer

Følgende hovedpunkter er sentrale når du skal sette opp en skriver under Linux:

  • driver mot port (serie eller parallell)
  • skriverdefinisjoner (drivere)
  • filtre (tegnkonvertering)
  • opp/nedkjøring av spoolingsystem
  • tilgangskontroll

Under Linux kan du definere en lokal skriver eller eksterne skriverkøer. I tabellen under ser du en liste over utskriftsporter (serieporter og parallellporter) du kan bruke eller usb og nettverkskriver:

Enhet I/U Adresse IRQ DMA
/dev/ttyS0 COM1 3F8 4 n/a
/dev/ttyS1 COM2 2F8 3 n/a
/dev/ttyS2 COM3 3E8 4 n/a
/dev/ttyS3 COM4 2E8 3 n/a
/dev/lp0 LPT1 378-37F 7 n/a
/dev/lp0 LPT2 278-27F 5 n/a
/dev/usb/lp0 USB n/a n/a n/a
192.168.0.250 shared name=HPColorL type 192.168.0.250/HPColorL LAN n/a n/a n/a

Virker ikke skriveren når du har knyttet skriveren til serieporten, parallellporten eller USB-porten må du sjekke om lp er satt opp i /proc/devices:

elboth@suselap:~> cat /proc/devices

Du kan alternativt også sjekke dmesg-filen.

[root@nittedal /root]# dmesg | grep lp

elboth@suselap:~> dmesg | grep lp

On node 0 totalpages: 131050

lp0: using parport0 (polling).

CUPS støtter følgende eksterne skriverkøer:

  * Nettverk med CUPS (IPP)Unix-nettverk (LPD)Windows-nettverk (SMB)
  * Novell-nettverk (NCP)
  * JetDirect (HP) i nettverk 

Har du problemer med nettverksbaserte skrivere er det greit å sjekke skriverne lokalt før man setter i gang å feilsøke nettverket.

Både lokale og nettverksbaserte skrivere kan styres og konfigureres fra system-config-printer. Lokale skrivere kan tilknyttes enten via parallellportene, serieportene eller USB-portene.

Figur 14.2: Valg av køtype i system-config-printer

Hva slags skriveremulering din skriver har velger du i system-config-printer. Se figuren under.

Figur 14.3: Valg av skriveremulering fra printconf-gui (system-config-printer)

Skriverparametere Eksempel på input
Printer type LOCAL
Queue hplaser
Spool directory /var/spool/cups
Printer device /dev/lp0
Printer driver HP LaserJet Plus
Paper size A4
Resolution 300x300
Bits per pixel Default

Tabellen over viser et eksempel på et oppsett med lokal skriver. Skal du bruke en ekstern-skriver via lpd, er det enklere; du trenger bare å spesifisere navnet (definert i din /etc/hosts-fil eller i DNS) på maskinen som skriveren er tilknyttet, og navnet på køen som allerede er definert på ekstern maskin.

Skriverparametere Eksempel på input
Remote host name ftp.powertech.no
Remote queue hplaser

Har du én eller flere Windows (Windows 98, Windows NT eller Samba)-styrte skrivere, er det greit å velge Windows (Samba/LAN Manager) som din tilknytningsform til skriver. Her må du vite Windows-vertsmaskin, IP-adresse, delt (share) skrivernavn, brukernavn og passord. Et eksempel på en løsning kan være:

Skriverparametere Eksempel på input
Windows server vertsmaskin regnskap.c2i.net
Windows server IP 207.117.119.40
Share name Windows
User name Guest
Password Guest0

Figur 14.4: Valg av kø-type (Samba/Windows) i YasT2 under opensuse

Har du en skriverkø som styres av Novells spooling system, kan du velge NetWare. Har du en skriverkø som styres av JetDirect spooling system trenger du bare å spesifisere IP-adresse og portnummer (Se figur 14.4). Har du en standardskriver, er det enklere å sette opp en skriver på PCen med Linux enn under Windows 98 eller Windows XP. De tekniske manuelle oppdateringene under er derfor i de fleste tilfellene unødvendige.

Figur 14.5: Konfigurasjon av JetDirect skriverkø fra system-config-printer

Nøkkelfiler[rediger]

Konfigurasjonsfiler Beskrivelse
/etc/cupsi denne katalogen finner du alle CUPS-konfigurasjonsfilene (se tabellen under)
/etc/printcap definisjonsfil for forskjellige skriverkøer
/usr/lib/cups/filter filterkatalogen (konvertering) til CUPS
/usr/lib/cups/backend resultatet fra filterprogrammet blir vidre behandlet av backend-programmet som sender dette videre til destinasjons-skriver.
/var/spool/* plassering av alle spoolkataloger
/var/spool/*/minfree antall ledige blokker som skal avsettes til spesifisert spoolkatalog.
/etc/hosts.equiv lister de maskinene (vertsmaskinene) som får lov til å benytte skriveren som er knyttet til denne maskinen
/etc/hosts.lpd For at utskriftssystemene skal virke, må brukernavnet lp være definert i /etc/passwd og /etc/group. Her har jeg et eksempel på definisjon i /etc/passwd

[root@nittedal /etc]# more passwd

root:tQ8pfxCWkCWA.:0:0:root, Nittedal, 67078944:/root:/bin/bash

..

lp:*:4:7:lp:/var/spool/lpd:

..

Her har jeg et eksempel på definisjon i /etc/group:

[root@nittedal /etc]# more group

..

lp::7:daemon,lp

..

I tillegg må katalogene /usr/lib, /usr/spool/lp og /usr/bin være oppdatert med de riktige systemfilene. Har du spesielle behov, må du manuelt oppdatere forskjellige nøkkelfiler som /etc/printcap, /etc/hosts.lpd og /etc/hosts.equiv. I tabellen under finner du en beskrivelse av CUPS-konfigurasjonsfilene.

Konfigurasjonsfiler Beskrivelse
/etc/cups/cupsd.conf Konfigurasjonen for CUPS-systemet. Syntaksen på filen er lik konfigurasjons-filen til Apache.
/etc/cups/printers.conf skriverkonfigurasjonen for den enkelte skriver
/etc/cups/classes.conf Definsjons på alle skriverklassene. I en skriverklasse har vi en samling av skrivere.
/etc/cups/client.conf Her kan vi definere hva som skal gjøres med utskrifter som kommer fra bestemte klienter (dvs. vertsmaskiner).
/etc/cups/lpoptions standard parametere som skal gjelde for utskriftsjobber
/etc/cups/mime.types Definisjon av alle mimetypene (Multipu pose Internet Mail Extensions) som brukes. Hva slags fil har vi?
/etc/cups/mime.convs Det enkelte filterne er vil være mappet mot de enkelte mime typene avhengige av type?
/etc/cups/ppd-PPD Her har vi en katalog med Postscript (PPD) filer som blir håndtert av CUPS. Disse PPD-filene beskriver egenskapene til alle skrivere inkludert Postscript skrivere.

Du vil finne at /etc/printcap er en sentral nøkkelfil. I denne filen definerer du skriveremulering, filtre (selve filtere er plasssert i filen /usr/lib/cups/filter) og eksterne vertsmaskiner (hvis skriveren er tilknyttet en ekstern vertsmaskin). Bare systemadministrator (root) kan gjøre endringer på denne nøkkelfilen. Vi skal nå ta for oss noen eksempler på forskjellige oppsett. Nedenfor har jeg en skriver som bruker PCens lokale parallellport, og jeg har en skriver som bruker hplaserjet-emulering. Driveren til selve parallellporten er /dev/lp1 (/dev/lp0, /dev/lp1, /dev/lp2). Dette er på de fleste PCer første parallellport.

Eksempel basert på lpd:

[root@nittedal /etc]# more /etc/printcap

  1. /etc/printcap

hp|hp-postscript:\

sh:\
ml=0:\
mx=0:\
sd=/var/spool/lpd/hp:\
lp=|/usr/share/printconf/jetdirectprint:\
lpd_bounce=true:\
if=/usr/share/printconf/mf_wrapper:

I eksemplet under ser du definisjonene på mine utskriftskøer. Den ene utskriftskøen går mot en Windows-skriver via SMB (HP OfficeJet R45) og den andre er satt opp mot en HP JetDirect-skriver (HP business inkjet 2250tn).

Eksempel basert på lpd:

[root@nittedal /etc]# more /etc/printcap

  1. /etc/printcap

officer45:\

ml=0:\
mx=0:\
sd=/var/spool/lpd/officer45:\
af=/var/spool/lpd/officer45/officer45.acct:\
sh:\
lp=|/usr/share/printconf/util/smbprint:\
lpd_bounce=true:\
if=/usr/share/printconf/util/mf_wrapper:

hpinkjet:\

ml=0:\
mx=0:\
sd=/var/spool/lpd/hpinkjet:\
af=/var/spool/lpd/hpinkjet/hpinkjet.acct:\
sh:\
lp=|/usr/share/printconf/util/jetdirectprint:\
lpd_bounce=true:\
if=/usr/share/printconf/util/mf_wrapper:

I eksempelet under har jeg definert de to samme skrivekøene uten lpd-støtte.

Eksempel:

[root@nittedal /etc]# more /etc/printcap

  1. This file was automatically generated by cupsd(8) from the
  1. /etc/cups/printers.conf file. All changes to this file
  1. will be lost.

OfficeJet|Created by redhat-config-printer 0.6.x:rm=dhcppc1:rp=OfficeJet:

HP_Business_Inkjet|HP_Business_Inkjet:rm=dhcppc1:rp=HP_Business_Inkjet:

Jeg vil anbefale at du bruker programmet printconf-gui til å lage et forslag til driverkonfigurasjon (utskriftsdriver og filter) og at du legger alle dine egne tilpassninger i filen /etc/printcap.local.

Nøkkel Beskrivelse av /etc/printcap-opsjoner
lp Driver eller fil som utskriften skal sendes til
ms spesielle skriveregenskaper, for eksempel XON/XOFF (slå opp på stty)
sd angir hvor utskriften (spoolingkatalog) blir plassert
lf angir hvor utskriftsfeilmeldinger skal plasseres
rm navnet på ekstern-maskinen du ønsker å sende utskriften til, for eksempel rm=pluto
mx Maksimal størrelse på utskriftsfilen (buffer)
if angir hvor utskriftsfilteret er plassert

Det er enklest å definere standard PostScript eller HP-Laserjet i /etc/printcap. Er mange av tekstfilene dine PostScript, er det mest hensiktsmessig å ha en PostScript-skriver. Har du ikke det, kan du bruke løsningen GhostScript.

Eksempel:

[root@davelin /etc]# more /etc/printcap

  1. /etc/printcap
  1. This file can be edited with the printtool in the control-panel.

lp|Generic dot-matrix printer:\

lp=/dev/lp1:\
sd=/var/spool/lp1/lp:sh:\
if=/var/spool/lp1/filter.magic:\
lf=/var/spool/lp1/lp-err:

[root@davelin /etc]#

Skriveren her er en standard matriseskriver som er koblet til PCens lokale parallellport. Jeg har i tillegg satt opp et filter, /var/spool/lp1/filter.magic. Mer om dette finner du i Printing HOWTO.

  1. !/bin/sh

if [ "$1" = -c ]; then

   cat 

else

   read first_line first_two_chars=$(dd bs=2 count=1)
   if [ "$first_two_chars" = "%!" ]; then # PostScript
       /usr/bin/gs -dSAFER -dNOPAUSE -q \ -sDEVICE=epsonF8 -dBitsPerPixel=1 -sOutputFile=- - 
   else # it's plain text, insert CRs
       echo -n "$first_line" printf "\r\n" 
   tr "æøåÆØÅ" "$(printf "\x91\x9b\x86\x92\x9b\x8f")" | sed -e $(printf "s/$/\r/")
       #formfeed.. printf "\f" 
       fi 

fi

Her har jeg satt opp epsonF8 som skrivertype. Dette skriptet håndterer både kontrolltegnkonvertering (cr/lf-lf) og PC-tegnsettkonvertering. Hvis du ikke har behov for tegnsett-konvertering (ISO8859 til CP 850/860), kan du fjerne tr-kommandoen.

Ønsker du å vite mer om hva som finnes av skriverdefinisjoner i Linux-systemet, kan du også først sjekke filen /etc/termcap. I denne filen vil du finne mange terminal- og skriverdefinisjoner. I den komprimerte terminal- og skriverdefinisjonskatalogen /usr/share/ terminfo er det lettere å finne fram, da definisjonene er lagret i alfabetisk rekkefølge; for eksempel ligger alle HP-definisjonene i systemet i katalogen /usr/share/terminfo/h.

Tilgangskontroll over nettet og diskplass[rediger]

Når du har satt opp utskriftssystemet på Linux-systemet, kan du styre tilgangskontrollen til denne skriveren over nettet, enten med filen /etc/hosts.equiv eller med filen /etc/hosts.lpd. Du bruker hosts.equiv bare hvis maskinene dine er knyttet opp via BSDs r-kommandoer (ekstern). Mer om dette finner du i kapittel 22. I filene /etc/hosts.equiv og /etc/hosts.lpd skal du bare liste navnene på de maskinene som du tillater tilgang til dine skrivere.

Eksempel:

[root@nittedal /etc]# cat /etc/hosts.lpd

pluto.frisurf.no

nittedal.c2i.net

boulder

Får du problemer med diskplassen på spoolingområdet, kan du sette opp filen minfree i hver spool-katalog. I minfree setter du bare hvor mange diskblokker som skal være ledige og tilgjengelige for det spesifiserte spoolområdet. Filen minfree kan du redigere med vi- eller emacs-editoren. Du bør være oppmerksom at minfree ikke støttes av alle Linux-distribusjoner inkludert Fedora.

Fjernutskrift mot Unix[rediger]

Har du behov for å bruke skrivere som er tilknyttet andre Unix-maskiner, kan du benytte deg av fjernutskrift fra Linux. Nedenfor har jeg en tabell som viser hvilke skallprogrammer du skal starte opp på de enkelte systemene for å få satt opp spoolingsystemet.

Unix-system Administrasjonsskall
HP-UXsam IBM AIX
smitNCR Unix V.4 sysadm

Solaris[rediger]

hosts.lpd & hosts.equiv SCO Xenix
sysadm, lpinit eller mkdev lpr SCO Unix
sysadmshSCO UnixWare sysadmsh

Under installasjonsprosessen på de fleste Unix-systemer, inkludert Linux, vil de fleste katalogene og nøkkelfilene automatisk bli oppdatert av skall-grensesnittene (sysadm, sam). I de fleste Unix-systemene, som Linux, vil du finne at /etc/printcap er en av de mest sentrale filene for de Unix-systemene som har BSD-baserte skriversystemer.

Nedenfor har jeg satt opp et eksempel hvor jeg får tilgang til en ekstern skriver som er koblet opp mot en annen Linux- eller Unix-maskin. Hvordan denne skriven er koblet opp med hensyn til serieport og parallellport, er ingen problemstilling her. Du trenger i utgangspunktet bare å vite navnet eller IP-adressen til maskinen og hva slags skriveremulering det dreier seg om.

[root@davelin /etc]# more /etc/printcap

  1. /etc/printcap
    1. PRINTTOOL3## REMOTE POSTSCRIPT 300x300 a4 {} PostScript Default {}

lp:\

sd=/var/spool/lpd/lp:\
mx#500:\
sh:\
rm=pluto:\
rp=hplaser:\
if=/var/spool/lpd/lp/filter:

[root@davelin /etc]#

Skriverkontroll – lpc[rediger]

Under Linux kan du styre de generelle utskriftstjenestene med Linux-kommandoen lpc. Denne kommandoen har mange opsjoner og argumentmuligheter. Skriver du bare lpc, kommer du inn i en egen kommandomodus.

Kommandoen lpc utskriftskonfigurering
Kommando: lpc [kommando] [argument…]
Funksjon: Konfigurering av utskriftskøer og generelle utskriftstjenester
Kommandoer: Se tabellen under.
Argument: Se Linux-man-sidene.
lpc-kommandoer
abort disable restart topq
clean down start up
enable help status ?
exit quit stop

Eksempel:

[root@nittedal /root]# lpc

lpc> down all

lp:

printer and queuing disabled

lpc> start all

lp:

printing enabled

daemon started

lpc> status

lp:

queuing is disabled

printing is enabled

no entries

no daemon present

lpc> quit

[root@nittedal /root]#

Fra lpc kan du:

   starte/stoppe en skriver
   starte/stoppe en tilhørende spoolingkø
   endre rekkefølgen på skriverjobber i en skriverkø
   finne status på skrivere og tilhørende spoolingkøer og prosesser 

Har du X-Window, er det lettere å administrere mange av disse tjenestene fra GNOME/KDE eller direkte fra printconf.

Utskriftsproblemmer[rediger]

Får du ikke utskrift kan det være flere årsaker til dette. Er skriveren koblet til nettverket? Får skriveren strøm? Bruker du det riktige styreprogrammet (f.eks. HP-laserjet)? Er skriverkabelen i orden? Har skriveren papir? Hvis du har satt opp et nytt system er det enkelt å sjekke om lp er definert i /proc/devices. Dette har jeg beskrevet i avsnittet «Sette opp utskriftskø». Mangler lp kan du manuelt legge inn lp-modulen med modprobe-programmet.

suselap:~ # /sbin/modprobe lp

Mer informasjon om moduler finner du i kapittel 21 Linux - overvåking og kjerne. Får du ikke lagt inn lp-programmet med modprobe-programmet har du med stor sannsynlighet installert Linux uten å ta med utskriftssystemet. Jeg anbefaler deg da å installere alt på nytt.

Har utskriftskøen virket tidligere men plutselige slutter å virke, kan du ha fått en skriverlås (lock). Låsfilen /var/spool/cups/* blir automatisk opprettet for køkontroll. Ved for eksempel større belastninger på spoolingsystemet eller ved strømbrudd kan det være nødvendig å fjerne låsen (lock). Låsfilen lock blir automatisk fjernet ved ny oppstart av maskinen. Dette skjer som regel i oppstartsfilen /etc/rc.d/rc2.d. Du kan lese mer om dette i kapittel 17.

Utskrift – lpr[rediger]

Du skriver ut med lpr-kommandoen. Hvis det er flere skrivere i systemet, kan du med P-opsjonen (under Unix AT&T-spooling er dette d) velge hvilken skriver du vil sende til. Hvis ingen skriver er spesifisert, blir standardskriveren valgt.

Vanligvis får man ut en førsteside med dato, klokkeslett, navnet på skriver, navnet på utskriftsjobben, osv. Denne førstesiden kalles banner. Den kan fjernes ved å spesifisere nobanner ved utskrift.

Kommandoen lpr utskrift til skriverkø
Kommando: lpr [opsjon] argument
Funksjon: Plasserer innholdet av filen i skriverkø
Argument: En eller flere filer
Opsjoner: Se Linux-man-sidene.
-#num Skriver ut num kopier (antall kopier)
-h Skriver ikke ut førsteside
-m Sender deg en e-post når den er ferdig
-p Formaterer dokumentet ved å bruke pr-kommandoen
-P skriver Plasserer skriverjobben til "skriver"


Eksempler:

[david@nittedal david]$ lpr brev1 brev2 brev3

Sender filene brev1, brev2 og brev2 til standardskriver (defaultskriver).

[david@nittedal david]$ lpr -P hpskriver2 .profile

Sender filen .profile til skriver med navnet hpskriver2.

[david@nittedal david]$ lpr -P skriver1 -m doc1.ps doc2.ps referat.ps

Her blir filene doc1.ps, doc2.ps og referat.ps sendt til skriveren skriver1. Når filene er blitt kjørt ut, blir det sendt en mail til bruker om at utskriften er avlevert til skriveren.

[david@nittedal david]$ lpr -#3 tilbud.txt

Her blir det kjørt ut 3 kopier av filen tilbud.txt. Utskriften kommer ut på den skriveren som er standardskriver (defaultskriver).

Sjekke utskriftskø – lpq[rediger]

Med kommandoen lpq har du muligheten til å sjekke status på dine egne eller andres utskrifter. Under standard AT&T Unix V.4 kan du bruke kommandoen lpstat.

Kommandoen lpq utskrift til skriverkø
Kommando: lpq [-l][-P skriver][bruker-id]
Funksjon: Angir status for utskriftsjobber
Opsjoner: Se også Linux-man-sidene.
-l Skriver ut detaljert informasjon om hver enkel fil som er plassert i en skriverjobb
-P skriver Viser informasjon om de enkelte filene som er plassert i en spesifisert skriverkø
bruker-id: Viser bare skriverjobber for spesifiserte brukere (uten brukeropsjonen blir alle skriverjobber vist)

Eksempler:

[david@nittedal david]$ lpq -l

Her får jeg detaljert informasjon om alle filene som er sendt til alle skriverkøer under Linux.

[david@nittedal david]$ lpq -P hplaser

Her får jeg detaljert informasjon om alle filene som er sendt til skriverkøen “hplaser".

[david@nittedal david]$ lpq david

Her får jeg detaljert informasjon om alle filene som brukeren “david" har sendt til skriverkøer under Linux.

Avbryte utskrift – lprm[rediger]

Alle utskrifter som du selv har startet, kan stoppes ved hjelp av kommandoen lprm under Linux. (Under standard AT&T Unix V.4 kan du bruke kommandoen cancel.) Bare systemadministrator (root) kan stoppe utskrifter andre brukere har satt i gang.

Kommandoen lprm avbryte utskriftsjobber
Kommando: lprm [-P skriver] [jobbnummer] [bruker-id]
Funksjon: Fjerner en utskriftsjobb fra skriverkøen
Opsjoner: Se også Linux-man-sidene.
-P skriver Fjerner jobber fra den spesifiserte køen
Jobbnummer: Liste over jobbnummer som skal fjernes (bruk lpq hvis du ønsker jobbnummer)
bruker-id: Viser bare skriverjobber for spesifiserte brukere (uten brukeropsjonen blir alle skriverjobber vist)

Eksempler:

[david@nittedal david]$ lprm printer-233

Gjør at skriverjobb printer-233 fjernes fra skriverkøen (printer).

[david@nittedal david]$ lprm -P hplaser hplaser-22 hplaser-24

Her fjernes skriverjobb hplaser-22 og hplaser-24 fra skriverkø hplaser.

[david@nittedal david]$ lprm davide

Her fjerner jeg alle skriverkøene assosiert med bruker davide. Har du flere jobber som skal fjernes, kan du fjerne jobbene fra /usr/spool/lp/requests-katalogene.

Status på utskriftssystemet - lpstat[rediger]

Fra AT&T Unix V.4 har vi fått kommandoen lpstat som gir deg en grei status på utskriftssystemet CUPS.

Kommandoen lpstat status på utskriftsssystemet CUPS
Kommando: lpstat [opsjoner] [skriver]
Funksjon: Status på CUPS
-d Hvilken skriver er satt opp som standard
-o Status på alle ut utskriftsjobber og destinasjoner
-p Hvilke skrivere er satt opp og hva er status?
Opsjoner: Se også Linux-man-sidene.


Denne kommandoen har mange opsjoner. Vi har under noen eksempler.

Eksempler:

[david@nittedal david]$ lpstat HP-skriver

Gir meg status på det som ligger i kø på skriver HP-skriver.

[david@nittedal david]$ lpstat -d

Gir meg status på hvilken skriver som er satt opp som standard (default).

[david@nittedal david]$ lpstat -p

Hvilke skrivere er satt opp og hva slags status har de?

3d-skriver i Linux[rediger]

Man kan bruke f.eks OpenSCAD eller Blender for å lage objekter\figurer for å skrive ut slike. MeshLab er et eksempel. Skeinforge SFACT er andre programmer. For mere informasjon les:

https://fedoraproject.org/wiki/Features/3D_Printing

Ellers sjekk: http://www.openprinting.org/printers

3D-printing vokste raskt fram i løpet andre del av 2000-tallet med blant annet RepRap og MakerBot. 3D-printerne styres selvfølgerlig med fri programvare: https://en.wikipedia.org/wiki/RepRap_project https://en.wikipedia.org/wiki/MakerBot_Industries

Et eget miljø på bitraf i Oslo har flere 3D-printere tilgjengelig for medlemmer.

Det er betydelig entusiasme med 3D-printing på såkalte Makers Faire som jeg tror har oppstått i Carlifornia USA. I 2014 ble det arrangert i Oslo. I år arrangeres det i Trondheim: http://www.trondheimmakerfaire.no/forsiden/

For å finne scanner: https://help.ubuntu.com/community/ScanningHowTo

For fedora bruk: [david@nittedal david]$ dnf -v info simple-scan for å finne informasjon som skanner.

Oppgaver til kapittel 14[rediger]

Oppgave 14.1

Hva betyr SPOOL?

Oppgave 14.2

Hvilke utskriftsystemer bruker Fedora Linux?

Oppgave 14.3

Kjør utskrifter til forskjellige utskriftskøer (skrivere).

Oppgave 14.4

Kjør ut to kopier av et dokument uten banner på utskriften.

Oppgave 14.5

Hvilken opsjon må du bruke til lpr hvis du ønsker en tilbakemelding når utskriften er ferdig?

Oppgave 14.6

Send en utskrift til en avslått skriver. Sjekk status med lpq-kommandoen.

Oppgave 14.7

Hvordan finner du ut hvilken skriver som er satt opp som standardskriver?

Oppgave 14.8

Stopp dine egne utskrifter. Kan du stoppe utskriften til andre brukere?

Oppgave 14.9

Kan du nevne en enkel måte å sjekke at en skriverport er i orden på et Linux-system? (Tips: cat fil > /dev/lp0)

Oppgave 14.10

Definer to skrivere på Linux-systemet. Den ene skriveren skal ha SMB-tilknytting og den andre skal være lokal. Kjører du Fedora Linux, kan du bruke X-Window-applikasjonen printconf (printconf-gui). Kjører du SuSE bruker du YasT2.

Oppgave 14.11

Hvordan tar du ned og opp et Linux spoolingsystem?

Oppgave 14.12

Hvordan kan du få spoolingsystemet til å starte igjen når det har gått i lås? Nevn to metoder.

Kapittel 15: Integrering med Windows 10 eller eldre[rediger]

WINE er en Microsoft Windows-emulator for X-Window-systemet. WINE er basert på samme teknologi som Sunsofts WABI emulator. Med WINE vil du kunne kjøre Windows-applikasjoner direkte fra Linux, den kan du laste ned fra:

http://www.winehq.com

I dag er få Windows 10 eller eldre-applikasjoner som går under WINE. Du vil bare finne støtte for Windows 32 og et fåtall Windows (64bit) -applikasjoner. Du bør være klar over at selv om du for eksempel får Microsoft Word 2016 til å virke etter første gangs konfigurasjon, bør du teste applikasjonen grundig. Noe så enkelt som å lage en tabelldefinisjon i Word 2016 kan være nok til å få applikasjonen i heng under WINE. På WINEs hjemmesider finner du referanser til over 1000 eldre programmer under Windows som er gjennomtestet og virker.

Eller kan Cedega http://gametreelinux.com/cedega-technology være et alternativ.

WINE HQ krever minimum 32 MB RAM (anbefalt er 64 MB RAM) og minst 20 MB swapområde. Du bør sette av 60 MB til diskplass til Cedega-applikasjonen.

Alternativet til Wine er VMware (http://www.vmware.com) og Oracle VM VirtualBox (https://www.virtualbox.org/) eller Bochs IA-32 Emulator Project, som gjør det mulig for deg å kjøre mange virtuelle operativsystemer på PC samtidig. VMware støtter de fleste operativsystemene som Linux, Windows 9x, Windows helt opp til windows 10. Ulempen med VMware er at produktet koster penger for bedrifter men er gratis for private brukere og ikke er Open Source. Virtualbox er mest for Linux.

Bruker du i dag Macintosh eller har mange applikasjonser under dette operativsystemet, er det mulige å kjøre mange av disse programmene under Linux med emulatoren ARDI Executor. Mer informasjon om denne emulatoren finner på Internett https://github.com/shinh/maloader . Eller så finnes det http://openemu.org/ og http://kb.parallels.com/en/120327 og https://www.codeweavers.com/products/crossover-mac.

De beste alternativene for de som ønsker å kjøre Windows-applikasjoner under Linux er kanskje Codeweavers (www.codeweavers.com) sin Wine-implementasjon. Denne programpakken installere du fra nettet (koster $ 39.95).

[david@nittedal david]$ install-crossover-pro-3.0.0.sh

Endringer i oppsettet kan du gjøre senere ved å kjøre programmet cxsetup.

Figur 15.4: Konfigurasjon av Crossover Office Professional versjon 3.0

[david@nittedal david]$ /opt/cxoffice/bin/cxsetup

Hvis du kjører KDE eller GNOME får du automatisk link til brukerdokumentasjonen fra /opt/cxoffice/doc/index.html. Ønsker du mer support på denne Wine-implementasjon bør du sjekke webadressen:

http://www.codeweavers.com/support

SteamOS eller ReactOS blir nærmest å komme Windows kompaktibelt system i dag. Freespire ble erstattet Xandros og tidligere lindows men det ble slutt i 2007.

Ellers har vi Zorin OS http://zorinos.com/ .

Man kan installere: Paragon ExtFS for Windows https://www.paragon-software.com/home/extfs-windows/

Så er det mulig å få tilgang til Linux partisjonene fra Windows. Husk også windows 10 kan gi noe problemer med fildeling f.eks på grunn av krypering med passord for fildeling det bør slås av ved bruk av samba.

Siste nytt: http://www.digi.no/for_utviklere/2016/03/30/windows-10-far-omfattende-linux-funksjonalitet

Det vil bli mulig å få linux kommandoer fra windows 10 (insider preview build).

Men nok om Windows; dette er en Linux-bok!

Kapittel 15[rediger]

Oppgave 15.1: Hva\hvordan funger wine?

Oppgave 15.2: Hva er forskjellen på Wine, crossover og Cedega?

Oppgave 15.3: Nevn noen virtuelle klienter programvare for de forskjellige operativsysteme?

Oppgave 15.4: Finnes det mulig å lese ext fra windows?

16: Skallprogrammering[rediger]

Kommandofiler[rediger]

Skallet er en kommandotolker som tolker alle de kommandoene du skriver inn på systemledeteksten. Kommandoene blir utført interaktivt, dvs. kommando for kommando.

Det er også mulig å utføre programmer som består av flere kommandoer i rekkefølge. Dette får du til med en kommandofil som består av flere Linux-kommandoer. Du kan bruke teksteditorene vi eller emacs (kapittel 12) til å lage kommandofiler.

Et annet ord for kommandofil er batch-fil. En batch-fil kan i tillegg til de tradisjonelle Linux-kommandoene også inneholde kontrollstrukturer, variabler og argumenter. Det er ikke stor forskjell på å bruke tradisjonelle programmeringsspråk og å lage kommandofiler. Tilsvarende de forskjellige programmeringspråkene, har også skallene forskjellige kontrollstrukturer, variabler og argumenter.

De mest brukte skallene under Linux er:

  • Bourne Again-skall (bash)
  • T-skall (tcsh)
  • A-skall (ash)
  • B-skall (bsh)
  • Z-skall (zsh)

Men Linux støtter også skallene

  • Bourne-skall (sh)
  • C-skall (csh)
  • Korn-skall (ksh)

Disse 3 siste skallene følger med som standard under Unix V.4. Navnet på Bourne-skallet på de fleste UNIX-systemer er /bin/sh. Skallet har en BASIC-lignede syntaks. C-skallet bruker en annen syntaks, litt lik programmeringsspråket C, og på de fleste UNIX-system er navnet /bin/csh, Korn- og bash-skallet er utvidelser av Bourne-skallet og har mange av de avanserte egenskapene som du finner i zsh-skall. Korn og bash støtter et supersett av Bourne-skallets syntaks. Z-skallet er et supersett av ksh med mange forbedringer. Både A- og B-skallet er basert på sh-skallet med tilleggsegenskaper. For de som foretrekker å bruke C-skallsyntaks, er det nyttig å vite at Linux støtter tcsh, som er en utvidet versjon av det originale C-skallet.

Bourne- og C-skallene følger ikke med som standard i Linux, men disse skallene kan lastes ned gratis fra forskjellige steder på Internett (se kapittel 23).

Tcsh- og zsh-skallet bør brukes hvis du skal ha et interaktivt skall. Bruker du Tcsh- og zsh-skall, blir det meste av Bourne-skallsyntaksen godtatt. Men de fleste kontrollstrukturer, for eksempel if, for, while og case, har en egen syntaks under de to skallene.

Følgende momenter vil påvirke ditt valg av skall:

  • Skal skriptet være portabelt (for andre Unix-systemer)?
  • Hva skal gjøres? Programutvikling eller rene batch-jobber?
  • Hva er greiest for deg?
  • Smak og behag.

De fleste foretrekker Bourne-skallets syntaks med avanserte egenskaper fra bash eller ksh. Fordi begge støtter et supersett av Bourne-skallets syntaks, burde de fleste skall-skript skrevet i standard Bourne-skall virke med bash eller ksh.

Bourne-skallet er mest benyttet på Unix. Bourne-skallet anbefales hvis du skal utvikle kommandofiler (batch-filer) som skal flyttes til andre Unix-systemer. Systemadministrator (root) er i Linux satt opp med bash-skallet.

I dette kapitlet har jeg konsentrert meg om Bourne-skallets (sh) syntaks, da både bash og ksh er nedover-“kompatibelt" med dette. I stedet for å skrive bash-skall vil jeg videre i dette kapitlet bruke betegnelsen bash, som er navnet på skallet i Linux-verden. Alle kommandofilene i dette kapitlet vil virke både under Bourne-skall(sh) og bash-skall (bash).

Lage og kjøre kommandofiler[rediger]

Jeg har laget en kommandofil som heter test. Den inneholder flere skall-kommandoer som du kan utføre linje for linje fra kommandoledeteksten:

  1. !/bin/bash
  1. Kakespiseprogram

mat="kaker"

echo "Spiser du $mat"

echo 'Spiser du $mat'

Første linje betyr at dette er en bash-skallkommandofil. Du kan bruke # til å sette kommentarer i kommandofilen din. Vær oppmerksom på at når filen begynner med #, betraktes den som en kommandofil i csh- eller tcsh-skall.

I tredje linje tilordner jeg variabelen mat til tekststrengen kaker. Man kan når som helst i programmet tilordne en variabel. Skal du bruke variablene senere, spesifiseres du $ foran variabelen.

I fjerde og femte linje bruker jeg kommandoen echo. Den sender tekststrenger til skjermen. I fjerde linje bruker jeg anførselstegn på høyre og venstre side av en tekststreng. Dette gjør at innholdet av variabelen blir vist på skjermen. I femte linje bruker jeg ' (apostrof). Alt mellom apostrof blir dermed tolket som en "bokstavelig" tekststreng, og variabelinnholdet blir derfor ikke vist på skjermen. Dette viser jeg senere i sammenheng med jokere.

Skrive kommandofiler[rediger]

For å kunne skrive en kommandofil (program) må du kunne lage en tekstfil. Dette kan du gjøre ved å bruke cat-kommandoen.

Eksempel:

[david@nittedal david]$ cat > fil

Skal du lage større kommandofiler, er det best å bruke en editor. Du kan bruke vi eller emacs (kapittel 12), eller en eller annen editor som kan lagre filene i rent tekstformat uten koder (ASCII).

Kjøre kommandofiler[rediger]

Det finnes flere måter å kjøre en kommandofil på. Den enkleste er å la skallet gjøre det. Hvis du ønsker at sh- eller bash-skallet skal kjøre programmet test, skriver du:

[david@nittedal david]$ bash test

En annen metode er ved omdirigering av standard inndata:

[david@nittedal david]$ bash < test

Den vanligste måten å kjøre en kommandofil på er å gjøre den kjørbar. (Se kapittel 8.) Dette kan du gjøre ved å bruke kommandoen chmod:

[david@nittedal david]$ chmod u+x test

Deretter skriver du bare navnet på kommandofilen:

[david@nittedal david]$ test

Alle kommandofiler som har satt på x-bitet, kan kjøres direkte.

Enkle kommandofiler[rediger]

Jeg skal her vise eksempler på kommandofiler og hva de fører til. Den første kommandofilen, echosend, sender beskjed til andre brukere (terminalbilde/tty).

  1. !/bin/bash

echo "Hei du" > /dev/pts/0

Her sender jeg tekststrengen "Hei du" til den terminalbrukeren som bruker driveren /dev/pts/0. Filen echosend lager du med editoren vi.

Du starter kommandofilen med:

[david@nittedal david]$ echosend (Husk å sette x-bitet på filen)

Kommandofilen diskuse:

  1. !/bin/bash

echo "Diskforbruk"

du /home/elboth

Her får du blokkforbruket til /home/elboth.

Kommandofilen sendterm:

  1. !/bin/bash

sh | tee /dev/pts/1

Her sender jeg mitt terminalbilde til terminalen som bruker driveren /dev/pts/1. Mer om tee-kommandoen finner du ved å bruke man-kommandoen.

Kommandofilen sendut:

  1. !/bin/bash

cu -ltty1a -s9600 dir

Sender ut terminalpolling på serieporten. Mer om cu-kommandoen finner du ved å bruke man-kommandoen (sjekk at programpakken uucp er installert).

Kommandofilen listsort:

  1. !/bin/bash

ls /bin | sort

Sjekker filene i katalogen /bin og sorterer innholdet. (Du finner mer om sort-kommandoen i kapittel 13.)

Kommandofilen fcount:

  1. !/bin/bash

ls -l | sed 1d | wc -l

Teller opp antall filer. Ønsker du å vite mer om sed-kommandoen, kan du bruke man-kommandoen.

Variabler[rediger]

  * Variablene er lagerområder for data. Dataene i en variabel kan endres. Det er fire måter å definere skallvariabler på:
  * vanlig tildeling
  * posisjonsparametere
  * tildeling av posisjonsparametere
  * lesing med read-kommandoen 

Du bestemmer selv hva variablene skal inneholde. Navnet på en variabel kan ikke begynne på et tall og kan ikke ha noen spesialtegn. (Se kapittel 6 og 7.)

Vanlig tildeling av variabler[rediger]

Man kan tildele såkalte midlertidige variabler og miljøvariabler. Miljøvariabler er permanente, men verdiene kan endres.

Midlertidige variabler[rediger]

Midlertidige variabler blir skapt når du trenger dem. Ved hjelp av et likhetstegn kan du gjøre en tildeling.

Eksempler på midlertidige variabler:

datamaskin=DellPentumIII

nummer=3.14

mat=ost

pris=12

katalog=/home/david/c-filer

hjemmekatalog='pwd'

Ønsker du en nullverdi, skriver du:

prosent=

Du kan bruke variablene ved å legge til $ foran variabelen. Ønsker du å vite hva som er i variabelen, skriver du bare til skjermen med echo-kommandoen, for eksempel:

[david@nittedal david]$ echo $pris

[david@nittedal david]$ echo $hjemmekatalog

[david@nittedal david]$ cp prog.c $katalog

Her brukte jeg en variabel i en kopieringskommando.

Variabler som består av kontrollkarakterer, mellomrom eller skallkommandoer, må omringes med apostrofer, for eksempel:

[david@nittedal david]$ dato='date'

[david@nittedal david]$ bruker='who | wc -l'

Midlertidige variabler med apostrof[rediger]

Hvis en variabel inneholder en apostrof, må den omringes med anførselstegn, for eksempel:

[david@nittedal david]$ tekst="Mange PC'er er solgt"

Midlertidige variabler med anførselstegn[rediger]

Hvis en variabel inneholder anførselstegn eller tekst med mellomrom, må den omringes med anførselstegn.

[david@nittedal david]$ tekst=""Hei du""

Miljøvariabler (Systemvariabler)[rediger]

Miljøvariabler skrives alltid med store bokstaver og kjennetegnes ved at de har med ditt brukermiljø å gjøre. Eksempler på miljøvariabler i sh- og bash-skall er HOME, PATH og PS1.

Den spesielle skallvariabelen PATH kontrollerer hvilke programmer som kan utføres. PATH forteller noe om søkebanen for skalltolkeren. Uten PATH-kommandoen får du bare kjørt de programmene og kommandoene som er plassert i din lokale katalog.

Miljøvariabler kan brukes på samme måte som de midlertidige variablene. Prøv med $HOME.

[david@nittedal david]$ echo $HOME

Hjemmekatalogen vises nå på skjermen.

Viktige systemvariabler i sh- og bash-skall:

   PATH En liste over kataloger som kan bli søkt av kommandotolkeren; katalogene blir gjennomsøkt i den rekkefølgen som er satt opp i PATH. LOGNAME Brukernavnet (login-navnet) ditt. TERM Når du ser beskjeden terminaltype på skjermen, har Linux brukt TERM-variabelen til å definere terminaltype. Det finnes flere typer terminaler. De mest brukte er xterm, ansi, at386, vt52, vt100 og vt220. De fleste programmer må vite hva slags terminal du kjører. Sitter du på hovedkonsollet (PC-enheten) får du ingen beskjed om terminaltype. Kobler du deg derimot opp via RS232-porten, må du bestemme terminaltype. HOME Navnet på brukerens hjemmekatalog. MAIL Navnet på brukerens elektroniske postkasse, vanligvis plassert på /var/spool/mail. MAIL-variabelen brukes vanligvis til å endre søkebane og filnavn til postkassen. MAILCHECK Denne parameteren spesifiserer hvor ofte (i sekunder) posten skal sjekkes. PS1 I bash-skall definerer denne variabelen ledeteksten din. Standardverdi på ledeteksten for en bash-skall-bruker er $-tegnet og for en tcsh-skall bruker %-tegnet, men Red Hat redefinerer ledetekstene til begge skallene. PS2 Denne ledeteksten ser du når skallet ditt forventer mer inndata; den er en sekundær ledetekst. PS2-ledeteksten brukes også ved kommandolinjer som er lengre enn 80 tegn. Da vises PS1-ledeteksten på første linje, mens PS2-ledeteksten viser fortsettelsen av linjen. IFS Bestemmer hvilken variabel som skal være feltseparator.

Tildeling av posisjonsparametere[rediger]

Når en kommandofil kjøres, oppretter skallet posisjonsparametere. $0 viser navnet på kommandoen. $1 er det første argumentet, $2 er det andre, osv. opp til $9.

Starter du en kommandofil med et argument, blir navnet på kommandofilen posisjonsparameter $0, og argumentet blir $1. Har du forskjellig argument hver gang du starter en kommandofil, blir innholdet i $1 også forskjellig. Eksempel på kommandofil med fire argumenter:

[david@nittedal david]$ start a b c d

Her blir kommandofilen tilordnet $0, a tilordnet $1, b tilordnet $2, c tilordnet $3 og d tilordnet $4.

Du kan også direkte tilordne verdier på posisjonsparametere ved å bruke set-kommandoen, for eksempel:

[david@nittedal david]$ set IDGBooks Best på EDB

Her vil $1 bli tilordnet tekststrengen "IDGBooks", $2 tilordnet tekststrengen "Best", $3 tekststrengen "på" og $4 tekststrengen "EDB".

Prøver du med

[david@nittedal david]$ echo "$2 $3 $4 $1"

får du:

Best på EDB IDGBooks

Prøv med:

[david@nittedal david]$ set A B C

Parameterne får du ved å skrive:

[david@nittedal david]$ echo "$1 $2 $3"

A B C

Forhåndsdefinerte variabler[rediger]

Man har også forhåndsdefinerte variabler som kan brukes i kommandofiler til å konstruere forskjellige tester i kontrollstrukturer.

Forhåndsdefinerte variabler:

   $# gir antall argumenter som er gitt i en kommandolinje; har du kommandoen test A B C, så får $# verdien 3 $? gir status for den siste kommandoen som ble utført; er kommandoen feilfri, blir verdien null $n kommandoargumentet fra 1 til n $@ gir alle argumenter som er anbefalt, spesielt hvis quoting skal gjengis riktig: "$@" $* gir alle argumenter $$ gir prosessnummer på aktuell prosess $! gir prosessnummer på siste bakgrunnsprosess $- gir en liste over skallopsjoner som er brukt 

Forhåndsdefinerte variabler kommer i tillegg til posisjonsparametere.

Her kommer kommandofilen antall:

echo $#

Kommandofilen begynner med : for å indikere for skallet at det er et sh- eller bash-skall. Tegnet $# gir oss antall argumenter. Prøv å kjøre kommandofilen antall med argumentene a, b, c og d:

antall a b c d

4

Nå vil $0 være navnet på kommandoen (antall). $1 vil være a, $2 vil være b, osv. $1 til $9 varierer for hver gang antall kjøres.

Kommandofilen hvor:

who | grep $1

Eksempel på bruk av hvor-skriptet:

hvor else

else må da være en definert bruker.

Kommandofilen variabel:

  1. !/bin/bash

echo Antall argumenter er $#.

date &

echo Prosess-id fra dato-kommandoen var $!.

wait

echo Prosess-id av dette skallet er $$.

grep vt100 /etc/termcap

echo Returkoden fra grep var $?.

echo Jeg hadde følgende set med opsjoner $-.

Her har jeg en kommandofil hvor jeg bruker alle de forhåndsdefinerte variablene. Legg merke til at jeg ikke har brukt anførselstegn. Resultatet blir det samme om du skriver echo: Uttrykkene antall argumenter er $# og echo "Antall argumenter er $#" er likestilt.

Eksempel på bruk av kommandofilen variabel:

bash -x variabel A B > testfil

+ :

+ echo Antall argumenter er 2.

+ echo Prosess-id på dato‑kommandoen var 20719.

+ date

+ wait

+ echo Prosess id på dette skallet er 20718.

+ grep vt100 /etc/termcap

+ echo Returkoden fra grep var 0.

+ echo Jeg hadde følgende sett med opsjoner hx.

Mer informasjon om utføringsflagg (opsjoner) bash ‑x finner du senere i dette kapittelet (i avsnittet om skall-miljøet).

Variabler med read-kommandoen[rediger]

Ved hjelp av read‑kommandoen kan du lese en hel linje. Bruker du read i en programfil, leser skallet fra standard inndata og legger det i variabelen.

Eksempel:

  1. !/bin/bash

clear

echo "Hei!"

echo "Hva heter du? "

read svar

echo "Morsomt å hilse på $svar"

I dette eksemplet legger skallet input fra brukeren i variabelen svar og skriver teksten ut.

Utskriftstyring[rediger]

Ved omdirigering av standard utdata kan du bestemme hvor du vil legge resultatene fra en kommandofil. Standard utdata kan sendes til en terminal, en skriver eller en fil. Mer informasjon om omdirigering av standard inn- og utdata finner du i kapittel 9.

Bruker du echo-kommandoen, blir argumentet separert med et mellomrom og avsluttet med et linjeskift. Kommandoen echo forstår også spesielle koder, blant annet følgende:

-n forhindrer newline

-e tillater deg å bruke backslash/escape baserte tegn

   Følgende spesialtegn kan brukes: '\a' lyd '\b' backspace '\c' forhindrer ny linje '\f' formfeed '\n' newline '\r' carriage return '\t' horisontal tab '\v' vertikal tab '\\' backslash '\NNN' spesialkode 

NNN er en ASCII-kode som er oppgitt i oktalt-format.

Eksempel på bruk:

[david@nittedal david]$ echo -e '\a'

Gir en terminallyd.

[david@nittedal david]$ echo -e '\v'

Gir en vertikal tab.

[david@nittedal david]$ echo -e '\111'

Gir deg en stor "I" på skjermen.

Kjører du Bourn-skall, vil disse kodene virke med echo-kommandoen:

\b et tegn til venstre (backspace)

\c tar ikke linjeskift

\f sideskift (formfeed)

\r retur (carriage return)

\v vertikal tabulator

\t horisontal tabulator

\n hvor n er et oktalt nummer

Ønsker du et større utvalg terminalkoder, kan du bruke kommandoen tput. Denne kommandoen virker både under Bash-skall og Bourne-skall.

Syntaks: tput termkode

Termkode Funksjon

clear -renser skjermen (ren skjerm)

bel -klokkelyd fra terminalen

blink -blinking

dim -reduserer lysstyrken

smul -start av understreking

rmul -slutt på understreking

sgr0 -slår av alle koder

Eksempel på bruk:

[david@nittedal david]$ tput dim

Reduserer lysstyrken.

[david@nittedal david]$ tput clear

Setter opp en ren skjerm.

[david@nittedal david]$ tput sqr0

Slår av alle koder.

[david@nittedal david]$ echo "tput smul "Dette er tekst med understreking tput rmul"

Her skriver jeg ut en tekst med understreking.

Eksempler på variabler og utskriftsstyring[rediger]

Kommandofilen info:

  1. !/bin/bash

echo "Dagens dato og tid : \c"

date

echo "Antall brukere : \c"

who | wc -l

echo "Min personlige status : \c"

who am i

Kommandofilen info gir oss dagens tid, antall brukere og din personlige status. Først sendes tekst til skjermen med echo-kommandoen. Koden \c forhindrer linjeskift. Resultatet av date-kommandoen plasseres på samme linje.

Kommandofilen info1:

  1. !/bin/bash

TID="Dagens dato og tid : \c"

BRUKER="Antall brukere : \c"

MEG="Personlig status : \c"

echo "$TID"

date

echo "$BRUKER"

who | wc -l

echo "$MEG"

who am I

Kommandofilen info1 gjør akkurat det samme som info, men her definerer jeg først tre tekstvariabler. Disse variablene brukes igjen senere i echo-kommandoene.

Betingelseskommandoer[rediger]

Skallene har forskjellige logiske kontrollstrukturer. Jeg vil her gå igjennom de viktigste. Syntaksen er basert på sh-skall, som er veldig analogt med bash. I csh og tcsh er prinsippene de samme, men syntaksen noe forskjellig. Vil du programmere under andre skall, må du bruke man-sidene. Skallprosedyrer tar ofte for seg argumenter i en sløyfe og utfører betingede kommandoer for hvert argument. Sh-skallet har effektive hjelpemidler for flytkontroll. For eksempel for, case og while kan brukes i slike sammenhenger.

Kommandoene kan enten skrives direkte på skjermen eller kjøres i en kommandofil.

Test-kommandoen[rediger]

Man har et hjelpeprogram i Linux som returnerer en utgangsstatus, en verdi som kan brukes i forbindelse med betingelseskommandoer. Kommandoen test er bare til for å brukes av kommandofiler, den gir ikke noe annet resultat enn en utgangsstatus.

test -f fil

Returnerer utgangsstatus null (sann) hvis fil eksisterer, og utgangspunkt forskjellig fra null (usann) hvis fil ikke eksisterer. Her er noen av de mest brukte argumentene:

test -s fil sann hvis filen eksisterer og ikke er tom

   test -f fil sann hvis filen finnes og er en vanlig fil (i
       motsetning til en katalog eller driver) 

test -r fil sann hvis filen kan leses fra

test -w fil sann hvis filen kan skrives på

test -x fil sann hvis filen eksisterer og kan kjøres

test -d fil sann hvis filen er en katalog

test -n s1 sann hvis lengden på strengen (s1) er

   forskjellige fra null 

test -z s1 sann hvis lengden på strengen (s1) er lik null

test s1 = s2 sann hvis streng1 og streng2 er like

test s1! = s2 sann hvis streng1 og streng2 ikke er like

test s1 sann hvis s1 ikke er en null-streng

test n1 -eq n2 sann hvis heltallene n1 og n2 er like

test n1 -ne n2 sann hvis heltallene n1 og n2 ikke er like

test n1 -gt n2 sann hvis heltallet n1 er større enn n2

test n1 -ge n2 sann hvis heltallet n1 er større eller lik n2

test n1 -lt n2 sann hvis heltallet n1 er mindre enn n2

test n1 -le n2 sann hvis heltallet n1 er mindre eller lik n2

Til alle strengtestene anbefaler jeg bruk av anførselstegn. Og spesielt til test -z "s1", som ikke vil virke ellers.

Du kan også kombinere test med andre operatorer, for eksempel posisjonsparametere og expr-funksjonen.

Prøv eksemplet sjekkpass:

  1. !/bin/bash

if test $# -eq 0

then echo "Du må skrive inn et brukernavn!"

else grep $1 /etc/passwd

fi

I dette eksempelet har jeg brukt if-strukturen. Jeg har brukt test og posisjonsparameteren $#. Det blir testet om vedkommende som startet kommandofilen, har spesifisert noen argumenter. Hvis ingen argumenter er spesifisert, sendes echo-strengen til skjermen. Har du spesifisert argument, søkes det etter dette i /etc/passwd.

For-strukturen[rediger]

Med for-kommandoen kan du utføre en mengde operasjoner på hver fil, eller du kan utføre en kommando med flere argumenter. Den generelle notasjonen for en for-løkke er:

for variabel in ordliste

do

kommandoliste

done

Ordliste kan være en liste over variabler eller strenger som er separert med mellomrom. Kommandoene blir utført for hver enkel streng i ordlisten. Prøv eksemplet utskrifttall:

  1. !/bin/bash

for i in ls

do

pr -f $i | lpr;

done

Her tar jeg utskrift av alle filene i den katalogen jeg står i. Ordlisten vår her er ls-kommandoen som gir oss alle filene i den katalogen hvor kommandofilen blir startet. Hver enkel fil blir plassert i $i, formatert med pr-kommandoen og videresendt til skriver. Kommandoen pr er en Linux-formateringskommando. Utelater du ordlisten, kan du bruke samme kommando på alle argumenter, da benyttes bestemte posisjonsparametere som argument. Kommandofilen sjekketter:

  1. !/bin/bash

for i

do grep $i *.c

done

Prøv så:

sjekketter 'hash(`insert'

Alle c-filer med endelsen .c i den katalogen hvor kommandofilen sjekketter ble startet, blir her sjekket om de har tekststrengen hash(`insert.

Case-strukturen[rediger]

Notasjonen case gjør det mulig å hoppe til forskjellige steder i programmet; en tilsvarende kommando finner du i alle moderne programmeringsspråk. Den generelle syntaksen er:

case ord in

mønster1) kommandoliste1;;

mønster2) kommandoliste2;;

...

esac

Kommandofilen sammenligner ord mot alle mønstrene i case-setningen helt til den finner et ord som er identisk med et mønster. Hvis ordet er identisk med mønster1, vil kommandoliste1 utføres. Er ordet identisk med mønster2, vil kommandoliste2 utføres, osv. Hvis ordet ikke er identisk med noen av mønstrene, blir ingen av kommandolistene utført i casestrukturen.

fungerer som avslutning av case-løkken
avslutter hver kommandoliste

Bare ett mønster trenger å være identisk med ordet. Jeg får da et hopp ut av løkken, og de neste mønstersjekkene blir ikke utført.

Følgende eksempel kaller jeg case-valg:

  1. !/bin/bash

case $1 in

1) who;;

2) finger;;

3) who am i;;

0) exit;;

esac

Case-løkken bruker her den første posisjonsparameteren ($1) som variabel. Ønsker du å prøve, kan du for eksempel skrive:

[david@nittedal david]$ casevalg 3

Kommandoen who am i vil da bli utført.

Variabelen ord kan bare være identisk med ett mønster. Er * det første mønsteret, slår strengen alltid til der og ingen andre steder.

case $i in

  • .c) cc $i
  • .h | *.sh)

echo "Slapp av"

  • ) echo "$i ukjent type"

esac

Her har jeg et eksempel på flere alternative mønstre. De forskjellige alternativene er atskilt med kombineringskommandoen |. Les mer om dette i kapittel 9 og i avsnittet "Funksjoner og prosedyrer" i dette kapitlet.

If-strukturen[rediger]

Den enkleste if-kommandoen har følgende form:

if kommandoliste

then kommandoliste

fi

Kommandoen eller kommandolisten som kommer etter if, blir utført. Dette er i de fleste tilfellene en test. Hvis den er sann (0=sann), så utføres kommandoen eller kommandolisten etter then. Slutten på if-testen markeres med fi.

Hvis du vil ha utført kommandoer når if-testen ikke er sann, kan du bruke else-setningen:

if kommandoliste

then kommandoliste

else kommandoliste

fi

Her har jeg et eksempel jeg kaller sjekkpass:

  1. !/bin/bash

for i

do

if grep $i /etc/passwd

then

echo "$i er definert i /etc/passwd"

else

echo "$i er ikke definert i /etc/passwd"

fi

done

Eksempel på bruk:

sjekkpass david

david:*:200:100:Tech. Writer:/usr/david:/bin/csh

david er definert i /etc/passwd

Kommandofilen filet:

  1. !/bin/bash

for FILE

do

echo $FILE er:

if test -r "$FILE"; then

echo " lesbar,"

fi

if test -w "$FILE"; then

echo " skrivbar,"

fi

if test -f "$FILE"; then

echo " en normal fil,"

fi

if test -d "$FILE"; then

echo " en katalog,"

fi

if test -s "$FILE"; then

echo " og består av mer enn 0 tegn."

else

echo " og består av 0 tegn."

fi

done

exit 0

Kommandofilen filet sjekker hva slags fil jeg har. Dette eksemplet illustrerer også hvor viktig test-rutinen er.

Kommandofilen passgruppe:

  1. !/bin/bash

BB=/dev/null

for NAME in $@; do

if grep $NAME /etc/passwd > $BB 2>$BB; then

echo $NAME finnes i passord fil

else

if grep $NAME /etc/group >$BB 2>$BB; then

echo $NAME finnes i gruppe filen

else

echo $NAME finnes hverken i

echo passord eller gruppe fil

fi

fi

done

Kommandofilen passgruppe forventer et brukernavn. Finnes brukernavnet i /etc/passwd eller /etc/group, blir det gitt beskjed om det. Variabelen BB blir først definert som /dev/null. Det vil si at BB er det samme som en driver som sender alt ut i det tomme intet. Flere if-strukturer blir brukt for å finne ut om brukernavnet bare finnes i /etc/passwd, bare i /etc/group, eller i begge filene.

While-strukturen[rediger]

While blir brukt til å lage sløyfer. Den har følgende form:

while kommandoliste

do

   kommandoliste 

done

For hver runde i sløyfen utfører while kommandolisten som hører til den selv, og hvis siste kommando på listen returnerer en status forskjellig fra null, blir kommandolisten etter do utført. I motsatt fall avsluttes sløyfen.

Kommandofilen innlesbar:

  1. !/bin/bash

while test -r *

do

ls -la *

done

Innlesbar lister alle filer som kan leses.

Følgende eksempel kaller jeg kopipar:

  1. !/bin/bash

while test "$2" != ""; do

cp $1 $2

shift; shift

done

if test "$1" != ""; then

echo "$0: ulikt antall argumenter!"

fi

Kommandofilen kopipar har som oppgave å kopiere filpar. Denne kommandofilen bruker skallkommandoen shift, som er beskrevet i avsnittet "Flere kommandoer" i dette kapitlet.

Eksempel:

[david@nittedal david]$ kopipar fil1 fil2 fil3 fil4

Vil kopiere fil1 til fil2, og fil3 til fil4.

Until-løkken[rediger]

While-strukturen går i sløyfen så lenge kommandolisten er sann (status=0). Until-løkken går bare så lenge kommandolisten er usann. Når kommandolisten er sann (status=0), hopper programmet ut av strukturen.

Følgende eksempel kaller jeg inntil.test:

  1. !/bin/bash

until test -f datafil

do

sleep 1000

done

Strukturen går i en løkke helt til filen datafil blir opprettet. Jeg tester for hver 1000 tidsenhet, det vil si ca. hvert 500 sekund.

Flere kommandoer[rediger]

Posisjonsparametere og shift-kommandoen[rediger]

Når en kommandofil blir startet, skaper skallet automatisk posisjonsparameterne. Navnet på selve kommandofilen får variablen $0, mens det første argumentet blir satt til $1, det neste til $2, osv. til $9. Det ligger dermed en begrensning på ni posisjonsparametere.

Med skift-kommandoen kan jeg overkomme denne begrensningen. Skift-kommandoen flytter argumentene en posisjon til venstre.

Verdien til $1 blir kastet bort. $1 får dermed det som er plassert i $2, og $2 får det som var plassert i $3, osv.

Kommandofilen echoskift:

  1. !/bin/bash

while test $# !=0

do

echo $1 $2 $3 $4 $5 $6 $7 $8 $9

shift

done

Hver gang en ny runde i while-strukturen blir gjennomført, skifter argumentene plass én gang. Eksempel med kommandofilen echoskift:

echoskift a b c

a b c

b c

c

Følgende kommandofil kan brukes til å lese tolv navn:

  1. !/bin/bash

teller=1

while test $teller -le 12

do

echo "Navn : $1"

shift

done

NB! Du kan tvinge posisjonsparameterne i bestemte variabler $1 til $9 når du bruker set-kommandoen.

Break og continue[rediger]

Ved hjelp av kommandoen break kan du avbryte en for- eller while-løkke. Ønsker du å hoppe ut av strukturen bare i den omgangen du er inne i for øyeblikket, bruker du kommandoen continue. Både break og continue brukes mellom kommandoene do og done.

Har du flere løkker inni hverandre, vil break bare avslutte den innerste løkken. Ønsker du å gå ut av flere løkker, kan du bruke break n, hvor n er løkkenivået. Ettersom continue også bare påvirker den innerste løkken, må du bruke continue n hvis du skal avbryte flere løkker.

  1. !/bin/bash

while true

do

echo "Skriv inn data"

read inndata

case "$inndata" in

"done") break

"")

continue

  • )

echo "Hei"

esac

done

While true er en evig løkke. Skriver du teksten break, går programmet helt ut av strukturen. Trykker du bare på Enter-tasten, går programmet til begynnelsen av løkken, og inndata leses på nytt. Skriver du navnet ditt eller noe annet, blir teksten "hei" sendt til skjermen.

Kommandoen exit[rediger]

Med exit-kommandoen er det mulig å sende positive eller negative meldinger. Statusverdi 0 (null) gis ved feilfri utføring av en kommando, ellers blir statusverdien forskjellig fra null. Exit-kodene kan brukes som kommunikasjon mellom skallene.

Kommandoen exit simulerer en avslutning på en kommandofil. En kommandofil kan derfor termineres normalt ved å plassere exit 0 som siste linje i filen.

Kodebeskrivelse:

0 - feilfri utføring 1 - kommandofeil

2 - syntaksfeil 3 - får ikke tak i avbruddsignalet

Eksempel på bruk:

  1. !/bin/bash

if test $# -lt 2

then

echo "To eller flere argumenter må jeg ha";exit 1

fi

Her tester jeg antall argumenter brukeren har skrevet. Hvis brukeren har spesifisert mindre enn to argumenter, hopper programmet ut med exit.

  1. !/bin/bash

if grep $var ordreliste

then

exit 0

else

echo "Ikke i ordreliste"

exit 1

fi

Her har jeg en test som gir enten exit 0 eller exit 1.

Gruppering av kommandoer[rediger]

I et skall finnes det to forskjellige måter å gruppere kommandoer på:

a) Du kan bruke vanlige parenteser "( "og ")". Når du bruker disse, skaper du et subskall som leser gruppen av kommandoer. Venstre- og høyreparenteser kan plasseres fritt på linjen.

b) Du kan også få hjelp av { og }. Det dannes ikke noe subskall, men de grupperte kommandoene leses direkte av skallet. Jeg bruker gruppering med { og } når standard utdata skal brukes som standard inndata til en kommando.

Eksempel:

[david@nittedal david]$ (date; who | wc -l) >> datafil

Først blir kommandoen date utført, deretter teller jeg antall brukere pålogget. Begge resultatene blir addert til datafil.

[david@nittedal david]$ (gcc -o calc calc.c; strip calc; mv calc regn) &

Her gjør jeg en kompilering og stripping av filen, og jeg skifter navn på filen calc til regn. Alle operasjonene går i bakgrunnen.

Jeg kan midlertidig flytte til en bestemt katalog og utføre en kommando på to måter:

[david@nittedal david]$ katalog='pwd'; cd /prog/c-kode/cf.d

[david@nittedal david]$ ./make_device; cd $katalog

eller

[david@nittedal david]$ (cd /prog/c-kode/cf.d; ./make_device)

I begge disse eksemplene gjøres det samme, men i det siste eksemplet har jeg opprettet et subskall. Jeg blir derfor plassert i min opprinnelige katalog.

[david@nittedal david]$ cp /etc/passwd /usr/david/passwd

[david@nittedal david]$ (cd /etc; cp passwd /usr/david/passwd)

I første linje kopieres filen /etc/passwd til /usr/david/passwd. I det andre eksemplet skifter jeg først til katalogen /etc, og deretter kopieres filen. Begge kommandolinjene har samme effekt.

[david@nittedal david]$ {ls /dev; ls /dev/fd} | tr [a-z] [A-Z]

Her blir alle filene i /dev og /dev/dsk standard inndata til tr-kommandoen.

Kommandoer i variabler

Alle kommandoer kan defineres i en variabel. Det eneste du må huske på, er å omslutte innholdet med apostrofer. Jeg kaller dette kommandosubstitusjon. En kommando som er avgrenset med apostrofer, blir utført av skallet; deretter erstatter et nytt skall kommandouttrykket. For eksempel:

[david@nittedal david]$ dato='date'

Her blir date-kommandoen plassert i skallvariabelen dato. Ønsker du å skrive ut variabelen dato, skriver du bare:

[david@nittedal david]$ echo $dato

Jeg kan avgrense flere kommandoer med apostrofer, for eksempel:

[david@nittedal david]$ antallfiler='ls | wc -l'

Antall filer blir plassert i variabelen antallfiler. Se også avsnittet "Variabler" i dette kapitlet.

Reserverte tegn[rediger]

Her er en oppsummering av operatorer og uttrykk som kan brukes i en kommandofil.

Det har kommet noen nye reserverte ord. For repetisjon kan du lese kapittel 9, som tar for seg omdirigering, rør og filtre. Jokere er tatt opp i kapittel 6.

Referanser og definering av variabler er tatt opp i begynnelsen av dette kapitlet.

Reserverte ord

   | rør
   && og-hvis-symbol (Hvis du skriver to kommandoer med && imellom, utføres den siste bare hvis den første gikk bra.) ||
   eller-hvis-symbol (Hvis du skriver to kommandoer med || imellom, utføres den siste bare hvis den første feilet.) ; skiller kommandoer ;; avslutter case-løkke
   & bakgrunnsprosessering () grupperer kommandoer med subskall { } grupperer kommandoer uten subskall
   < omdirigering av standard inndata
   << here-dokument
   > omdirigering av standard utdata
   >> legger til standard utdata # kommentar i bash- og sh-kommandofiler 

&& og || er veldig nyttige når du skal teste flere ting på en gang, for eksempel if test -z “foo" && test -n “bar".

Mønstre (Jokere)

  • erstatter ett eller flere tegn

? erstatter ett tegn

[...] enkelttegn eller tegnintervall

Substitusjon

$n bytter skallvariabler

p... utfører et program på linje

Referanse

   \ tolker neste tegn som tekst 
   '...' innleder og avslutter streng (tolktegnene) "..." innleder og avslutter streng (tolktegnene
       utenom $'\") 

Definere variabler

   navn="streng" $navn har strengverdien 

Here-dokument[rediger]

I stedet for å ha egne datafiler kan du samle data i en kommandofil. Dette brukes ved here-dokument.

for i

do

grep $i <<s

123.45 Oslo

124.50 Trondheim

156.60 Bergen

124.56 Stavanger

s

done

I eksemplet ovenfor tar skallet teksten mellom << og s som standard inndata for kommandoen grep. Jeg har valgt tegnet s for avslutning av fil. Du står helt fritt til å velge avslutningstegn.

Funksjoner og prosedyrer[rediger]

Alle programmeringsspråk har både innebygde funksjoner og muligheten til å definere funksjoner. Prosedyrer gjør at jeg kan dele opp programmer i mindre deler. Grupper av kommandoer som gjentas flere steder, trenger heller ikke å redefineres.

Innebygde funksjoner - expr[rediger]

Det finnes en innebygd funksjon (kommando) som heter expr. Den bruker du når du skal foreta beregninger. Med expr kan du foreta matematiske beregninger på skallvariabler. Følgende operatorer kan brukes i expr:

+ addisjon

- subtraksjon

  • multiplikasjon

/ divisjon

% rest

Operatorer og operand har forskjellige argumenter til expr. Jeg må derfor ha et mellomrom mellom de forskjellige variablene.

Kommandofilen multi:

expr $1 * $2

Eksempel:

[david@nittedal david]$ multi 8 4

32

Kommandofilen pluss:

expr $1 + $2 + $3 + $4

Eksempel på bruk:

[david@nittedal david]$ pluss 2 3 6 7

18

Definere funksjoner[rediger]

I skallet kan du definere funksjoner. Definerte funksjoner er analogt med prosedyrer, med det unntaket at funksjoner er i maskinens minne, mens prosedyrer ligger på disken som en separat kommandofil (program). Funksjoner blir dermed utført av skallets prosess, mens prosedyrer blir utført som en separat prosess.

Syntaksen for definerte funksjoner er:

navn () {

kommandoliste;

}

Du må definere et navn på funksjonen og lage en kommandoliste. Kommandolisten begynner på { og avsluttes med }.

En funksjon kan kalles opp så ofte du vil. Her har jeg et eksempel på en enkel funksjon:

standard_tekst ()

{

echo "*********************************************"

echo " IDG Norge Books AS "

echo "*********************************************"

}

Denne funksjonen kan du bruke hvor du vil i kommandofilen. Du kaller opp funksjonen ved å skrive navnet på funksjonen, i dette tilfellet standard_tekst.

Her har jeg et eksempel på en funksjon som leser om jeg skriver ja eller nei:

hent_ja_nei ()

while echo -n "$* (J/N)?" >& 2

do

read ja_nei

case $ja_nei in

[jJ]) return 0

[nN]) return 1

  • ) echo "Svar ja eller nei" >& 2

esac

done

}

Denne funksjonen legger til teksten (J/N) til standard utdata. Funksjonen godtar bare J, j, N, n som input og returnerer en kode 0 eller 1. Hvis inputen fra brukeren er noe annet, sender funksjonen teksten "Svar ja eller nei". Løkken er evig hvis brukeren ikke svarer J, j, N eller n.

Eksempel på start av funksjonen hent_ja_nei:

hent_ja_nei " Skal jeg avbryte kommandofil" || exit

Prosedyrer =[rediger]

Du lager en prosedyre som en separat kommandofil og setter på x-bitet. Deretter kaller du opp prosedyren fra hovedkommandofilen. Prosedyren er egentlig bare en vanlig kommandofil.

Husk at hovedprogrammet og prosedyrene bør ligge i samme katalog. Hvis de ikke gjør det, må søkebanen være riktig satt opp.

Eksempel:

Her lager jeg en prosedyre som jeg kaller brev_til_alle:

brev=$1

shift

for i in $*

do mail $i < $brev

done

I hovedprogrammet kan jeg kalle opp prosedyren med for eksempel:

[david@nittedal david]$ brev_til_alle rapport ole nils per

Kan du lage en kommandofil, er det enkelt å lage prosedyrer.

Skall-miljøet[rediger]

Felles oppstartsfil for alle bash-brukere er /etc/profile. Denne filen kan bare settes opp av systemadministrator. Som standard innloggingsfil for de enkelte brukerne, brukte man tidligere $HOME/.profile. Denne konfigurasjonsfilen er nå forlatt men brukes fortsatt av blant annet Bourne-skall (sh). Filen $HOME/.profile blir bare utført en gang dvs. når du logger inn på systemet. Den tilsvarende filen under bash-skall er $HOME/.bash_profile. Denne filen blir bare utført når du logger inn første gang som bash-bruker. Hver gang du logger inn eller starter et skall blir innloggingsfilen $HOME/.bashrc utført.

Variabler i både $HOME/.bash_profile og $HOME/.bashrc blir eksportert til alle barn av hovedskallet. Ønsker du å endre miljøparametere, må du endre på enten $HOME/.bash_profile eller $HOME/.bashrc. Det er ikke nødvendig å logge deg inn og ut hvis du har gjort endringer på systemfilene. Skriv bare .bash_profile eller .bashrc fra systemledeteksten.

Skallets utføringsflagg[rediger]

Med set-kommandoen kan jeg også endre skallets utføringsflagg (opsjoner) ved å sette forskjellige flagg.

    {attachment:Ramme48.png}  De mest brukte flaggene er -x og -v. De brukes ofte ved feilsøking av kommandofiler. For eksempel: 

[david@nittedal david]$ set -x

[david@nittedal david]$ set -v

De to flaggene har følgende betydning:

   -v Standard inndata blir skrevet ut etter hvert som de blir lest av skallet. Dette flagget brukes mest for å isolere feil.
   -x Kommandoer og dets argumenter blir skrevet ut etter hvert som de blir utført. Skallkommandoer som for, while osv. blir ikke skrevet ut. 

Det er viktig å merke seg at -x bare lager en trace av de kommandoer som blir utført, mens -v skriver ut hver linje.

Ønsker du å skru av disse flaggene, skriver du set +x eller bare set -.

Du kan bruke flaggene direkte, uten å bruke set-kommandoen først. Sett da bare opsjonen foran sh-skallet. For eksempel:

[david@nittedal david]$ bash -x batchfil

Skallets miljø[rediger]

Alle variabler og deres verdier som er gitt ved kjøring av en kommandofil/kommando, utgjør skallets miljø (environment=env). Miljøet inkluderer variabler som kommandofilen arver fra foreldreprosessen. Nøkkelparametere som en kommandofil blir startet med, er selvfølgelig en del av miljøet til kommandofilen.

Variablene som et skall plasserer i en barneprosess, er de som har blitt eksportert med export-kommandoen. Kommandoen export plasserer de spesifiserte variablene i både moderskallet og i andre barneprosesser av moderskallet.

En prosedyre kan få tilgang til en hvilken som helst variabel som er definert i dens miljø. Hvis en kommandofil endrer på en miljøparameter, gjelder denne endringen bare lokalt for denne prosedyren og ikke globalt for skallet. Skal endringen gjøres globalt for skallet, må variabelen eksporteres. Det gjøres ved å skrive export og variabelnavn.

Miljøvariabler ser du med env-kommando:

[david@nittedal david]$ env

BROWSER=/usr/bin/netscape

HISTSIZE=1000

HOSTNAME=nittedal.c2i.net

LOGNAME=david

HISTFILESIZE=1000

MAIL=/var/spool/mail/david

MACHTYPE=i386

TERMCAP=xterm|vs100|xterm terminal emulator (X11R6 Window System):am:km:mi:ms:xn

xo:co#80:it#8:li#24:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO…

WINDOWID=20971533

PWD=/tmp

SHLVL=5

_=/usr/bin/env

[root@nittedal /tmp]#

Eksempel med set:

[david@nittedal david]$ set

BASH=/bin/bash

BASH_VERSION=1.14.7(1)

BROWSER=/usr/bin/netscape

[root@nittedal /tmp]#

Med set får du også med spesielle bash-, sh-, zsh- og tcsh-variabler.

Et programeksempel[rediger]

Til slutt har jeg laget en kommandofil som tar opp de fleste bash-skall-kommandoene vi har gått igjennom.

  1. !/bin/bash

clear

while test "$answer" != "0"

do

clear

echo ""

echo " 1 - List files(directory) "

echo " 2 - Change catalog "

echo " 3 - File check "

echo " 4 - Copy file "

echo " 5 - Remove file "

echo " 6 - Change filename "

echo " 7 - Output file to screen "

echo " 8 - Output file to printer"

echo " 9 - Users logged in to the computer"

echo " 10 - Who am i"

echo " 11 - Current directory"

echo " 12 - Make a directory"

echo " 13 - Delete empty directory"

echo " 14 - Quit the menu"

echo ""

echo -n " Choose a function (1/../14) and press <RETURN> key :"

read answer

cd $home

  1. 1 - List files(directory)

if test "$answer" = "1";then

   clear echo "" echo "Current/working directory is :" pwd echo "" echo "List files and directories" ls -la | more echo ""
   echo -n "Press <RETURN> to continue :" read stop 

fi

  1. 2 - Change directory

if test "$answer" = "2";then

   clear echo "" echo -n "Current/working directory :" pwd echo "" echo "To continue in current/working directory answer with 

'.'(period) and press <RETURN>"

   echo "If you want to move one level up, answer with 

'..'(two periods) and press <RETURN>"

   echo ""
   echo "If you want to move back to your own home-directory you only need to press <RETURN>" echo ""
   echo "If you want to move to a child-directory just write the name of the directory and press <RETURN>" echo "" echo -n "Which directory would you like to use :" read dir cd $dir echo "" echo -n "New active directory is :" pwd echo ""
   echo -n "Press <RETURN> to continue :" read stop 

fi

  1. 3 - File check

if test "$answer" = "3";then

   clear echo "" echo -n "Which file do you wish to check :" read file if test -d "$file";then
       echo "" echo " "$file" is a directory" echo ""
       echo -n "Press <RETURN> to continue :" read stop 
   fi if test -r "$file";then
       echo "" echo "We can read the file" 
   fi if test -w "$file";then
       echo "" echo "We can write to the file" 
   fi if test ! -f "$file";then
       echo "" echo ""$file" is not a sub-directory or a file in the specified directory" 
   fi echo ""
   echo -n "Press <RETURN> to continue :" read stop 

fi

  1. 4 - Copy file

if test "$answer" = "4";then

   clear echo "" echo "" echo -n "You are now placed in directory :" pwd echo "" echo -n "Which file do you want to copy :" read fromfile echo "" if test -s "$fromfile";then
       echo -n "Which directory/file would you like to copy to :" read tofile if test ! -s "$tofile";then
           cp "$fromfile" "$tofile" 
       else
           echo "" echo -n ""$tofile" exist do you want overwrite (y/n) :" read yes if test "$yes" = "y";then
               cp "$fromfile" "$tofile" 
           fi 
       fi 
   else
       echo ""
       echo -n ""$fromfile" do not exist - press <RETURN> :" read stop 
   fi 

fi

  1. 5 - Delete file

if test "$answer" = "5";then

   clear echo "" echo -n "Which file do you want to delete :" read file if test -f "$file";then
       clear echo "" echo -n ""$file" exists. Do you really want to delete the file (y/n) :" read yes if test "$yes" = "y";then
           rm $file 
       fi 
   else echo ""
       echo -n ""$file" do not exists - press <RETURN>" read stop 
       fi 

fi

  1. 6 - Change name on file

if test "$answer" = "6";then

   clear echo "" echo -n "You are now in directory :" pwd echo "" echo -n "Which filename would you like to change :" read file if test -f "$file";then
       clear echo "" echo -n ""$file" exists. Please give a new name :" read newname if test ! -f "$newname";then
           mv "$file" "$newname" 
       else
           echo ""
           echo -n ""$newname" exists - press <RETURN> :" read stop 
       fi 
   else
       echo ""
       echo -n ""$file" do not exists - press <RETURN> :" read stop 
   fi 

fi

  1. 7 - Output file to monitor screen

if test "$answer" = "7";then

   clear echo ""
   echo "If the file is more than one page you may continue by pressing the <RETURN> key" echo "" echo -n "Which file would you like to see on your monitor screen :" read file if test -s "$file";then
       more "$file" echo ""
       echo -n "Press <RETURN> to continue :" read stop 
   else
       echo "" echo "The file do not exists or is empty" 
   echo ""
       echo -n "Press <RETURN> to continue :" read stop 
   fi 

fi

  1. 8 - Output file to printer

if test "$answer" = "8";then

   clear echo "" echo -n "Which file would you like to print :" read file echo "" lpr $file 
   echo "" 

fi

  1. 9 - Users logged on the system

if test "$answer" = "9";then

   clear echo "" echo -n "Please, wait....."
       who > /tmp/who-list clear echo "" echo "Active users logged on the system :" echo "" 
   cat /tmp/who-list echo ""
       echo -n "Number of users logged on the system :" 
   cat /tmp/who-list | wc -l echo ""
       echo -n "Press <RETURN> to continue:" read stop 

fi

  1. 10 - Who am I

if test "$answer" = "10";then

   clear echo "" echo -n "I am user :" whoami echo ""
   echo -n "Press <RETURN> to continue :" read stop 

fi

  1. 11 - Current directory

if test "$answer" = "11";then

   clear echo "" echo -n "Current directory is :" pwd 
   echo ""
       echo -n "Press <RETURN> to continue :" read stop 

fi

  1. 12 - Make a directory

if test "$answer" = "12";then

   clear echo "" echo -n "Current directory is :" pwd echo " " echo -n "Is this the right directory - would you like to continue (y/n) :" read yes if test "$yes" = "y";then
       echo "" echo -n "What is the name of the new sub-directory :" read subdir if test ! -d "$subdir";then
           mkdir "$subdir" if test ! -d "$subdir";then
               echo "" echo -n ""$subdir" this directory do not exists :" read stop 
           fi 
       else
           echo ""
           echo -n ""$subdir" this directory do already exists - press <RETURN> :" read stop 
       fi 
   fi 

fi

  1. 13 - Delete empty directory

if test "$answer" = "13";then

   clear echo "" echo -n "Current directory is :" pwd echo "" echo -n "Which empty directory would you like to delete :" read file if test -d "$file";then
       cd $file echo "" echo "Checking directory" ls -la cd .. echo "" echo -n "Any files in that directory? - (y/n) :" read yes if test "$yes" = "y";then
           rmdir "$file" if test ! -d "$file";then
               echo ""
               echo -n ""$file" is deleted - press <RETURN> :" read stop 
           fi 
       fi 
   else
       echo ""
       echo -n ""$file" is not a directory - press <RETURN> :" read stop 
   fi 

fi

  1. 14 - Quit the menu

if test "$answer" = "14";then

   exit; 

fi

done

Oppgaver til kapittel 16[rediger]

Oppgave 16.1

Lag en kommandofil som du kaller shell.1. Kommandofilen skal inneholde disse tre linjene:

echo "Hva heter du? "

read navn

echo "Hei $navn"

Utfør filen på de tre måtene som er mulig.

Oppgave 16.2

Lag en kommandofil som leser inn fornavn, etternavn, kjønn, høyde og vekt fra kommandolinjen. Når dataene er registert skal programmet skrive ut dataene med ledetekster. Kall kommandofilen for shell.2

Oppgave 16.3

Lag en kommandofil som gjemmer systemparameterne til din hjemmekatalog, skall og terminal i andre variabler. Disse nye variablene skal vises på skjermen. Kall kommandofilen for shell.3.

Oppgave 16.4

Hva gjør de neste tre kommandolinjene?

data='ls -la | grep "*.txt"'

(echo "Hva er navnet ditt"; read navn) || exit

{who; whoami; du;} | wc -l

Oppgave 16.5

Lag en kommandofil som skal kunne kalles opp på tre måter.

shell.4 list filnavn

shell.4 innhold filnavn

shell.4 print filnavn

Tips: (ls -la, cat, lpr -dskriver). Bruk case. Kommandofilen skal kalles shell.4.

Oppgave 16.6

a) Lag en kommandofil som viser følgende:

Dagens dato/klokke : Mon Apr 04 09:18:29 SCET 2005

Antall brukere : 2

Min status : david tty01 Apr 04 06:39

Min hjemmekatalog : /home/davide

Plassert i katalog : /home/davide/stk

Mine filer : total 10

drwxr-xr-x 2 david Support 64 Apr 04 09:18 .

drwxr-xr-x 8 david Support 416 Apr 04 08:37 ..

-rwxr--r-- 1 david Support 1220 Feb 22 06:21 stktore

-rw-r--r-- 1 david Support 305 Apr 04 09:18 test

Tips: (date, who, who am i, $home, pwd, ls -la | more)

b) Utvid kommandofilen med følgende. Det skal legges inn parametre som angir i hvilken katalog du ønsker å liste filene i. Du skal benytte deg av følgende regler:

   er det ikke spesifisert noen parametere, betyr det den katalogen brukeren står i.
   en parameter tolkes som katalog
   flere parametere skal gi feilmelding 

Oppgave 16.7

Hva gjør følgende kommandofil?

  1. !/bin/bash

for i in I D G N O R G E

do

echo "Skriv inn bokstavene $i"

echo -n "$i "

done

Oppgave 16.8

Lag et menysystem som gir brukeren muligheten til å definere terminaltype og starte forskjellige applikasjoner, for eksempel WordPerfect., StarOffice, sjakkprogram (xboard) etc. Det skal også være en egen opsjon for å avslutte.

Løsningsforslag

Oppgave 16.1

shell.1

sh shell.1

sh < shell.1

chmod u+x shell.1;shell.1

Oppgave 16.2

  1. !/bin/bash

echo -n "Angi fornavn: "

read fn

echo -n "Angi etternavn: "

read en

echo -n "Angi kjønn: "

read kj

echo -n "Angi høyde: "

read hd

echo -n "Angi vekt: "

read vk

clear

echo "Du er $kj og navnet ditt er $fn $en"

echo "Din høyde og vekt er $hd og $vk"

Oppgave 16.3

  1. !/bin/bash

homenavn=$HOME

shellnavn=$SHELL

termnavn=$TERM

echo "Din hjemmekatalog er :" $homenavn

echo "Ditt skall er :" $shellnavn

echo "Terminaltype er :" $termnavn

Oppgave 16.5

  1. !/bin/bash

case $1 in

list) ls -la $2;;

innhold) more $2;;

print) lpr -Pskriver1 $2;;

  • ) echo " Dette er ukjent?";;

esac

Oppgave 16.6 a)

  1. !/bin/bash

bind='---------'

echo -n "$bind" "Dagens dato og klokke: "

date

echo -n "$bind" "Antall brukere : "

who | wc -l

echo -n "$bind" "Min status : "

whoami

echo -n "$bind" "Min hjemmekatalog : "

echo $HOME

echo -n "$bind" "Plassert i katalog : "

pwd

echo -n "$bind" "Mine filer : "

ls -la | more

exit 0

Oppgave 16.6 b)

  1. !/bin/bash

bind='---------'

case $# in

0) katalog=pwd;;

1) katalog=$1;;

  • ) echo "Bruk: Spesifiserer bare en katalog"; exit 1;;

esac

echo -n "$bind" "Dagens dato og klokke: "

date

echo -n "$bind" "Antall brukere : "

who | wc -l

echo -n "$bind" "Min status : "

whoami

echo -n "$bind" "Min hjemmekatalog : "

echo $HOME

echo -n "$bind" "Plassert i katalog : "

pwd

echo -n "$bind" "Mine filer : "

ls -la $katalog | more

exit 0

17: Starte Linux[rediger]

I dette kapitlet forklarer jeg hvordan du starter Linux på en PC. Detaljene avviker noe fra system til system. Jeg sammenligner oppstarten av Linux med tilsvarende prosess for både Unix, Windows 10 og Windows XP. Jeg forklarer samtidig hva operativsystemets oppgaver er, disse er svært like uansett hvilket system du bruker.

Det er enkelt å starte Linux på en PC. Du gjør som med ethvert annet operativsystem på en slik maskin: Slå først på maskinen!

Starte Windows 10[rediger]

Siden jeg har konsentrert meg om PC-arkitektur, vil jeg først se på hva som skjer når jeg slår på en PC med operativsystemet Windows 10. Oppstart under Windows går gjennom følgende trinn:

   * ROM (BIOS) (UEFI)
   * selvtest
       ** hovedkort
       ** I/U 
   * BIOS leser MBR (Master Boot Record) eller UEFI (GPT harddisk\SSD) som er første sektor på den aktive partisjonen (partisjonen kan være på stasjon A, C, D etc)
  * efibootmgr laster opp NVRAM variablene i EFI_DEVICE_PATH_PROTOCOL
  * Windows 10 

[root@system directory]# efibootmgr -v

BootCurrent: 0007 Timeout: 0 seconds BootOrder: 0007,0004,0003,0000,0001,0005,0006 Boot0000* Windows Boot Manager HD(2,GPT,6ce95998-08f5-4955-86e4-c84149e7dea9,0xe1800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...a................ Boot0001* Fedora HD(2,GPT,6ce95998-08f5-4955-86e4-c84149e7dea9,0xe1800,0x32000)/File(\EFI\fedora\shim.efi) Boot0003* fedora HD(1,GPT,62b5350b-f6ef-4537-b015-5e5f650cd465,0x800,0x64000)/File(\EFI\fedora\grubx64.efi) Boot0004* opensuse HD(1,GPT,0d24c770-baab-4c79-8db2-06de901c57be,0x800,0x32000)/File(\EFI\opensuse\grubx64.efi) Boot0005* CD/DVD Drive BBS(CDROM,,0x0)AMGOAMNO........o.M.A.T.S.H.I.T.A.D.V.D.-.R.A.M. .U.J.8.B.2....................A...........................>..Gd-.;.A..MQ..L. . . . . . . . .M.W.6.8. . .1.0.1.7.5.8......AMBO Boot0006* Hard Drive BBS(HD,,0x0)AMGOAMNO........o.O.C.Z.-.V.E.R.T.E.X.4....................A...........................>..Gd-.;.A..MQ..L.C.O.-.Z.7.9.6.Y.1.I.O.6.9.A.8.4.2.9.O.0......AMBO Boot0007* UEFI: MATSHITADVD-RAM UJ8B2 PciRoot(0x0)/Pci(0x1f,0x2)/Sata(4,65535,0)/CDROM(0,0x5c,0x28c0)AMBO

Det første som skjer når du slår på en PC, er at et program i ROM (Read Only Memory) starter. Dette programmet gjør en selvtest på maskinen. Selvtesten sjekker maskinens hovedkretskort samt I/U-enheter som usb, skjermkort, harddisker\SSD osv.

UEFI-boot under linux kan være litt trøblete særlig for nye brukere og funger dårlig mot windows, det anbefales å bruke rEFInd_0.10.2 (https://sourceforge.net/projects/refind/files/0.10.2/refind-cd-0.10.2.zip/download) for nybegynner brenne denne som iso fil til CD og starte fra CD da vil platen automatisk finne boot partisjonen.

Det er viktig å installere begge på lik måte, UEFI boot på både Windows\Linux. Da jeg selv har opplevet problemet med oppstartlasteren Grub2 ikke finner UEFI windows 10 installasjonen.

Starte Windows XP[rediger]

Oppstarten av Windows XP er mer komplisert enn Windows 98. Du vil se at kun første delen er identisk med Windows 98. Oppstart under Windows XP går gjennom følgende trinn:

  * ROM (BIOS)
  * selvtest
       ** hovedkort
       ** I/U 
  • BIOS leser MBR (Master Boot Record) som er første sektor på den aktive partisjonen (partisjonen kan være på stasjon A, C, D etc)
  • MBR leser starter opp NTLDR som er oppstartsprogrammet for Windows XP. Det første NTLDR gjør er følgende:
  • starte minnesadressering
  • lese filsystemene
  • lese boot.ini
  • laste opp oppstartsteksten

Det er viktige at NTLDR er plassert i root / (fra windows). I root må filene NTDETECT.COM, BOOT.INI, BOOTSECT.DOS (ved dual oppstart) og NTBOOTDD.SYS (brukes av noen SCSI-kort) være plassert.

Fra menyen kan du nå velge XP. Etter at du har valgt XP vil NTLDR kjøre programmet NTDETECT.COM for å få informasjon om installert maskinvare. NTLDR bruker søkeveien som er spesifisert i BOOT.INI til å finne oppstartspartisjonen, hvor XP er installert. Under har jeg et eksempel:

default=multi (0)disk (0)partiton (2) \WINDOWS

[operating systems]

multi(0)disk(0)partiton(2)\WINDOWS="Microsoft Windows XP Home" /fastdetect

   NTLDR laster opp de to filene som er kjernen i Windows XP (NTOSKRNL.EXE og HAL.DLL). Disse filene må være plassert i %SystemRoot%\System32-katalogen.
   NTLDR leser registry-filene, velger maskinvareprofil, gjør en kontrollsjekk og laster opp de styreprogrammene som er nødvendig.
   NTOSKRNL.EXE tar deretter over og starter Winlogon.exe som igjen starter opp programmet LSASS.EXE (Local Security Administration). Dette er programmet som ønsker deg velkommen. Hvis du kjører Windows XP Professional får du nå opp innloggingsbilde. 

Starte Unix og Linux[rediger]

Starten av Unix og Linux foregår på tilsvarende måte som for Windows 10 og Windows XP. Den går gjennom følgende trinn:

   * ROM (BIOS\UEFI\EFI)
   * selvtest
   * hovedkort
   * I/U 

Leser første sektor/track fra stasjon D: så, deretter eventuelt fra C (eller minnepenn). Så langt er oppstart under Window 10 og Windows XP identisk med en oppstart under Linux, ettersom maskinvaren er identisk. Første del av oppstarten foregår slik på de fleste mikro/mini-maskinene.

I Unix-verdenen har man et program som heter boot. I Linux heter boot-programmet LILO eller GRUB. Boot-programmene er et startprogram som er plassert på boot-blokken (MBR). MBR (master Boot Record) eller gjennomUEFI/SecureBoot /boot/efi er første sektor på den aktive partisjonen.

Programmene gir følgende ledetekst:

Unix System V Linux

boot: LILO boot: GRUB boot:

Her kan du spesifisere andre Unix- eller Linux-kjerner eller bruke opsjoner, for eksempel:

unix.old unix.SCSI linux linux single (opsjon)

unix.tape unix.clean linux.clean linux mem=256M (opsjon)

Har du en Windows 10-partisjon på harddisken, kan du spesifisere at du ønsker å få lastet opp operativsystemet Windows 10 ved å velge (eller skrive) Windows etter boot-kolonet. Har du en moderne variant av GRUB eller LILO vil du ved oppstart få et grafisk grensesnitt hvor du med tabtasten eller piltastene kan velge den partisjonen du ønsker å kjøre opp.

Det er også mulig å starte Linux-operativsystemet eller Unix-systemet fra en Minnepenn. Når Linux-kjernen er lastet opp, går den gjennom forskjellige systemfiler. Hvilke systemfiler den går gjennom, er avhengig av hvilke endringer du har gjort på oppstartsfilene. Init-prosessen starter opp når du starter opp et hvilket som helst Linux-system; du finner denne prosessen i standard Unix V.4 og i Linux. Init er ansvarlig for å starte alle andre normale prosesser du trenger, for eksempel smtp, ftp, news, http, nfs eller spesifikke rutiner som du selv har laget. Linux har tidligere vært basert på BSD-inits oppstartsprosedyre. I dag er Linux blitt mer og mer basert på System V, dermed har man ikke den store forskjellen mellom standard Unix V.4 og Linux.

De fleste aktører i markedet har gått over til system Vs oppstartsmetode, da den er enklere, kraftigere og mer fleksibel enn for eksempel en tradisjonell BSD-metode. Under oppstart av standard Unix System V plasseres alle konfig-filene i kataloger under /etc/rc.d, i motsetning til BSD som har det meste i katalogen /etc.

Oppstart Unix Oppstart Linux
Unix Linux
Init /etc/rc.d/init.d
/etc/rc/etc/rc.d/rc /etc/rc2
/etc/rc.d/rc.local/etc/rc3 /etc/rc.d/rc.local
/etc/rc.d /etc/rc.d/rc.sysinit
/System/Library/CoreServices/ /boot/efi
/etc/rc.d/0..9 /etc/rc
/etc/rc.d/rcn(n=0,,6).d /etc/rc

Linux søker flere steder etter init og kjører den første den finner. Init kjører /etc/init.d/bcheckrc eller /etc/rc.d/rc.sysinit (gjelder Red Hat Linux), deretter kjøres alle skriptene som er nødvendige på det spesifiserte kjørenivået (0,1,2,3,4,5,6).

I disse systemstartfilene finner du kommandoer og data som blir satt ved de forskjellige kjørenivåene. Du vil se at strukturen i Linux ikke er entydig.

Under Red Hat Linux finner du katalogen /etc/rc.d/init.d, hvor de fleste oppstartsskriptene som startes opp ved de enkelte kjørenivåene (0,1,2,3,4,5,6) ligger.

Figur 17.1: Innholdet av Linux-katalogen /etc/rc.d

Figur 17.2: Innholdet av Linux-katalogen /etc/rc.d/rc2.d

Hvilket kjørenivå skriptene skal kjøre, ser du ved å gå inn i de enkelte katalogene /etc/rc.d/rc1.d, /etc/rc.d/rc2.d, /etc/rc.d/rc3.d etc. De enkelte filene er igjen linket til /etc/rc.d/init.d. På kjørenivå 2 (/etc/rc.d/rc2.d) finner du cron, lpd etc. På kjørenivå 3 (/etc/rc.d/rc3.d) finner du sendmail, rwalld, postgresql, sound, httpd etc. Sjekker du katalogene /etc/rc.d/rc2.d og /etc/rc.d/rc3.d, ser du hva som blir startet opp på kjørenivå 2 og 3.

Hvilket kjørenivå som skal være standard, blir bestemt av /etc/inittab. Standard under Linux er id:5:initdefault (Red Hat), dvs. kjørenivå 3. Operasjoner som bare skal kjøres én gang uansett kjørenivå, finner du under /etc/rc.d/rc.local. Systemadministrator står fritt til å endre systemoppstartsfilene.

Felles for alle systemene er at systeminformasjon blir vist til hovedkonsollet. Det blir kjørt et enkelt skall på hovedkonsollet. Dette skallet tilhører systemadministrator (root), og brukes for å kontrollere filsystemet. Hvis filsystemet er i orden, kan du velge å kjøre systemet opp i forskjellige kjørenivå. Er ikke filsystemet i orden, blir fsck-programmet startet automatisk. Dette programmet fikser filsystemet (se kapittel 19). Når filsystemet er fikset, er du klar til å kjøre systemet opp i valgt kjørenivå.

Når systemet er i kjørenivå 1, går systemet gjennom systemfilen /etc/rc og katalogen /etc/rc.d/rc1.d.. I kjørenivå 2 går systemet gjennom filene i katalogen /etc/rc.d/rc2.d.

Når du går fra et lavere kjørenivå, for eksempel 1, til et høyere kjørenivå, for eksempel 2, blir alle filer i /etc/rc.d/rc2.d (Unix går også gjennom rc2.d-katalogen) som begynner på S*, utført. Når man går fra et høyere kjørenivå, for eksempel 3, til et lavere kjørenivå, for eksempel 2, blir kommandofiler i /etc/rc.d/rc3.d som begynner på K*, utført med stop-opsjon. Alle andre filer som hverken begynner med S eller K, blir fullstendig neglisjert i katalogen /etc/rc.d/rc3.d. S*- og K*-filene blir bestandig utført i ASCII i sortert rekkefølge.

De fleste skriptene du finner i katalogene under /etc/rc.d/, har start- og stop-opsjon. Du kan dermed manuelt starte og stoppe tjenester, for eksempel:

[root@nittedal /root]# /etc/rc.d/init.d/lpd stop

[root@nittedal /root]# /etc/rc.d/init.d/lpd start

Her stopper jeg lpd-prosessen. Init leser navn og argument. Hvis prosessen skal termineres, finner den "K"-skriptet, for eksempel K12lpd. Hvis prosessen skal startes, finner den "S"-skriptet, for eksempel S60lpd.

Endring av oppstartsskript[rediger]

Du finner forskjellige metoder for å legge til eller fjerne programmer som skal startes opp automatisk ved system oppstart. Den første metoden og den mest innlysende, er å manuelt fjerne de aktuelle symbolske linkene med rm-kommandoen. Ønsker du for eksempel at sendmail-tjenesten ikke skal kjøre på din maskin, gjør du følgende:

   1. Fjern filen S80sendmail (oppkjøring) fra katalogen (/etc/rc.d/rc2.d)
   2. Fjern filen S80sendmail (oppkjøring) fra katalogen (/etc/rc.d/rc3.d)
   3. Fjern filen S80sendmail (oppkjøring) fra katalogen (/etc/rc.d/rc4.d)
   4. Fjern filen S80sendmail (oppkjøring) fra katalogen (/etc/rc.d/rc5.d)
   5. Fjern filen K30sendmail (nedkjøring) fra katalogen (/etc/rc.d/rc0.d)
   6. Fjern filen K30sendmail (nedkjøring) fra katalogen (/etc/rc.d/rc1.d)
   7. Fjern filen K30sendmail (nedkjøring) fra katalogen (/etc/rc.d/rc6.d) 

Alle de aktuelle filene har symbolske linker til katalogen /etc/init.d. Ønsker du at sendmail-tjenesten (daemonen) bare skal kjøre i kjørenivå 2, er det bare å fjerne oppstartsreferansene fra katalogene /etc/rc.d/rc3.d, /etc/rc.d/rc4.d og /etc/rc.d/rc5.d. I mange tilfeller kan det være lurt å skifte navn i stedet for å fjerne de symbolske referansene. Da har du alltid muligheten til manuelt å komme tilbake til utgangspunktet med hensyn til din originale oppstartsprofil. Hvis du skifter navn på filene i stedet for å fjerne de symbolske referansene er det bare å passe på at filene ikke begynner på S (start) eller K (kill). Du må aldri fjerne eller endre oppstartsskript i katalogen /etc/init.d. Det er slik at ingen skript blir kjørt direkte fra /etc/init.d. Alle skriptenei denne katalogen blir gjort tilgjengelig som linker fra katalogene /etc/rcX.d {X=1..6}. Det spiller derfor ingen rolle om du har skript i denne katalogen som du ikke bruker. Husk, kanskje senere vil du ha bruk for dem. De originale linkene får du på plass ved å bruke Linux-kommandoen ln. Under har jeg et eksempel:

[root@nittedal /rc2.d]# ln -s S80sendmail /etc/init.d/sendmail

Tilsvarende må settes opp for alle S- og K-skript i de nødvendige katalogene. Hvilke kataloger er selvfølgelig avhengig av kjørenivå som skal inkluderes. La oss anta jeg har laget et styreprogram som heter dskstyre og et skript som heter scriptdskstyre. Programmet ønsker jeg skal kunne starte opp i kjørenivå 2,3,5 og avsluttes i kjørenivå 0,1,4,6. Under har jeg et eksempel på hvordan denne tjenesten kan settes opp. Først kopieres programmet og skriptet på plass. Jeg må også sette på de riktige rettighetene.

[root@nittedal /root]# cp /home/elboth/dskstyre /usr/sbin/dskstyre

[root@nittedal /sbin]# chmod u=rwx, g=x, o=x dskstyre

[root@nittedal /root]# cp /home/elboth/scriptdskstyre /etc/init.d/scriptdskstyre

[root@nittedal /init.d]# chmod u=rwx, g=rx, o=rx scriptdskstyre

Nå er det bare å sette opp de symbolske linkene på oppkjøring og nedkjøring.

[root@nittedal /rc2.d]# ln -s S97dskstyre /etc/init.d/dskstyre

[root@nittedal /rc3.d]# ln -s S97dskstyre /etc/init.d/dskstyre

[root@nittedal /rc5.d]# ln -s S97dskstyre /etc/init.d/dskstyre

[root@nittedal /rc0.d]# ln -s K38dskstyre /etc/init.d/dskstyre

[root@nittedal /rc1.d]# ln -s K38dskstyre /etc/init.d/dskstyre

[root@nittedal /rc4.d]# ln -s K38dskstyre /etc/init.d/dskstyre

[root@nittedal /rc6.d]# ln -s K38dskstyre /etc/init.d/dskstyre

Den enkleste metoden for å endre oppstartsskriptene er å kjøre GUI-programmet system-config-services.

Figur 17.3: GUI-programmet Tjenestekonfigurasjon gir deg muligheten til å bestemme hvilke programmer som skal startes på de enkelte init-nivåene

Fra dette programmet er det enkelt å legge til, fjerne eller redigere et oppstartskript. Du har også muligheten til å starte et skript direkte.

[root@nittedal /root]# system-config-services

Du har også muligheten til å starte/endre oppstartskriptene ved å kjøre det tegnbaserte programmet ntsysv.

[root@nittedal /root]# ntsysv

Dette programmet kan du også starte opp fra setup-programmet ([root@nittedal /root]# setup). Her får du opp en liste over servertjenester. De tjenestene som kjøres er merket med stjerne. Ønsker du å starte opp en tjeneste, merker du dette med mellomromstasten. Deretter er det bare å trykke på tab-tasten og godkjenne med ok.

Figur 17.4: Det tegnbaserte programmet ntsysv gir deg muligheten til å bestemme hvilke programmer som skal startes på de enkelte init-nivåene

Programmet ntsysv er begrenset til å fjerne en eksisterende tjeneste eller sette opp en tjeneste som er definert i katalogen /etc/init.d. Du har ikke muligheten til å redigere en tjeneste med hensyn til for eksempel oppstartsnummer.

Kjørenivå infotjenester – chkconfig[rediger]

chkconfig er en mye brukt kommando for å få en status på hvilket kjørenivå de enkelte tjenestene kjører under og hvilken status de har. Kommandoen gir også et enkelt verktøy for å vedlikeholde /etc/rc[0-6].d-katalogstrukturen uten å måtte håndtere de symbolske linkene. Kommandoen chkconfig er tatt fra IBMs AIX-operativsystem.

Kommandoen chkconfig oppdatere og spørring på kjørenivå
Kommando: chkconfig -- list [argument]

chkconfig -- add argument chkconfig -- del argument chkconfig [-- level nivå] argument <on|off|reset> chkconfig [-- level nivå] argument

Funksjon: Oppdaterer kjørenivå eller gir statusinformasjon
Argument: Navn på tjeneste
Opsjoner: Se også Linux-man-sidene.

Ønsker du å se en liste over alle servertjenestene med status på om de er på (on) eller av (off) er det bare å skrive følgende:

[root@nittedal /root]# chkconfig --list | less

canna 0:av 1:av 2:på 3:på 4:på 5:på 6:av

atd 0:av 1:av 2:av 3:på 4:på 5:på 6:av

skriptstart 0:av 1:av 2:på 3:på 4:på 5:på 6:av

keytable 0:av 1:på 2:på 3:på 4:på 5:på 6:av

syslog 0:av 1:av 2:på 3:på 4:på 5:på 6:av

gpm 0:av 1:av 2:på 3:på 4:på 5:på 6:av

...

..

xinetd baserte tjenester:

chargen-udp: av

chargen: av

daytime-udp: av

daytime: av

echo-udp: av

echo: av

time-udp: av

time: av

dbskkd-cdb: av

sgi_fam: på

finger: av

rexec: av

rlogin: av

rsh: av

ntalk: av

talk: av

telnet: på

wu-ftpd: på

rsync: av

amanda: av

comsat: av

linuxconf-web:av

amandaidx: av

amidxtape: av

imap: av

imaps: av

ipop2: av

ipop3: av

pop3s: av

eklogin: av

gssftp: av

klogin: av

krb5-telnet: av

kshell: av

swat: på

tftp: av

Utskriften viser hvilke tjenester som er definert i /etc/init.d-katalogen. Noen av disse tjenestene vil du se er satt opp til å kjøre opp og ned på bestemte kjørenivåer. Ser du på for eksempel tjenesten kudzu (Kudzu lastes rett etter at du har slått på din PC, dvs. kjørenivå 3. Kudzu sjekker om du har installert ny maskinvare.), kjøres den ned i kjørenivå 0,1,2 og 6. Tjenesten kjøres opp i kjørenivå 3, 4 og 5. Du vil også se at du har tjenester som ikke er satt opp, disse vil ha av (off) på alle kjørenivåer. Eksempel på en slik tjeneste er servertjenesten nfs. Under har jeg et eksempel med Samba.

[root@nittedal /root]# chkconfig --list smb

smb 0:av 1:av 2:av 3:av 4:av 5:på 6:av

Kommandoen chkconfig er også mye brukt i forbindelse med nettverksbaserte tjenester, dvs. xinetd. Fra utskriften over ser du hvilke xinetd-baserte tjenester som er slått på. Hvilke portnummere de enkelte tjenester har, ser du fra /etc/services.

Nå kan du prøve å lage din egen serverprosess.

[root@nittedal /root]# vi skriptstart

  1. chkconfig: 2345 20 80
  1. description: Gjør ikke noe som helst
  1. processname: serverdavid

I vår konfigurasjonsfil har jeg definert at skriptet skal startes i kjørenivå 2,3,4 og 5. Startsprioriteten har jeg satt til 20, noe som betyr at skriptet starter tidlig i de enkelte kjørenivåene. I filnavnet til oppstartskriptet vil tallet 20 bli en del av filnavnet, dvs. S20skriptstart. På nedkjørings-skriptet har jeg satt 80, noe som betyr at skriptet vil kjøres sent i de enkelte kjørenivåene. Filnavnet på nedkjøringsskriptet blir K80skriptstart.

Server- eller klient-tjenesten, som her er serverdavid, må selvfølgelig være definert i form av en binær- eller skriptfil i for eksempel katalogen /usr/sbin. Når skriptet er ferdig, flyttes det til katalogen /etc/init.d.

[root@nittedal /root]# cp skriptstart /etc/init.d/.

Da er vi klare til å oppdatere alle de symbolske linkene med kommandoen chkconfig.

[root@nittedal /root]# chkconfig --add skriptstart

skriptstart 0:av 1:av 2:på 3:på 4:på 5:på 6:av

Sjekker du nå i katalogstrukturen, vil du se at de nødvendige linkene er på plass.

Figur 17.5: Etter at chkconfig-kommandoen er kjørt, er den nye katalogstrukturen på plass

Du finner mer om hvordan syntaksen på chkconfig skal være ved å lese Linux-man-sidene.

Nettverkstjenester med xinetd[rediger]

Du finner mange nettverkstjenester som ikke blir håndtert av egne oppstartskript. Disse blir i stedet kjørt under xinetd-serverprosessen (tidligere inetd). Xinetd kaller vi en superserverprosess, da det finnes så mange serverprosesser som er knyttet opp mot denne. For å sjekke om denne prosessen kjører, bruker du ps-kommandoen [root@nittedal /root]# ps ax).

Du vil ikke kunne se de enkelte nettverksjenestene. Ønsker du en oversikt over hvilke tjenester som går, kan du se dette med chkconfig-kommandoen. Oppsettet av de enkelte tjenestene er satt opp i filen /etc/xinetd.conf. Denne filen leser igjen konfigurasjonsfilene fra katalogen /etc/xinetd.d. Fra de enkelte konfigurasjonsfilene i katalogen /etc/xinetd.d vil du finne den spesifiserte tjeneste med tilhørende serverprogram. Du vil også finne at noen av disse tjenestene skriver til loggfilen /var/log/messages.

I tabellen på neste side finner du noen av de mest brukte tjenestene som går under xinetd.

Tjeneste Binærfil Kommentar
amanda /usr/lib/amanda/amandad Et avansert (automatisk) nettverksbasert diskarkiv (Maryland).
comsat /usr/sbin/in.comsat Biff-programmet gir beskjed om ny e-post.
eklogin /usr/kerberos/sbin/klogind Del av Kerberos-login-programmet.
finger /usr/sbin/in.fingerd Alle innkommende finger-forespørsler blir håndtert av denne serverprosessen. Se finger-kommandoen.
gssftp /usr/kerberos/sbin/ ftpd En Kerberos-prosess som håndterer ftp.
imap /usr/sbin/imapd En prosess som håndterer eksterne postklienter slik at de kan lese e-post fra en IMAP-server.
linuxconf /sbin/linuxconf Gjør det mulig å kjøre linuxconf fra en nettleser.
ntalk /usr/sbin/in.talkd En serverprosess som setter talk mellom brukere. Se talk-kommandoen.
rlogin /usr/sbin/in.rlogind En serverprosess som håndterer eksterne påloggingsforespørsler. Se rlogin-kommandoen.
rsh /usr/sbin/in.rshd En serverprosess som gjør at du kan kjøre r-kommandoer på eksterne verter. Se r-kommandoer.
swat /usr/sbin/swat En serverprosess som gjør det mulig å administrere Samba fra en nettleser. Se Samba.
wu-ftpd /usr/sbin/in.ftpd En serverprosess som håndterer ftp-forespørsler. Se ftp-kommandoen.

I min tabell har jeg bare tatt med de viktigste tjenestene. Bruk kommandoen chkconfig ([root@nittedal /root]# chkconfig --list | less) hvis du ønsker en oversikt. Du vil se at tjenester som chargen-udp, chargen, daytime-udp, daytime, echo-udp, ipop2, ipop3, pop3s, klogin, krb5-telnet, kshell og Samba ikke er med i tabellen.

En serverprosess som er definert i /etc/xinetd.conf kan enten være enkelttråds- (singel-thread server) eller flerttrådsbasert (multithread server). Når du har en serverprosess som er enkelttrådsbasert, kan den bare håndtere en aktiv forespørsel om gangen, mens en flertrådsbasert serverprosess kan håndtere alle forespørsler som kommer. En enkelttrådsbasert server er oppe og går hele tiden mens en flertrådsserver går ned når det ikke er flere klienter som ønsker å bruke servertjenestene.

Går du gjennom katalogen /etc/xinetd.d, vil du se at de forskjellige tjenestene er basert på forskjellige protokoller (som for eksempel tcp og udp) og portnumre, noe som er viktig å vite og være klar over hvis disse tjenestene skal passere en brannmur eller en rute med filter. Forskjellig bruk av socket har bare interesse for hastigheten over nettverket og for de som skal utvikle socketapplikasjoner.

Systemfilen /etc/inittab[rediger]

Oppstarten av Linux er avhengig av et spesielt program som man kaller init (se også kapittel 11 og 21). Dette programmet startes opp som siste fase etter opplastningen av Linux-kjernen.

Init-prosessen er den “første" (swapper er først med prosess-id 0) som startes på systemet og får prosess-id 1. Init-prosessen starter videre alle andre prosesser som er beskrevet i /etc/inittab. Denne filen inneholder instruksjoner til /etc/init (eller /sbin/init). Linux' init-prosess leser ved følgende tre tilfeller /etc/inittab-filen:

  * ved Linux-oppstart (boot)
  * når en prosess bruker init
  * når systemadministrator starter init (eller det beslektede programmet /bin/telinit) 

Uansett når systemet endrer kjørenivå, blir /etc/inittab analysert for instruksjoner. Filen /etc/inittab er satt sammen av fire felter:

Identifikasjon:init-modus:aksjon:prosess

Identifikasjonen består av en tekststreng på opptil fire karakterer. Med init-modus spesifiserer man hvilket kjørenivå prosessen skal starte på. Dette nivået varierer fra 1 til 6. Man kan også ha kombinasjoner av nivåer. Systemet er i enbrukermodus (kjørenivå 1) når init kjører i nivå 1 eller S. Aksjonsfeltet beskriver hva som skal gjøres. Kolonnefeltet "prosess" peker til den fysiske prosessen som skal kjøres. De vanligste aksjonene (kolonne nummer 3) finner du definert i tabellen nedenfor.

Kolonne 3 Beskrivelse
Off Avslått.
Respawn Starter spesifisert prosess hvis den ikke er i gang. Hvis prosessen dør, skal den startes på nytt.
Wait Venter med oppstart av spesifisert prosess.
Once Starter den spesifiserte prosessen bare én gang. Hvis prosessen dør, blir den ikke startet på nytt.
Initdefault Her brukes det andre feltet (init-modus) som oppstartsnivå.

Nedenfor har jeg et eksempel på /etc/inittab-fil for Linux:

  1. inittab This file describes how the INIT process should set up
  1. the system in a certain run-level.
  1. Author: Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>
  1. Modified for RHS Linux by Marc Ewing and Donnie Barnes
  1. Default runlevel. The runlevels used by RHS are:
  1. 0 - halt (Do NOT set initdefault to this)
  1. 1 - Single user mode
  1. 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
  1. 3 - Full multiuser mode
  1. 4 - unused
  1. 5 - X11
  1. 6 - reboot (Do NOT set initdefault to this)

id:5:initdefault:

  1. System initialization.

si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0

l1:1:wait:/etc/rc.d/rc 1

l2:2:wait:/etc/rc.d/rc 2

l3:3:wait:/etc/rc.d/rc 3

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

  1. Things to run in every runlevel.

ud::once:/sbin/update

  1. Trap CTRL-ALT-DELETE

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

  1. When our UPS tells us power has failed, assume we have a few minutes
  1. of power left. Schedule a shutdown for 2 minutes from now.
  1. This does, of course, assume you have powerd installed and your
  1. UPS connected and working correctly.

pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

  1. If power was restored before the shutdown kicked in, cancel it.

pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

  1. Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6

  1. Run xdm in runlevel 5
  1. xdm is now a separate service

x:5:respawn:/etc/X11/prefdm -nodaemon

I første aktive linje (id:5:initdefault:) ser du at Linux-maskinen starter opp som standard i kjørenivå 5. Her er det definert virtuelle terminalseksjoner på 6 forskjellige konsoller (tty1-tty6). Til slutt i filen ser du at i kjørenivå 5 skal xdm (gdm, kdm), det grafiske innloggingsprogrammet, startes.

Terminalfilen /etc/termcap[rediger]

I Linux finner du to databaser for definisjoner av terminaler. Man kan velge å bruke /etc/termcap eller /usr/lib/terminfo. Den siste databasen er kompilert og er raskere å bruke enn /etc/termcap.

Nedenfor har jeg et eksempel på en terminaldefinisjon tatt fra en /etc/termcap-fil. Terminaldefinisjonene gjelder for en Linux-terminal. Når du logger deg inn på en Linux-boks på hovedkonsollet før du starter X Windows, kjører de fleste med terminaldefinisjonen “linux". Nedenfor har jeg et eksmpel på kontrollkoder for flytting av markør, sletting av skjermbildet og definisjon av funksjonstaster. For nærmere beskrivelse, se også Linux-man-sidene. F1 til F9 er definisjon av funksjonstastene.

  1. From: Eric S. Raymond <esr@snark.thyrsus.com> 9 Nov 1995
  1. added linux-lat as an alias -- theline drawing
  1. characters aren't right, but
  1. I think everything which uses line-drawing chars uses terminfo anyway -- ewt

linux|linux-lat|linux console:\

am:eo:mi:ms:ut:xn:xo:\
co#80:it#8:li#25:\

Under /usr/lib/terminfo finner du en katalog for hver bokstav i alfabetet. Under bokstaven a finner du alle terminaldefinisjoner som begynner på a. Eksempler på terminaltype som begynner på a er ansi og adds. Kommandoene og kodene i den kompilerte terminaldatabasen er forskjellige fra /etc/termcap.

Skal du lage en terminaldefinisjon i /usr/lib/terminfo, lager du først en terminaldefinisjonsfil i form av en tekstfil. Denne tekstfilen kompileres med Linux-kommandoen tic. Til slutt flyttes filen til riktig kat­alog, for eksempel til /usr/lib/terminfo/a, hvis terminalen (og filen) heter ansi. Mer om terminaldefinisjoner finner du på Linux-man-sidene.

Oppgaver til kapittel 17[rediger]

Oppgave 17.1

Hvorfor er den første delen av oppstarten identisk under Windows 10, Unix og Linux?

Oppgave 17.2

Nevn de to viktigste binærfilene som kreves for å laste opp Linux.

Oppgave 17.3

Hva er en Linux-partisjon og hva gjør oppstartblokken (boot-blokka)?

Oppgave 17.4

Hva skjer når Linux-systemet lastes opp?

Oppgave 17.5

Hvilken prosess er mor til alle andre?

Oppgave 17.6

Når blir skriptene under /etc/rc.d/rc2.d-katalogen kjørt?

Oppgave 17.7

Hva er forskjellen på K*- og S*-skriptene?

Oppgave 17.8

Nevn 3 metoder for å endre oppstart av en tjeneste.

Oppgave 17.9

Hvis du skal sette opp en tjeneste manuelt, hvilke filer/kataloger må da oppdateres?

Oppgave 17.10

Hva gjør chkconfig-kommandoen?

Oppgave 17.11

Hva gjør xinetd-prosessen?

Oppgave 17.12

Nevn noen viktige tjenester som går under xinetd, og hvor vi finner konfigurasjonsfilene for disse tjenestene.

Oppgave 17.13

Hva skal stå i /etc/inittab-filen hvis du bare ønsker systemet i full flerbrukermodus uten X11?

Oppgave 17.14

Hvilken funksjon har /etc/termcap- og /usr/lib/terminfo-filene?

Oppgave 17.15

Hvordan lager du terminaldefinisjon i /usr/lib/terminfo?

18: Innlogging[rediger]

Innlogging[rediger]

Hvis du ikke har grafisk innlogging, er /etc/getty det første programmet som snakker med deg som bruker. Første melding fra Linux-systemet kommer alltid fra getty. Kjører du grafisk innlogging, er xdm (gdm eller kdm) det første programmet som snakker med deg som bruker. Ved hjelp av filen /etc/X11/xdm/Xsession ser Linux vindusbehandleren (WindowManager - WM) om du bruker kdm eller gdm. Når du får opp innloggingsboksen ser du om du kjører kdm eller gdm.

GNOME Display Manager (GDM) on Fedora--2016, 05.png

Figur 18.1: Innlogging under GNOME

Når brukeren har skrevet brukernavnet sitt, blir det lest av login-programmet som videre sjekker om brukeren er definert i systemet. Dette sjekkes i filene /etc/passwd (/etc/shadow) og /etc/group. Har brukeren et passord, må dette skrives inn. Alle brukere bør ha passord, inkludert root, som er brukernavnet for systemadministrator.

Getty venter på ditt svar og starter deretter det virkelige innloggings-programmet med svaret som argument. Getty finner for eksempel ut om terminalen din kan håndtere store og små bokstaver. Håndterer ikke terminalen din små bokstaver, vil loginledeteksten komme i store bokstaver. Getty kan også foreta automatisk hastighetsbestemmelse.

Skissen under viser oss at det er init som er foreldreprosessen til alle gettyene og gdmene. Kjører du grafisk innlogging, er forskjellige versjoner av xdm (som for eksempel gdm og kdm) det første programmet som snakker med deg som bruker.

Figur 18.2: Innlogging via X Windows eller tegnbasert

Når du skriver brukernavnet og passordet ditt på terminalen, sjekker login-programmet at begge er gyldig.

Skjermbildet som kommer opp etter en tegnbasert innlogging, er definert i systemfilen /etc/motd. Er brukeren definert, kommer tekstfilen /etc/motd på skjermen med dagens velkomstmelding.

Filen /etc/passwd[rediger]

Hvilken kommandotolk (skall) brukerne skal kjøre under, blir bestemt i /etc/passwd. Kolonnene i passordfilen har følgende felt:

  • brukernavn (bruker-id som brukes ved innlogging)
  • passord (passordet ditt)
  • brukernummer (bruker-id er mappet mot et brukernummer)
  • gruppenummer (gruppenummeret ditt)
  • tekstfelt (tekstfelt som beskriver bruker)
  • brukerområde (ditt hjemmeområde)
  • skall (skallet som du bruker)

Alle disse parameterene kan du definere når du lager en ny Linux-bruker. Nye Linux-brukere kan du definere fra Red Hat brukerkonfigurasjon (# system-config-users), som du starter fra startknappen. Under Red Hat/GNOME, Systeminnstillinger og Brukere og grupper (Users and Groups).

Fedorabrukerkonfigurasjon.png

Figur 18.3: Editering av bruker fra Fedora brukerkonfigurasjon

Brukernavnet er det navnet systemadministrator har definert for bruker. Dette navnet skal som regel bare bestå av små bokstaver.

Neste felt er passordet. På de fleste systemer er dette feltet satt opp slik at det også skal ha flere andre funksjoner. Hvis brukeren må skifte passord ved neste innlogging, eller passordet har passert en bestemt dato, kan dette være spesifisert i dette feltet med en bestemt kode. På Linux-systemer kan du se at passordet er kryptert i dette feltet. Bruker Linux-systemet ditt filen /etc/shadow, blir det krypterte passordet flyttet til /etc/shadow. I din /etc/passwd-fil vil det da bare stå en stjerne i passordfeltet.

Brukernummeret er et unikt nummer som peker til brukernavnet. Gruppenummeret viser oss hvilke grupper brukeren er medlem av. Navnet på gruppene finner du i /etc/group.

Tekstfeltet kan på de fleste systemer være maksimalt 38 tegn. Her kan du gi en tekstbeskrivelse av bruker.

Brukerområdet angir hvor brukeren har sitt arbeidsområde. Arbeidsområdet kan for eksempel være /home/ole, /usr/anne, /u/nils, /usr2/petter, /home1/hansen osv.

Skallet (shell) er et interaktivt program som fungerer som en kommandotolk (interpreter). (Se også kapittel 7, 8 og 16.)

I /etc/passwd har vi følgende forkortelser:

Skall Navnet på skallet (shell)
/bin/bash Bash-skall (standard)
/bin/bash2 En variant av Bash-skall
/bin/bsh En variant av Bourne-skall
/bin/tcsh T-skall/bin/csh
C-skall Korn-skall
/bin/ksh Lagrer filen og avslutter vi
/bin/sh Bourne-skall (ikke standard i alle Linux-distribusjoner)
/bin/zsh Z-skall
/sbin/nologin Linux skall begrenset tilgang.
Skall som brukes ikke for brukere (prosesser) * Bash-skallet

Når du logger deg inn, har du bestemte nøkkelfiler som lastes opp. Du kan bruke skall og miljøvariabler. I bash-skall kjennetegnes miljøvariabler ved at de har store bokstaver, og de settes ved bruk av export-kommandoen.

Miljøvariabler[rediger]

Nedenfor finner du en tabell over de viktigste bash-miljøvariablene som det kan være lurt å få satt opp og definert i din egen .bashrc-fil.

Bash-skall miljøvariabler Beskrivelse
BASH gir søkebane til bash-skallet
DISPLAY viser skjermøkt (X-Window)
HOME søkebane til din hjemmekatalog
HOSTNAME navn på maskin
HOSTTYPE type maskin
IPS definerer feltseparator
LOGNAME ditt login-navn
LANG valgt språk
MAIL søkebane til din e-POST fil
MAILCHECK sjekk av post
OSTYPE denne variabelen gir deg type operativsystem
PATH søkebane for kommando
PROMPT_COMMAND kommando som skal kjøres etter nytt linjeskift
PS1 definerer ledeteksten din
PS2 definerer sekundær ledetekst
PWD katalogen du er i for øyeblikket
SECONDS antall sekunder som har gått siden du startet skallet
SHELL søkebane til ditt skall
TERM din terminaltype
TMOUT automatisk utlogging etter en tidsperiode uten aktivitet

Eksempler på miljøvariabler er terminaltype, postkasse, om du har fått post, dagens dato osv. Standardrettigheter med umask-kommandoen kan du også sette opp her (mer om umask-kommandoen i kapittel 8). Skriver du printenv, får du de variablene du bruker i øyeblikket:

Eksempel:

[elboth@davidlin elboth]$ printenv | more

PWD=/home/elboth

HOSTNAME=davidlin.frisurf.no

PVM_RSH=/usr/bin/rsh

QTDIR=/usr/lib/qt-2.3.1

LESSOPEN=|/usr/bin/lesspipe.sh %s

XPVM_ROOT=/usr/share/pvm3/xpvm

KDEDIR=/usr

USER=elboth

LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:

MACHTYPE=i386-redhat-linux-gnu

MAIL=/var/spool/mail/elboth

INPUTRC=/etc/inputrc

LANG=sv_SE

LOGNAME=elboth

SHLVL=1

SHELL=/bin/bash

HOSTTYPE=i386

OSTYPE=linux-gnu

HISTSIZE=1000

LAMHELPFILE=/etc/lam/lam-helpfile

PVM_ROOT=/usr/share/pvm3

HOME=/home/elboth

TERM=linux

SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass

PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/elboth/bin:/home/elboth/c-source:/home/elboth/bin

_=/usr/bin/printenv

   Bash-skallet gir standardverdier for miljøvariablene PATH, PS1, PS2 og IFS hvis de ikke blir definert. Derimot blir HOME satt av login. MAIL har ingen verdi, den må settes. 

For at miljøvariabler skal bli aktivert, må du, når du har definert dem, utføre export-kommandoen. Den generelle syntaksen er: export variabel=verdi

Eksempler:

[david@nittedal /etc]$ export HOME=/home/david

Miljøvariabler skrives alltid med store bokstaver og kjennetegnes ved at de har med ditt brukermiljø å gjøre. Miljøvariabler settes opp ved at du definerer dem som vanlige variabler. Miljøvariabler arves av nye skall som settes opp senere.

BASH

BASH-variablen gir deg søkebanen til bash-tolkeren. Har du flyttet bash, kan du omdefinere søkebanen.

[david@nittedal david]$ BASH=/usr/bin/bash

Som standard peker bash til katalogen /bin/bash.

DISPLAY

Skal du kjøre X Windows, er det viktig å sette opp DISPLAY-variablen, for eksempel:

[david@nittedal david]$ export DISPLAY=elboth:0.0

Syntaksen til DISPLAY-variablen er: vertsmaskin:skjerm:skjermsesjon.

HOME

Navnet på brukerens hjemmekatalog er definert som en miljøvariabel man kaller HOME. Du kan for eksempel bruke HOME i miljøvariabelen PATH.

HOSTNAME

Navnet på maskinen din finner du i /etc/hostaname.

Eksempel:

[david@nittedal david]$ echo $HOSTNAME

nittedal.c2i.net

IPS

IPS bestemmer hvilken variabel som skal være feltseparator. Intern feltseparatorer er vanligvis mellomrom, tab og ny linje.

Eksempel:

[david@nittedal david]$ export IPS=,

Her har jeg definert , (komma) som feltseparator.

LOGNAME

Definerer login-navnet ditt.

Eksempel:

[david@nittedal david]$ echo $LOGNAME

david

[david@nittedal david]$

LANG

Definerer språk. Du finner mer om språk og tastatur layout i kapittel 3 og kapittel 19.

Eksempel:

[david@nittedal david]$ echo $LANG

en_US

MAIL

Navnet på brukerens elektroniske postkasse er vanligvis plassert på /usr/spool/mail. MAIL-variabelen brukes vanligvis til å endre søkebane og filnavn til postkassen.

Eksempel:

[elboth@nittedal david]$ export MAIL=/var/spool/mail/logname

MAILCHECK

Denne parameteren spesifiserer hvor ofte (i sekunder) posten skal sjekkes.

Eksempel:

[david@nittedal david]$ MAILCHECK=360

Her vil posten bli sjekket hvert 6. minutt (1 minutt = 60 sekunder). Standardverdien på MAILCHECK er 10 minutter (600 sekunder) hvis ikke noe annet er spesifisert. Setter du MAILCHECK=0, vil mailsystemet sjekke hver gang du får en ny ledetekst (dvs. hver gang du trykker enter).

OSTYPE

Ønsker du vite hva slags operativsystem du har, er OSTYPE-variabelen nyttig å lese.

Eksempel:

[david@nittedal david]$ echo $OSTYPE

linux-gnu

Har du applikasjoner som leser den variablen, og annen OSTYPE kreves, kan du definere hva du vil.

Eksempel:

[david@nittedal david]$ export OSTYPE=windows

PATH

Den spesielle skallvariabelen PATH kontrollerer hvilke programmer som kan utføres. PATH forteller noe om søkebanen for skalltolkeren. Uten PATH-kommandoen får du bare kjørt de programmene og kommandoene som er plassert i din lokale katalog. Får du feilmeldingen Command not found, kan det bety at bash-skallet ikke finner programmet i noen av de katalogene som er spesifisert i søkebanen (PATH).

Søkebanen med PATH settes vanligvis opp slik: .bash-profile eller .profile.

Eksempel:

[david@nittedal david]$ export PATH=/bin:/usr/bin: $HOME/bin:.

PROMPT_COMMAND

Med PROMPT_COMMAND har du muligheten til å kjøre en hvilken som helst Linux-kommando etter hver linjeskift.

Eksempel

[david@nittedal david]$ export PROMPT_COMMAND=hostname

Her kommer maskinnavnet etter hvert linjeskift.

PS1

I bash- og tcsh-skall definerer variabelen PS1 ledeteksten din. Standardverdi på ledeteksten for en bash-skallbruker er $-tegnet og for en tcsh-skallbruker %-tegnet.

Eksempel:

[david@nittedal david]$ export PS1='Gi kommando:'

Her definerer jeg ledeteksten til teksten Gi kommando.

[david@nittedal david]$ export PS1='Dato: \d Tid: \t->'

Dato: Sat Feb 27 Tid: 21:34:53->

Her definerer jeg ledeteksten til teksten med dagens dato og klokke. Du kan nå endre på systemvariabelen PS1 slik at du får en ledetekst C. Da kan brukeren innbille seg at han sitter ved en PC med Windows- og DOS-operativsystem.

PS2

PS2 er en sekundær ledetekst som du ser når skallet ditt forventer mer input. Denne miljøvariabelen er som standard satt til >.

Eksempel:

[david@nittedal david]$ PS2=+

Her definerer jeg sekundærledeteksten til tegnet + (pluss).

Kommandoene i systemfilen .bash-profile og .profile blir utført når du logger deg inn som bash-skallbruker.

PWD

Gir deg din aktive katalog.

Eksempel:

[david@nittedal david]$ echo $PWD

/home/david

SECONDS

Denne variabelen gir deg antall sekunder som har gått siden skallet ble startet.

Eksempel:

[david@nittedal david]$ echo $SECONDS

393

SHELL

Med miljøvariabelen SHELL får du status på hvilket skall du har. Du kan også omdefinere skallet.

Eksempel:

[david@nittedal david]$ echo $SHELL

/bin/bash

TERM

Når du ser beskjeden terminaltype på skjermen, har Linux brukt TERM-variabelen til å definere terminaltype. Ønsker du å sette en fast terminaltype i filen .bash_profile eller .profile, kan du for eksempel skrive:

[david@nittedal david]$ export TERM=vt100

Her setter jeg terminaltype til vt100.

[david@nittedal david]$ export TERM=linux

Her setter jeg terminaltype til linux.

TMOUT

Med denne variabelen kan jeg sette hvor lenge skallet kan være inaktivt før bash automatisk logger meg ut. Verdien som settes er i sekunder. TMOUT er uunnværlig i miljøer hvor sikkerhet er viktig.

[david@nittedal david]$ export TMOUT=900

Her tillater jeg 15 minutter med ingen aktivitet før automatisk utlogging.

Aliaser og skall-kommandoer[rediger]

I dette avsnittet ser jeg på alias-definsjoner og andre nyttige kommandoer.

Bash-skall-variabler Beskrivelse
alias Definerer aliaser, dvs. du kan definere andre navn på kommandoer.
unalias Opphever aliaser
history Husker kommandoer
source Oppdatering av bash-miljø


Eksempel:

[david@nittedal david]$ alias l='ls -la'

Nedenfor har jeg eksempler på nyttige aliaser:

[david@nittedal david]$ alias rm='rm -i'

[david@nittedal david]$ alias cp='cp -i'

[david@nittedal david]$ alias mv='mv -i'

[david@nittedal david]$ alias lsf='ls -color'

I det siste eksemplet får jeg alltid farger på filnavnene.

unalias

Ønsker du å oppheve et alias, kan du bruke kommandoen unalias. Nedenfor har jeg noen eksempler:

[david@nittedal david]$ unalias lsf

[david@nittedal david]$ unalias print

Kjører du tcsh-skallet og ønsker å få med argumenter til et alias, kan du bruke tegnkombinasjonen \!*, men det er nødvendig å bruke enkle apostrofer (') rundt aliaser som bruker \!* eller andre spesialtegn.

Eksempel (tcsh-skallet):

[vigdis@delboth ~]% alias print 'pr -n \!:* | lpr '

Bruker du ingen argumenter til alias-kommandoen, blir alle aliasene som gjelder skallet, skrevet ut.

history

Setter du opp history-kommandoen, vil tcsh- og bash-skallet huske så mange kommandoer som du ønsker. I de fleste tilfeller setter jeg opp mellom 10 og 25 kommandoer. Kommandoen settes opp ved å skrive set history=n, hvor n er antall kommandoer som skal huskes.

Eksempel (tcsh-skallet):

[david@nittedal david]$ set history=20

Listen som history-kommandoen lager, kan du referere til når du ønsker å gjøre en kommando eller en del av en kommando om igjen.

Skriver du bare history, får du en liste over kommandoer som du har brukt. Alle referanser til history-listen begynner med et utropstegn (!).

source

Har du gjort endringer i .bash_profile, .bashrc, .profile, .tcshrc, .login eller .cshrc, kan du få oppdatert ditt miljø ved å skrive source og navnet på konfigurasjonsfilen. Du slipper dermed å logge ut og inn igjen.

Eksempel (tcsh- og csh-skallet):

[david@nittedal david]$ source .tcshrc

Oppstartsfilene[rediger]

Alle skallene under Linux er tolker tilsvarende de som finnes i batch-miljøet under MS-DOS (command) og Windows (command eller cmd). Sammenligner du batch-miljøet under Linux med tilsvarende miljø under DOS eller Windows, vil du fort se at de forskjellige batch-miljøene under Linux er meget avanserte. De enkelte skallene har komplette utviklingsmiljøer hvor du kan lage avanserte programmer.

I utgangspunktet blir alle nye Linux-brukere satt opp med standard innloggingsprofiler. Disse kan styres både sentralt og lokalt. Det er opp til deg å sette opp dine lokale oppstartsfiler. Vær klar over at noen oppstartsfiler kjøres gjennom bare når du logger deg inn på systemet, mens andre kjøres hver gang du starter et ny skall.

I dette avsnittet ser jeg på oppstartsfilene som brukes for skallene bash (Bash-skall) og tcsh (T-skall). Ønsker du å benytte andre skall, for eksempel zsh (Z-skall), sh (Bourne-skall) eller csh (C-skall), finner du mer informasjon under man-sidene.

Bash-oppstartsfilene[rediger]

Felles oppstartsfil for alle bash-brukere er /etc/profile. Denne filen kan bare settes opp av systemadministrator. Som standard innloggingsfil for de enkelte brukerne brukte man tidligere $HOME/.profile. Denne konfigurasjonsfilen er nå forlatt, men brukes fortsatt av blant annet Bourne-skall (sh). Filen $HOME/.profile blir bare utført en gang dvs. når du logger inn på systemet. Den tilsvarende filen under bash-skall er $HOME/.bash_profile. Denne filen blir bare utført når du logger inn som bash-bruker. Hver gang du logger inn eller starter et skall blir innloggingsfilen $HOME/.bashrc utført. Det er derfor lurt å ha en $HOME/.bashrc. Husk at denne filen blir utført av alle ikke-innloggingskopier av bash.

Bash-skall Beskrivelse
$HOME/.bash_profile Denne filen blir bare utført en gang, dvs. når du logger inn på systemet.
/etc/profile Dette er felles innloggingsfil for alle. Den setter standard miljøvariabel for alle. Denne filen blir bare utført en gang dvs. når du logger inn på systemet.
$HOME/.profile Denne filen brukes ved innlogging. Denne filen brukes mindre og mindre. Bruk isteden .bashrc.
$HOME/.bashrc Denne filen kjøres ved oppstart av et skall, for eksempel når du skriver bash. Siden denne filen inneholder bash-informasjon som er spesifikk for ditt skall, er det greit å bruke denne filen til dine miljøvariabler.
$HOME/.bash_logout Denne filen med innhold blir utført når du logger ut.

Eksempel på fellessystemfilen (/etc/profile) for alle bash-brukere på systemet.

[root@nittedal /root]# more /etc/profile

  1. /etc/bashrc
  1. System wide functions and aliases
  1. Environment stuff goes in /etc/profile
  1. by default, we want this to get set.
  1. Even for non-interactive, non-login shells.

if [ id -gn = id -un -a id -u -gt 99 ]; then

umask 002

else

umask 022

fi

  1. are we an interactive shell?

if [ "$PS1" ]; then

if [ -x /usr/bin/tput ]; then

if [ "xtput kbs" != "x" ]; then # We can't do this with "dumb" terminal

stty erase tput kbs

elif [ -x /usr/bin/wc ]; then

if [ "tput kbs|wc -c " -gt 0 ]; then # We can't do this with "dumb" terminal

stty erase tput kbs

fi

fi

fi

case $TERM in

xterm*)

if [ -e /etc/sysconfig/bash-prompt-xterm ]; then

PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm

else

PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"'

fi

  • )

[ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default

esac

[ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "

if [ "x$SHLVL" != "x1" ]; then # We're not a login shell

for i in /etc/profile.d/*.sh; do

if [ -x $i ]; then

. $i

fi

done

fi

fi

  1. vim:ts=4:sw=4

Ønsker du å se hvilke variabler som er definert i bash-skall, kan du skrive printenv, export eller env. I bash-skall kan du definere en miljøvariabel ved å tilordne den en verdi, og deretter eksportere variabelen med export-kommandoen.

Under er et eksempel på en enkel lokal $HOME/.bashrc-fil.

[david@nittedal david]$ cat .bashrc

  1. .bashrc
  1. User specific aliases and functions

alias d='dir'

alias rm='rm -i'

alias cp='cp -i'

alias mv='mv -i'

PATH=$PATH:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/elboth/bin:/home/elboth/c-source

export PATH

  1. Source global definitions

if [ -f /etc/bashrc ]; then

. /etc/bashrc

fi

I vårt eksempel er de brukerspesifikke behovene som aliaser og søkebane definert lokalt i $HOME/.bashrc, mens felles funksjoner og andre globale definisjoner er definert i /etc/bashrc.

Tcsh-oppstartsfilene[rediger]

Er du satt opp som en tcsh-bruker (tcsh) kjøres først den globale /etc/csh.cshrc-filen før din lokale $HOME/.cshrc eller $HOME/.tcshrc. Tcsh-skall søker først etter $HOME/.tcshrc ved innlogging og ved alle nye kopier av tcsh. Har du ingen lokal .tcshrc-fil, blir .cshrc-filen brukt hvis den eksisterer

Tcsh-skall Beskrivelse
/etc/csh.cshrc Dette er felles innloggingsfil for alle. Som standard setter den bestemte miljøvariabler for alle. Denne filen blir bare utført en gang, dvs. når du logger inn på systemet.
$HOME/.cshrc Denne filen kjøres ved oppstart av et skall, for eksempel når du skriver tcsh (eller csh). Siden denne filen inneholder tcsh (eller csh)-informasjon som er spesifikk for ditt skall, er det greit å bruke denne filen til dine miljøvariabler. Kommentar: Denne filen brukes mindre og mindre. Bruk isteden .tcshrc
$HOME/.tcshrc Denne filen kjøres ved oppstart av et skall, for eksempel når du skriver tcsh. Siden denne filen inneholder tcsh-informasjon som er spesifikk for ditt skall, er det greit å bruke denne filen til dine miljøvariabler.
$HOME/.tcsh_logout Denne filen med innhold blir utført når du logger ut.

Nedenfor har jeg et eksempel på en felles innloggingsfil for alle tcsh-skall- brukere. Den setter standard miljøvariabler for alle. Denne filen blir bare utført en gang dvs. når du logger inn på systemet.

[root@nittedal /root]# more /etc/csh.cshrc

  1. /etc/cshrc
  1. csh configuration for all shell invocations.
  1. by default, we want this to get set.
  1. Even for non-interactive, non-login shells.

[ id -gn = id -un -a id -u -gt 99 ]

if $status then

umask 022

else

umask 002

endif

if ($?prompt) then

if ($?tcsh) then

set prompt='[%n@%m %c]$ '

else

set prompt=\[id -nu@hostname -s\]\$\

endif

endif

Nedenfor har et eksempel på en enkel lokal $HOME/.tcshrc-fil.

[julie@nittedal julie]$ cat .tcshrc

  1. .tcshrc
  1. User specific aliases and functions

alias d 'dir'

alias rm 'rm -i'

alias cp 'cp -i'

alias mv 'mv -i'

setenv PATH "/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/home/julie/bin:/home/julie/c-source"

set prompt='[%n@%m %c]# '

I vårt eksempel over har jeg definert aliaser, søkebane og venstre ledetekst i $HOME/.tshrc, mens felles funksjoner og andre globale definisjoner er definert i /etc/csh.cshrc. Du finner mer om tcsh på Linux-man-sidene.

Utlogging[rediger]

Logutfedora.png

Utlogging fra Gnome. Under bash (under tcsh $HOME/.tcsh_logout) blir det søkt etter en utloggingsfil $HOME/.logout når du logger deg ut. Du har derfor muligheten til å lage din egen sikkerhetsrutine. Hver gang du vil fjerne en fil, kan du flytte filen i stedet for å fjerne den.

I eksemplet nedenfor har jeg laget et alias for Linux-kommandoen rm. I stedet for å fjerne filen, flytter jeg filen ned på en katalog som jeg kaller tmp.

Eksempel på $HOME/.tcsh_logout-fil. for tcsh-skallet:

  1. .tcsh_logout-fil

clear

find $TRASH \( -mtime +2 -o -size +15 \) -exec /bin/rm -f {}

\;

Følgende må oppdateres i din $HOME/.tcshrc fil:

setenv TRASH $HOME/.Trash

alias rm 'mv \!* $TRASH'

Innlogging eksternt[rediger]

Ønsker du å ha muligheten til å logge inn på Linux-maskinen utenfra, har du to muligheter:

  • via nettverket (for eksempel TCP/IP eller IPX/SPX)
  • serieport (for eksempel COM1 eller COM2)

Innlogging ved hjelp av for eksempel telnet er beskrevet i kapittel 22. Ønsker du å logge deg inn via en serieport, må serieporten du skal bruke settes opp. Serieportene dine kan du sette opp ved å bruke setserial-kommandoen. Setserial blir ofte kjørt ved oppstarten av en Linux-maskin for å sette maskinvareparametere som interupts og I/U-adresser. Sjekk man-siden på setserial og dokumentasjonen /usr/doc/setserial.../ eller /usr/share/doc/setserial. Denne kommandoen:

[root@nittedal /etc]# setserial -g '/dev/ttyS*'

gir deg informasjon om alle dine serieporter. Bruk stty-kommandoen for å endre kommunikasjonsparameterne på de enkelte portene du ønsker å bruke.

[root@nittedal /etc]# stty

speed 38400 baud; line = 0;

-brkint -imaxbel

Man stty gir deg hjelp til å sette de enkelte kommunikasjons-parameterene.

[root@nittedal /etc]# stty -F /dev/ttyS1 raw

I vårt siste eksempel setter jeg opp flere forskjellige kommunikasjonsparametere på COM1 (første serieport).

Oppgaver til kapittel 18[rediger]

Oppgave 18.1

Hva gjør prosessene getty (/sbin/mingetty) og gdm? Hva er moderprosessene til getty og gdm?

Oppgave 18.2

Hvilket skall er du satt opp i hvis det står følgende i /etc/passwd: tcsh, bash, sh, ksh?

Oppgave 18.3

Hvilket skall er alltid systemadministrator satt opp i?

Oppgave 18.4

Hvilke innloggingsfiler har man i bash-skall?

Oppgave 18.5

Hva gjør PS1- og IFS-kommandoene under bash-skall?

Oppgave 18.6

Definerer noen nyttige aliaser.

Oppgave 18.7

Lag dine egne nøkkelfiler under bash. (.bash_profile og $HOME/.bashrc)

19: Linux-systemkommandoer[rediger]

I dette kapitlet ser jeg på forskjellige kommandoer og verktøy som hjelper deg med systemadministrasjonen. Å administrere et Linux-system er ikke ulikt det å administrere et Windows eller Unix-basert system. Har du X Windows, kan de fleste funksjoner nevnt i dette kapitlet utføres. Ønsker du bare å konfigurere nettverket kan du bruke Fedoras nettverkskonfigurasjonsverktøy neat.

Eksempel på bruk:

[root@nittedal /root]# neat &

Brukeradministrasjon kan håndteres med Fedora brukerkonfigurasjon. Etter hvert kommer flere og flere produkter og tjenester under Nautilus. Dette produktet er derfor også et alterativ for administrasjon av mange Linux-tjenester.

[root@nittedal /root]# system-config-users &

[root@nittedal /root]# nautilus &

Kjører du SuSE Linux kan du administre systemet ditt med YaST. Den tegnbaserte versjon av YaST starter du med å skrive yast eller yast2 fra kommandolinjen.

myserver:~ # yast eller myserver:~ # yast2

GUI-versjonen av YaST starter du med trykke på KDE-knappen, velge "System" fra menyen og deretter "YaST" fra neste meny-vindu.

Linux-nøkkelfiler[rediger]

Nøkkelfiler Beskrivelse
/etc/at.deny En liste over brukere som ikke får lov å bruke at-kommandoen (bakgrunnsjobber).
/etc/bashrc Oppstartsmiljø for Bash skallet
/etc/crontab En systemfelles crontab-fil (faste bakgrunnsjobber), gjelder bare Red Hat Linux
/etc/exports Ønsker du å dele dine filsystemer med andre Linux/UNIX-maskiner, settes denne filen opp
/etc/group Gruppedefinisjoner for brukere og system
/etc/inittab Styrer Linux' kjørenivå
/etc/issue Tekstfil som bestemmer hvilken tekst som skal komme før loginledeteksten
/etc/issue.net Tekstfil som bestemmer hvilken tekst som skal komme før loginledeteksten når du logger inn via nettverket (TCP/IP)
/etc/ld.so.conf Filen spesifiserer hvor den dynamiske loaderen skal lete etter Linux-bibliotekene
/etc/motd Tekstmelding som du alltid får når du logger inn på systemet (ikke i X11)

I Linux vil du finne mange forskjellige filer som skal administreres og overvåkes. Disse filene kan overvåkes manuelt, eller du kan bruke egne verktøy.

Nøkkelfiler Beskrivelse
/etc/mtab Mtab blir oppdatert etter hvert som filsystemene monteres. mtab brukes til å lese opplysningene, mens /etc/fstab er den interessante nøkkelfilen til å konfigurere filsystemene.
/etc/passwd Bruker- og systempassordfil
/etc/shadow Her plassers det krypterte passordet hvis du ønsker økt sikkerhet. Dette er et krav hvis du skal ha sikkerhetsnivå shadow password eller C2
/etc/syslog.conf Denne filen spesifiserer hvor log-filene skal plasseres
/var/lock Katalog hvor låste filer havner
/var/log Katalog hvor alle loggfilene blir plassert
/var/spool/cron/crontabs/ Her kan du ha en crontab-fil for hver enkelt bruker. Jeg anbefaler at du bruker /etc/crontab.
/var/spool/lpd Katalog hvor du finner skriverspoolingområde, kontrollfiler og skriverkøer
/var/spool/mail Katalog for innkommende e-post
/var/spool/mqueue/ Katalog hvor sendmails-postkøer plasseres


Mange av disse nøkkelfilene har jeg allerede gått igjennom. Andre nøkkelfiler blir tatt opp i dette kapitlet eller senere i boken.

Linux-systemoppsett[rediger]

Ønsker du å omkonfigurere Fedora eller Red Hat er det ikke nødvendig å installere systemet på nytt. Man kan konfigurere deler av systemet fra det tegnbaserte setup-programmet og andre deler fra GUI-grensesnittene under GNOME eller KDE. Jeg går først igjennom setup-programmet. Med setup-programmet kan du endre:

  • Autorisering
  • Brannmur
  • Nettverk
  • Tastatur
  • Tidssone
  • X
  • Programvaretjenester (Systemtjenester)

Du velger selv om du ønsker å kjøre setup fra et X Windows-terminalvindu eller direkte fra et tegnbasert terminalvindu. Vi anbefaler at dette kjøres fra et tegnbasert terminalvindu.

[root@nittedal /root]# setup

Setup-programmet er menybasert og enkelt å bruke.

Fedorasetupterminal.png

Figur 19.1: Hovedmenyen i setup-programmet

Kommando Beskrivelse
/usr/sbin/authconfig Definerer hva slags autorisering Linux skal bruke på passord. Alternativene er blant annet NIS-passord, Shadow-passord og MD5-passord.
/usr/sbin/lokkit Her får du satt opp din egen brannmur.
/usr/sbin/mouse

config

Denne kommandoen kan du bruke hvis du ønsker å endre musemulering. Kommandoen prøver å finne ut hva slags mus du har.
/usr/sbin/netconfig Her setter du opp nettverket (IP-adresse, netmask, DNS). Hvis du ikke har GUI.
/usr/sbin/printconf-tui Gruppedefinisjoner for brukere og system
/usr/share/system-config-keyboard Her velger du tastaturkonfigurasjon.
/usr/share/system-config-date/timeconfig Her setter du opp hvor Linux-PC-en din er lokalisert i verden (tidssone) og systemtiden.
/usr/share/system-config-display/system-config-display Her kan du konfigurere X11.
system-config-services Her bestemmer du hvilke tjenester som skal kjøres på maskinen din.

Over har jeg satt opp en tabelloversikt over kommandoene du kan bruke for å endre på de forskjellige delene av systemet. Vær oppmerksom på at alle kommandoene krever at du er inne som systemadministrator (root). Du vil finne at de fleste konfigurasjonene kan kjøres lettest fra GNOME eller KDE grensesnittet.

I første menyalternativ kan du definere hva slags autorisering Linux skal bruke på brukernavn og passord. Alternativene på brukerinformasjon er: Informasjonsbuffer, Hesiod, LDAP, NIS og Winbind. På autentisering kan du velge MD5-passord, Shadow-passord, LDAP, Kerberos, SMB og Winbind.

Figur 19.2: Konfigurasjon autentisering fra setup-programmet

Fedorasetupterminalautentisering.png

I andre menyalternativ kan du definere hva slags brannmur du ønsker. Mer om brannmur finner du i kapittel 3 (installasjon).

Figur 19.3: Konfigurasjon av brannmur


I tredje menyalternativ kan du sette opp nettverkskort med TCP/IP (IP-adresse, nettmaske, navnserver). Dette er også beskrevet i kapittel 22. Dette alternativet er bare aktuelt å bruke hvis du ikke får kjørt programmet neat ([root@nittedal /root]# neat & ) fra GNOME eller KDE.

Figur 19.4: Konfigurasjon av nettverk

I neste menyalternativ setter du opp hvilken språkdrakt du ønsker på tastaturet. Dette valget har du også når du installer Fedora, Red Hat eller SuSE Linux.

Figur 19.5: Konfigurasjon av tastatur

Fedorasetupterminaltastatur.png

Neste menyalternativ gir deg muligheten til å bestemme hvilken tidssone du og din maskinen er plassert i. Dette valget har du også når du installer Fedora, Red Hat eller SuSE Linux.

Figur 19.6: Konfigurasjon av tidssone

Neste menyalternativ gir deg muligheten til å konfigurer X11. Finner den riktige driver kommer du automatisk opp i et eget grafisk grensesnitt hvor du kan bestemme fargedybde og oppløsning. Dette valget har du også når du installer Fedora, Red Hat eller SuSE Linux.

Figur 19.7: Konfigurasjon av X

Neste menyalternativ gir deg muligheten til å bestemme hvilke servertjenester du ønsker skal kjøre på maskinen din.

Figur 19.8: Konfigurasjon av tjenertjenester

Fedorasetupterminaltjenertjenester.png

Etter installasjonen kan du alltid endre hvilke tjenester du ønsker å ha operative ved å kjøre system-config-services direkte:

[root@nittedal /root]# system-config-services

En mer komplisert variant, men raskere, er programmet /sbin/chkconfig.

Fedoratjenestekonfigurasjon.png

Figur 19.9: Administrasjon fra GNOME-grensesnittet

Fra systeminnstillinger under GNOME har du videre muligheten til å konfigurere tjener-innstillinger (DNS, HTTP, RIP, NFS, SAMBA), autentisering, brukere/grupper, dato/tid, innloggingsskjerm, legge til/fjerne applikasjoner, nettverk, NFS ressurser, oppsett av Red Hat Network, konfigurasjon av oppstartslasteren, root-passord, sikkerhetsnivå, skjerm, språk, lydkort, tastatur og utskrift.

Opprette brukere[rediger]

Under Linux kan du definere nye brukere med useradd, X Windows (system-config-users) eller du kan oppdatere nøkkelfilene manuelt. De filene som må oppdateres er /etc/passwd og /etc/group. I tillegg må du lage en hjemmekatalog, for eksempel /home/hansen. Har brukerne spesielle behov, må du også lage innloggingsfiler. Skal du definere en bruker, bør du vite følgende:

  • brukerens bruker-id (login-navn) med tilhørende brukernummer
  • brukerens passord gruppe-id med tilhørende gruppenummer
  • hvilket brukerskall (tcsh, bash, zsh) som skal settes opp for brukeren
  • beskrivelse av brukeren
  • hvor brukeren skal plasseres (filsystem, katalog)

Bruker- og gruppe-nummer kan under Linux gå fra 0 til 4.2 milliarder. I de fleste Linux-distribusjoner er bruker- og gruppenummer under 500 reservert til systemet. Maksimalt antall brukere og grupper er 4 milliarder.

Både brukernavn og gruppenavn er entydig definert (mappet) til brukernummer og gruppenummer. Før du kan fjerne en bruker, må

  • alle filer og underkataloger fjernes fra brukerens område
  • e-post-filen fjernes fra /var/spool/mail/"usr"

I /etc/passwd-filen ser du relasjonen mellom brukernavn og brukernummer, for eksempel:

[root@nittedal /root]# more /etc/passwd

root:BDzbOHOS/sf76:0:0:root:/root:/bin/bash

bin:*:1:1:bin:/bin:

daemon:*:2:2:daemon:/sbin:

david:lhs2mCR4tlm/A:500:110::/home/david:/bin/bash

vigdis:nxJQBhoNTYqYA:502:114::/home/vigdis:/bin/bash

simon:hy43qBUeSJ/9s:504:112::/home/simon:/bin/bash

[root@nittedal /root]#

I /etc/group-filen ser du relasjonen mellom gruppenavn og gruppenummer, for eksempel:

[root@nittedal /root]# more /etc/group

root::0:root

bin::1:root,bin,daemon

postgres:x:233:

Support:x:110:

service:x:112:

regnskap:x:114:

[root@nittedal /root]#

Brukeradministrasjon – useradd[rediger]

Ønsker du å lage nye brukere, redigere eksisterende brukere eller fjerne brukere, kan du kjøre skriptet useradd eller bruke X Windows med system-config-users. Det er også mulig å oppdatere alle filene manuelt. Fra useradd og system-config-users kan du også definere minimum lengde på lovlig passord samt minimum og maksimum antall uker et passord kan brukes. Under SuSE kan du bruke useradd eller YaST.

Figur 19.10: Brukeradministrasjon under SuSE med YaST

Kommandoen useradd brukeradministrasjon
Kommando: useradd [opsjoner…] [argument…]
Funksjon: Definere eller endre brukerdefinisjoner
Argument: Se også Linux-man-sidene.
Opsjoner: Se også Linux-man-sidene.

Eksempler:

[root@nittedal /root]# useradd -u 502 -g regnskap -d /home/vigdis -s /bin/bash vigdis

[root@nittedal /root]# useradd -u 504 -g service -d /home/simon -s /bin/bash simon

Her definerer jeg to nye brukere, vigdis og simon, med tilhørende brukernummer 502 og 504. De er definert i hver sin gruppe: regnskap og service. Begge brukerne får hjemmekatalog under home. De er satt opp i det samme skallet bash.

[root@nittedal /root]# passwd vigdis

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully

[root@nittedal /root]# passwd simon

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully

[root@nittedal /root]#

Fedorabrukerkonfigurasjon.png

Figur 19.11: Definere bruker fra system-config-users

Når du har definert brukerne, definerer du passordet. Du kan også definere passordet fra useradd-kommandoen ved å bruke opsjonen passord. Ønsker du å gjøre det enkelt, kan du skrive:

[root@nittedal /root]# useradd nils

Fedorabrukerkonfigurasjon vigdis.png

Figur 19.12: Definere passord for bruker vigdis

Her blir brukeren nils opprettet. Useradd vil definere alle nye brukere under /home, hvis ikke annet er spesifisert. Nils' nye hjemmekatalog blir /home/nils. Standardskallet er /bin/bash. Siden det nettopp er definert en bruker på id-nummer 504 (simon), vil neste id få nummeret 505. Nils' gruppe-id blir det samme som bruker-id. Passordet må for denne brukeren settes med passwd eller fra system-config-users. Sikkerheten styres enkelt fra system-config-users.

Fedorabrukerkonfigurasjongruppermedlem.png

Figur 19.13: Konfigurasjon av brukersikkerhet fra system-config-users

Gruppeadministrasjon – groupadd[rediger]

Du kan kjøre skriptet groupadd, bruke X Windows system-config-users eller oppdatere alle filene manuelt hvis du ønsker å lage nye grupper, redigere eksisterende grupper eller fjerne grupper.

Kommandoen groupadd gruppeadministrasjon
Kommando: groupadd [-g gruppenummer] [gruppenavn]
Funksjon: definere eller endre gruppedefinisjoner
-g gruppe-id nummeret på den nye gruppen
gruppenavn gruppenavnet på den nye gruppen

Eksempel:

[root@nittedal /root]# groupadd -g 112 service

[root@nittedal /root]# groupadd -g 114 regnskap

Brukerkonfigurasjongrupperogmedlem.png

Figur 19.14: Konfigurasjon av grupper fra system-config-users

Her definerer jeg to forskjellige grupper: service og regnskap. Disse gruppene har henholdsvis gruppenummer 112 og 114.

Sjekke filsystemer – fsck[rediger]

Hvert Linux-system har minst ett filsystem som blir kalt root-filsystemet, det er representert med symbolet /. Root-filsystemet består av programmer og kataloger som til sammen er operativsystemet.

Det er mulig å ha opptil 16 filsystemer på en fysisk harddisk (gjelder PC-arkitektur). De mest benyttede navnene på filsystemene er /usr, /usr/src, /usr/local, /var, /var/spool, /home osv. Linux-filsystemene bruker vanligvis en blokkstørrelse på 1 kB.

Filsystem Type
e2fsck (fsck.ext2)Standard i Linux e3fsck (fsck.ext3)
Journalbasert filsystem som er standard i Fedora (versjon 23 og høyere) Btrfs
Journalbasert filsystem som er standard under SuSE Btrfs filesystem
Minix-filsystemxfsck (fsck.xiafs) Xia-filsystem
Ext-FS Ext filsystem
Utvidet FS-filsystem
DOS/VFAT MS-DOS-filsystem
System V Unix System V-filsystem

I mange tilfeller kan vedlikeholdet for systemadministrator bli enklere med flere filsystemer. Har du et eget filsystem for brukere, blir det enklere å ta sikkerhetskopier og rydde opp. Har du ledig harddisk-kapasitet (med et definert filsystem), kan du montere et nytt filsystem med mount-kommandoen.

På de fleste Unix-variantene kan man definere forskjellige filsystemer. Linux støtter i dag mange forskjellige filsystemer. I listen over ser du et lite utvalg.

Hver gang du starter Linux-systemet, sjekkes tilstandene i Linux-filsystemene. Filsystemet i Linux er en strukturert datasamling som bare virker når strukturen blir vedlikeholdt.

Under normale forhold holder operativsystemet vedlike filsystemet, men i tilfeller hvor det skjer en fysisk svikt i systemet, dvs. strømbrudd, harddiskfeil osv, er det nødvendig med en opprensing. I Linux vil fsck starte opp automatisk når du har hatt et strømbrudd.

For å kunne sjekke og reparere filsystemer, har du kommandoen /etc/fsck. Der det er mulig, vil fsck-kommandoen løse opp referanser og pekere og rense filsystemet. Før du kan reparerere filsystemet med fsck, må systemet tas ned og opp igjen i enbrukermodus (single user mode). Har du satt opp alle filsystemene til ext3 dvs. du kjører bare journalbaserte filsystemer er det i de fleste tilfeller unødvendige å kjøre fsck.

Kommandoen fsck rydde filsystem
Kommando: /etc/fsck [opsjon] [filsystemtype] ...
Funksjon: Kommandoen fsck analyser filsystemet og kan interaktivt reparere ødelagte filsystemer. Hvis filsystemet er konsistent, blir antall filer, antall brukte blokker og antall frie blokker rapportert. Du bør være klar over at fsck ikke bestandig kan redde alle data. Denne kommandoen er i de fleste tilfellene unødvendige å bruke hvis du har et journal basert filsystem, for eksempel ext3 og reiserfs.
Argument: Se også Linux-man-sidene.
Opsjoner: Se også Linux-man-sidene.

Det er viktig å huske på at du ikke kan rydde aktive filsystemer.

Eksempler:

[root@nittedal /root]# /etc/fsck -A

Her sjekker programmet alle filsystemene som er definert i /etc/fstab. Denne kommandoen blir vanligvis startet opp fra /etc/rc.d/rc.sysinit.

[root@nittedal /root]# /etc/fsck -R

Sjekker alle filsystemene utenom root.

[root@nittedal /root]# /etc/fsck -R -t e2fsck

Sjekker alle filsystemene som er av typen e2fsck. Filsystemet kan ikke være root. NB: Kjører du et journalbasert filsystem som ext3, skulle det være unødvendige å bruke fsck.

Når fsck-programmet startes, går det vanligvis gjennom flere faser. Jeg regner med 6 logiske faser.

Fase 1

I første fase blir blokker og størrelser sjekket. Det vil si at fsck leser inodelisten og finner de forskjellige filstørrelsene, samt hvor datablokkene er lokalisert.

Fase 2

I fase to blir veinavnene til de forskjellige filene sjekket. Filer med et dobbelt sett datablokker, blir fjernet av fsck. I denne fasen kan det være nyttig som systemadministrator å blande seg inn og bestemme hva som skal fjernes, og hva som ikke skal fjernes.

Fase 3

I fase tre blir filer som det ikke er referanser til, plassert i en egen katalog som man kaller lost+found. Siden katalogen hvor filen eksisterte tidligere, er skadet, har filen ikke noe filnavn. Filen får dermed bare et nummer i katalogen lost+found.

Fase 4

I fase fire blir link-referanser til filer som overlever de tidligere fasene, sjekket. I noen tilfeller får du fram filer som ikke ble pekt på av katalogstrukturen, men som likevel har en inode som kan kobles til filsystemet i lost+found-katalogen.

Fase 5

I fase fem blir listen med ledige blokker oppdatert. Kommandoen fsck analyserer listen med ledige blokker og setter sammen savnede og ubrukte blokker. Når fsck-kommandoen finner noe som ikke er i overenstemmelse, vil det genereres en ny liste over ledige blokker.

Fase 6

I fase seks lagres den nye listen med ledige og brukte blokker fra det endrede filsystemet. Det er mulig at du må kjøre fsck-kommandoen flere ganger før et komplett filsystem er renset for feil.

Systemfiler: /etc/fstab og filsystemer

Lage filsystemer – mke2fs[rediger]

Med mke2fs-kommandoen kan du lage filsystemer ved å skrive til et bestemt styreprogram. Styreprogrammet er avhengig av hvor du skal lage filsystemet. Du kan for eksempel generere et filsystem på en diskett eller en harddisk. Dette blir som å formatere en diskett under MS-DOS eller Windows.

Kommandoen mkfs lage filsystemer
Kommando: /etc/mke2fs [-V] [-Tfilsystemtype] [fs-opsjoner] [filsystem] [blokker]
Funksjon: Lager filsystemer
Argument: Se også Linux-man-sidene.
Opsjoner: Se også Linux-man-sidene.
-V Viser resultat av kommando
-T Spesifisere type filesystem som skal lages

Eksempler:

[root@nittedal /root]# mke2fs /dev/fd0 1140

Jeg genererer her et filsystem på en 3.5" 1.44 MB diskett. Jeg setter av 1400 blokker (à 1024 byte).

Se også: fsck, mkfs og filsystem

Montere filsystemer – (u)mount[rediger]

Med mount-kommandoen kan du koble opp lokale eller eksterne filsystemer. Du må spesifisere hva slags filsystem du tilkobler. Filsystemet kan plasseres på samme harddisk som du har ditt root-filsystem (du må da ha ledig plass på harddisken), på en annen harddisk eller på diskett.

For tilkobling bruker du mount-kommandoen, og for frakobling bruker du umount-kommandoen. Du kan også bruke X-Window (User Mount Tool; [root@nittedal /root]# usermount &), som er betraktelig enklere å bruke.

Ønsker du automatisk montering, finnes det mange forskjellige løsninger. Red Hat har sin egen autofs RPM som gjør det mulig for deg for eksempel å skrive cd /misc/cd (CD-plata) eller cd /misc/fd (diskettstasjonen) uten å først måtte montere mediet.

Kommandoen mount/umount (av) montere filsystemer
Kommando: dir

umount [options] device | dir […]

Funksjon: Kobler til eller fra filstrukturer (filsystemer). Filstrukturen blir koblet til en katalog som må eksistere fra før. Denne katalogen blir root-katalogen for den nye filstrukturen. Katalogen bør være tom før den kobles til et filsystem. Hvis det eksisterer filer i katalogen, er ikke disse synlige så lenge en filstruktur er tilkoblet.
Argument: Se også Linux-man-sidene.
Opsjoner: Se også Linux-man-sidene.

Figur 19.15: Montering/avmontering av filsystemer fra usermount

Både mount- og umount-kommandoene har egne tabeller over tilkoblede enheter. Skriver du mount uten å bruke noen argumenter, viser Linux-systemet deg alle enheter som er tilkoblet, hvilken katalog de er tilknyttet, om filstrukturen bare er lesbar eller om den også er skrivbar samt datoen enhetene ble tilknyttet.

Kommandoen umount fjerner filstrukturer som er tilknyttet bestemte kataloger. Ingen data i filstrukturene går tapt. Bare systemadministrator kan bruke mount- og umount-kommandoen.

Eksempler:

[root@nittedal /root]# mount /dev/cdrom /mnt/cdrom

Her tilkobler jeg /dev/cdrom til /mnt/cdrom. /mnt/cdrom må være en katalog (node).

Ønsker du å bevare dine private filer på diskett, kan du opprette et privat filsystem på diskett ved hjelp av mkfs. (Se også kapittel 15 og Linux-man-sidene.)

[root@nittedal /root]# mke2fs /dev/fd0 1440

[root@nittedal /root]# mount -t ext2 /dev/fd0 /mnt

Her kobler jeg til filsystemet. Nå kan dataene nås på vanlig måte ved hjelp av cd-kommandoen.

[root@nittedal /root]# cd /mnt

For å oppløse noden skriver du:

[root@nittedal /root]# umount /mnt

Disketten kan ikke være i bruk når du bruker umount-kommandoen. Du kan heller ikke være i diskettens struktur.

Følgende kommando monterer opp alle filsystemer utenom de filsystemene som er av typen msdos og ext:

[root@nittedal /root]# mount -a -t nomsdos,ext

Her har jeg et eksempel på montering av eksterne filsystemer:

[root@nittedal /root]# mount -t nfs pluto:/data/tmp /mnt

Maskinen pluto må være definert i din /etc/hosts-tabell. Systemadministrator (root) på maskin pluto må også ha gjort filsystemet /data/tmp tilgjengelig for deg via /etc/export-filen.

Se også: fsck, umount, mount og filsystemer

Systemfiler: /etc/mnttab mount-tabell

Kjøre ned Linux-systemet[rediger]

Skal du som systemadministrator ta ned systemet, er det ikke bare å slå av maskinen fysisk. Før du kan slå av maskinen, må åpne filer lukkes og prosesser avsluttes. Vi skal nå ta for oss de tre mest brukte metodene for å ta ned et Linux-system. Disse kommandoene kan bare benyttes av systemadministrator (root).

Rask nedkjøring – reboot[rediger]

Reboot-programmet lukker filsystemer, stopper CPU, låser harddisk-hodene og deretter lastes Linux-systemet opp på nytt. Reboot-kommandoen har øyeblikkelig effekt, derfor bør brukerne være utlogget. Reboot brukes bare når shutdown ikke kan brukes. Kommandoen anbefales bare på enbrukerarbeidsstasjoner.

Kommandoen reboot kjører ned/opp Linux-systemet
Kommando: reboot [opsjoner]
Funksjon: Oppdaterer superblokken (se kapittel 7 om inodesystemet), lukker filsystemet, stopper CPU, låser diskhodene og laster Linux-systemet opp på nytt.
Argument: Se også Linux-man-sidene.
Opsjoner: Se også Linux-man-sidene.

[root@nittedal /root]# reboot

Med denne kommandoen blir systemet først tatt ned, for så å bli tatt opp igjen.

Se også: shutdown og inittab

Normal nedkjøring – shutdown[rediger]

Er det andre brukere på systemet, kan du ta systemet mykt ned med shutdownkommandoen. Kommandoen avslutter alle prosesser. Når du utfører shutdownkommandoen, skjer følgende:

   * Alle brukere som er logget på systemet får beskjed om at systemet er på vei ned.
   * Alle prosesser blir avsluttet.
   * Alle filsystemer og superblokker blir oppdatert. 
Kommandoen shutdown kjører ned Linux-systemet
Kommando: shutdown [-h] [-r] tid [melding]
Funksjon: Tar Linux-systemet mykt ned
Argument: Se også Linux-man-sidene.
Opsjoner: Se også Linux-man-sidene.
-h Låser Linux-systemet etter nedkjøring
-r Laster Linux-systemet opp etter nedkjøring (standard)
Tid: Du kan selv bestemme hvor lang tid Linux-systemet skal bruke før det er helt nede. Bruk syntaksen timer:minutter
Melding: Tekstmelding sendt til alle

Eksempler:

[root@nittedal /root]# shutdown -h +10 Systemet er operativt igjen klokken 14:00

Her går systemet ned etter 10 minutter. Det er ikke tatt med noen automatisk oppstart. Det sendes en melding til alle brukere om at systemet er oppe igjen klokken 14:00.

[root@nittedal /root]# shutdown -r +0

Tar systemet øyeblikkelig ned. Linux-systemet kommer automatisk opp igjen siden opsjonen -r er brukt.

Se også: reboot og init

Andre systemfiler: /fastboot, /etc/inittab, /etc/init.d/halt, /etc/init.d/reboot, /etc/shutdown.allow

Nedkjøring og kjørenivåer – init[rediger]

Init-programmets primære rolle er å skape prosesser som er definert i /etc/inittab. Et Linux-system har åtte forskjellige kjørenivåer. I hvert kjørenivå kan bare en bestemt gruppe prosesser kjøres. De forskjellige kjørenivåene har betegnelsene 0, 1, 2, 3, 4, 5, 6, S og s, hvor S, s og 1 er identiske.

Når du starter init-programmet, forteller det hvilket kjørenivå som kjøres.

Kommandoen init Linux-kjørenivå
Kommando: init [opsjon]
Funksjon: Kjører operativsystemet i forskjellige kjørenivåer.
Argument: Se også Linux-man-sidene.
Opsjoner: Se også Linux-man-sidene.
0 Tar ned systemet.
1 Tar ned systemet i enbrukermodus.
2 Tar ned systemet i flerbrukermodus.
3 Denne modusen er en utvidelse av flerbrukermoduser hvor man i tillegg får NFS (Network File System); blir ofte kalt NFS-modus.
4 Alternativ flerbrukermodus, kan spesialkonfigureres for ditt bruk, brukes normalt ikke.
5 Rar systemet opp i X11 (xdm)-modus.
6 Tar ned systemet og starter det på nytt (reboot), er ikke å anbefale.
s, S Tar systemet ned i enbrukermodus. Terminalen som utfører denne kommandoen, blir systemkonsollet. Alle tilknyttede filsystemer fortsetter å være aktive. Bare prosesser blir fjernet.
7-9 Eksisterer, men er ikke dokumentert.

Eksempler:

[root@nittedal /root]# init 0

Her blir systemet tatt ned på normal måte. Denne kommandoen har samme virkning som shutdown -h.

[root@nittedal /root]# init s

Her blir systemet tatt ned i enbrukermodus.

[root@nittedal /root]# init 2

Her går systemet i flerbrukermodus. Ønsker du tjenermodus, skriver du init 3.

Se også : shutdown, reboot og inittab

Andre systemfiler : /fastboot, /etc/inittab, /etc/init.d/halt, /etc/init.d/reboot, /etc/shutdown.allow, /etc/initscript, /etc/ioctl.save /dev/console, /var/run/utmp, /var/log/wtmp, /dev/initctl

Installasjonspakker – rpm[rediger]

Rpm (står for Red Hat Packet Manager) er pakkeprogrammet til Red Hat. I dag finner du flere distribusjoner som bruker pakke-programmet rpm. Jeg kan blant annet navne Red Hat Linux, Fedora Linux, SuSE Linux og Mandrake Linux.

Rpm kan i prinsippet operere tre forskjellige modier:

  • Lage rpm-pakker fra kildekodefiler
  • Installere/avinstaller eller oppdatere programpakker
  • Vise informasjon fra RPM-databasen om et bestemt rpm-arkiv

Vi kommer her til bare å se på de 2 siste punktene. Rpm-programmet kan sjekke avhengigheter (dvs. bare mot andre RPM-pakker) men installerer ikke disse automatisk. Rpm sjekker ikke programmer som har blitt installert rett fra kildekode. Bare biblioteker og programmer som er installert og registrert i rpm-databasen godkjenner rpm som ferdig installert pakke. Du kan bare bruke rpm installasjons-programmet hvis programmet du skal installere kommer i rpm-format.

Under både Fedora og Red Hat kan du installere og avinstallere programpakker enten via det grafiske brukergrensesnittet eller ved å bruke rpm-kommandoen fra terminalen. Oppdaterte rpm-pakker til Fedora, Red Hat og SuSE finner du på hjemmesidene til de enkelte distributørene. Hvis du har X Windows, anbefaler jeg at du bruker det grafisk pakkeprogram som følger med din distribusjon. Under Fedora velger du først systeminnstillinger og så pakker. Programmet gir et elegant grafisk grensesnitt for installering, oppgradering, avinstallering og undersøking av programpakker.

Fedora-gnome-software.png

Figur 19.16: Hovedmenyen i Fedora pakkeprogram

[root@nittedal /root]# gnome-software

Eller du kan bruke:

[root@nittedal /root]# system-config-repo

For å finne repositories.

Programpakken gnorpm gir også et grafisk grensesnitt mot rpm baserte pakker.

[root@nittedal /root]# gnorpm &

Fra kommandolinjen kan du også bruke rpm-kommandoen direkte slik det går fram av denne tabellen:

Kommandoen rpm (av)installering av programpakker
Kommando: rpm [opsjon]
Funksjon: avansert pakkeprogram for Linux
Argument: Se også Linux-man-sidene.
Opsjoner: Se også Linux-man-sidene.


Modus Beskrivelse
Installasjon rpm -ivh <programfil.rpm>

(i betyr installer, v betyr gi forståelige feilmeldinger, h betyr vis at du arbeider ved å vise # tegn etter hvert) Å reinstallere et program som allerede er installert en gang: rpm -ivh -replacepkgs <programfil.rpm> Å reinstallere et program som allerede er installert på annen måte enn ved rpm (framtvinger overskriving av eksisterende filer) rpm -ivh -replacefiles<programfil.rpm>

Avinstallering rpm -e <programnavn>
Oppgradering rpm -Uvh <programfil.rpm>
Verifisering Her blir alle programmer verifisert:

rpm -V <programnavn>

Spørringer Oversikt over alle rpm-pakker er som installert på systemet ditt:

rpm -qa Spørring på et enkelt program: rpm -qdf <filnavn> (q betyr undersøk, d betyr vis dokumentasjonsfiler, f betyr undersøk den programpakken som "eier" denne filen) for eksempel [root@nittedal /root]# rpm -qdf /bin/bash Konfigurasjonsfiler som er med i en bestemt programpakke: rpm -qc <programnavn> Sjekker om alle filene er med: rpm -qs <programnavn> Hvilke filer en rpm-pakke inneholder og hvor de vil bli installert: rpm -qlp <programfil.rpm>

Eksempler:

Ønsker du å installere Xfree86-Mach8, skriver du:

[root@nittedal /root]# rpm -ivh Xfree86-Mach8

Figur 19.17: Valg av programpakke i Red Hats pakkeprogram

Du må her stå i den katalogen der filen du skal installere ligger, i dette tilfellet /root. All informasjon om et installert program blir lagret i rpm-pakkedatabasen. Ved å bruke q opsjonen har du muligheten til å få ut denne informasjonen. Under har jeg et eksempel:

[root@nittedal /root]# rpm -q tuxracer

Resultatet av dette vil vise hvilken versjon av tuxracer du har installert f.eks. tuxracer-0.61-215. Opsjon f kan brukes hvis du har komplett søkevei. De eksemplet under:

[root@nittedal /root]# rpm -q -f /bin/rpm /usr/bin/wget

Resultatet av denne kommandoen skal gi informasjon om rpm-pakkene f.eks. rpm-3.0.1-1 og wget-2.4.5-2. Liste over alle installerte pakkene i systemet får man med "rpm -qa". Under har jeg to eksempler til:

[root@nittedal /root]# rpm -q -f /bin/tcsh

[root@nittedal /root]# rpm -q Xfree86-Mach8

Ønsker du å vite hvilke filer som er inkludert i pakken doom-1.8.9.rpm, skriver du:

[root@nittedal /root]# rpm -qlp doom-1.8.9.rpm

Her betyr p at du har en pakkefil og l at du ønsker utlisting av resultatet. Du må da stå i den katalogen der rpm-pakken ligger eller angi full sti til rpm-pakken. Hvis du savner en fil, kan du verifisere dette med rpm-kommandoen, for eksempel:

[root@nittedal /root]# rpm -Vf /bin/bash

I eksemplet nedenfor fjerner jeg programpakken DOOM:

[root@nittedal /root]# rpm -e doom-1.8.9

I eksemplet nedenfor fjerner jeg den norske nettleseren Opera:

root@nittedal /root]# rpm -e opera

Nedenfor har jeg et eksempel på en oppgradering:

[root@nittedal /root]# rpm -Uvh Xfree86-Mach8.rpm

Under har jeg to eksempler med oppdatering av rpm-pakker på mine maskiner med SuSE Linux.

32 bits: suselap:/home/elboth/download # rpm -U http://download.opensuse.org/repositories/network:/samba:/STABLE/openSUSE_Leap_42.1/i586/samba-4.4.0-2.1.i586.rpm

64 bits: suselap:/home/elboth/download # rpm -U http://download.opensuse.org/repositories/network:/samba:/STABLE/openSUSE_Leap_42.1/x86_64/samba-4.4.0-2.1.x86_64.rpm

suselap:/home/elboth/download # rpm -U ftp://mirror.switch.ch/pool/4/mirror/opensuse/opensuse/distribution/leap/42.1/repo/oss/suse/x86_64/less-458-7.1.x86_64.rpm

Du vil finne alle oppdateringer for de enkelte SuSE-distribusjonene på SuSE sin FTP-tjener. SuSE selv anbefaler at du gjør alle oppdateringene gjennom YaST. Skal du bruke rpm er det anbefalt å bruke -U opsjonen. Bruker du ikke YaST bør etter at du har brukt rpm kjøre SuSEconfig.

suselap:/home/elboth/download # SuSEconfig

Dermed blir alle system endringer og oppgraderinger som påvirker f.eks. KDE eller GNOME oppdatert.

Ofte kan du ha problemmer med avhengigheter. Kjenner du til alle filene som må installeres er det bare å spesifisere alle rpm-filene med en kommando.

[root@nittedal /root]# rpm -ivh fil1.rpm fil2.rpm fil3.rpm fil4.rpm

Du kan alternativt bruke jokere:

[root@nittedal /root]# rpm -ivh *.rpm

Har du avhengigheter vil dette løse disse mellom pakkene som du har angitt på kommandolinjen. Noen ganger kan det være behov for å tvinge igjennom en installasjon (dvs. rpm ser ikke på avhengigheter). Dette gjør du ved å bruke parameteren nodeps:

[root@nittedal /root]# rpm -ihv --nodeps j2sdk-1_4_2_19.linux.rpm

Ønsker du mer informasjon om hvordan du skal bruke rpm, bør du prøve:

http://www.rpm.org

Installasjonspakker – apt-get[rediger]

Pakkesystemet APT (Advanced Package Tool) er et kjent verktøy for Debian brukere. APT (Advanced Package Tool) er en videre utvikling av dpkg pakkeverktøyet fra Debian. Verktøyet brukes for håndtering av programpakker under de forskjellige Linux-distribusjonene. Dette programmet vil automatrisk finne avhengigheter og installerer programmer som mangler eller som må oppdateres. Fra din Linux-distribusjon kan du installere og avinstallere programpakker enten via det grafiske brukergrensesnittet med apt-get sitt brukergrensesnitt synaptic eller ved å bruke kommandoen apt-get fra kommandolinjen.

Når det er mange avhengigheter kan det være tungt å installere standard pakker som Xine og Mplayer med rpm. Jeg anbefaler derfor at du installere apt-get. Den finner du som en ferdig rpm-pakke. Det fine er at både apt-get og rpm kan lese de samme metadatene (data om data). I linken under finner du den uoffisiell repositorie for APT:

http://www.apt-get.org/

I linken under finner du siste versjon av apt-get for din distribusjon:

http://apt.freshrpms.net/.

I dag finner du ferdige apt-get pakker for følgende distribusjoner:

   * Fedora Linux
   * Red Hat Enteprise
   * Yellow Dog Linux 

Til forskjellige versjoner av disse distribusjonene finner du apt-get ferdig konfigurert. Ønsker du tilgang til kildelistene uten å måtte trekke disse direkte fra pakkene bør du ta en titt apt-get sine «build» sider.

http://freshrpms.net/packages/builds/index.html?build=apt

Figur 19.18: Fra http://freshrpms.net/packages/builds/index.html?build=apt

Beskrivelse av alle opsjonene til apt-get-kommandoen finner på hjemmesiden eller ved skrive:

[root@nittedal /root]# man apt-get

Etter at du har lastet ned apt-get er du klar til å installere.

[root@nittedal /root]# rpm -ivh apt-1.2.8.fr.i386.rpm

Etter at du har installert apt-get for din plattform kan du kjøre følgende som root:

[root@nittedal /root]# apt-get update

På skjermen får du nå en liste over tilgjengelige pakker. Ønsker du nå å oppdatere Fedora-systemet gjør du følgende:

[root@nittedal /root]# apt-get dist-upgrade

Nå vil apt-get automatisk finne alle avhengigheter og laste ned og installere alle nødvendige filer. Med apt-get er det betraktelig enklere å installere pakker enn med standard rpm. Det bare veldig synd at apt-get ikke følger med som standard til Fedora og Red Hat.

Vi går videre med å installere det grafiske grensesnittet for apt-get. Dette installeres med:

[root@nittedal /root]# apt-get install synaptic

Figur 19.19: Valg av programpakke fra apt-get

Du kan nå bruke det grafiske brukergrensesnittet. Jeg holder meg til kommandoene.

Hvis nå ønsker å legge til eller fjerne fra APT sin repository liste må du editere /etc/apt/sources.list. Ved å se på innholdet av lista kan du se hvilke «repository servere» som bruke:

[root@nittedal /root]# cat /etc/apt/sources.list

  1. Fedora Linux 23

rpm http://ayo.freshrpms.net fedora/linux/23/i386 core updates freshrpms

rpm http://ayo.freshrpms.net fedora/linux/23/i386 tupdates

rpm http://ayo.freshrpms.net fedora/linux/23/i386 extras alternatives

  1. rpm-src http://ayo.freshrpms.net fedora/linux/23/i386 core updates freshrpms
  1. rpm-src http://ayo.freshrpms.net fedora/linux/23/i386 tupdates
  1. rpm-src http://ayo.freshrpms.net fedora/linux/23/i386 extras

...

..

.

Start opp et terminalvindu og bruk vi-editoren.

[root@nittedal /root]# vi /etc/apt/sources.list

Du finner repositoryer på listen som helt sikker kan bruke. Når du legger tjenere til repository-listen må du oppdatere APT sin lokale lokale database. Dette gjør du enten fra synaptic eller ved å kjøre: apt-get update som jeg viste over. Under har jeg noen flere eksempler på bruk av APT. Ønsker du nå å installere mplayer skriver du:

[root@nittedal /root]# apt-get install mplayer

Eller ønsker du å installere to programmer samtidige er det bare å skrive:

[root@nittedal /root]# apt-get install mms xine

Ønsker du å fjerne pakker og avhengigheter kan du for eksempel gjøre følgende:

[root@nittedal /root]# apt-get remove mplayer

Erstatt mplayer med ønsket pakkenavn. Hvis du kjører kommandoene apt-get update og apt-get dist-upgrade vil maskinen din være oppdatert med de siste drivere og programmer. Dette kan du også automatisere med kommandoen cron.

Installasjonspakker – yum[rediger]

Yum er et spennede pakkeverktøy som gjør det enkelt å automatisere og oppdatere rpm-pakker hvis du har et stort nettverk . Yum regner automatisk ut avhengigheter og finner ut hvordan og i hvilken rekkefølge rpm-pakkene skal installeres. Du finner mer informasjon på hjemmesiden:

http://www.linux.duke.edu/projects/yum/index.ptml

Husk java kan gi sikkerhetrisiko bør kun installeres hvis du trenger dette.

Under har jeg et eksempel installasjon av Java-runtime:

[root@nittedal /root]# yum install java-1.7.0-openjdk

Ønsker du å installere java utviklingsmiljøet skriver du:

[root@nittedal /root]# yum install java-1.4.2-gcj-compat-devel

SuSE YaST og Kpackage[rediger]

Kjører du SuSE Linux kan man i tillegg til å installere programpakker via rpm bruke YaST eller Kpackage. Den største fordelen med å bruke YaST er at avhengigheter til andre programpakker blir ivaretatt.

Tilsvarende som med rpm er det første du gjør å laste ned pakkefilene enten som rpm eller tar.gz format. Når du laster ned filene er det lurt å laste ned filene på ditt eget download-katalog under din hjemmme katalog f.eks. /home/elboth/download. Du trenger bare være systemansvarlig (root) når du skal gjøre selve installasjonen. Du finner mer informasjon rundt innleggelse av programvare i filen /usr/share/doc/packages/suselinux*.

I eksempelet under ser vi på hvordan du kan bruke YaST for installere en programpakke. Fra terminal går du over til root. Vi har på forhånd lastet ned speak 1.0-1.i386.rpm som kjør det mulig for maskien å snakke.

elboth@suselap:~> sux -

Password:

suselap:~ #

suselap:~ # cd /home/elboth/download

suselap:/home/elboth/download #

Fra YaST har du 2 metoder for å installere rpm pakker:

1. Installere programvare fra media for eksempel, CD-ROM/DVD.

   Installere programvare fra en katalog 

Vi skal vårt eksempel installere programvaren fra en katalog. Vi kjører yast fra katalogen /home/elboth/download hvor vi har filen speak-1.0-1.i386.rpm.

suselap:/home/elboth/download # yast -i speak-1.0-1.i386

Ved å bruke YaST er du sikker på at alle pakke avhengigheter automatisk vil løst opp. YaST vil automatisk finne de pakkene som er nødvendige og installere disse. Det er ikke nødvendig å stå i katalogen hvor du har rpm-filen. Det er også mulig å skrive:

suselap:~ # yast -i /home/elboth/download/speak-1.0-1.i386

Med SuSE sin Kpackage har du et grafisk brukergrensesnitt ved installasjon eller avinstallering av programpakker. Du laster ned media ned på din downloadkatalog og starter opp Konqueror. Deretter fortsetter du med Kpackage. Du har også muligheten til å starte Kpackage direkte fra SuSE menyen

System -> Configuration -> Kpackage. Etter at Kpackage er har blitt startet opp kommer det opp et vindu som gir deg følgende muligheter,

  • Upgrade
  • Replace Files
  • Replace Packages
  • Check Dependencies
  • Test (do not install)

Disse valgende er selvforklarende og vi går ikke inn på disse. Etter en installasjon med Kpackage vil du se i hvilke kategorier i RPM-databasen programpakken har blitt tilordnet til. Hvis du er i KDE Menu har du muligheten til å starte Kpackage med System -> Kpackage. Er du på en jakt etter en spesifikk pakke kan velge File -> Find Package.

Terminalparametere – stty[rediger]

Med kommandoen stty kan du sette forskjellige terminalparametere på din egen eller andres terminal. Du kan bruke mange forskjellige opsjoner til stty-kommandoen. Her skal vi bare se på et begrenset utvalg.

Kommandoen stty vise/endre terminalparametere
Kommando: stty [-opsjoner]
Funksjon: Brukes for å sette opp forskjellige terminalparametere
Argument: Se også Linux-man-sidene.
Opsjoner: Se også Linux-man-sidene.
50,,115000 Hastighet (terminal baud-hastighet, for eksempel 1200 baud = 1200 bit per sekund)
echo Skriver ut alle inntastede tegn til skjerm
istrip Starter stripping av alle inngående karakterer til 7 bit
istrip Avslutter stripping av inngående karakterer
ixoff Starter START/STOP-kontroll av mottakelse av data
-ixoff Svar slutter START/STOP-kontroll av mottakelse av data
lcase Små bokstaver som blir skrevet inn, blir skrevet ut som store
-LCASE Store bokstaver som blir skrevet inn, blir skrevet ut som små
sane Nullstiller parameterne til standard (default)
tabs Erstatter tabulator med mellomromstegn

Står det - foran en opsjon, blir den avslått eller invertert. Stty-kommandoen uten argumenter skriver ut terminaloppsettet på skjermen.

Eksempler:

[root@nittedal /root]# stty

speed 9600 baud; line = 0;

-brkint -imaxbel

[root@nittedal /root]#

[root@nittedal /root]# stty intr ^c

Her blir avbruddstasten satt til Control C.

[root@nittedal /root]# stty lcase

Alt som blir skrevet inn med små bokstaver, blir skrevet ut med store.

[root@nittedal /root]# stty sane

Stiller alle parametere til standard.

[root@nittedal /root]# stty tabs

Her blir tabulator erstattet med mellomromstegn.

[root@nittedal /root]# stty 9600

Her setter jeg hastigheten til 9600 bit/s.

Linux og norsk tegnsett[rediger]

Fedora, Red Hat og SuSE er basert på deler av tegnsettet fra Unicode, som er det samme tegnsettet som Microsoft Windows 2000 og Windows XP er basert på. I de fleste Linux-distribusjonene er det derfor viktig å spesifisere hvilke spesialtegn som skal være aktive på ditt PC-tastatur. Med Fedora Linux får du norsk tegnsett hvis du velger no-latin1 ved installasjonen. Det norske tegnsettet vil virke tilfredsstillende i mange X-applikasjoner, men ikke i alle.

Innlogging til et ISO 8859 basert system som for eksempel Red Hat Linux versjonene 5.x, 6.x og 7.x og mange andre forskjellige Linux-distribusjoner kan skape problemmer. Det samme gjelder innlogging til eldre Unix-systemer. Resultat er at du blant annet mister de norske spesialtegnene som Æ, Ø og Å.

Ønsker du å ha støtte for de norske tegnene i bash-skallet, må du sette opp noen linjer i din .bash_profile eller .bashrc-oppstartsfil. Du kan alternativt sette denne parameteren for alle bash-brukere ved å oppdatere din /etc/profile:

GTK_RC_FILES=/etc/gtk/gtkrc:/home/elboth/.gtkrc-1.2-gnome2

PATH=/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/elboth/bin

LANG=no_NO.UTF-8

LAMHELPFILE=/etc/lam/lam-helpfile

GDM_LANG=no_NO.UTF-8

GDMSESSION=GNOME

DISPLAY=:0

G_BROKEN_FILENAMES=1

COLORTERM=gnome-terminal

Tegnsettet kan også settes opp fra GNOME-grensesnittet ved å velge Systeminnstillinger og Språkvalg. Fra KDE velger du først Innstillinger, Inn-enheter og til slutt Internasjonalt tastatur. Har du fortsatt problemer med tastaturet, bør du sjekke /etc/X11/ XF86Config-4-filen. På XkbLayout-parameteren skal det stå “no"!

Kjører du Emacs 20, skal du ha følgende i .emacs:

(standard-display-european t)

(require 'latin-1)

(set-input-mode nil nil 1)

Hvis du bruker irc, må du lage en ~/.ircrc-fil som består av følgende linjer:

set translation latin_1

set eight_bit_characters on

Ønsker du å bruke LaTEX med de norske tegnene, må du sette:

\usepackage[T1]{fontenc}

\usepackage[latin1]{inputenc}

Oppgaver til kapittel 19[rediger]

Oppgave 19.1

Hvilken kommando må kjøres hvis du ønsker å sette opp et lydkort?

Oppgave 19.2

Hva brukes systemfilen /etc/shadow til?

Oppgave 19.3

Er det mulig for to brukere å ha samme bruker- og gruppenummer? Hvilke parametere må du vite før du kan definere en ny bruker? Hva må du huske på hvis du skal fjerne en bruker?

Oppgave 19.4

Logg deg inn som systemadministrator og definer to brukere som du kaller bruker1 og bruker2. Bruker1 skal settes opp i bash-skall og bruker2 skal settes opp i tcsh-skall. Analyser de forskjellige innloggingsfilene som blir generert av systemet for de forskjellige brukerne.

Oppgave 19.5

Hvilken kommando bruker du til å reparere et Linux-filsystem?

Oppgave 19.6

Hvorfor er det nødvendig med egne kommandoer før du kan slå av Linux-maskinen? Ta Linux-systemet ned med shutdown-kommandoen. Gi brukerne en mulighet til å logge ut, en pause på 10 minutter er bra nok. Send samtidig en beskjed til alle brukere om at systemet er på vei ned.

Oppgave 19.7

Kjør systemet fra flerbrukermodus (2) til enbrukermodus (1) og tilbake igjen med init-kommandoen.

Oppgave 19.8

Hva er forskjellen på kommandoene init 1 og init s?

Oppgave 19.9

Hvilken modus må du være i for å kunne kjøre NFS?

Oppgave 19.10

Lag et filsystem på en diskett og kopier alle datafilene dine på disketten med Linux-kommandoen cp.

Oppgave 19.11

Hva skriver du hvis programpakken ergosoft-2002-01.rpm skal installeres?

Oppgave 19.12

Hvilket tegnsettkode bør du velge under installering av Fedora Linux hvis du ønsker norsk 8 bit tegnsett basert på ISO 8859?

20: Sikkerhetskopiering under Linux[rediger]

Sikkerhetskopiering er viktig. Skulle maskinvaren knekke sammen, kan det bli dyrt hvis du ikke har sikkerhetskopier av dataene.

Under Linux er det flere måter å ta sikkerhetskopier på. Det enkleste er å ta sikkerhetskopi fra det menystyrte programmet taper eller fra Linux X Windows-programmet BRU 2000.

Vi skal i dette kapitlet ta for oss kommandoer som tar, cpio og dd, som ligger bak disse enkle grensesnittene. Både tar- og cpio-programmet pakker alle filene sammen til en stor fil. Programmene har forskjellige opsjoner slik at du kan foreta en selektiv sikkerhetskopi basert på for eksempel dato og filnavn. Programmet cpio kan virke sammen med find-programmet. Det er derfor mer fleksibelt enn tar. Med både tar- og cpio-programmet er det enkelt å tilbakekopiere bare én enkel fil.

Programmet dd er et generelt konverteringsverktøy og sikkerhets­kopieringsprogram. Med dd kan du raskt kopiere et komplett filsystem fra en harddisk til en annen. Ønsker du å konvertere data fra et system til et annet, for eksempel fra EBCDIC til ASCII, er dd det riktige verktøyet. Etter dette kapitlet skal du kunne ta sikkerhetskopi på ulike medier med forskjellige Linux-kommandoer.

Formater og drivere[rediger]

Driverne brukes for å kommunisere med de forskjellige enhetene som finnes i systemet, for eksempel harddisk, diskettstasjon, tastatur, skjerm og mus. Alle driverne finner du i katalogen /dev. Under /dev kan du finne noen egne kataloger for nettverksdriver (/dev/inet), diskettstasjonsdrivere (/dev/fd) etc.

Det er viktig å forstå hva de forskjellige navnene betyr for å kunne bruke dem. Navnstrukturen på drivere for diskettstasjoner som er plassert på /dev-katalogen, er definert i tabellen under.

Beskrivelse (fd)(e)( h/H/d/D/E/C)(bbbb)
fd diskettstasjon (fd=floppy drive)
e enhetsnummer; 0, 1, 2 eller 3; 0=A, 1=B etc.
h/H/d/D/E/C

gir størrelse og tetthet på media: h,d = 5,25 tommers diskett H,D = 3,5 tommers diskett E,C = 3,5 tommers diskett med spesialformat (meget høy datatetthet)

bbbb antall kilobytes
   Vil du ha et kortere navn på enheten, kan du linke til en ny enhet. Ønsker du for eksempel å linke /dev/fd0H1440 til /dev/A, skriver du: 

[root@nittedal /root]# ln /dev/fd0H1440 /dev/A

Driveren /dev/fd0 korresponderer med første diskettstasjon (A: under MS-DOS) og /dev/fd1 med andre diskettstasjon (B:).

Nedenfor har jeg en liste over drivere for diskettstasjoner som automatisk blir gjenkjent. Listen viser også format og kapasitet på forskjellige typer disketter.

5,25 tommers drivere med dobbel tetthet:

Navn Kaps. Syl. Sekt. Hoder Base


fdnd360 360K 40 9 2 4

5,25 tommers drivere med høy kapasitet:

Navn Kaps. Syl. Sekt. Hoder Base


fdnh360 360K 40 9 2 20

fdnh410 410K 41 10 2 48

fdnh720 720K 80 9 2 24

fdnh880 880K 80 11 2 80

fdnh1200 1200K 80 15 2 8

fdnh1440 1440K 80 18 2 40

fdnh1476 1476K 82 18 2 56

fdnh1494 1494K 83 18 2 72

fdnh1600 1600K 80 20 2 92

3,5 tommers drivere med dobbel tetthet:

Navn Kaps. Syl. Sekt. Hoder Base


fdnD360 360K 80 9 1 12

fdnD720 720K 80 9 2 16

fdnD800 800K 80 10 2 120

fdnD1040 1040K 80 13 2 84

fdnD1120 1120K 80 14 2 88

3,5 tommers drivere med høy tetthet (HD):

Navn Kaps. Syl. Sekt. Hoder Base


fdnH720 720K 80 9 2 16

fdnH820 820K 82 10 2 52

fdnH830 830K 83 10 2 68

fdnH1440 1440K 80 18 2 28

fdnH1600 1600K 80 20 2 124

fdnH1680 1680K 80 21 2 44

fdnH1722 1722K 82 21 2 60

fdnH1743 1743K 83 21 2 76

fdnH1760 1760K 80 22 2 96

fdnH1840 1840K 80 23 2 116

fdnH1920 1920K 80 24 2 100

3,5 tommers drivere med ekstra høy tetthet (HD):

Navn Kaps. Syl. Sekt. Hoder Base


fdnE2880 2880K 80 36 2 32

fdnCompaQ 2880K 80 36 2 36

fdnE3200 3200K 80 40 2 104

fdnE3520 3520K 80 44 2 108

fdnE3840 3840K 80 48 2 112

Nedenfor har jeg en liste over harddiskdrivere som automatisk blir gjenkjent. Listen viser også format og kapasitet. Standard drivere til for eksempel IDE, MFM, og RLL får navnene /dev/hda, /dev/hdb etc. De forskjellige partisjonene på diskene får driverne /dev/hda, /dev/hda1, /dev/hda2 etc.

Beskrivelse Driver
Første harddisk (hele disken) /dev/hda
Første harddisk, primær partisjon 1 /dev/hda1
Første harddisk, primær partisjon 2 /dev/hda2
Første harddisk, primær partisjon 3 /dev/hda3
Første harddisk, primær partisjon 4 /dev/hda4
Første harddisk, logisk partisjon 1 /dev/hda5
Første harddisk, logisk partisjon 2 /dev/hda6
Andre harddisk (hele disken) /dev/hdb
Andre harddisk, primær partisjon 1 /dev/hdb1

Har du SCSI-har