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

Like dokumenter
Lynkurs i shellprogrammering under Linux

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.

Fra Python til Java, del 2

Filterprogrammer og redirigering av I/O

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

Oppgave 1 - Java og prosesser (20%)

Filterprogrammer og redirigering av I/O

Oppgaver til forkurs i informatikk dag 2

Dagens program. Operativsystemer Prosesser og systemkall i UNIX Hente prosessens nummer Starte prosesser Vente på prosesser Utføre programmer

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

Unix/Linux for litt viderekomne

EKSAMEN. Operativsystemer og nettverk

Høgskoleni Østfold. Ny/utsatt EKSAMEN

EKSAMEN. Dato: 7. desember 2016 Eksamenstid: 09:00 13:00

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

Unix/Linux for litt viderekomne

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

Programmeringsspråket C

$ls -l $grep -i Olsen adresseliste.txt less #!/bin/sh $echo `ls` $chmod 755. Praktisk Linux. Grunnleggende skall kommandoer. Irene Ludvigsen Husa

Programmeringsspråket C

EKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.

1 Diverse linuxtips. Innhold

1. obligatoriske innlevering, høsten 2014

Programmeringsspråket C

Operativsystemer og nettverk

Velkommen til INF2100 Jeg er Dag Langmyhr

Hvordan installere Java og easyio på Windows

Prøve- EKSAMEN. Operativsystemer med Linux

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

1 Diverse linuxtips. Innhold. 1.1 Klipp og lim med musen

OS Struktur Prosesser Kommandotolker Distribuert Filer Skript Mer?

Programmeringsspråket C Del 3

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

Velkommen til INF2100

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3

Oversikt. Informatikk. INF1000: Grunnkurs i objektorientert programmering. Utenom INF1000 Informasjon & hjelp

Dagens tema. Perl: Mer om regulære uttrykk Filer Lister og tabeller Kompilering og interpretering (kapittel ) IN 211 Programmeringsspråk

Jentetreff INF1000 Debugging i Java

Programmeringsspråket C Del 3

Shellprogrammer og -variabler

1,r H øgs kolen i Østfol d

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

EKSAMEN Innføring i Linux

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

Dagens tema: Koding. Høynivåprogrammering, kommentarer og stil Kompilering av store programsystemer Prosjekter, samarbeide og versjoner

Dagens tema: Koding. Programmering i høynivåspråk. Navn. Mitt forslag:

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

Bakgrunnen for INF2100. Velkommen til INF2100. Prosjektet. Hva gjør en kompilator?

Løsningsforslag til eksamen 24. november 2015

INF1000 : Forelesning 1 (del 2)

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

INF1000 : Forelesning 4

Forelesning inf Java 1

Emnekode: SO135A Dato: onsdag 25. feb. I Antall oppgaver: 4

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

IN 147 Program og maskinvare

Filer og kataloger, prosesser og jobber

Videregående shellprogrammering i Linux

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

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

INF Ekstrainnlevering

Brukerveiledning for ArkN4

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

Betinget eksekvering og logiske tester i shell

Forelesning inf Java 4

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

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000

Oppgave 1 - Linux kommandolinje (%)

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

Øving 0 - Xcode TDT4102

Linux-programmer som bruker regulæruttrykk: grep, sed, awk

Eksamensinformasjon. Prosesser. Prosesser. Eksamensoppgave. Operativsystemer (DATS/ITPE2500) Bokmål 06. juni 2017 kl

Repetisjon Novice Videregående Python PDF

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

Filer i Linux og Bourne-again shell

Hvordan en prosessor arbeider, del 1

INF1000 undervisningen INF 1000 høsten 2011 Uke september

INF 1000 høsten 2011 Uke september

Forelesning inf Java 1

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

Videregående shellprogrammering

Antall sider:5 (Inkludert denne) Alle skrevne og trykte hjelpemidler samt kalkulator

løsningsforslag-uke5.txt

Håndtering av filer og kataloger

GUI («Graphical User Interface»)

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

Håndtering av tekstfiler

INF Obligatorisk innlevering 7

Enkel lesing og skriving i Java

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

Generelt om shell / skall

Leksjon 7. Filer og unntak

Operativsystemer og nettverk Løsningsforslag til eksamen Oppgave 1. a) Linux-kommando: java Beregn & b) Shellprogram:

Bygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv

Hangman. Steg 1: Velg et ord. Steg 2: Gjett en bokstav. Sjekkliste. Sjekkliste. Introduksjon

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

Transkript:

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

Trenger vi kommandovinduer i dag? Svaret er nei for de fleste brukerne, men ikke for ekspertene. Ofte går det fortere å bruke kommandoer Kommandoer er utrolig mye kraftigere enn menyer Men dessverre: Det tar lenger tid å lære seg å bruke kommandoer Linux-kommandoene har ofte rare navn Bruken av parametre kan variere ganske mye INF1010 fellesundervisning 21.1.2015 2

