Ännu mer om skalet. Kapitel Kommandorör. 4.2 Texthantering

Relevanta dokument
Mer om skalet. Kapitel Omdirigering

Filers innehåll. Grundläggande databehandling. Representation av text. pffb = påhittat filformat för bilder

Textbearbetning i skalet och man-sidor

Datorer och datoranvändning Föreläsningar 2014/15. Föreläsning 1 Unix. Operativsystem. Unix

Lab 7, 48 steg till ett bättre liv i Unix-labbet

Föreläsning 1 Unix. Datorer och datoranvändning Föreläsningar 2018/19. Operativsystem. Unix

Introduktion till Linux. TDDC66 Datorsystem och programmering Föreläsning (i) Peter Dalenius Institutionen för datavetenskap

Introduktion till datateknik för språkvetare

Introduktion till datateknik för språkvetare ht 2007

Introduktion till Linux. TDDC66 Datorsystem och programmering Föreläsning 1 Peter Dalenius Institutionen för datavetenskap

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

Kapitel 3. Mer om skalet. 3.1 Kommandorör ( )

Introduktion till Linux. TDDE23 Funktionell och imperativ programmering, del 1 Föreläsning 1 Peter Dalenius Institutionen för datavetenskap

Introduktion till Unix och Linux

Introduktion till datateknik för språkvetare

Datorsystem och programmering

Program. Kapitel make Program Interpreterande och kompilerande program

Kort-kort om utdelade användarkonton och datormiljön på NADA

Introduktion till datateknik för språkvetare

Datorintroduktion 2009 Föreläsning 1. Dieter Larsen (IT-chef Matematiska vetenskaper)

Konsolfönster i Windows Momentet ingår i kursen PDA DTR1206 Lab 1 DOS Konsolfönstret

kommando -fl argument

Datorintroduktion 2010 Föreläsning 1. Dieter Modig

Introduktion till datateknik för språkvetare

Unix design. Unix är ett operativsystem från mellan 1969 och 1972, beroende på hur man räknar. Unix utvecklas fortfarande.

Övningar till UNIX/Linux Grundkurs och förslag till LÖSNING

Kapitel 11. Program Att köra program Skript Interpreterande och kompilerande programspråk Att kompilera program

Kort-kort om utdelade användarkonton och datormiljön på NADA

Reguljära uttryck och textbehandling

UNIX. Laborations-PM Anders Egneus, Henrik Lindgren, 2004, Raphael Corsoski, Erik Eliasson, Christian von Schultz, 2008.

Programkonstruktion med datorintroduktion, 2D1339

Kapitel 12. Mer om program Att rapportera buggar och problem make

Omkoppling av in- och utmatning. In- och utmatning i Unix. Kommando exempel, ls, pipe forts. Kommando exempel, ls, pipe

Programmering i C++ Kompilering från kommandoraden

Övningar till UNIX/Linux Grundkurs och förslag till LÖSNING

Kapitel 11. Program Skript Att köra program Interpreterande och kompilerande programspråk

Lab1 inginfo07. Detta dokument innehåller övningar för introduktion till Media-programmets datorsystem (Mac OS X).

Teckenrepresentation. Kapitel Teckenkoder. 4.2 Att ange teckenkodning 4.3 ASCII

UNIX. 2D1339 Programkonstruktion Hösten 2001 Datorintroduktion Laboration 1. Mål. Vad laborationen går ut på. Redovisning

En del länder utger sitt kort i olika språkversioner och därför finns det flera modellkort för dem.

Avslutning. Kapitel Komprimering av filer

Svenska Finska Estniska. Ryska Engelska Koreanska. Franska Tyska Italienska. Grekiska Danska Norska. Isländska Ungerska Spanska

Stockholms besöksnäring. September 2014

Installationshandbok för SunForum 3.2

SF1546, Numeriska Metoder för O1 Lab0 - frivillig. (dvs uppgifterna behöver inte redovisas!)

Versioner och språk. ComAround Self Service Enterprise

Välkommen. Snabbstartsinstruktioner. Anslut. Installation. Använd

Lathund för Linuxkommandon

Kapitel 4. Teckenrepresentation. Varf r blir det sõ hõr? s å [SPC] h ä r. s Õ [SPC] h õ r. 4.2 Att ange teckenkodning. 4.

komplex av nödvändiga, understödjande program som kallas Utanpå OS existerar ett - eller flera olika - slags skal som

DN1212, Numeriska metoder & grundläggande programmering. Laboration 1 del 1-3 (frivilliga delar) Del 1-3 (dvs upg ) behöver inte redovisas

Kapitel 11. Program Skript Att köra program Interpreterande och kompilerande programspråk Att kompilera program

Mini-One-Stop-Shop (MOSS) Deklarationsrader i fil. (för inläsning i e-tjänsten)

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

Stockholms besöksnäring. November 2014

Operativsystem och användargränssnitt

SF1672, Linjär Algebra med Matlab för F1 Lab0

Antal studiemedelstagare i utlandsstudier per världsdel och land. Källa: CSN (10)

