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

Relevanta dokument
UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

Här beskrivs Eclipse, den programutvecklingsmiljö som utnyttjas i programmeringskurserna. Mera information finns på:

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

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

Eclipse en handledning

Objektorienterad programmering i Java I

2 Eclipse en handledning

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

Editering, Kompilering och Exekvering av Javaprogram

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

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

Eclipse en handledning

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

2D1311 L1 och Bio2 2001/ Laboration 1: Introduktion till Nadas datormiljö och Java Nyckelord: katalog, fil, källkod, kompilera, avlusa, program,

Introduktion till datormiljön och Python

Föreläsning 2. Operativsystem och programmering

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

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

Övning Installation av Gentoo och/eller Arch Linux

Övningar för del I av kursen

Program. Kapitel make Program Interpreterande och kompilerande program

Datorintro för elektro på Solaris

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

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

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

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

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

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

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

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

SMD 134 Objektorienterad programmering

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Introduktion till programmering och Python Grundkurs i programmering med Python

Introduktion till datateknik för språkvetare

Grundläggande datorkunskap. Kom igång med dator

Kapitel 1 Komma igång... 3

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

Välkomna till NADA. Datalogi, grundkurs 1, 15hp. (Numerisk Analys och DAtalogi) och kursen. DA2001 (Föreläsning 1) Datalogi 1 Hösten / 28

Kursansvarig. Välkomna till NADA. Datorn som verktyg. Datalogi, grundkurs 1, 15hp

Introduktion till programmering, hösten 2011

Lab 1: Första labben (2p) Inledning:

2D1310 Programmeringsteknik för CL1 Laborationer läsåret 2004/2005

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

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

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program

SKYDD 800 är ett kopieringsskydd för flexskivor till ABC 800, ABC 802 och ABC 806.

Manual för Typo3 version 4.2

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

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

Programmering i C++ Kompilering från kommandoraden

Nadas datormiljö. 1. Som tillbehör till Java finns en s.k. avlusare. Vad heter den, vad är den bra för och hur fungerar den i stora drag?

Välkomna till NADA. Datalogi, grundkurs 1, 15hp. (Numerisk Analys och DAtalogi) och kursen. DA2001 (Föreläsning 1) Datalogi 1 Hösten / 28

Programkonstruktion med datorintroduktion, 2D1339

Operativsystem och användargränssnitt

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

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

Introduktion till datateknik för språkvetare

Laboration: Grunderna i MATLAB

LOTTA MANUAL. t.o.m. version Cederlund

Datorsystem och programmering

Laboration 10: LaTeX. Redovisning. Omgivningen document. Början. Instruktionerna nedan. Repetitionsuppgifter

Internet. En enkel introduktion. Innehåll:

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

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

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

Parallella jobb ctrl-z emacs & more README ctrl-z jobs. %<jobnr>

Lathund för UNIX och Emacs

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

Allmänt om programvaror och filer i Windows.

TDDC77 Objektorienterad Programmering

Möte 10: Kommunikation mellan processer - (PI)

Program & programmering

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

Internets historia Tillämpningar

Steg 1 Minnen, mappar, filer Windows 7

Grundkurs i programmering - intro

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

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll

Xemacs, första hjälpen!

1 Logga in 1. 2 Byta lösenord 1. 3 Hemkatalog 1. 4 Unixintroduktion Viktiga kommandon Läsa 3

Inlämningsmappar. Inlämningsmappar. 1. Var hittar jag inlämningsmapparna?

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

Handbok till Oribi Speak for Chrome

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

Emacs. Eric Elfving Institutionen för datavetenskap (IDA) 22 augusti 2016

Introduktionskurs i datavetenskap, 3p.

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

TDP005 Projekt: Objektorienterat system

Code-Lite tutorial ( /RoJ)

Nadas datormiljö. 1. Som tillbehör till Java finns en s.k. avlusare. Vad heter den, vad är den bra för och hur fungerar den i stora drag?

Instruktioner för att kunna programmera på skolans datorer

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Kom igång med. Windows 8. DATAUTB MORIN AB

