HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Eksamensdato: 16. desember 2004 Varighet: 3 timer Fagnummer: LO247D Fagnavn: Praktisk Linux Klasse(r): Studiepoeng: 6 Faglærer(e): Geir Maribu, tlf 73559553 Hjelpemidler: Ingen hjelpemidler Oppgavesettet: 5 oppgaver Vedlegg består av: Ingen vedlegg Alle deloppgavene teller likt! Oppgave 1: Diverse Gi en kort forklaring på følgende (max 5-6 linjer på hvert punkt) a) GNU Svar: GNU står for GNU is Not Unix og er en organisasjon som arbeider for fri og åpen programvare. Det startet på 80-tallet ved at en rekke programmerere gikk sammen og laget programmer for UNIX. Etter hvert utviklet UNIX seg til et mer og mer lukket miljø, og da ble det viktig for GNU også å skaffe seg et operativsystem som alternativ til UNIX. Fra før hadde de jo allerede alle programmene, dvs editorer, kompilatorer, kommandoskall, kommandoer etc. Tidlig på 90-tallet kom Linus Torvalds med sin Linux-kjerne, og det ble ganske snart adoptert av GNU-folkene som kjerne i et nytt operativsystemmiljø kalt GNU/Linux b) GPL Svar: GNU har laget sin egen lisensavtale som redegjør for betingelsene ved bruk av fri programvare. Den heter GPL som står for General Public License. Hovedidén er at alle har lov å kjøre programmet, kopiere programmet, modifisere programmet og distribuere modifiserte versjoner av programmet. Det stadfestes klart og tydelig at det ikke er lov å legge restriksjoner på bruken av programmet. c) Master Boot Record Svar: MBR ligger i helt i starten på hard-disken, på en 512 byte stor sektor. Her leter BIOS etter oppstartsinfo, nemlig et enkelt bootloaderprogam som forteller hvor den sekundære oppstartslasteren skal hentes fra, dvs den lasteren som skal hente inn selve kjernefilen til Linux. d) kommandosubstitusjon Svar: Dette er en teknikk der en kommando inneholder en annen kommando som argument. Den siste kommandoen står inne i venstrevendte aksent-tegn. Utdataene ti Side 1 av 5
denne kommando nummer to blir inndata til den første kommandoen på linja. Se eks nedenfor echo hjemmekatalogen min er `pwd` hjemmekatalogen min er /home/geir Kommandoen pwd utføres og utdata fra denne blir inndata til echo-kommandoen e) kill HUP <prosess-id> Svar: kill-kommandoen med HUP-opsjonen fører til at aktuell prosess leser sine konfigurasjonfiler på nytt. Det er altså snakk om en restart av prosessen. f) monteringspunkt (mount point) Svar: Disker/partisjoner med egne filsystem kan monteres inn hvor som helst i rotfilsystemet til Linux. Dette kalles et monteringspunkt. Det vanligste er kanskje å se på diskett-stasjon og CD-rom som monteres under /mnt-katalogen. Men husk også at typisk vil du montere en disk med alle hjemmekatalogene under f.eks /home-katalogen. /home kalles da et monteringspunkt g) partisjon (partition) Svar: En disk kan deles inn i såkalte partisjoner. Disse kan betraktes som virtuelle disker med sitt eget filsystem. Disse filsystemene kan i neste omgang monteres inn på passende sted i rot-filsystemet til Linux h) init 3 Svar: init-kommanoden brukes for å sette aktuelt kjørenivå for Linux. I dette eksemplet settes den til kjørenivå 3, dvs flerbruker-funksjonalitet med nettverk, men ikke grafisk brukergrensesnitt (som er kjørenivå 5) Oppgave 2: Kommandoskallet a) Kommandoskallet Bash bruker en del oppstartsfiler. Hvilke filer er det, og hvilken funksjon har de? Svar: Her er det hovedsakelig snakk om tre filer. Det /etc/profile, ~/.bash_profile og ~/.bashrc. I den første finner du globale settinger som gjelder for alle brukere. I de to andre er det lokale settinger for hver enkelt bruker. Se innholdet i filene for mer info. b) Du kan sette opp din egen kommandoprompt i kommandoskallet. Vis hvordan dette gjøres i Bash og fortell også kort om hva slags endringer du kan gjøre Svar: Prompten finner du i skallvariabelen PS1. Innholdet kan du vise fram med kommandoen echo $PS1, f.eks PS1=[u@\h \w]\$. På skjermen vises denne som [geir@findus ~/plx]$ når katalogen plx rett under hjemmekatalogen er stående katalog. \u skriver ut brukernavn @ skrives ut direkte slik den står \h skriver ut maskinnavn (host) (min har ikke fått skikkelig navn ennå siden den ikker er på nettet) \W skriver ut katalognavnet for stående katalog \$ skriver ut dollartegn på slutten av prompten. \$ skriver ut tegnet # når du er innlogget som root. Dermed kan du enkelt se om du er vanlig bruker eller root Tegnene [ og ] gitt i prompten over skrives ut slik de er. Side 2 av 5
c) En bruker skriver følgende i kommandoskallet:!w Hva er dette? Forklar. Svar:! viser til history-funksjonen. I dette tilfellet er det den siste kommandoen med navn som startet på w som kjøres på nytt. d) Du vil øke PATH-variabelen med katalogen /usr/local/bin. Vis hvordan dette gjøres. Svar: PATH=$PATH:/usr/local/bin e) Hvorfor brukes EXPORT-kommandoen på skall-variabler? Forklar. Svar: For å gjøre skall-variabler kjent også i det etterfølgende skallene, dvs barneskallene. Derfor er det vanlig å utføre slike EXPORT-kommandoer allerede i login-skallet slik at de blir kjent i alle skallene. f) Det finnes skallvariabler kalt $0, $1, $2,..,$9. Forklar hva disse skallvariablene kan brukes til. Svar: Dette er navnet til kommandolinje-argumenter. $0 angir selve kommandonavnet, mens $1-$9 er variabler som inneholder de påfølgende argumentene. g) En bruker skriver inn følgende skall-program: #!/bin/bash filelist=`ls` ls l $filelist Hva skjer når dette programmet kjøres? Forklar det du ser! Svar: Først listes alle filene på stående katalog, deretter innholdet til katalogene på stående katalog. Det som skjer er at resultatet av kommandoen ls lagres i skallvariabelen filelist. Deretter kjøres kommandoen ls l med innholdet i denne variabelen som argument, dvs navnet til alle filene og katalogene. Oppgave 3: Kommandoer a) Gitt følgende kommando: cat `ls *.txt` more Fortell hva kommandoen gjør, og skriv opp en enklere variant av kommandoen som gjør akkurat det samme som denne. Svar: Dette er en kommando som bruker kommando-substitusjon (jfr oppgave 1d). Resultatet av kommandoen ls *.txt blir input til kommandoen cat. Det betyr altså at navnene til alle txt-filene gis som argument til cat, og cat viser fram disse på skjermen ei skjermside om gangen (pga more). Den enklere varianten er rett og slett kun more *.txt. b) Hva gjør kommandoen cat < test.txt Svar: Innholdet til filen test.txt vises fram på skjermen. Samme som cat test.txt. Forskjellen er at i dette eksemplet har vi brukt redirigering av input fra fil. Side 3 av 5
c) Hva gjør kommandoen ls f[si]*.txt Svar: Lister ut alle filnavnene på stående katalog som har første bokstav lik f og andre bokstav er s eller i. d) I en katalog befinner det seg mange tekstfiler (dvs. rein ascii-tekst). Du ønsker innholdet i alle disse filene overført til en fil. Hvilken kommando vil du bruke? Forklar hvorfor du gjorde det slik. Svar: cat *.txt > allefiler.txt e) Gitt at masken 112 er brukt i umask-kommandoen. Hva blir tilgangsrettighetene til nye filer som opprettes? Svar: 112 er en maske. For å finne tilsvarende tilgangsrettigheter må vi trekke dette fra 777, og da får vi 665 som tilsvarer rw-rw-r-x Denne gjelder for kataloger og kjørbare filer. For vanlige filer blir det rw-rw-r-- f) Du vil finne alle filer på hjemmeområdet ditt med filnavn på 3 tegn, og det siste tegnet i navnet er i. Hvilken kommando vil du bruke for å liste ut disse filnavnene? Svar: Prøv med find. -name??i Dersom du vil utelukke kataloger må du angi at det kun skal gjelde filer slik find. name??i type f. og merk at filnavnet skal kun være på 3 tegn. Dersom du bruker kommandoen ls??i er det kun stående katalog som undersøkes. g) Hva vil du si er forskjellen mellom kommandoen locate og kommandoen find når det gjelder å finne filer? Svar: Kommandoen locate leter i en database over på forhånd innsamlet materiale. Det er en rask metode, men forutsetter at databasen er oppdatert, f.eks hver natt. Kommandoen find leter gjennom hele katalogstrukturen i sann tid, dvs her og nå. Den vil derfor alltid finne de siste endringene, men bruker en del tid på å gå gjennom hele strukturen. Oppgave 4: Grafiske grensesnitt, X, a) I motsetning til MS Windows og Mac-maskiner er Linux kjent for de mange grafiske brukergrensesnitt. En ny bruker av Linux vil derfor bli noe forvirret av alle disse forskjellige grensesnittene. Oppgaven din er derfor å forklare denne nye brukeren om alle disse grafiske brukergrensesnittene, sammenhengen mellom dem etc. Svar: Her må du nevne at det finnes mange forskjellige grensesnitt, fra de ganske omfattende skrivebordbehandlerne og til enklere vindusbehandlere. Vis til at dette egentlig er ordinære brukerprogrammer som du starter opp, og derfor ikke er så fullintegrert som det er i Windows og Mac. Du kan også nevne det kommandobaserte grensesnittet. b) Det skilles mellom skrivebordsmiljøer og vindusbehandlere. Forklar! Side 4 av 5
Svar: Skrivebordmiljøet er det mest omfattende og integrerte. Her finner du mange programmer som er samordnet, slik som f.eks en vindusbehhandler, ei verktøylinje, en skrivebordsbakgrunn med ikoner, en hovedmeny, et hjelpesystem pluss diverse program for å administrere skrivebordet. I tillegg er det også et utviklingsverktøy og en styleguide for å få et mest mulig ensartet look-and-feel for programmene som kjører i skrivebordsmiljøet. En vindusbehandler er kun det som navnet sier, nemlig en vindusbehandler som utfører oppgaver som flytte, lukke, åpne, endre størrelse etc på vinduer. I tillegg kan det være en meny for oppstart av programmer. c) Anta at du kjører en enkel vindusbehandler, for eksempel WindowMaker. Forklar hva som er X (dvs X Window System) sitt ansvar og hva som er WindowMaker sitt ansvar. Svar: WindowMaker er et x-klient-program som benytter seg av ressursene til X-serven. Dvs X ligger nederst i dette systemet og tar i mot museklikk og sørger for å tegne grafikken ut på skjermen. WindowMaker avgjør hva som skal skje ved de forskjellige museklikkene og hvordan vinduene skal virke og hvordan de skal se ut. d) Kan du kjøre komponenter fra KDE og Gnome sitt grensesnitt sammen med for eksempel vindussystemet Enlightenment eller WindowMaker? Forklar. Svar: Ja, dette er separate programmer, og det er normalt ikke noe i veien for at komponenter fra de forskjellige systemene kan kjøre om hverandre. e) Hva er en X-Server og hvilke oppgaver har den? Svar: X-Serven tar i mot input fra mus og tastatur samt tegner grafikken på skjermen. f) En X-klient trenger et annet program for å kunne kommunisere med brukeren via mus/tastatur og skjerm. Hvilket program er dette? Svar: Det er X-Serveren Oppgave 5: Installering av programmer a) Installering av programmer på Linux kan foregå på forskjellige måter, f.eks via RPM-moduler eller via kompilering av kildekode. Å installere programvare for Linux kan virke noe mer omstendelig enn for f.eks MSWindows. Diskutér hvorfor du tror det er slik. Svar: Må ta hensyn til at de forskjellige Linux-distribusjonene kan ha forskjellig oppsett når det gjelder biblioteker og når det gjelder installasjonsrutiner. Videre må en ta hensyn til forskjellige cpu-arkitektur. b) For noen programpakker, for eksempel for Mozilla nettleser og Open Office, går installeringen meget greit uten noen som helst problemer eller avhengigheter. Men da er også pakkene svært store, gjerne opptil 40-50 Megabyte. Gi en forklaring på dette. Svar: Alle bibloteker som trengs er allerede inkludert i pakken. c) List opp de tre stegene du må utføre for å installere programmer direkte fra kildekode. Hvilke problemer kan du støte på ved installering fra kildekode, og hvordan kan du løse disse? Svar: Det er./configure; make; make install Side 5 av 5