Kapitel 4. Teckenrepresentation. 4.2 Teckenkoder. 4.1 Binärt. 4.3 Att ange teckenkodning

Introduktion till datoranvändning. Välkomna till NADA. (Numerisk Analys och DAtalogi) och kursen. Datalogi, grundkurs 1, 15hp

Mini-One-Stop-Shop (MOSS) Deklarationsrader i fil. (för inläsning i e-tjänsten)

Praktiska saker... Om Laboration 1. Studietips. Praktiska saker. Att studera hemifrån på PC. Seminarier & Lektioner & Handledning & Hemsida

Översikt. Texthantering med bl.a. kommandona cat, less och grep Omdirigering och piping Gnuplot. Linux 2 2 / 12

Lathund för UNIX och Emacs

Stockholms besöksnäring. Maj 2015

Stockholms besöksnäring. September 2016

Antal studiemedelstagare i utlandsstudier per världsdel och land. Källa: CSN (10)

DD1310 Programmering för OPEN1 LAB1: Laborationer i Python läsåret 2011/2012

Stockholms besöksnäring. November 2016

Stockholms besöksnäring. November 2015

Stockholms besöksnäring. December 2016

Stockholms besöksnäring. Juli 2015

Introduktion till datormiljön och Python

Stockholms besöksnäring. Januari 2016

Stockholms besöksnäring. Sommaren 2015

Kan myndigheternas webbplatser bli tillgängliga för alla? Ett svenskt språkpolitiskt perspektiv. Rickard Domeij Språkrådet i Sverige

Stockholms besöksnäring. April 2015

Programutveckling med Java Development Kit. (JDK 1.1.x) och Programmers File Editor (PFE 7.02)

DD1310 Programmeringsteknik för Open1 och Med2 Laborationer läsåret 2014/2015

Jobbschemaläggare. Morgan N. Sandquist Utvecklare: Gary Meyer Granskare: Lauri Watts Översättare: Stefan Asserhäll

Stockholms besöksnäring. Augusti 2015

Stockholms besöksnäring. Oktober 2015

Stockholms besöksnäring. Juni 2015

Information om ansökan per land

Introduktion till användning av linux-servern sledge och några övningsuppgifter

Föreläsning 2. Operativsystem och programmering

Olika shell. Skalprogrammering. Pipor och omdirigering av strömmar

1.#Bakgrund# En#kort#introduk+on#+ll#Unix# Klassiskt#första#bemötande# Håkan#Jonsson# Ins+tu+onen#för#systemteknik# Luleå#tekniska#universitet#

Stockholms besöksnäring. Februari 2016

Handicom. Symbol for Windows. Encyklopedi. Version 3.4

In- och utvandring. 6. In- och utvandrare Immigrants and emigrants Statistiska centralbyrån 289. Tusental 120.

Stockholms besöksnäring. Oktober 2016

Stockholms besöksnäring. Maj 2016

Stockholms besöksnäring. Juli 2016

Stockholms besöksnäring. Juni 2016

Stockholms besöksnäring. Augusti 2016

Stockholms besöksnäring. April 2016

Terminal vad det är vad man kan göra med den

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon).

Versioner och språk. ComAround Self Service Enterprise

Transkript:

Kapitel 4 Ännu mer om skalet 4.1 Kommandorör Tecknet på kommandoraden visar att det som skrivs ut till standard output från kommando innan ska läsas in från standard input för kommandot efter. Här visas två nästan likadana sätt att ta reda på hur många rader lång hjälptexten från ls --help är: $ ls --help >lshelp $ wc -l <lshelp 108 $ rm lshelp $ $ $ ls --help wc -l 108 I den första lösningen, med flera kommandorader, sparas mellanresultatet (själva hjälptexten) undan i Tecknet : Tecknet kallas för lodstreck (vertical bar). Det skiljs egentligen från ett ovanligare tecken broken bar ( ), men på bland annat svenska tangentbord finns bara det ena, och det brukar då visas som på tangentbordet trots att tangenten faktiskt genererar. Tecknet behöver skrivas med AltGr. Förutom dess användning som pipe i Unix används tecknet också bland annat ofta för att ange alternativ i flera syntaxer och programspråk. Du har redan sett en sådan syntax på s. 33. en fil som sedan tas bort när den inte längre behövs. Med behövs inte detta. Outputten går direkt vidare som input till nästa delkommando. Detta kallas på engelska för en pipe. Man tänker sig att output från ett kommando färdas i ett rör vidare till nästa kommando. På svenska sägs ibland kommandorör. (I Gula Luntan tas detta upp i avsnitt 8.2.) En kommandorad kan innehålla godtyckligt många rör. I en kommandorad som a b c d kommer programmet a att lämna vidare sitt resultat till programmet b som lämnar vidare sitt resultat till programmet c som lämnar vidare sitt resultat till programmet d. I detta exempel läser bara a input från standard input och d skriver output till standard output. Detta kan kombineras med omdiringering med < och >. Med en kommandorad som a <infil b c d >utfil läser det första steget a sin input från filen infil och det sista steget d skriver den slutliga outputten till filen utfil. Det är inte meningsfullt att skjuta in < eller > någonstans i mitten av en sånt här kommandorör. Symbolen visar ju redan varifrån input ska tas och vart output ska skickas. 4.2 Texthantering Här följer några av de viktigare kommandona för att hantera text. Beskrivningarna är inte uttömmande, men ger en del typiska användningar. De flesta av dessa program är radorienterade, dvs. behandlar sin input en rad i taget. Man måste därför se till att det man t. ex. vill sortera med sort ligger uppdelat en enhet per rad. 39

