Unix/Linux for litt viderekomne



Like dokumenter
Unix/Linux for litt viderekomne

Unix/Linux for litt viderekomne

Hvordan jobber vi ved Ifi (inkludert en kort intro til Unix/Linux)

Datamaskinene ved Ifi (inkludert en kort intro til Unix/Linux)

Unix/Linux en annen måte å gjøre ting på

Unix/Linux en annen måte å gjøre ting på

Unix/Linux en annen måte å gjøre ting på

Fra Python til Java, del 2

Nyttige Linux-kommandoer. Hvordan du kan jobbe mer effektivt Dag Langmyhr

INF 1010, vår 2005 Løsningsforslag uke 11

Oppgaver til forkurs i informatikk dag 1

INF1010 våren 2018 tirsdag 23. januar

Filer og kataloger, prosesser og jobber

INF1010 våren 2019 Onsdag 30. januar. Mer om unntak i Java (med litt repetisjon av I/O først)

Fjerninnlogging over Internett

Ukeoppgaver 1: 30. aug 3. sep (INF Høst 2010)

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

INF1000 : Forelesning 1 (del 2)

INF1010 våren 2017 Onsdag 25. januar. Litt om unntak i Java

INF2100. Oppgaver 26. september til 1. oktober 2007

Forelesning inf Java 1

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

Ny på nett. Operativsystemer

SPSS Høgskolen i Innlandet

Forkurs i informatikk - Onsdag

som jobbet nærmest døgnet rundt i 18 måneder i Menlo Park i California for å forberede den neste bølgen innen computing.

Litt Java-historikk. Litt Java-historikk. Ulike varianter for ulike behov. Litt Java-historikk. The Green Team

Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

Oppgaver til forkurs i informatikk dag 2

INF1010. Grensesnittet Comparable<T>

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14.

Brukerveiledning for programmet HHR Animalia

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

Tomcat på Eple. Bjarte Kileng. 19. mars, HiB. Bjarte Kileng (HiB) Tomcat på Eple 19. mars, / 11

Forelesning inf Java 4

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket

Beskrivelse for hvordan en kan digitalisere og importere musikk inn i Variations på TEST server EINER.UIB.NO (for installasjonen 17.

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

INF2100. Oppgaver 9. oktober 2012 C 100 X 10

Repetisjon. INF gruppe 13

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

INF2100. Oppgaver 6. og 11. oktober 2011 C 100 X 10

IN 211 Programmeringsspråk. Java. på 20 enkle ark. spesielt for de som kan. Simula. (og gjerne litt C) Ark 1 av 20

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

INF2100. Oppgaver uke 40 og

Hvordan installere Java og easyio på Windows

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF Høst 2011)

INF2100. Oppgaver 23. og 24. september 2010

UNIVERSITETET I OSLO

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

Skriv ordbøker og litteratur på Tegnspråk med en nett-tjener i lommeformat! For ivrige Tegnskrift (SignWriting )- brukere!

Forelesning inf Java 5

Øving 0 - Xcode TDT4102

Innføring i enkel Macbruk

UNIVERSITETET I OSLO

Forelesning inf Java 5

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

HØGSKOLEN I SØR-TRØNDELAG

Digital hjemmeeksamen PPU

Velkommen til Pressis.

Jentetreff INF1000 Debugging i Java

INF1000 : Forelesning 4

Forelesningsquiz. Forelesning inf Java 5. Sett dere to (eller tre) sammen og besvar de fire spørsmålene på utdelt ark. Tid: 15 min.

SPSS Høgskolen i Innlandet

TOD063 Datastrukturer og algoritmer

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4

INF 1000 høsten 2011 Uke september

MAT-INF 1100: Obligatorisk oppgave 1

INF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder:

Litt om pakker og mest om data inn og ut

INF1000 undervisningen INF 1000 høsten 2011 Uke september

Tilgang til nytt skrivebord «KONTOR»

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster

UNIVERSITETET I OSLO

Forelesning inf Java 1

Lagring i Linux. 1. Hvordan lagre tekst. Når du er ferdig med heftet skal du:

Nedlasting og brenning av egne ISO-cd-er

INF Løsning på seminaropppgaver til uke 8