Lägg märke till skillnaden, man ser det tydligare om man ritar kurvorna.

Steg 1 Minnen, mappar, filer Windows 8

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

Labhandledning för Lab 1 Registrering i Fire mm (f1pt)

E-POST3 Ett lättanvänt e-postprogram med stöd för talsyntes

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

Transkript:

In- och utmatning i Unix Program i Unix skriver och läser till och från filer. En fil betyder här en vanlig fil med text eller binära data, ett tangentbord, en skärm, ett annat program etc. Innan ett program kan använda en fil, måste filen öppnas, mer om det i senare programmerings. Då ett program startas i Unix finns redan tre öppna filer: stdin öppet för läsning, normalt kopplat till tangentbordet stdout öppet för skrivning, normalt kopplat till skärmen stderr öppet för skrivning, normalt också kopplat till skärmen Många program använder endast dessa tre filer. Unix 2005 / Copyright Inge Frick 21 Omkoppling av in- och utmatning Tecknen > och < i shellet tillåter omkopplig av stdin och stdout på följande sätt: >echo $PATH > apa kör echo kommandot med stdout kopplat till filen apa >tr : \n < apa kör tr kommandot med stdin kopplat till filen apa Man kan också koppla om stderr, men det gör man vanligen inte. Program skriver vanlig utmatning till stdout, men felmeddelanden till stderr. Detta gör att om stdout kopplas till en fil så hamnar felmeddelanden fortfarande på skärmen. Man kan koppla ihop två program på följande sätt: >echo $PATH tr : \n Här blir utmatningen från echo kommandot, inmatning till tr kommandot Unix 2005 / Copyright Inge Frick 22 Kommando exempel, ls, pipe Kommando exempel, ls, pipe forts >ls emacs screens unix.pdf unix.ps >ls -l total 2149 drwxr-xr-x 2 inge usr 2048 Sep 2 16:12 emacs drwxr-xr-x 2 inge usr 2048 Sep 1 16:27 screens -rw-r--r-- 1 inge usr 404154 Sep 1 16:41 >ls -l sed 1d drwxr-xr-x 2 inge usr 2048 Sep 2 16:12 emacs drwxr-xr-x 2 inge usr 2048 Sep 1 16:27 screens -rw-r--r-- 1 inge usr 404154 Sep 1 16:41 Unix 2005 / Copyright Inge Frick 23 >ls -l sed 1d grep unix -rw-r--r-- 1 inge usr 404154 Sep 1 16:41 >ls -l sed 1d grep unix awk '{print $5}' 300077 1483952 404154 >ls -l sed 1d grep unix awk '{print $5}' awk '{sum += $1} END {print sum / NR}' 729394 Unix 2005 / Copyright Inge Frick 24

AFS På våra datorer används filsystemet AFS. AFS är ett distribuerat filsystem, (nästan) alla filer finns tillgängliga på nästan alla våra datorer. De flesta filer ligger på centrala servrar men av effektivitetsskäl finns en kopia av vanliga program och filer på de flesta datorer. Det här kan i princip ge problem om flera personer vill ändra på samma fil men i praktiken är problem sällsynta. Unix 2005 / Copyright Inge Frick 25 AFS Säkerhet I AFS finns ett säkerhetssystem där man för varje katalog kan bestämma vem som får göra vad med katalogens filer. De rättigheter som kan anges är : r Rätt att läsa innehållet i filer l Rätt att läsa katalogen, dvs visa vilka filer som finns i Rätt att skapa nya filer d Rätt att ta bort filer w Rätt att ändra i redan existerande filer k Rätt att låsa filer, så andra tillfälligt inte kommer åt dem a Rätt att ändra rättigheter Unix 2005 / Copyright Inge Frick 26 Unix säkerhet Unix traditionella säkerhetssytem fungerar annorlunda. Rättigheterna anges separat för varje fil, men man kan inte ange lika nogrant vem rättigheterna gäller. I Unix delas användare in i tre grupperingar avseende en fil: Ägaren av filen Filens grupp (där ägaren oftast ingår, men det är inte nödvändigt) Grupper behöver ni vanligen inte bry er om. Alla andra För varje gruppering finns det tre rättigheter (som visas av ls -l kommandot): r Rätt att läsa filen w x Rätt ändra eller ta bort filen Filen är exekverbar. Rätt att exekvera (köra) filen. Observera att man inte behöver ha rätt att läsa filen för exekvera den. Unix 2005 / Copyright Inge Frick 27 Säkerhet på våra datorer På våra datorer används en kombination av AFS och traditionella Unix rättigheter. För att t.ex. kunna exekvera filen myprog måste man dels ha rättighet enligt AFS att läsa filerna i katalogen där myprog ligger och dels ha rätt enligt Unix att exekvera filen. Om man inte vill att andra skall kunna läsa myprog eller andra filer i katalogen så ser man till att andra inte har Unixrättighet att läsa filerna. Genom att utnyttja kombinationen av AFS och Unix rättigheter kan man ange noga, för varje fil, vem som får göra vad. Unix 2005 / Copyright Inge Frick 28