4. ÄNNU MER OM SKALET Kommandon som läser text från standard input brukar oftast tolka argument som filnamn och om de får argument så läser de input från dessa filer istället. Detta gäller t. ex. head, more, sort, tail, uniq och wc nedan. För att sortera raderna i filen foo kan man alltså antingen ge sort <foo där kommandot inte får några argument utan inputten skickas på standard input, eller också sort foo där kommandot får ett argument och tolkar det som ett filnamn och öppnar den filen och hämtar sin input därifrån istället. 4.2.1 echo Kommandot echo ger tillbaka sina argument som output: echo text... Det kan vara praktiskt när man vill ge en specifik text som input till ett kommando utan att behöva skapa en fil med den texten. Med programmet robber från föregående labb: $ echo kanin robber kokanoninon Det är ofta användbart som sista delen i ett kommandorör som producerar text, så det är inte ovanligt med kommandon som slutar med» more«. Det finns däremot ingen vits med att stoppa in more före eller > eftersom dess output då inte kommer att hamna i terminalen. 4.2.6 sort Kommandot sort läser in rader från sin input och skriver ut samma rader som output, men i en sorterad ordning. 4.2.7 tail Kommandot tail tar fram de sista raderna av sin input, normalt de sista tio raderna. 4.2.8 tr Kommandot tr byter ut tecken i input. Första argumentet räknar upp tecken som ska bytas ut och andra argumentet räknar upp vad dessa ska bytas mot. 4.2.2 grep Kommandot grep söker efter text. Vi återkommer till hur man gör avancerade sökningar med det, och nöjer oss tillsvidare med grep text eller grep text fil... I det första fallet söker den i standard input. I det andra fallet i de filer man angivit. Bara de rader där den sökta texten finns med kommer ut. 4.2.3 head Kommandot head tar fram de första raderna av sin input, normalt de första tio raderna. 4.2.4 fmt Kommandot fmt formatterar om sin input i lagom långa rader, normalt på max 75 kolumner. 4.2.5 more Kommandot more visar upp sin output i terminalen sida för sida så att användaren kan bläddra i texten. $ echo Sju sjuka sjuksköterskor tr s z Sju zjuka zjukzköterzkor $ echo Jag går av i Gävle. tr äv ef Jag går af i Gefle. Om det andra argumentet innehåller färre tecken än det första så är det som om det sista tecknet där har upprepats, så dessa är ekvivalenta: $ echo Monotont språk tr aeouyåäö iiiiiiii Minitint sprik $ echo Monotont språk tr aeouyåäö i Minitint sprik Man kan även ange intervall av tecken. Att skriva m-t betyder samma sak som mnopqrst. $ echo Att skrika tr a-z A-Z ATT SKRIKA $ echo abc - ett chiffer tr a-y b-z bcd - fuu dijggfs $ echo citron tr co-t ko-t kitron 40