Innhold RDP... 2 Oppkobling Kirkedata... 2 Flere brukerpålogginger til Kirkedata... 6

INF1000: Forelesning 7

Brukerveiledning for nedlastning og installasjon av Office Av Roar Nubdal, fagprøve IKT-servicefag, juni 2014

UNIVERSITETET I OSLO

Sortering med tråder - Quicksort

INF1010 våren Arv og subklasser - del 2

Endringer etter omlegging til ny AD

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

INF2100. Oppgave 1, 2 og 3. Løsningsforslag til oppgaver 23. og 24. september Her er det mange mulige løsninger her er én: import java.io.

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

NY PÅ NETT. Operativsystemer

Socket og ServerSocket

Oppgave 1 - Java og prosesser (20%)

POLITISKE SAKSDOKUMENTER:

Løsningsforslag ukeoppg. 2: 31. aug - 6. sep (INF Høst 2011)

UNIVERSITETET I OSLO

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Tuva Kristine Thoresen

Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder

Transkript:

Litt mer om Unix Unix/Linux for litt viderekomne Institutt for informatikk

Hvilke programmer finnes? Hvilke program finnes? For å finne alle programmene, snekret jeg dette lille programmet: #! /local/bin/perl foreach $dir (split(/:/,$env{path),"/snacks/bin") { foreach (split(" ", ls $dir )) { $programs{$_++ if -x "$dir/$_"; print 0+keys %programs, " programs found:\n"; foreach (sort keys %programs) { print "$_\n"; exit 0;

