1 Introduktion UNIX Laborations-PM Anders Egneus, Henrik Lindgren, 2004, 2006. Raphael Corsoski, 2005. Erik Eliasson, 2007. Christian von Schultz, 2008. Det övergripande syftet med dessa laborationer är att bekanta er med den datormiljö som används inom undervisningen på Chalmers. Efter laborationen kommer ni ha prövat på de flesta moment ni behöver för att kunna arbeta obehindrat i unix-lika miljöer. Det återstår endast att ni på egen hand övar och förkovrar er. Ni kommer att tillbringa en hel del tid med datorerna, så att lära sig använda unix kommer att göra arbetet betydligt lättare och roligare. För att gå igenom denna laboration behöver ni känna till grundläggande kommandon i unix. Efter att ha gjort laborationen skall ni ha provat att: hitta och navigera i filsystemet skapa, kopiera, flytta och ta bort filer samt kataloger ändra rättigheter för en fil läsa skriva och ändra i filer kombinera kommandon hitta hjälp om kommandon skriva ut Förutom detta skall ni också veta lite om genvägar och hjälpmedel som unix erbjuder, samt ha kunskap om vad begrepp som katalog, rättigheter, filträd, sökväg, rot, pipes, omdirigering och terminalfönster innebär. Er uppgift består i att besvara frågor och utföra ett antal uppgifter. En del är teoretiska, andra praktiska. Läs uppgifterna noga och anteckna svaren på dem där så krävs. Utnyttja föreläsningsanteckningar och handledare i sökandet efter upplysning lycka till! 1
2 Teoretiska Uppgifter Dessa görs lämpligen innan de praktiska. Ni kan t.o.m. göra dem innan ni kommer till labbsalen. 1. Vilket kommando använder man för att byta arbetskatalog? 2. Vilket kommando använder man för att lista innehållet i en katalog? 3. Vad är skillnaden mellan relativ och absolut sökväg? 4. Vad är kommandot för att läsa manualblad? 5. Vad menas med argument till ett kommando? 6. Vad innebär det för användaren kakmonstret, som inte är med i gruppen kaka, om en fil ägs av kermit och har följande rättigheter kan han läsa filen? Ändra i den? -r-xrw-rw- 1 kermit kaka 200 Jul 10 01:00 kakor.lista 7. Vad gäller för kakmonstret om filen har följande rättigheter: -r-xrw--w- 1 kermit kaka 200 Jul 10 01:00 kakor.lista 8. Vad innebär det för stackars kakmonstret om kermit satt följande rättigheter på katalogen kakrecept: drwxrw---x 2 kermit kaka 512 Jul 11 01:10 kakrecept I katalogen finns filer som innehåller kakrecept. Kan kakmonstret göra cd till katalogen? Läsa filer i den? Skapa filer? 2
3 Praktiska Uppgifter 3.1 Fönstersystemet Titta på menyerna i er grafiska miljö och försök göra följande: 1. Öppna ett nytt terminalfönster på minst två olika sätt. 2. Stäng ett fönster. 3. Flytta ett fönster. 4. Ändra storlek på ett fönster. 5. Maximera ett fönster och återställ det. 6. Starta ett program från menyn, och avsluta det. 3.2 Grundkunskap Starta en webbläsare (t.ex. firefox). Gå till kurshemsidan (den programoberoende). Där finns det ett antal länkar till olika nyttiga system på Chalmers. Syftet med kommande uppgifter är att du skall bekanta dig med dessa. 1. Vad är webbadressen till datorintroduktionens hemsida, för ditt program? 2. Vad är telefonnummer och e-post adress till datorhjälpen? 3. Byt ditt lösenord! Var gör du detta? 4. Säg att du har en laptop och vill ta reda på var det finns trådlösa tillgång till nätverk på Chalmers, var gör du detta? Gör bokmärken av de länkar som räknas upp på kurshemsidan. 3
3.3 Att hitta i filsystemet; filer och kataloger 1. Skapa en fil med några rader text. Ett bra verktyg för att skriva i filer är emacs. Starta emacs (gärna via kommandoraden), skriv lite text och spara filen. 2. Filen ni sparade hamnade på ert konto. Titta efter att filen verkligen finns där. Vilket kommando använde ni? 3. Skapa en säkerhetskopia av filen. Titta efter att bägge filerna (orginalet och säkerhetskopian) finns. Vilka kommandon använde ni? 4. Hur stora är filerna? Vem får lov att läsa dem? Vilket kommando använde ni? 5. Skapa en katalog datorintro. I den katalogen skapa underkatalogerna anteckningar samt laborationer. Gå till kurshemsidan och spara ner några filer, t.ex. de dokument som hänger ihop med unix-delen. 6. Ni kanske inte vill att andra användare skall kunna tjuvtitta på era nya filer. Ändra rättigheterna på dem så att ingen annan än ni själva kan läsa i dem. Kontrollera att ni lyckats ändra rättigheterna. Vilka kommandon använde ni? 7. Om man skall ha säkerhetskopior är det oftast en bra idé att ha dem någon annanstans än i samma katalog som originalet (gör man något korkat som påverkar hela katalogen så har man åtminstone något kvar). Skapa en ny katalog och flytta säkerhetskopian dit. Vilka kommandon använde ni? 8. Titta efter att säkerhetskopian finns i den nya katalogen. Vilket/vilka kommandon använde ni? 9. Vad är den absoluta sökvägen för katalogen som er originalfil ligger i? Vilket kommando använde ni? 4
10. Dags att vandra iväg utanför den kända hemkatalogen. Gå till rotkatalogen, dvs katalogen längst upp i filträdet. Hur gjorde ni? 11. Hur gör ni för att lista information om endast er hemkatalog d.v.s. inte innehållet i den utan själva hemkatalogen? Hur tog ni reda på det? 12. Titta efter vad som finns i rotkatalogen. Lägg speciellt märke till katalogerna tmp, bin och usr. tmp är en allmäning som man kan använda för att spara tillfälliga filer. Kutym är att de filer man lägger i tmp är tillfälliga och att man förväntas ta bort dem när man inte längre behöver dem. Har ni skriv och läsrättigheter till tmp? Vilket kommando använde ni för att ta reda på detta? 13. bin innehåller binärer körbara filer med de program som utgör unix. Flera av de kommandon ni kört hittills är i själva verket program som ligger i bin. Vilka kan ni hitta? 14. usr, speciellt /usr/bin innehåller program som alla användare har tillgång till. Det rör sig om program andra än de som ingår som bas i operativsystemet. Kan ni hitta något program ni redan använt? 15. Gå tillbaka till er hemkatalog. Hur gjorde ni? 16. Vilka sätt känner ni till att ta er till hemkatalogen, förutom att ange relativ eller absolut sökväg som argument till cd? 17. Prova filnavigatorn som är inbyggd i skrivbordssystemet. 18. Tag bort katalogen datorintro och dess innehåll med hjälp av ett kommando! Hur gjorde ni? 5
3.4 Paus 1. Dags att ta en paus. Lås skärmen. Hur gjorde ni? 2. Om ni tog fikapaus hoppas vi att ni drack färdigt innan ni gick tillbaka till datorn. När är det tillåtet att ha med sig dryck vid datorplatsen? 3.5 Att hitta information om kommandon Ibland vet man inte vilket kommando man skall använda och ingen finns tillgänglig att fråga. Det finns kommandon för den situationen också! Låt säga att du har en dvi-fil, som du vill konvertera till en pdf-fil. Vilket kommando ska du använda? Använd ett annat kommando för att hitta konverteringskommandot. Hur gjorde ni för att hitta rätt kommando? 3.6 Söka i filer Gå till kurshemsidan och spara ner filen stor_text.txt. 1. Prova kommandot cat med valfri fil som argument. Läs manualbladet för cat. Vad gör egentligen cat? 2. Kör kommandot cat med filen stor_text.txt som argument. Prova sedan kommandot less på samma fil. Vad är skillnaden? 3. Ta fram manualsidan för less och ta reda på hur man söker. Visst vore det praktiskt att kunna söka i manualbladet? För att ge er en knuff på vägen, prova att skriva in /search när du läser manualbladet. Vad hände? Hur söker man ett ord eller en fras i less? Hur bläddrar man fram till nästa match? 4. Vad gör kommandot grep? 6
5. Ta reda på hur många gånger ordet import finns i stor_text.txt. Hur gjorde ni? 6. Ta reda på hur många gånger ordet och finns i stor_text.txt. Nu kan du inte längre räkna för hand. Observera också att och kan förekomma flera gånger på samma rad; räkna ordet, inte raderna. Hur gjorde ni? (Lite svårare uppgift, gå vidare så länge om ni fastnar.) 7. Ta reda på vilka filer i katalogen som inte innehåller ordet import. Det skall räcka med ett kommando. Hur gjorde ni? 3.7 Textbehandling i UNIX: emacs Jag använder emacs som operativsystem på min Windowsburk. Datorkunnig matematiker på AstraZeneca R&D, Mölndal Emacs kan göra otroligt många saker. Vi skall bara prova några enkla saker. Emacs är i huvudsak viktigt när ni redigerar textfiler framförallt programkod och L A TEX-filer. För ordbehandling rekommenderar vi en ordbehandlare som OpenOffice. 1 1. Starta emacs. Klicka på Emacs Tutorial, och följ instruktionerna åtminstone de första två sidorna gärna hela när du har tid. Om jag säger att man kan söka i dokumentet med tangentkombinationen C-s, vad ska du då trycka på på tangentbordet? 2. Om jag säger att du kommer till en sök-och-ersätt-funktion genom att trycka på M-%, vilka tangenter ska du trycka på då? 3. Hur gör du för att redigera flera filer samtidigt? Olika filer ska alltså vara synliga på samma gång, brevid varandra. 1 L A TEX är ett alternativ till en ordbehandlare, som brukar ge bättre resultat när man skriver framför allt tekniska rapporter. L A TEX är ett typsättningssystem, med matematik som specialitet. L A TEX-dokument kan du skriva i Emacs. 7
4. Hur gör du för att klippa och klistra om du använder musen? Hur gör du med enbart tangentbordet? 5. Pröva C-s och C-r på någon fil, säg, stor_text.txt. Vad gör kommandona? 6. Testa M-% på stor_text.txt. Vad händer? Finns samma funktion i någon meny? 3.8 Omdirigering och kombination av kommandon This is the unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface. En av unix största styrkor är att det är lätt att sätta ihop olika kommandon. Ni skall nu prova på att göra detta. 1. Gå till katalogen /usr/bin. Pröva att lista katalogen. Det blev kanske inte helt lyckat. Lista nu katalogen på ett sådant sätt att ni kan läsa den sida för sida. Hur gjorde ni? 2. Skriv en kommandorad som sparar en lista på alla filer i /usr/bin vars namn innehåller b i en fil. Hur gjorde ni? 3. Svara på fråga 6 i avsnitt 3.6 (sidan 7). Ja, man måste använda omdirigering: låt grep söka och lämpligt annat kommando (vilket?) räkna ord. 3.9 Skrivare och utskrifter I samtliga fall när ni skriver ut saker under denna labb: Hämta pappren och släng dem! (Eller häng upp dem på väggen.) 1. Hur tittar du på kön för din skrivare? Hur tittar du på samtliga skrivarköer? 8
2. Spara lite text med hjälp av emacs i en fil, skriv något som gör det enkelt för er att identifiera att det är er utskrift. Skriv ut texten med hjälp av kommandot lpr. 3. Hur skulle ni göra för att skriva ut texten på en annan skrivare? (Obs! Skriv inte ut den!) 4. Hur skulle ni göra för att ta bort en utskrift från skrivarkön? 5. Hur kollar man hur många sidor man har kvar att skriva ut? Vad gör man om man måste skriva ut fler? 9