Labinlämning

Laborationerna skall utföras i grupper om högst två personer.

Varje labgrupp skall lämna in en labrapport via e-post på det sätt som beskrivs nedan. Anledningen är att jag då enkelt kan testköra programmen (det är mycket svårare att kontrollera program om man bara har pappersvarianten).

För att hålla ordning på alla program och labgrupper kommer du att förpacka dina program i en arkivfil, en sk tar-fil, som du sedan kommer att skicka via e-post. Tarfiler är standardmetoden för att förpacka unix-programvara, så detta utgör samtidigt träning på unix-användning.

Programmen skall givetvis:

Bifoga inte datafiler som jag tillhandahåller, de tar ju bara plats i min mail-box.



Hur man skapar en tar-fil

Nu till förpackningen. I en tar-fil (tape archive) kan man spara en hel katalogstruktur (fungerar ungefär som en zip-fil under Windows). Du kommer att skapa en katalog vars namn består av början av gruppmedlemmarnas efternamn, lägga kopior av dina program (och textfiler som innehåller eventuella beräkningar och resultat) i katalogen, skapa en tar-fil av katalog med innehåll och sedan skicka filen till mig. Tar-filer är, som sagt, det vanligaste sättet att förpacka programsystem under unix. Filerna brukar dessutom vara komprimerade för att spara plats och överföringstid.

Exempel
Säg att labgruppen skall redovisa lab2 och att labgruppens medlemmar heter Andersson och Östergren i efternamn. Vi antar att de aktuella programmen heter prog1.m och prog2.m och att dessa ligger i katalogen mvg300/Lab2. I katalogen har du också en textfil, diskussion, som innehåller en del matematiska utredningar. Gör då så här:

cd mvg300/Lab2
mkdir Ander_Öster
cp prog1.m prog2.m diskussion Ander_Öster
tar -cjvf lab2.tar.bz2 Ander_Öster

Skicka sedan ett mail till mig som innehåller kursnamn, gruppmedlemmarnas namn samt åtminstone de första sex siffrorna i personnumren. Bifoga lab2.tar.bz2 som attachment.

Kommentarer:
det är lämpligt att ha sina labbar i en katalogstruktur. Kanske skapar man en katalog, mvg300 (kurskod), Matlab_prog eller något annat på sin toppnivå. I denna katalog skapar man sedan kanske en katalog för varje lab, Lab2 i detta fall. cd-kommandot (change directory) flyttar dig till denna katalog.

Med mkdir (make directory) skapar du en tillfällig katalog bestående av de fem första tecknen i respektive efternamn (bokstavsordning), förbundna med ett understreck, _. För enpersonsgrupper, tag de fem första bokstäverna i efternamnet.

Med cp (copy) kopierar du programmen till Ander_Öster. OBS: det är mycket viktigt att inte skriva fel när cp-kommandot används, eftersom filer då kan förstöras. Kommandot cp fil1 fil2 kopierar fil1 till fil2 och förstör då, skriver över, innehållet i fil2. Om du vill vara extra försiktig kan du använda cp med interactive-flagga. cp varnar då om du försöker kopiera över en existerande fil. Så här:

% cp -i fil1 fil2
cp: overwrite `fil2'? n

% är unix-prompten i mitt exempel och skrivs av unix-systemet. Så i detta fall varnar cp och jag kan ångra mig. Om man har ett katalognamn sist läggs filerna i denna katalog.

Slutligen skapar tar-kommanot en komprimerad tar-fil. Flaggorna betyder följande:

Om man vill packa upp filen (vilket jag kommer att göra) skriver man t.ex. så här: tar -xjvf lab2.tar.bz2
För att det skall vara intressant bör man då stå i en annan katalog än där Ander_Öster finns.

Det finns många andra arkivformat, jag har bland annat råkat ut för zip, rar, ar, shar, sea, sit, men jag vill alltså inte få en fil i något av dessa format.


Hur tar man bort den temporära katalogen Ander_Öster? Ett försiktigt sätt är att skriva

% cd Ander_Öster

% rm prog1.m prog2.m diskussion
% cd ..
% rmdir Ander_Öster

Ännu försiktigare att att använda  rm -i prog1.m prog2.m diskussion

rm (remove) tar bort filerna. cd .. betyder hoppa upp en nivå i filträdet och rmdir står för remove directory. Man kan göra detta på en (farlig) rad, men eftersom man då lätt kan ta bort alla filer man har (om man står i fel katalog) visar jag inte en-radskommandot. Om du vill veta hur det går till, läs manualbladet för rm, men notera att jag inte kan återskapa förlorade filer (men IT-service, helpdesk, kanske kan, om filerna är tillräckligt gamla så att man hunnit ta backup, säkerhetskopior). Var försiktig!