Numerisk analys och datalogi KTH 100 44 Stockholm Ann Bengtsson, Kerstin Frenckner 2D1339 Programkonstruktion Hösten 2001 Datorintroduktion Laboration 1 UNIX Mål Syftet med denna laboration är att ni ska bekanta er med den datormiljö som används under den här kursen och i de flesta av de obligatoriska och valbara kurser ni kommer att läsa på Nada. Följande ska man kunna när man är klar med labben: logga in och logga ut utföra de vanligaste operationerna på filer förstå hur filsystemet är uppbyggt hitta hjälpinformation på systemet starta och använda texteditorn Emacs använda häftet Unixanvändning på Nada Som förberedelse till labben bör ni läsa igenom labblydelsen samt de avsnitt i häftet Unix-användning på Nada som labblydelsen hänvisar till. Tag med Unix-häftet till labben! Ni får gärna börja med labben på egen hand före det schemalagda labbtillfället. Allt som står i Unix-häftet är användbar kunskap men vi hinner inte öva på allt under labben. Experimentera gärna själva med det vi inte tar upp här, t.ex. avsnitten 7.3.9 7.3.12, 8, 9.5 9.9, 10 och 11. Vad laborationen går ut på Du ska utföra diverse kommandon för att bekanta dig med Unix och miljön på Nada. Redovisning Redovisning av labben sker genom att ni besvarar frågorna på sidan 6 och visar upp svaren för en handledare. Handledaren har frihet att ställa ytterligare frågor till er om han/hon tycker att det behövs för att försäkra sig om att ni nått upp till målsättningen.
2 Unix Arbetsgång Inloggning, fönster, lösenord Läs igenom avsnitten 1 6 i Unix-häftet. Logga in enligt anvisningarna i avsnitt 5. När inloggningen är klar hamnar ni i ett fönstersystem. Prova att flytta och ändra storlek på fönster enligt beskrivningen i avsnitt 6.2. Byt lösenord Ni byter lösenord genom att välja terminalfönstret och ge kommandot passwd Följ instruktionerna. Byte av lösenord beskrivs i Unix-häftet, avsnitt 7.2. Installation av kursanpassningar, utloggning Anpassningarna innebär bl.a. att man automatiskt får information om kursen, tillgång till specialkommandon och direktlänk till kursens hemsida. Anpassningarna ska göras för varje persons konto. Välj kursomgång Den omgång av kursen Programkonstruktion som börjar år 2001 kallar vi progk01. Välj terminalfönstret genom att klicka i det och skriv course join progk01 Checka in i res Vi har ett särskilt progam kallat res för att hålla ordning på vilka delresultat ni har skrapat ihop. Ni måste checka in i res. Detta sker genom att ni ger kommandot: res checkin progk01 Ni får då ett antal frågor (namn, personnummer o.d.) om uppgifter vi måste känna till för att kunna registrera era resultat. Skapa en gemensam filkatalog När två personer jobbar tillsammans behövs en gemensam filkatalog. Denna tillverkar man enklast med hjälp av course-kommandot. Ge kommandot: course labdir progk01 kompis kompis är användarnamnet för din labb-kompis. Den gemensamma katalogen kommer att heta progk01 och ligga under hemkatalogen. Logga ut (avsnitt 6.3.7 i Unix-häftet). Anpassningarna ni just installerat utförs vid varje kommandoinloggning. Låt nu labb-kompisen logga in på sitt konto, byta lösenord och upprepa alla stegen ovan på detta konto också. Det är viktigt att ni båda checkar in på kursen och att båda era konton blir riktigt anpassade för kursen. Dessa två åtgärder behöver bara göras en gång, vid kursens början. Om ni vill byta labb-kompis eller får problem så be en handledare om hjälp. När ni båda är klara med detta kan ni enkelt gå till er gemensamma katalog genom cd progk01 Det är meningen att ni ska lägga alla filer som har med progk-labbarna att göra under denna gemensamma katalog. I katalogen progk01 bör ni så småningom skapa lämpliga underkataloger, förslagsvis en för varje kursdel (Datorintroduktion respektive Java). Under dessa kataloger skapar man sedan en katalog för varje labb eller programmeringsprojekt. En katalog skapas med det vanliga Unix-kommandot mkdir (make directory). Mer övning på kataloger kommer.
Unix 3 Q-manager hantering av hjälpkön på din dator Under de schemalagda passen i datorsal finns handledare att tillgå. När ni behöver hjälp eller vill redovisa så ska ni ställa er i kö med hjälp av programmet q-manager. Ge i terminalfönstret kommandona module add q-manager qm Då skapas, efter 30-60 sekunder, ett fönster för köhanteringen på er datorskärm. Klicka mitt i det fönstret med den musknapp som är längst till höger och välj först kurs. Placera markören på Välj kurs. En meny uppenbarar sig och i denna klickar man på progk. Då listas den aktuella kön för kursen progk i q-manager-fönstret. Ovanstående görs endast en gång per labbpass. När ni vill ställa er i kö använder ni också höger musknapp och väljer först Kö. Då får man en meny där man väljer Köa. Ett litet fönster kommer upp där man kan välja Handledning eller Redovisning. Man bekräftar sitt val genom att klicka på Ok. Om man ångrat sig klickar man på Avbryt. När man fått hjälp av en handledare ska man ta bort sig ur kön. Kommandot för detta finns längst ned i Kömenyn. Filträdet och filkommandon Läs i Unix-häftet avsnitt 7, sidorna 18 26 (t.o.m. 7.3.8). Läs också 9.1 9.4. Logga in igen om ni är utloggade. Välj terminalfönstret. Skriv cd vilket betyder förflyttning till hemkatalogen. Skriv nu ls Datorn skriver ut AFS-README OldFiles Private Public README public_html progk01 (eller något som är mycket likt ovanstående). Det ni har gjort är att fråga vad den aktuella filkatalogen innehåller. Svaret är en lista över katalogens innehåll. De första fem filerna i listan är sådant som alla hemkataloger innehåller från början. Den sista, progk01, har ni själva skapat. Hemkatalogen innehåller också ett antal initieringsfiler vars namn inte skrivs ut. Prova kommandona cd, pwd och mkdir genom att Ge kommandot pwd i hemkatalogen Gå till katalogen progk01 Gör pwd igen (skillnad?) Gör ls Vad får ni veta? Skapa en katalog datorintroduktion (använd ett kortare men lika tydligt namn om ni vill) i katalogen progk01 Gör ls igen. Gå tillbaka till hemkatalogen På katalogen /info/progk00/labbar/intro/ finns filen Lasse.txt Den innehåller samma text som filen foo.txt som används i exemplen på sidorna 25 26. Prova kommandona cp, mv, cat, more och rm genom att utföra följande uppgifter: Kopiera Lasse.txt till hemkatalogen. Byt namn på kopian
4 Unix Skriv filens innehåll i terminalfönstret Kopiera filen (inom hemkatalogen) så att ni har två filer med olika namn men med samma innehåll. Tag bort den ena kopian Flytta den återstående kopian till katalogen datorintroduktion (eller motsvarande) som ni skapat för en stund sedan. Gör ls minst en gång efter varje kommando för att kontrollera att katalogerna innehåller det ni tror. Tag reda på, med hjälp av innehållsförteckningen till Unix-häftet, hur man med ett enkelt kommando skriver ut en fil på papper. Symboliska länkar Läs avsnitt 7.3.8 i Unix-häftet. Ni har redan gjort en symbolisk länk, dock utan att själva ge kommanot ln När ni gjorde course labdir kördes ett s.k. skript, en samling kommandon. Kommandot ln ingår i detta skript. När person 1 i gruppen gjorde course labdir skapades katalogen progk01 i hemkatalogen hos person 1. När person 2 gjorde samma sak sattes en symbolisk länk med namnet progk01 från dennes hemkatalog till katalogen progk01 hos person 1. Läs noga igenom exemplet på sidorna 25-26 och försök förstå vad som händer. Att få hjälp Läs avsnitt 16.1 i Unix-häftet. Prova man-kommandot i terminalfönstret för några av de kommandon ni använt under labben, t.ex. man ls De olika väljare som finns för ett kommando hittar man under rubriken OPTIONS i manbladet. Den information manbladen ger är svårtillgänglig. Det krävs en del träning för att kunna läsa dem med god behållning. Emacs Läs avsnitt 13 i Unix-häftet. Här är det bäst att läsa och samtidigt prova de Emacs-kommandon som beskrivs i texten. Starta Emacs (GnuEmacs, inte XEmacs) genom att i terminalfönstret skriva emacs & Emacs kommer nu att startas i ett eget fönster på skärmen. Utan &-tecknet kör Emacs i terminalfönstret och det går inte att ge kommandon där samtidigt som Emacs är igång. Välj Emacs-fönstret och välj ett filnamn att jobba med. Man kan ta en fil som redan existerar som man vill ändra i eller man kan välja att skapa en ny. Använd alternativ 1 högst upp på sidan 45 i Unix-häftet. Prova gärna med både gammal och ny fil, men välj en ny fil innan ni går vidare. När man valt ett nytt filnamn är Emacs-fönstret tomt. Skriv in en text, minst 5 rader lång. Prova åtminstone alla kommandon som beskrivs i Unix-häftet fram t.o.m. rad 16 på sidan 46 ( Du kan ha flera filer... ). Om något kommando är svårt att förstå så be om hjälp! Prova också M < och M > som flyttar markören till början respektive slutet av texten. Emacs arbetar i en s.k. buffert i datorns minne, inte direkt med skivminnesfilen. För att spara det arbete man gjort i bufferten till skivminnet skriver man C X C S Prova detta genom att spara den nya text ni skrivit in och kontrollera med kommandot ls i terminalfönstret att filen verkligen skapats.
Unix 5 Om ni hinner så prova ännu fler kommandon. Ett speciellt trevligt och användbart kommando är M % (query-replace). Det används för att byta ut en text mot en annan. Efter labben bör ni öva mer på Emacs på egen hand. Observera att Unix-häftets allra sista sida innehåller en Emacs-lathund. Tag med Unix-häftet till alla progk-kursens labbar!
6 Unix Redovisning Besvara frågorna nedan och skriv svar i rutorna. Visa för en handledare som prickar av er på sin lista och skriver sin signatur på ert labbkvitto. Vilket kommando används för att få en lista på filer m.m. i den aktuella katalogen? Vilken flagga (väljare) ska man ge kommandot för att ur listan kunna utläsa vilka som är vanliga filer, underkataloger, symboliska länkar m.m.? Vilken flagga gör att man får se filens storlek, tidpunkt för när den skapades m.m.? Hur byter man namn på filen Annasfil till UnixRedovisning.txt? Studera igen exemplet på sidorna 25--26 i Unix-häftet. Rita en bild över den del av filträdet som exemplet berör. Katalogen /info/kdd-f97/exempel ska inte vara med utan låt den katalog som är ovanför den man står på när exemplet börjar vara rot i er trädbild. Symboliska länkar ska markeras på något sätt. Hur gör man enklast i Emacs för att sudda en (lång) rad? Prova att det fungerar innan ni skriver svaret! Beskriv hur man gör i Emacs för att hitta den sista förekomsten av ordet mobiltelefon i den text man jobbar med. Flera sätt finns.