Unix. Dagens föreläsning. Unix. GUI/Textgränssnitt. Syfte. Mål

Relevanta dokument
Unix. Dagens föreläsning. Unix. GUI/Textgränssnitt

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

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

Textbearbetning i skalet och man-sidor

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

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

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

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

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

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

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

Guido van Robot och olika UNIX-kommandon

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

kommando -fl argument

Datorintroduktion 2010 Föreläsning 1. Dieter Modig

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

Programkonstruktion med datorintroduktion, 2D1339

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

awk, sed och grep awk döpt efter Aho Weinberger Kernighan (1977) sed en stream editor grep sed g/re/p bygger i viss mån på ed line editor

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

Program. Kapitel make Program Interpreterande och kompilerande program

Programmering i C++ Kompilering från kommandoraden

Operativsystem och användargränssnitt

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

awk, sed och grep ed kommandon grep Standard unix editor tidig 70-tal program < 8Kbyte awk döpt efter Aho Weinberger Kernighan (1977)

For att fa information om kommandon eller program sa nns det manualsidor. Dessa

1. Log on to the system using the user ide and password ide. 2. Copy the file /etc/ca-certificates.conf to the home directory of the user.

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

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

HF1010, Introduktionskurs i datateknik, 1.5 hp, hösten Föreläsning 1

Datorintro för elektro på Solaris

Introduktion till datormiljön och Python

LABORATIONSRAPPORT Operativsystem 1 Linux

BASH. Bourne-Again SHell. Eric Elfving Institutionen för datavetenskap (IDA)

Strängar. Strängar (forts.)

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

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Lathund för UNIX och Emacs

Tips och tricks. Några bra tips. Lägg till sökvägar

Introduktion till processer

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

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

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

729G09 Språkvetenskaplig databehandling

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

UNIX verktyg. Användbara kommandon Fil och informationssökning Tags Versionshanteringssystem

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

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#

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

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

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

DN1240, Numeriska metoder. Laboration 0 (frivilliga delar) (dvs uppgifterna behöver inte redovisas) Introduktion till UNIX och MATLAB

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

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Övningar för del I av kursen

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

DD1311 Programmeringsteknik för CL1 Laborationer läsåret

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

Datorsystem och programmering

Lite mer om CGI-programmering

Linuxadministration I 1DV417 - Laboration 1 Installation, användare och allmänt Linuxhandhavande

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

Unix. För en systembeskrivning se: För en systembeskrivning se:

Kommandotolken hittar du under Start->Program->Tillbehör->Kommandotolken

Allmänt om programvaror och filer i Windows.

Installation OBS! Jag utgår från att alla diskar utom just systemdisken är fysiskt bortkopplade under installationen.

SF1520, Numeriska Metoder och Grundläggande Programmering för K2 Lab1.

U N I X G R U N D K U R S Ö V N I N G S U P P G I F T E R

Sed och Awk. Linuxadministration II 1DV421. Monday, August 8, 11

Övning Installation av Gentoo och/eller Arch Linux

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Introduktion till programmering. Undervisning. Litteratur och examination. Lärare. Föreläsning 1

SF1520, Numeriska Metoder och Grundläggande Programmering för K2 Lab1.

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

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

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

Lathund för Linuxkommandon

Unix. Terminalfönstret hur du ger instruktioner till datorn på ett effektivt sätt.

OBS! Snabbinsatt Matlab-intro vissa fönsterhanteringsdetaljer kan vara fel men gör gärna Matlab-uppgifterna. DN1240, Numeriska metoder för OPEN1.

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

printenv sort pager printenv grep args sort pager

Programmeringsteknik med C och Matlab

Datorsystem 5. På denna föreläsning skall vi prata om Operativsystem Exempel på tenta (typ fjolårets)

Använda Python Laboration 1 GruDat, DD1344

Objektorienterad programmering i Java I

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

MS-DiskOperativSystem Sammanfattning och Övningar

Instruktioner för att kunna programmera på skolans datorer

Introduktion till Unix och Linux

Ett X i någon av rutorna anger att kommandot fungerar på det systemet. Ett [nummer] anger att det finns en notis efter tabellen om kommandot.

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

Mer om skalet. Kapitel Omdirigering

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Anslutning till unixsystem från windowslabben