Språkinställningar I det sista fallet är det alltså som tr copqrst kopqrst, så c byts mot k, o mot O, p mot P osv. Man kan inte byta ut ett tecken mot flera, t. ex. byta ut alla»x«mot»ks«. Inte heller kan man byta ut en längre text, t. ex. byta ut alla»röd«mot»blå«. 4.2.9 uniq Raderna i input till uniq kommer ut igen utom de rader som är likadana som raden innan. Det är vanligt att kombinera detta med sortering som... sort uniq.... Genom att sortera det som kommer in till uniq så kommer alla likadana rader att ha hamnat direkt efter varandra så att uniq kan ta bort så mycket som möjligt. Ofta använder man detta när det egentligen inte spelar någon roll om raderna är sorterade i alfabetisk ordning eller vad det är för ordning, bara det är någon ordning så att likadana rader har förts samman. 4.2.10 wc Kommandot wc räknar rader, ord och tecken i sin input. 4.3 Språkinställningar De flesta program skriver sina texter på engelska, men många program har översatts till flera olika språk. Programmet kan läsa av användarens språkinställningar och ändra beteende utifrån det. Därmed kommer de program som kan använda det språket att göra så. Andra program kommer att fortsätta prata engelska. Ibland kan det vara så att ett program bara delvis är översatt så att vissa texter fortfarande kommer att vara oöversatta. De som skriver programmet har kanske lagt till en ny meny som de andra personer som översätter alla dess texter till svenska inte har hunnit översätta än, och då får just den menyn en engelsk text även när övriga är på svenska. Tycker man att en sådan blandning är störande kan det vara trevligast att köra på engelska som det är från början. En annan fördel med engelska är att det är så vanligt. Om man råkar ut för ett konstigt felmeddelande som man inte begriper kan det ofta vara instruktivt att söka på nätet efter andra som har råkat ut för samma fel. Om man då söker på den engelska versionen av meddelandet är det oftast störst chans att man hittar sådant. 4.3.1 Språkinställning i Gnome Om du normalt vill att datorn ska prata svenska med dig (eller något annat språk) så kan du ställa om språk från inloggningsrutan innan du loggar in. (Du får en fråga om det bara är under just denna inloggning du vill använda detta språk eller om du vill ändra så att detta blir det normala för dig.) 4.3.2 Språkinställningar i skalet Det sätt som de olika programmen får reda på språkinställningarna är med särskilda miljövariabler. Från skalet kan du sätta om dessa explicit. Det finns flera olika miljövariabler som man kan ställa om olika detaljer med, men vill man begränsa sig till en kan man använda LANG. Dess värde kan vara i stil med en_us där de två första bokstäverna betecknar ett visst språk (engelska i detta fall) och de två sista beteckna ett land (USA i detta fall). Detta kallas för en locale. Några exempel: sv_se : Svenska i Sverige sv_fi : Finlandssvenska en_gb : Brittisk engelska en_za : Sydafrikansk engelska es_es : Spanska i Spanien es_br : Spanska i Brasilien fr_ca : Franska i Kanada zh_cn : Kinesiska i Kina zh_tw : Kinesiska i Taiwan Dessa tvåbokstaviga förkortningar för språk och länder 1 kommer från standarder som används i många sammanhang. Landskoderna kan man t. ex. känna igen från toppdomänerna på Internet där.se är Sverige osv. 2 I tabell 4.1 återges en del av landskoderna och i 4.2 en del av språkkoderna. Dessa standarder är reglerade av den internationella standardiseringsorganisationen ISO. I många fall spelar det ingen roll vilket land man anger. Det är nog t. ex. knappast många program som beter sig olika om man har talat om att man 1 Och ibland även andra regioner än länder. 2 I det sammanhanget används dock inte förkortningen GB för Great Britain, utan.uk för United Kingdom. 41

4. ÄNNU MER OM SKALET Tabell 4.1: Koder enligt ISO 3166-1 för några av världens och Europas största länder, samt de nordiska länderna AT BD BE BR BY CN CZ DE DK EG ES ET FI FR GB GR HU ID IN IR Österrike Bangladesh Belgien Brasilien Vitryssland Kina Tjeckien Tyskland Danmark Egypten Spanien Etiopien Finland Frankrike Storbritannien Grekland Ungern Indonesien Indien Iran IS IT JP MX NG NL NO PH PK PL PT RO RS RU SE TH TU UA US VN Island Italien Japan Mexiko Nigeria Nederländerna Norge Filippinerna Pakistan Polen Portugal Rumänien Serbien Ryssland Sverige Thailand Turkiet Ukraina USA Vietnam vill ha rikssvenskt eller finlandssvenskt beteende. Det betyder inte att man kan sätta ihop lands- och språkbeteckningar hur som helst i en locale. Med kommandot locale -a listas alla giltiga locales. (Utför du det kommandot så ser du att alla inte följer samma mönster xx_xx.) I exemplet nedan visas hur date ger ett annat resultat efter att LANG har satts om. Andra resultat som påverkas är t. ex. datumformatet som långa fillistningar ger och felmeddelanden från olika kommandon. $ date Tue Oct 17 19:46:05 CEST 2006 $ LANG=sv_SE $ date tis okt 17 19:46:15 CEST 2006 4.3.3 Att sätta om en variabel temporärt Med VARIABEL=värde kommando kan man utföra ett kommando med en viss variabel satt till ett visst värde utan att ändra den variabelns värde för fortsättningen. Så t. ex. Tabell 4.2: Koder enligt ISO 639-1 för några språk med många talare i världen, Europa, Norden eller Sverige ar bn bs da de en es fa fi fr gr hi hu is it ja arabiska bengali bosniska danska tyska engelska spanska persiska finska franska grekiska hindi ungerska isländska italienska japanska ku nb nl nn no pl pt ru se so sr sv tr xy yi zh kurdiska bokmål nederländska nynorska norska polska portugisiska ryska nordsamiska somaliska serbiska svenska turkiska kroatiska jiddisch kinesiska $ LANG=fr_FR ls x ls: x: Aucun fichier ou répertoire de ce type $ LANG=es_ES cal octubre de 2006 do lu ma mi ju vi sá 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 161 18 19 20 21 22 23 24 25 26 27 28 29 30 31 $ LANG=fi_FI wc * 1301 6106 317426 slottet.jpg 2 12 76 slottet.txt 1303 6118 317502 yhteensä $ ls x ls: x: No such file or directory 4.3.4 Sortering Hur text ska sorteras är språkspecifikt. På svenska sorterar vi åäö i slutet av alfabetet, medan t. ex. tys- 42