Länkar Det som gör att en fil ligger i en katalog är att det finns en länk från katalogen till filen. Pilarna i figuren är länkar. Filens namn är egentligen en egenskap hos länken och inte hos filen så egentligen borde namnet stå på pilen och inte på rektangel i figuren men man brukar rita så här eftersom det blir klumpigt annars. En fil kan ha flera länkar så att den ligger (eventuellt med olika namn) i flera kataloger och/eller flera gånger, med olika namn, i samma katalog. En länk till. ligger i katalogen Två länkar till. ligger både i katalogen och katalogen Unix 2005 / Copyright Inge Frick 29 Hårda och mjuka länkar En fil kan ha hårda och mjuka länkar. En fil har minst en hård länk som den får då den skapas men den kan ha fler vilket vi dock inte tar upp här. Då man refererar till filer beter sig hårda och mjuka länkar på samma sätt men internt är det olika. En mjuk länk är egentligen en speciell sorts liten fil som innehåller en absolutreferens till den egentliga filen. Den här lilla filen ser man normalt inte. En mjuk länk anger alltså i vilken katalog filen egentligen ligger och vad den heter där. Det här har några konsekvenser: AFS-rättigheterna hos filen bestäms inte av katalogen där den mjuka länken ligger, utan där filen egentligen ligger. En mjuk länk kan vara rutten dvs referera till en fil som inte finns, precis som på WWW. På samma sätt som för en hård länk kan filen få ett nytt namn av den mjuka länken. /afs/nada.kth.se/ home/teach/ inge/// En mjuk länk Unix 2005 / Copyright Inge Frick 30 Program i miljön På labben kommer ni att få pröva program för några av de saker ni kommer att använda datorer till: Editering av text, se nästa bild. Webbläsare för att surfa på webben Mailhanterare för att skicka och ta emot datorbrev Nyhetsläsare för att skicka och läsa meddelanden i diskussionsgrupper. Kompilering (i detta fall kompilering av Javaprogram) Unix 2005 / Copyright Inge Frick 31 Editor En mycket stor del av er användning av datorer handlar om att skriva och ändra text. Det gäller både programmering och rapportskrivning. För att behandla text används en editor. I Unix-världen är det huvudsakligen två editorprogram som används, vi och emacs. Att tala om editorer brukar leda till heta diskussioner. vi är en betydligt mindre editor som speciellt är bra vid viss systemprogrammering. Många använder vi till all programmering, men det kan jag inte säga så mycket om, då jag själv är expert på emacs. Unix 2005 / Copyright Inge Frick 32