Reguljära uttryck. Reguljära uttryck. Nu kommer en siffra78 och en till SIFFRA(78) men utan 7kstuga SIFFRA(89)

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

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

1 Vad är Versionshantering? 2 Git. 2.1 GitHub

Grundläggande datalogi - Övning 1

Transkript:

Unix Dagens föreläsning DD1051 Databasteknik och datorkommunikation http://www.csc.kth.se/dd1051/ Syfte Lära er grunder och principter i Unix, vilket det händer att man stöter på i verkligheten Mål Tillräckligt mycket Unix-kunskap för att klara laboration Viss kunskap om regulära uttryck 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 1 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 2 Unix Ett operativsystem, precis som Windows och MacOS Linux, Solaris, Mac OS X m.fl. Unixsystem finns Från början designad för att flera användare ska kunna köra program samtidigt på samma dator. Mycket stabilt. Används ofta för serverapplikationer, såsom webserver, mailserver, filserver. Första implementationen 1969 GUI/Textgränssnitt Både grafiska gränssnitt och textbaserade gränssnitt finns. Jfr Windows och DOS-prompt Textbaserade gränssnitt speciellt användbara vid fjärrinloggning på system. Enkelt att skriva script som utför en mängd olika kommandon. 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 3 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 4

Shell Grundläggande begrepp Ett shell är en kommandotolk. För att exekvera ett program skriver du in programmets namn i tolken, vilken tolkar kommandot och därpå exekverar det. Process Ett program som exekveras är en process. Processen innehåller information om öppna filer, variabler mm. Filosofi Unix har en liten del ( kernel ) som sköter om det viktigaste, som minneshantering, resursallokering, filhantering och felhantering. Övriga delar, t.ex. ls, kommandot för att lista filer, är ett eget program som kan bytas ut om man så önskar. Även shell och grafiskt gränssnitt (fönstersystem) är utbytbara. Många småprogram kan kombineras ihop till att utföra komplexa uppgifter. jfr MS/DOS, Windows m.fl. där allt är integrerat, huvudsakligen av kommersiella skäl. Lättare att skriva ett litet program som hanterar en liten uppgift bra och effektivt än att skriva ett stort program som hanterar många uppgifter. Detta är en av orsakerna till stabiliteten hos Unix. 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 5 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 6 Shell Shell-cykeln Ett shell är som sagts tidigare en kommandotolk. Kan, förutom dess viktigaste uppgift att starta processer, även hantera variabler, if/then/else-konstruktioner, loopar etc, som i ett programmeringsspråk. Det första man möts av när man loggar in via en textterminal är ett shell. Alla program man utför är barnprocesser till detta shell. Om inloggningsskalet (shellet) avslutas, avslutas normalt sett även dess barnprocesser. Kommandon kan utföras batchvis i ett shellscript (ett shellprogram). Shell Skriv ut en prompt Läs ett kommando från tangentbordet Tolka speciella tecken såsom variabler Kör kommandot (eventuellt med ändrad in- och/eller utmatning) och vänta (vanligen) tills det avslutas Börja om från början T.ex. ls exekvera programmet ls Skriv ut ev. resultat Återgå till skalet 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 7 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 8