Köra program i bakgrunden karna som också använder ä och ö sorterar dessa som a och o. I uppgift 3.7 sorterade du svenska ord men eftersom dina språkinställningar var engelska så fick du en engelsk sortering där åäö sorteras som aao utan avseende på på prickarna och ringen ovanför, precis som vi sorterar tecken som éèêë likadant som vanligt e. Genom att sätta om LANG ändras även dock även hur sort sorterar. Här sorteras samma rader två gånger, först på svenska och sedan på engelska: $ LANG=sv_SE sort /tmp/fil citron zebra åsna äpple $ LANG=en_US sort /tmp/fil äpple åsna citron zebra Sorteringsreglerna kan vara rätt komplicerade. Vissa tecken ska behandlas likadant som andra. Vissa tecken ska ignoreras helt. Ibland ska vissa teckenkombinationer behandlas särskilt. Traditionellt har t. ex. ch sorterats som en särskild bokstav på spanska och inte som c+h. 3 När meningen med sortering bara är att föra samman likadana rader (t. ex. som ett förberedande steg före uniq) är det onödigt att använda så komplicerade sorteringsregler som naturliga språk ofta har. Då kan man använda en särskild locale»c«vilket ger enklast möjliga sortering. Raderna jämförs bara tecken för tecken enligt vilka numeriska koder dessa tecken har. (Det innebär t. ex. att stora och små bokstäver sorteras olika.) Om det är en stor fil kan man märka att en sådan sortering kan gå mycket snabbare. $ cd /usr/share/dict/ $ wc -l words 479625 words $ LANG=en_US sort words >/tmp/words-en-sort $ LANG=C sort words >/tmp/words-c-sort 3 Detta ändrades dock vid en reform 1994. Här sorteras en stor fil (med nästan en halv miljon ord) två gånger och den sista gången, med LANG=C går det på ungefär en femtedel av tiden. 4.3.5 När använda detta? I de flesta fall kommer du inte behöva bry dig om dessa språkinställningar. Du kommer knappast ha nån nytta av att köra wc på holländska en specifik gång så att det står»totaal«i summeringsraden istället för»total«, utan det räcker med att en gång för alla tala om vilket språk du ha. Ett viktigt undantag är sortering, och det är därför vi tar upp detta nu. Du bör tänka på hur sorteringar sker och veta hur du kan ställa om LANG för att få olika sorteringar, inklusive den rent»datoriska«med LANG=C som inte tar hänsyn till något särskilt språks sorteringsregler. 4.4 Köra program i bakgrunden Vid uppgift 2.12 stod»observera att du inte får någon ny prompt i terminalen förrän du avslutar xpdf! Det är det normala i skalet att endast en uppgift i taget utförs.«när man kör program som ls och sort är detta normalt vad man vill. Om sorteringen tar lång tid så skulle det ändå röra till det om man kunde ge ett nytt kommando vars output skulle blandas med outputten från sort. Men när man kör program som xpdf vill man ofta få en ny prompt trots att programmet fortfarande kör. Det kan man göra genom att lägga till & på slutet på kommandot. $ xpdf frotz.pdf & $ emacs & Det gör man framförallt med sådana program som skapar nya X-fönster i vilka man sedan interagerar med dem, t. ex. firefox, emacs och xpdf. Ofta kan sådana program även startas från menyerna. Det gamla programmet fortsätter att köra i bakgrunden, samtidigt som man kan ge nya kommandon. Mer om hur man kan hantera flera processer samtidigt i skalet och växla mellan dessa kan man läsa om i Gula Luntan 8.1, vilket dock är överkurs i denna kurs. 43

Laboration 4: Ännu mer om skalet Sortering I /local/kurs/gdb06/nordic-authors.txt finns en lista med några skandinaviska författare. Uppgift 4.1 Ge ett kommando för att sortera denna lista med svensk locale! På svenska har traditionellt v och w sorterats som samma bokstav, men numer vacklar bruket. Senaste upplagan av Svenska Akademiens ordlista förespråkar att w sorteras för sig, som en egen bokstav, medan bl. a. Svenska språknämnden rekommenderar att man fortsätter att sortera samman v och w. Uppgift 4.2 Hur beter sig svensk sortering här vad gäller v och w? Uppgift 4.3 Ge ett kommando för att sortera samma författarlista med dansk sortering! Vad blir det för skillnader då jämfört med svensk sortering? (Jämför gärna även med engelskspråkig sortering, så som namnen skulle sorteras i registret i en engelsk bok.) Översättning Här finns ett kommando translate som översätter text genom att kontakta någon översättningstjänst på nätet. Beroende på hur hårt belastade dessa tjänster är kan det ta mycket olika tid. Räkna inte med någon särskilt bra språkkvalitet! $ echo This is a computer. translate C est un ordinateur. Här översattes en engelsk mening till franska. Se på man-sidan till translate hur du kan ange mellan vilka språk det ska översätta. De här övningarna går delvis ut på att läsa och tolka man-sidan. Uppgift 4.4 Ge en kommandorad som översätter det svenska ordet»kanin«till engelska! Uppgift 4.5 Ge en kommandorad som översätter din saga.txt till engelska och som ger en output prydligt formatterad i lagom långa rader. (Räkna med ett fruktansvärt dåligt resultat, rent språkmässigt.) Uppgift 4.6 Ge ett kommando som listar vilka språk du kan försöka översätta svenska till med translate! Gott och blandat Uppgift 4.7 Kommandot head ger normalt de tio första raderna. Se efter i dess man-sida hur man anger något annat och ge ett kommando som tar fram de fem första raderna i /local/kurs/gdb06/rummet.txt. Uppgift 4.8 (Leet) Utför dessa utbyten av tecken: FRÅN a b c e g i l o s t TILL 4 8 < 3 9! 1 0 5 + med hjälp av tr. Ordet»dator«ska t. ex. omvandlas till»d4+0r«. Ge ett kommando som omvandlar din saga.txt enligt detta! I ett argument kommer du att behöva ha med bl. a. tecknet < som skalet normalt tolkar på ett särskilt sätt. Det kan du förhindra genom att sätta detta argument inom citattecken. Uppgift 4.9 Hur skriver man ett tr-uttryck som byter ut alla siffror mot asterisker (*)? 45