Emacs Emacs är en del av GNU-projektet. GNU-projektet står för en grundläggande del av Linux-miljön. Emacs är fri programvara som kan fås för nästan alla datorer i nästan alla operativsystem. Emacs kan göra nästan allt som har med text (och i viss mån multimedia) att göra. Emacs kan bland annat: Editera text i många format. Filhantering. Det man normalt gör med shell-kommandon Hantera programmering, med kunskap om de flesta språk Hantera felmeddelanden från avlusare Köra program Mailhantering Läsa och skriva i nyhetsgrupper Webbläsare Unix 2005 / Copyright Inge Frick 33 Emacs forts Emacs har av både tillskyndare och belackare beskrivits som ett operativsystem förklätt till editor. Hur åstadkommer Emacs allt detta? Emacs innehåller fyra saker : Grundläggande metoder för att hantera text Viss förmåga ett hantera bilder Förmåga att köra separata program Ett inbyggt språk, Emacslisp, som har tillgång till förmågorna i de tidigare punkterna Tillsammans med Emacs hör ett stort antal moduler skrivna i Emacslisp som kan hantera allt det som nämts tidigare och mer. Unix 2005 / Copyright Inge Frick 34 Att lära sig Emacs Emacs kan göra mycket och det finns många många Emacskommandon, men det är ändå inte så svårt att komma igång med Emacs. Till en början räcker det att kunna några av de vanligaste kommandona. Så småningom lär man sig fler kommandon genom användning. Kommandon är tangentkombinationer. Vissa kommandon finns också i menyer, men jag rekomenderar att ni använder tangentkombinationer så mycket som möjligt, man arbetar snabbare på det sättet. Det lönar sig att investera lite tid i att lära sig Emacs ordentligt! Ni kommer att ha igen det under hela er tid vid KTH. Unix 2005 / Copyright Inge Frick 35 Kommandon i Emacs Emacs arbetar med buffertar. Man läser in en fil i en buffert (ett utrymme i datorns minne), arbetar med den där och sparar resultatet som en fil. Alla tangentkombinationer är kommandon för Emacs. Tangenten a är ett kommando som vanligen betyder sätt in ett a i bufferten, men som allt i Emacs kan man ställa om så att a betyder sätt in b i bufferten vilket ju inte är så praktiskt. Vanliga kommandon som inte bara sätter in ett tecken är oftast någon av följande kombinationer C-<tecken>, C-x <tecken>, M-<tecken>. C-<tecken> betyder håll ner Control-tangenten och tryck på <tecken> M-<tecken> kan göras på två sätt: tryck först på Esc-tangenten och sedan på <tecken> Håll ner en tangent (finns på båda sidor närmast mellanslagstangenten) och tryck på <tecken> Unix 2005 / Copyright Inge Frick 36

Då man startar Emacs ser man efter ett tag följande: Observera att ni inte skall börja skriv in text här, ni skall först öppna en fil, gammal eller ny där er text skall stoppas in. Emacs måste veta vad filen heter. Filnamnet anger vad för typ av text ni skriver så att Emacs kan ställa in rätt mod för att hantera denna typ av text. Första kommandot blir alltså: C-x C-f för att läsa in en fil Emacs start Då man startar Emacs ser man efter ett tag följande: Unix 2005 / Copyright Inge Frick 37 Här har vi läst in filen.fvwm2rc Nu kan vi ändra i filen och sedan spara resultatet. Emacs börja editera Unix 2005 / Copyright Inge Frick 38 Emacs som IDE Då man säger till Emacs att editera filen prog.java som skall innehålla ett java-program händer följande: Emacs ser namntilläget.java, tolkar det som att filen skall innehålla java och laddar en modul som vet mycket om java: Vet hur javaprogram bör formatteras Kan hitta och förflytta sig till olika delar av javaprogram Kan hantera kommentarer Kan kompilera javaprogram och hantera felmeddelanden Kan provköra program och hantera felmeddelanden Kan leta i manualer På detta sätt kan Emacs fungera som IDE (Integrated Development Environment). En skillnad mot andra IDE är att Emacs kan hantera många programmeringsspråk och potentiellt alla språk. Saknas kunskap om ett språk är det bara att skriva en ny modul. Unix 2005 / Copyright Inge Frick 39 Här har vi läst in Helloworld.java, kompilerat med compilekommandot i JDE menyn. Kompileringsresultatet ses i den undre vyn. Vi har med kommandot C-x ` gått till det första felet och står här. Den undre vyn visar överst det första felmeddelandet. Om det finns flera fel så tar oss kommandot C-x ` till nästa fel osv Emacs editera java Unix 2005 / Copyright Inge Frick 40