Generell kommandosyntax Hjälp Den generella formen för hur ett kommando ges är: >kommandonamn -flaggor argument Obs. Det inledande > tecknet är själva kommandoprompten, och kan variera. Exempel >cp -R mapp1 mapp2 Kommandoprompten kan t.ex. vara nada11:~/tmp> För att få hjälp finns t.ex. två hjälpsystem (ofta). De flesta kommandon accepterar flaggan --help för kortfattad beskrivning av de flaggor och argument som kan ges. Klamrar [] anger att något ej är nödvändigt. Vertikalstreck används för att ange val mellan två alternativ. Exempel >cp --help usage: cp [-R [-H -L -P]] [-f -i] [-p] src target cp [-R [-H -L -P]] [-f -i] [-p] src1... srcn directory > 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 9 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 10 Man-blad Apropos För mer utförlig hjälp kan man ange kommandot >man kommandonamn Dessa manualblad är oftast tämligen svårtydda om man inte är van. media>man cp CP(1) System Reference Manual CP(1) NAME cp - copy files SYNOPSIS cp [-R [-H -L -P]] [-f -i] [-p] source_file target_file cp [-R [-H -L -P]] [-f -i] [-p] source_file... target_directory DESCRIPTION In the first synopsis form, the cp utility copies the contents of the source_file to the target_file. In the second synopsis form, the contents of each named source_file is copied to the destination target_directory. The names of the files themselves are not changed. If cp detects an attempt to copy a file to itself, the copy will fail. The following options are available: -H If the -R option is specified, symbolic links on the command line Vad kommandot heter och gör i korthet Hur man anropar kommandot. I detta fall på två olika sätt. Detaljerad förklaring vad programmet gör och vad eventuella flaggor betyder. Om man inte vet vad kommandot man söker efter heter, så kan man med kommandot 'apropos' söka efter ett ord i första raden (NAME-raden) på alla man-blad. Om man vill hantera en floppy kan t.ex göra följande: >apropos floppy som ger följande svar: eject eject (1) - eject media such as CD-ROM and floppy from drive fd fd (7d) - drivers for floppy disks and floppy disk controllers fdc fd (7d) - drivers for floppy disks and floppy disk controllers fdformat fdformat (1) - format floppy diskette or PCMCIA memory card fdio fdio (7i) - floppy disk control operations rmmount rmmount (1m) - removable media mounter for CD-ROM and floppy volcheck volcheck (1) - checks for media in a drive and by default checks all floppy media vold vold (1m) - Volume Management daemon to manage CD-ROM and floppy, ZIP/JAZ and DVD-ROM devices volmissing volmissing (1) - notify user that volume requested is not in the CD- ROM or floppy drive Man kan sedan med 'man' begära det man-blad som verkar intressant 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 11 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 12

Filsystemet Sökvägar / usr home etc dev local bin inge adam passwd xml bin emacs print mine bin ls Det finns åtminstone tre sätt att ange sökvägar. Antag att du står i katalogen kalle och vill komma åt programmet ls under binkatalogen under bjornh Absolut sökväg /home/bjornh/bin/ls Relativ sökväg../bjornh/bin/ls Relativt användaren bjornh ~bjornh/bin/ls 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 13 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 14 Filrättigheter Filrättigheter (2) En fil har tre ägartyper Ägarnivå Gruppnivå Samtliga användare För ägartyp kan tre rättigheter ges Läsrättighet (r) Skrivrättighet (w) Exekveringsrättighet (x) Vilka filrättigheter en fil har kan ses med kommandot ls -l >ls -l afmstud01.xls -rw-r--r-- 1 bjornh staff 11776 Jan 9 11:12 afmstud01.xls media> De första tio tecknen anger rättigheterna. I tur och ordning: -: afmstun01.xls är en fil, inte en katalog (i så fall d ) rw-: Ägaren (bjornh) har läs- och skrivrättigheter, men inte exekveringsrättigheter r--: Gruppen har läsrättigheter, men inte skriv- eller exekveringsrättigheter r--: Samtliga användare har läsrättigheter, men inte skriv- eller exekveringsrättigheter På NADA används AFS-filsystemet som gör att man också kan ange nogrannare rättigheter för varje katalog. För att ändra filrättigheter används kommandot chmod (se labb) 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 15 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 16