LABORATION 4: ÄNNU MER OM SKALET Uppgift 4.10 I /local/kurs/gdb06/rummet.txt finns 40 rader. Den filen har dock ganska korta rader. Ge ett kommando som talar om hur många rader den filen skulle få omformatterad med fmt. Uppgift 4.11 Ge ett kommando som listar alla rader i /local/kurs/gdb06/the-gnu-project som innehåller texten»computer«! Uppgift 4.12 Ge ett kommando som talar om hur många rader i /local/kurs/gdb06/rummet.words som innehåller texten»verb«! Uppgift 4.13 Ge ett kommando som ger bara den första raden i /local/kurs/gdb06/rummet.words som innehåller texten»verb«! Uppgift 4.14 Ge ett kommando som listar alla rader i /local/kurs/gdb06/rummet.words som innehåller texten»verb«och som innehåller texten»ck«! Uppgift 4.15 Hur kan du med ett skalkommando skapa en fil i vilken det står»blahonga«? Frekvensordlista I förra labben räknade du ut en del ordfrekvenser. Eftersom du behövde sortera orden och sort sorterar rader så krävdes att texten låg med ett ord per rad, och du fick en färdig sådan textfil att använda. Nu ska du göra det steget själv. I textfiler finns det ett särskilt nyradstecken vid varje radbyte, så ett sätt att dela upp en text i ordrader är att byta ut alla mellanslag mot detta nyradstecken. Nyradstecknet kan här skrivas som '\n' (n som i»newline«). Bakstrecket \ ger ofta en speciell betydelse till efterföljande tecken. Det krävs citattecken runt ett sånt här argument. Uppgift 4.16 Skriv ett kommando som delar upp saga.txt i ord på detta sätt! Uppgift 4.17 Skriv ett längre kommandorör som ger en frekvensordlista för /local/kurs/gdb06/ THE-GNU-PROJECT och som sparar resultatet i en fil rms-freq! Gör det i stil med hur du gjorde i förra labben, men gör det denna gång som ett enda kommando (med rör) utan att spara mellanresultat i filer. En hel del av raderna som räknas kommer att vara tomma, vilket ger ett tomt»ord«med hög frekvens. Det är väl inte helt bra, men låt det vara så ändå. Uppgift 4.18 (Tjugo-i-topp) Förfina ordfrekvenslistan ytterligare. Ge nu ett kommando som listar bara de tjugo vanligaste orden, sorterade så att det vanligaste ordet ges först. Du vill alltså ha det sorterat på omvänt sätt än det vanliga. Leta i man-sidan till sort efter att sätt att få det så. Uppgift 4.19 Vilka ord i filen THE-GNU-PROJECT förekommer precis 12 gånger? Ge kommandot du använde för att ta reda på det! Påhitt Uppgift 4.20 Hitta på (minst) en till uppgift som du kan lösa genom att sätta ihop ett kommandorör med minst två kommandon i. Den ska gå att lösa med det ni nu kan, möjligen genom att ta reda på nån ytterligare väljare från en man-sida. Lös din egen uppgift! Redovisning Skicka datorpost till starback@stp.lingfil.uu. se med svaren, senast torsdagen den 26 oktober. När ett kommando efterfrågas, så ge både kommandot och dess resultat. Om du inte kan lösa alla uppgifter så svara på det du kan. Ge hellre delvisa lösningar på andra uppgifter än inga alls. Ett svar i stil med»så här tänkte jag, men då blev det såhär som bara är nästan rätt och den och den detaljen fick jag inte till«kan räcka en bra bit om du har löst tillräckligt med andra uppgifter. Tecknet \: Tecknet \ kallas för bakstreck (backslash). Det fanns inte på skrivmaskiner tidigare, utan infördes i datorsammanhang (på 60-talet). Det används bland annat i många sammanhang för att visa att tecknet efteråt ska tolkas på ett särskilt sätt. I DOS och MS Windows används det som avdelare i filnamn, så som (/) används i Unix. Tecknet behöver skrivas med AltGr. 46