Et eksempel Jeg har en stor PDF-fil. Jeg må plukke ut side 1 2 til filen b-1.pdf, side 3 4 til b-2.pdf osv. $ for N in seq 1 1128 > do > A= expr 2 \* $N - 1 > B= expr 2 \* $N > pdfjam -o b-$n.pdf brev-des-2014.pdf $A-$B > done INF1010 fellesundervisning 21.1.2015 3

Diverse kommandotolkere En kommandotolker («shell») leser brukerens kommandoer og starter prosesser som utfører de programmene brukeren angir. I Linux kan alle ganske enkelt lage sin egen kommandotolker; de vanligste er: /bin/sh («Bourne shell» etter Stephen Bourne) fra 1977 finnes i alle Unix-er. bash («Bourne-again shell» fra GNU-prosjektet) er en utvidelse av sh og mest brukt i dag. ifish lages av alle som tar INF1060. INF1010 fellesundervisning 21.1.2015 4

En Unix-prosess standard in standard out standard error status INF1010 fellesundervisning 21.1.2015 5

En Unix-prosess? INF1010 fellesundervisning 21.1.2015 6

Statusverdien Den sier hvordan kjøringen gikk: 0 OK 1 255 Feil $ javac Hallo.java $ echo $? 0 INF1010 fellesundervisning 21.1.2015 7

a && b Kjør a, og, hvis den gikk bra (dvs ga status 0), kjør b. $ javac Hallo.java && java Hallo Da trengs bare for å kompilere og kjøre på nytt. INF1010 fellesundervisning 21.1.2015 8

Egne programmer #! /bin/sh j javac "$1".java && java "$1" Vi må angi at dette er et kjørbart program: $ chmod a+x j $ mv j ~/bin (Dette behøver bare gjøres én gang.) $ j Hallo javac Hallo.java java Hallo Hallo, alle sammen! INF1010 fellesundervisning 21.1.2015 9

Omdirigering av filer? INF1010 fellesundervisning 21.1.2015 10

Anta at vi har et program som starter med å lese data som brukeren gir: $ java MittProgram Hva heter du? Arne Aas Hvilket år er du født? 1990 Hvilken by er du født i? Oslo : Programmet har en intrikat feil så vi må kjøre det mange ganger. INF1010 fellesundervisning 21.1.2015 11

Lag fil med dataene du oppgir: Arne Aas 1990 Oslo : data.txt Nå kan du omdirigere standard input til å komme fra filen: $ java MittProgram <data.txt Hva heter du? Hvilket år er du født? Hvilken by er du født i? : INF1010 fellesundervisning 21.1.2015 12

Du kan også omdirigere utskriften som går til standard output om du vil ta vare på den: $ java MittProgram >resultat.txt? INF1010 fellesundervisning 21.1.2015 13

Rør Ekstra moro blir det når vi kan kople standard input fra én prosess til standard output for en annen med et rør («pipe»). INF1010 fellesundervisning 21.1.2015 14

Når vi skal bruke rør, er det nyttig å merke seg at de aller fleste Unix-programmer er laget etter følgende konvensjon: Først kommer opsjonene (-xxx) Så kommer filnavnene Hvis ingen filnavn, leser programmet fra standard input. INF1010 fellesundervisning 21.1.2015 15

Hvor mange Java-filer har jeg i denne mappen? $ ls *.java wc -l 322 (Programmet wc teller antall linjer, ord og byte; wc -l viser bare antall linjer.) Send utskriften fra et program rett til skriveren: $ java MittProg print -pipe INF1010 fellesundervisning 21.1.2015 16

Andre nyttige programmer grep leter etter en gitt tekst i én eller flere filer. Bruker jeg «Exception» i disse Java-programmene? $ grep Exception *.java AlboCError.java:public class AlboCError extends RuntimeExcepti AlboC.java: } catch (IOException e) {} AlboC.java:catch (InterruptedException e) {} AlboC.java:catch (IOException e) { CharGenerator.java:} catch (FileNotFoundException e) { CharGenerator.java: } catch (IOException e) { CharGenerator.java: } catch (IOException e) { Code.java:} catch (FileNotFoundException e) { Log.java:} catch (FileNotFoundException e) { Scanner.java:} catch (NumberFormatException e) { $ grep Exception *.java wc -l 10 INF1010 fellesundervisning 21.1.2015 17

find leter etter filer i en mappe og alle undermapper; brukeren kan velge hva som skal gjøres med filen. Jeg har en fil som heter foredrag-1010.pdf ett eller annet sted; hvor? $ find ~ -name foredrag-1010.pdf -print Hvilke Java-filer har jeg lagret totalt? Skriv en sortert liste. $ find ~ -name "*.java" -print sort print -pipe INF1010 fellesundervisning 21.1.2015 18

Hva mer? Det er mye mer: Bash er et komplett programmeringsspråk med variabler, if-tester, while-løkker og metoder. Det finnes mange flere nyttige småprogrammer. Hvor kan man da lære om dette? http://tldp.org/howto/ Bash-Prog-Intro-HOWTO.html er en grei innføring i bruk av Bash. man bash gir den fulle beskrivelsen av Bash; den er oversiktlig men ikke lettlest. INF1010 fellesundervisning 21.1.2015 19