stdin, stdout och stderr Program har standardvärden för varifrån de läser input och skriver output. Program tar normalt sitt input via tangentbordet (stdin) De skriver output till skärmen (stdout) De skriver felmeddelanden tilll skärmen (stderr) Dessa kan omdirigeras till/från t.ex. en fil. >cat fil1 >fil2 Skriver innehållet som finns i fil1 till fil2. Det som fanns i fil2 försvinner. >cat fil1 >>fil2 Lägger innehållet av fil1 till slutet av fil2 Se mer på laborationen 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 17 pipes Output kan även skickas vidare och bli input till ett annat program. Det kallas för en pipe. >ls grep banan wc Listar alla filer i katalogen. Output skickas vidare till programmet grep som plockar ut alla rader som innehåller strängen banan. Output från detta (alla rader innehållande strängen banan) skickas vidare till programmet wc (word count) som räknar antalet ord, men eftersom här varje rad innehåller exakt ett ord (ett filnamn), så blir detta antalet filer som innehåller "banan" i sitt namn. Med omdirigeringar hade samma sak kunnat uppnås (första > -tecknet är kommandoprompten). >ls >a >grep banan a >b >wc b 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 18 grep sed grep nixdorf fil1 fil2... grep '^nixdorf' Skriver ut alla rader som innehåller ordet nixdorf. OBS! Även rader som innehåller 'olenixdorfan'. Förankra mönstret i början av raden. Dvs skriv ut rader som börjar med 'nixdorf'. sed 's/:/ /g' /etc/passwd sed 's/philip/filip/' sed 's/[pp]hilip/filip/' Skriv ut /etc/passwd med alla : utbytta mot <tab>. Byt ut Philip mot Filip. Byt ut Philip eller philip mot Filip. grep 'nixdorf$' grep '^nixdorf$' grep '^$' grep -v 'nix' grep -n 'nix' grep -i 'nix' Förankra mönstret i slutet av raden. Skriv ut alla rader som enbart består av ordet 'nixdorf'. Skriver ut alla tomma rader. Skriver ut alla rader som inte innehåller 'nix'. Skriver med radnummer ut rader som innehåller 'nix'. Håller inte isär stora och små bokstäver. Skriver ut alla rader som innehåller 'nix', 'nix', 'nix', 'nix', 'Nix', 'NiX', 'Nix' eller 'NIX'. Vad som händer med å, ä, ö varierar. 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 19 Byt ut Philip delen i Carl Philip eller Karl Philip mot Filip. sed 's/[ck]arl Philip/vad skall vi skriva här/' Använd 'tagged regular expressions': sed 's/\([ck]arl\) Philip/\1 Filip/' sed 's/^/ /' sed '/./s/^/ /' Sätt in tab i början av varje rad, och... bara i icke-tomma rader. sed 40q sed '/mönster/q' Skriv ut 40 rader och sluta sedan. Skriv ut alla rader till och med rad som innehåller 'mönster'. 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 20

sed (forts) Reguljära uttryck (regular expressions) sed '/mönster/d' sed -n '/mönster/p' sed -n '/mönster/!p' sed -n '100,200p' sed '1,14d' sed '$d' sed -n '/^a/,/^b/p' sed -n '/^a/,/^a/p' Skriv ut alla utom rad inehållande 'mönster'. Skriv bara ut rader innehållande 'mönster'. Samma som sed '/mönster/d'. Skriv bara ut rad 100 tom 200. Skriv ut allt utom rad 1 tom 14. (jmfr tail +15). Skriv ut allt utom sista raden. Skriv ut varje grupp av rader f.o.m. rad som börjar med 'a' t.o.m. rad som börjar med 'b'. Skriv ut varje grupp av rader f.o.m. rad som börjar med 'a' t.o.m. nästa rad som börjar med 'a'. Regexp ^ $.... bar* bar\{2,5\} bar\{2,\} bar\{14\} [Hh]emmingway [a-za-z][a-z]* [a-zåäöa-zåäö][a-zåäö]* [^0-9] Matchar början av raden slutet av raden godtyckligt tecken 3 godtyckliga tecken ba bar barr barrr barrrr... barr barrr barrrr barrrrr barr barrr barrrr barrrrr... barrrrrrrrrrrrrr Hemmingway eller hemmingway Alla vanliga (engelska) ord med stor begynnelsebokstav eller inte. Alla vanliga (svenska) ord med stor begynnelsebokstav eller inte. Varje tecken utom siffra. 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 21 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 22 Regexp.*..*.\{1,\}.\{0,1\} \^ \3 Reguljära uttryck (forts) Matchar Vad som helst. Noll eller flera godtyckliga tecken. Minst ett godtyckligt tecken. Minst ett godtyckligt tecken. Högst ett godtyckligt tecken. '^' (circumflex) 3:e tecken-gruppen. \([ka]\)b\1 \( och \) kbk och aba men inte kba eller abk Avgränsar en teckengrupp. Det finns flera dialekter bland reguljära uttryck. Viktigast är basic och extended. Det finns dock även varianter av dessa. Här beskrivs en del av basic men i boken beskrivs extended som används av PHP. 2008-03-25 Björn Hedin, Inge Frick, NADA/KTH 2002-2008 23