Innehåll 0 Introduktion 3 0.1 Operativsystem.......................................... 3 0.2 Unix................................................ 3 0.3 GNU............................................... 4 0.4 Linux............................................... 5 0.5 Persondatorer och Microsoft................................... 5 0.6 Unix och Unix-liknande system idag.............................. 6 0.7 Det grafiska användargränssnittet................................ 6 0.8 Vårt datorsystem......................................... 7 Våra datorsalar.......................................... 7 Att logga in............................................ 7 Ljud................................................ 8 1 Filer och kataloger 9 1.1 Filnamn.............................................. 9 Filnamnsändelse......................................... 9 Osynliga filer........................................... 10 1.2 Kataloger............................................. 10 Filträdet.............................................. 10 Fullständiga sökvägar....................................... 10 1.3 Grafisk filhantering........................................ 11 1.4 Desktop.............................................. 11 1.5 Textfiler.............................................. 12 1.6 Editorer.............................................. 12 Emacs............................................... 12 1.7 Filskydd.............................................. 13 Laboration 1: Intro och filer 15 Datorpost................................................ 15 Grafisk filhantering........................................... 15 Emacs.................................................. 17 Jag vill öva mera!............................................ 17 Slutord................................................. 18 2 Skalet 19 2.1 Terminalen............................................ 19 2.2 Skalet............................................... 20 2.2.1 Kommandon....................................... 20 2.2.2 Argument till kommandon................................ 20 47

INNEHÅLL 2.2.3 Jokrar........................................... 21 2.2.4 Aktuell katalog...................................... 21 2.2.5 Väljare (options)...................................... 21 2.2.6 Kommandon och program................................ 23 2.2.7 När det blir fel...................................... 23 2.3 Relativa sökvägar......................................... 24 2.4 Filhantering i skalet........................................ 24 2.4.1 Lista filer......................................... 24 2.4.2 Kopiera filer........................................ 24 2.4.3 Flytta filer......................................... 24 2.4.4 Ta bort filer........................................ 24 2.4.5 Skapa och ta bort kataloger............................... 24 Laboration 2: Skalet 25 Emacs.................................................. 25 Terminal................................................. 25 Skalet.................................................. 25 Redovisning............................................... 27 3 Mer om skalet 29 3.1 Omdirigering........................................... 29 3.2 Miljövariabler........................................... 30 3.3 Expansion av skalet........................................ 30 3.4 Dokumentation.......................................... 30 3.4.1 man-sidor......................................... 30 3.4.2 --help.......................................... 32 3.4.3 Kommandosyntax.................................... 32 3.5 Filskydd i skalet.......................................... 33 3.6 Utskrifter från skalet....................................... 33 3.7 Skalskript............................................. 33 Laboration 3: Mer om skalet 35 Expansioner i skalet.......................................... 35 Det var en gång.............................................. 35 Omdirigering.............................................. 35 Dokumentation............................................. 36 Skalskript................................................ 37 Emacs tutorial.............................................. 37 Redovisning............................................... 38 4 Ännu mer om skalet 39 4.1 Kommandorör.......................................... 39 4.2 Texthantering........................................... 39 4.2.1 echo............................................ 40 4.2.2 grep............................................ 40 4.2.3 head............................................ 40 4.2.4 fmt............................................ 40 4.2.5 more............................................ 40 4.2.6 sort............................................ 40 4.2.7 tail............................................ 40 48

4.2.8 tr............................................. 40 4.2.9 uniq............................................ 41 4.2.10 wc............................................. 41 4.3 Språkinställningar......................................... 41 4.3.1 Språkinställning i Gnome................................ 41 4.3.2 Språkinställningar i skalet................................ 41 4.3.3 Att sätta om en variabel temporärt........................... 42 4.3.4 Sortering......................................... 42 4.3.5 När använda detta?.................................... 43 4.4 Köra program i bakgrunden................................... 43 Laboration 4: Ännu mer om skalet 45 Sortering................................................ 45 Översättning.............................................. 45 Gott och blandat............................................ 45 Frekvensordlista............................................. 46 Påhitt.................................................. 46 Redovisning............................................... 46 Register 50 49

