Tillämpad UNIX Laborations-PM Christian von Schultz, 2009 1 Programpaket och processhantering 1. Ladda ner survivor.tar.gz från kurshemsidan och packa upp den. Uppackningskommando: 2. Du har just packat upp ett programs källkod. Ta reda på hur man kompilerar programmet och kompilera det. 3. Kör programmet med kommandot./survivor & (du måste stå i rätt katalog). Tag reda på vad den nya processen har för process-id. Hur gjorde du? 4. Försök avsluta programmet genom att stänga dess fönster. Det går inte. Försök döda det genom kommandot kill PID där PID är aktuellt process-id. Vad händer? 5. Hur kan man tvinga en process att avsluta sig, om den vägrar? 6. Starta Emacs med kommandot emacs. Försök lista kataloginnehållet i terminalen som ni startade Emacs från. Varför lyckas det inte? 7. Lägg Emacs-processen i bakgrunden. Kan ni nu lista kataloginnehållet i terminalen? Kan ni göra något i Emacs? Om inte, gör så att ni kan det. Vilket/vilka kommandon använde ni? 1
8. Stäng av Emacs och starta det igen, den här gången på ett sådant sätt att det körs i bakgrunden från början. Vilket kommando använde ni? 9. Vilken process på er arbetsstation använder mest CPU just nu? Vilket kommandon använde ni? (Svara på båda frågorna.) Du kan nu avsluta Emacs, om du vill. 10. Starta screen (kommandot screen). Vad gör kommandot while sleep 1; do date; done? Hela kommandot ska skrivas på en och samma rad. 11. Utan att avbryta while-loopen, ge kommandot C-a d (dvs CTRL+a följt av d). Vad händer? Försök lägg märke till vad klockan var i det ögonblick du tryckte C-a d. 12. Om du ångrar dig, hur kommer du tillbaka till situationen innan C-a d? 13. När du har ångrat C-a d: är while-loopen fortfarande igång? Påverkades den processen av ditt C-a d? 14. Nämn ett (eller gärna flera) program som låter en process fortsätta jobba efter att du loggat ut. 15. Vad är poängen med nice? 16. Hur används nice? Ge ett kommando: 17. På vilket sätt kan tangentkombinationen CTRL+ALT+F2 hjälpa dig om fönstermiljön hänger sig? Hur tar man sig tillbaka? 2
2 Alias och variabler 1. Hur lägger man in ett temporärt alias? Ge exempel. 2. Hur permanentar man sitt alias? 3. Hur får man fram en lista på definierade alias? 4. Vad gör kommandot echo? 5. Hur ändrar man värdet på en variabel? 6. Hur ser man vad en variabel har för värde? 7. Hur ändrar man prompten så att den alltid visar vilken katalog som för närvarande är arbetskatalogen? (Ändra gärna mer ambitiöst, se till exempel The bash prompt HOWTO. Man kan t.ex. ha olika färger i sin prompt.) 8. Hur permanentar man sin nya prompt, så att den kommer tillbaka nästa gång man loggar in? 3 Loopar 1. Säg att du hittar Christians underbara anteckningar i flervariabelanalys på http://christian.vonschultz.se/forelant/ och får för dig att du vill skriva ut dem. De ligger i en PDF-fil per föreläsning. De är för många för att du ska orka klicka dig fram. Hur laddar du ner alla filerna, från kommandoraden? 3
2. Kommandot för att skriva ut en fil är lpr. Tyvärr klarar lpr (ofta) bara av PostScript-filer (ps). Du måste konvertera alla filerna från PDF till PS. Hur gör man det? (En annan anledning till varför man kan tänkas vilja ha PostScript-filer är kommandon som psbook och psnup, som används när man vill göra snygga A5-häften.) 3. Hur skulle du göra om du vill skriva ut alla filerna? 4. Kommandot factor faktoriserar heltal. Skriv en tre-uttrycks for-loop (en C-lik for-loop) som faktoriserar alla tal mellan 50 och 100. 5. Skriv en for-loop av foreach-typ som gör samma sak. 6. Skriv en while-loop som gör samma sak. 4 Textbearbetning 1. Ladda hem datafilen ljusmatning.tsv, som är tagen från ett oscilloskop. Försök ladda in datan i Matlab för analys, d.v.s starta Matlab och kör Matlab-kommandot: A = load( ljusmatning.tsv ). Varför fungerar det inte? 2. Skriv ett kommando som fixar problemet genom att på lämpligt sätt ändra i filen och som sparar resultatet i filen ljusmatning.data.tsv: 3. På den fil du skapade i den förra uppgiften, kör kommandot cut -f 2 ljusmatning.data.tsv. Vad gör det? 4
4. Det finns också textfiler som inte innehåller data; textfiler som innehåller text. En textfil kan sparas i olika teckenkodningar. Vilken teckenkodning brukade Chalmers (med flera) använda? 5. Vilken teckenkodning används nuförtiden på Chalmers? 6. Om en fil med svensk text har fel teckenkodning, hur märker man det? 7. Hur konverterar du en fil gammal.txt som är skriven i den gamla teckenkodningen till den kodning som används nu? Resultatet ska hamna i filen ny.txt. Äras den som äras bör. (Västgötalagen, 1220). Redovisa hjälp, sammarbete och viktiga inspirationskällor här. 5