Hvilke programmer finnes? Det ga følgende svar: 5472 programs found: [ 2to3 411toppm 7 8to7 CC-wrapper ControlPanel FvwmCommand.

Hvilke programmer finnes? Hvordan finner man da programmer? Informasjon om aktuelle program finnes i kursmateriell i bøker og hefter om Unix og Linux; se f eks http: //www.onlinecomputerbooks.com/free-unix-books.php i annen lokal informasjon i Linux-menyene Ifi-startpakken på folkemunne.

På tvers av systemene På tvers av systemene Windows fra Linux Om man sitter ved en Linux-maskin og trenger Windows-programmer, kan man få tilgang til en maskin som kjører Windows ved å gi kommandoen windows. Brukerfilene finnes på nettenheten M:. Linux fra Windows Om man sitter ved en Windows-maskin, kan man også kjøre mot en Linux-maskin: Klikk på ikonet Linux (programmet XWin32). Windows-filene ligger da i mappen ~/pc.

Hvordan starte programmer Å starte programmer De vanligste programmene startes fra en meny eller et ikon. Alle programmer kan startes med en kommando. Å kjøre programmer i bakgrunnen Hvis man avslutter en kommando med en &, vil den gå «i bakgrunnen» og man kan gi nye kommandoer. $ xeyes &

Pek og klikk Kopiering av tekst Man kan enkelt kopiere tekst fra ett vindu til et annet: Klikke med venstre mustast flytter markøren (der det er mulig). Dra med venstre mustast tar kopi av teksten. NB! Ingen Ctrl + C nødvendig. Klikke med midtre mustast kopierer inn teksten. NB! Ingen Ctrl + V nødvendig. Programavbrudd I Unix vil Ctrl + C bryte av det programmet man kjører.

Hva er en mappe? Mapper Man kan lage mapper (= kataloger, filområder, «directories») og legge filer der for å ha bedre orden på dem. $ ls -F Fritid/ Kurs/ $ ls -F Kurs INF1000/ INF1040/ MAT1000/ timeplan $ ls -F Kurs/INF1000 Oblig1/ info En mappe er bare en spesiell type fil, så det er helt OK å ha mapper inni mapper inni...

Hvilke mapper har jeg? Oversikt over mappestrukturen Kommandoen ls kan også gi en oversikt over mappene: $ ls -R -F.: Fritid/ Kurs/./Fritid:./Kurs: INF1000/ INF1040/ MAT1000/ timeplan./kurs/inf1000: Oblig1/ info./kurs/inf1000/oblig1:./kurs/inf1040:./kurs/mat1000: (Legg merke til mappenavnet.; det er navnet på mappen vår.)

Hvilke mapper har jeg? Bedre til dette er programmet tree: $ tree. -- Fritid -- Kurs -- INF1000 -- Oblig1 -- info -- INF1040 -- MAT1000 -- timeplan 6 directories, 2 files

Beskyttelse av mapper Beskyttelse av mapper Beskyttelsesmekanismen for mapper er nesten som for filer: r gir rett til å se navnene på filene i mappen. w gir rett til å lage filer og fjerne filer i en mappe. x gir rett til å se på selve filene i mappen. NB! For å få se på en fil, må man ha adgang (dvs x-rettighet) til alle mappene på veien ned (samt r for selve filen).

Beskyttelse av mapper Alle andres filer Alle filer på UiO ligger i én stor mappestruktur: / bin dev ifi local chmod sh null tty midgard utgard bin man a02 dag Kurs Privat www docs

Beskyttelse av mapper Hvor er jeg? Alle har sin egen undermappe. dag@rubin ~$ pwd /ifi/midgard/a02/dag Hvor er alle andre? Det finnes en egen notasjon for slike personlige undermapper: ~bruker er hjemmemappen til bruker. ~ er hjemmemappen min.

Beskyttelse av mapper Kjær fil har mange navn dag@rubin ~$ more huskeliste 4 melk Dagbla for i går dag@rubin ~$ more ~/huskeliste 4 melk Dagbla for i går dag@rubin ~$ more ~dag/huskeliste 4 melk Dagbla for i går dag@rubin ~$ more /hom/dag/huskeliste 4 melk Dagbla for i går dag@rubin ~$ more /ifi/midgard/a02/dag/huskeliste 4 melk Dagbla for i går

Beskyttelse av mapper Det er lov å skifte synspunkt Hvis vi skal jobbe med filer som stort sett ligger i en egen mappe, kan vi flytte oss dit: dag@rubin ~$ pwd /hom/dag dag@rubin ~$ ls -l Spraak/Java/Queen.java -rw-r--r-- 1 dag dag 3068 2005-09-14 14:53 Spraak/Java/Queen.java dag@rubin ~$ cd Spraak/Java./Spraak/Java dag@rubin Java$ pwd /hom/dag/spraak/java dag@rubin Java$ ls -l Queen.java -rw-r--r-- 1 dag dag 3068 2005-09-14 14:53 Queen.java dag@rubin Java$ ls -ld../java/ drwxr-sr-x 11 dag dag 16384 2013-06-18 17:24../Java/

Betaling for utskrift Betaling av utskrift Nettsiden http://brukerinfo.uio.no kan gi informasjon om hvor mange sider jeg har igjen. For tiden er prisen 250 ark per semester når man betaler kopiavgift kr 100. (Denne kvoten settes til 250 hvert semester.) Deretter kr 0,80 per dobbeltsidig ark. (Ubenyttet betaling overføres til neste semester.) Les også.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 /ifi/tyrfing/a12/dag/java/geometry.java 15 Jul 2002 14:25 Page 1 import java.text.*; import java.util.*; class Point { double x, y; Point () { x = y = 0; Point (double x, double y) { this.x = x; this.y = y; Point (Point p) { x = p.x; y = p.y; double distance (Point p) { double dx = x p.x, dy = y p.y; return Math.sqrt(dx*dx + dy*dy); boolean equals (Point p) { return distance(p) < 0.000001; private static boolean inrange (double v, double v1, double v2) { return v1<=v && v<=v2 v2<=v && v<=v1; boolean ison (Line l) { return Math.abs(x*l.a + y*l.b + l.c) < 0.000001; boolean ison (Vector v) { try { Line lx = new Line(v); return ison(lx) && inrange(x, v.p1.x, v.p2.x) && inrange(y, v.p1.y, v.p2.y); catch (GeometryError e) { return equals(v.p1); private static NumberFormat dblformat = DecimalFormat.getInstance(Locale.UK); public static String format (double val, int ndigits) { dblformat.setmaximumfractiondigits(ndigits); dblformat.setminimumfractiondigits(ndigits); String s = dblformat.format(val), z = dblformat.format(0.0); if (s.equals(" "+z)) return s.substring(1); return s; public String tostring () { return "(" + format(x,3) + "," + format(y,3) + ")"; class Vector { Point p1, p2; Vector (Point p1, Point p2) { this.p1 = p1; this.p2 = p2; double length() { return p1.distance(p2); /ifi/tyrfing/a12/dag/java/testgeometry.java 15 Jul 2002 14:25 Page 1 class TestGeometry { static int nl, np, nv; static Line l[]; static Point p[]; static Vector v[]; public static void main (String args[]) { try { np = 0; p = new Point[4+1]; p[++np] = new Point(); p[++np] = new Point(3, 0); p[++np] = new Point(0, 8.75); p[++np] = new Point( 2.5, 1); showpoints(); v = new Vector[np*(np+1)+1]; nv = 0; for (int ip = 1; ip <= np; ++ip) for (int jp = 1; jp <= np; ++jp) if (ip!= jp) v[++nv] = new Vector(p[ip],p[jp]); showvectors(); pn(); l = new Line[np*(np 1)/2+1]; nl = 0; for (int il = 1; il <= np; ++il) for (int jl = il+1; jl <= np; ++jl) { l[++nl] = new Line(p[il], p[jl]); pn("l" + il + ": new line(" + p[il] + ", " + p[jl] + ") gives " + l[nl]); testlines(); testison(); testclosestto(); catch (GeometryError e) { e.fail(); static void p (String s) { System.out.print(s); static void pn () { pn(""); static void pn (String s) { System.out.println(s); static void showpoints () { for (int i = 1; i <= np; ++i) pn("p" + i + ": " + p[i]); for (int ip = 1; ip <= np; ++ip) for (int jp = ip+1; jp <= np; ++jp) pn("p" + ip + ".distance(p" + jp + ") = " + p[ip].distance(p[jp])); static void showvectors () { pn(); for (int iv = 1; iv <= nv; ++iv) pn("v" + iv + ": " + v[iv] + " has length " + v[iv].length()); static void testclosestto () { pn(); for (int pi = 1; pi <= np; ++pi) for (int li = 1; li <= nl; ++li) { pn("" + l[li] + ".closestto(" + p[pi] + ") is " + l[li].closestto(p[pi])); static void testison () { pn(); 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 /ifi/tyrfing/a12/dag/java/geometry.java 15 Jul 2002 14:25 Page 2 public String tostring () { return "[" + (p1==null? "null" : ""+p1) + " >" + (p2==null? "null" : ""+p2) + "]"; class Line { double a, b, c; Line (double a, double b, double c) throws GeometryError { this.a = a; this.b = b; this.c = c; if (a==0 && b==0) throw new GeometryError("Degenerate line: "+this); Line (Point p1, Point p2) throws GeometryError { a = p2.y p1.y; b = p1.x p2.x; c = a*p1.x b*p1.y; if (a==0 && b==0) throw new GeometryError("Degenerate line: "+this); Line (Vector v) throws GeometryError { this (v.p1, v.p2); Point closestto (Point p) { Line perp = null; try { perp = new Line( b, a, b*p.x a*p.y); catch (GeometryError e) { /*Cannot happen*/ return crosses(perp); Point crosses (Line l) { double denom = a*l.b l.a*b; if (denom == 0) return null; return new Point((b*l.c l.b*c)/denom, (l.a*c a*l.c)/denom); public String tostring () { String bs = Point.format(b,2), cs = Point.format(c,2); if (bs.charat(0)!= ) bs = "+" + bs; if (cs.charat(0)!= ) cs = "+" + cs; return Point.format(a,2) + "x" + bs + "y" + cs + "=0"; class GeometryError extends Exception { String message; GeometryError (String message) { this.message = message; void fail () { System.err.println("Geometry error: " + message); System.exit(1); /ifi/tyrfing/a12/dag/java/testgeometry.java 15 Jul 2002 14:25 Page 2 for (int pi = 1; pi <= np; ++pi) { for (int li = 1; li <= nl; ++li) { pn("p" + pi + " = " + p[pi] + ".ison(l" + li + " = " + l[li] + ") is " + p[pi].ison(l[li])); for (int vi = 1; vi <= nl; ++vi) { pn("p" + pi + " = " + p[pi] + ".ison(v" + vi + " = " + v[vi] + ") is " + p[pi].ison(v[vi])); static void testlines () { pn(); for (int il = 1; il <= nl; ++il) for (int jl = il+1; jl <= nl; ++jl) { Point px = l[il].crosses(l[jl]); pn("l" + il + ".crosses(l" + jl + ") gives " + (px==null? "null" : ""+px)); Intro Programmer Mapper Ressurser E-post Hjemmefra Informasjon Betaling for utskrift Hvordan spare sider? Det er mulig å spare papir ved å skrive flere sider forminsket på én side: $ print -multi4 Geometry.java eller $ print -booklet Geometry.java Alle Ifis skrivere kan skrive dobbeltsidig. print velger dette automatisk.

Diskplass Hvor stor plass bruker jeg på disken? Kommandoen du («disk usage») forteller hvor mye plass jeg bruker i et filområde og alle underområder; svaret angis i Kbyte: $ du -k ~ 92./INF101 102./Privat 42./Grupper 255. Brukerne deler disken, så prøv å spare plass; noen hundre Mbyte er greit.

Nyttige kommandoer Ifi-kommandoer Mange av kommandoene jeg har nevnt, er laget ved Ifi og finnes bare der. Ofte finnes det alternativer med litt andre (mindre brukervennlige!) egenskaper: Ifi Standard Ifi Standard del rm lsdel undel copy cp move mv preview more, acroread,... print lp, lpr,...

E-post er uunværlig Les e-posten din! Som student er du pålagt å lese e-post til din offisielle adresse bruker@student.matnat.uio.no! Godt nytt Det er enkelt å omadressere den til din gmail-adresse eller hva du bruker: https://www.uio.no/tjenester/it/e-post-kalender/e-post/ tips-og-triks-fra-postmaster/fravarsmelding/

Hvordan lese e-post Hvordan lese e-post En nettleser til http://webmail.uio.no fungerer alltid.

Hvordan lese e-post

Intro Programmer Mapper Ressurser E-post Hjemmefra Informasjon Hvordan lese e-post Ellers anbefaler UiO e-postprogrammene Outlook og Thunderbird:

Kan jeg jobbe hjemmefra? Hvordan jobbe hjemme Ifi legger opp til at studenter skal kunne jobbe hjemmefra. På http://www.mn.uio.no/ifi/tjenester/it/hjelp/startpakke/ finnes en Ifi-startpakke med gratis programvare som man trenger til undervisningen: Emacs Java og Python Adobe Reader (for å lese PDF-filer) Cygwin (for Unix-omgivelse på en Windows-maskin) Putty og WinSCP3 (for oppkopling mot Ifis maskiner) Perl, LAT E X,... Programmene finnes stort sett for Windows, Mac og Linux.

Kan jeg jobbe hjemmefra?

Kan jeg jobbe hjemmefra? Velg Programvare for Windows og Java-kompilator:

Kan jeg jobbe hjemmefra? Oppkobling hjemmefra Om man har bredbånd hjemme, kan man koble seg opp mot Ifis maskiner. Fra Linux eller Mac: Bruk ssh for Linux: ssh bruker@login.ifi.uio.no NB! Gir kun et kommandovindu. Fra Mac eller Windows: Bruk Eksternt skrivebord (Remote Desktop Connection) mot windows.ifi.uio.no for Windows. Så kan man gå videre til en Linux-maskin om man vil.

Hvor finnes flere programmer? Hvor finner jeg programmene? Nettsider På nettsiden http://www.mn.uio.no/ifi/tjenester/it/hjelp/ finnes oversikt over en del programvare. Microsoft e-academy Som Ifi-studenter her får dere lov å laste ned all programvare fra Microsoft (unntatt Office-pakken) gratis; se på nettsiden nevnt over.

Hvor finnes hjelp? Hjelp!? Hvis man etter i dag trenger hjelp, finnes det hos sidemannen (kanskje?) gruppelæreren studieoraklene Studielaben PC-hjelpen nettsiden http://termvakt.uio.no/hovedside driftsgruppen e-post til drift@ifi.uio.no telefon (228) 527 14 (ved krise)