Register. (i sökvägar), 24. (kommando), 33.. (i sökvägar), 21, 24 < (i omdirigering), 29 > (i omdirigering), 29 \, se bakstreck (i kommandorör), 39, se tilde Aegis, 4 AIX, 4, 6 aktuell katalog, 21 Alice i Underlandet, 16 användargränssnitt, 6 7 användarnamn, 7 Apple Computer, 3, 5 7 arbetskatalog, se aktuell katalog arbetsstation, 4 argument, 20 ASR33, 19 Babbage, Charles, 4 backslash, se bakstreck bakstreck, 10, 46 bash, 20 Bell Labs, 3, 6, 20 Berkeley Software Distribution (BSD), 4, 6 binärfiler, 9 Bourne, Steve, 20 broken bar, 39 bytes, 9 C, 9 carriage return, se returtangenten Carroll, Lewis, 16 cat (kommando), 20, 30 cd (kommando), 20, 21, 23 chmod (kommando), 33 Command Line Interface (CLI), 19 Common Desktop Environment (CDE), 7 cp (kommando), 20, 21, 24, 32 data, 3 date (kommando), 22 dator, 3 datorpost, 15 Debian GNU/Linux, 6 Desktop (katalog), 11 12 Dodgson, Charles Lutwidge, se Carroll, Lewis echo (kommando), 27, 40 editor, 12 Emacs, 12 Engelbart, Douglas, 7 ENIAC, 4 Enigma, 4 factor (kommando), 29 Fedora Core, 6, 7 fil, 9 osynlig, 10 skydd, 13, 33 filnamn, 9 10 filnamnsändelse, 9 10 filträd, 9 Firefox, 15 flagga, se även väljare, 22 fmt (kommando), 36, 40 free software, 4 Free Software Foundation (FSF), 4 FreeBSD, 6 fri programvara, 4 fullständig sökväg, se sökväg, fullständig Gentoo, 6 Gnome, 7 GNU, 4 5, 7, 20, 32 GNU Emacs, se Emacs GNU/Linux, 5 7 Graphical User Interface (GUI), 7 50

Register grep (kommando), 40 grupp, 13 head (kommando), 37, 40 hemkatalog, 7, 10 HP-UX, 6 HTML, 10 HURD, 5 hårdvara, 3 IBM, 5 IBM PC, 5 Info, 30 inloggning, 7 ISO, 41 Java, 10 joker, 21, 30 Kaka, Ellen, 10 11, 13, 17 katalog, 10 aktuell katalog, 21 KDE, 7 kommandorad, 19 kommandorör, 39 kompilator, 9 komplettering, 16 i bash, 25 i Emacs, 17 källkod, 9 LANG (miljövariabel), 41 värde C, 43 Linux, se även GNU/Linux, 5 locale, 41 lodstreck, 39 lpr (kommando), 33 ls (kommando), 20 22, 24, 30, 32 lösenord, 7 Macintosh, 7 MacOS, 3 MacOS X, 3, 6 man (kommando), 30 man-sida, 30 Massachusetts Institute of Technology (MIT), 4, 5, 7, 12 mellanslag i filnamn, 9, 21, 22 Microsoft, 5 7 Microsoft Windows, 3, 6, 7 miljövariabel, 30 miljövariabel ändra värde, 42 minibuffert (i Emacs), 17 minidator, 4 Minix, 5 MIT, se Massachusetts Institute of Technology mjukvara, 3 mkdir (kommando), 20, 24 more (kommando), 40 MS-DOS, 5, 6 mus, 6, 7 mv (kommando), 20, 24 Nautilus, 11 NetBSD, 6 omdirigering, 29 Open Group, The, 6 OpenBSD, 6 OpenDocument, 10, 12 operativsystem, 3 option, se väljare Palo Alto Research Center (PARC), 7 Paterson, Tim, 6 PATH (miljövariabel), 30 PC-DOS, 6 Perl, 10 persondator, 5 pipe, 39 plain text, 12 POSIX, 6 program, 3 prompt, 20 pwd (kommando), 20, 21 Python, 10, 16 QDOS, 6 Red Hat Linux, 6 redirection, se omdirigering relativ sökväg, se sökväg, relativ return, se returtangenten returtangenten, 20 rm (kommando), 20, 24 rmdir (kommando), 20, 24 roten, 10 shell, se skal shell script, se skalskript 51

Register Single Unix Specification, 6 skal, 20 skalskript (shell script), 33 Solaris, 4, 6 sort (kommando), 36, 40 sortering, 42 språkinställning, 41 SRI, se Stanford Research Institute Stallman, Richard M., 4, 5, 12 standard input, 29, 39 standard output, 29, 39 Stanford Research Institute (SRI), 7 stdin, se standard input stdout, se standard output SUSE Linux, 6 sökväg fullständig, 10, 24 relativ, 24 vertical bar, 39 vi, 12 working directory, se aktuell katalog väljare, 21 kombinera, 23 långa, 22 wc (kommando), 31, 41 X Window System, 5, 7 X11, se X Window System Xerox, 7 XML, 10 Z3, 4 Zuse, Konrad, 4 tail (kommando), 37, 40 Tanenbaum, Andrew S., 5 teckenkodning, 12 teleprinter, 19 Teletype Corporation, 19 terminal, 19 TEX, 10 textfil, 12 textredigerare, se editor tidsdelning, 6 tilde ( ) i sökvägar, 11 Torvalds, Linus, 5 tr (kommando), 40 Turing, Alan, 4, 22 Ubuntu, 6 Ultrix, 4 underkatalog, 9, 10 uniq (kommando), 36, 41 Univac I, 4 University of California, Berkeley, 4 Unix, 3 4 varumärke, 6 Un*x, 6 user interface, se användargränssnitt utloggning, 8 utskrift, 33 vagnretur, se returtangenten webbpost, 15 52