Videregående shellprogrammering i Linux
|
|
- Joakim Madsen
- 8 år siden
- Visninger:
Transkript
1 Videregående shellprogrammering i Linux
2 Innhold Variabeldeklarasjoner Manipulering av tekststrenger / variable Tomme (null)strenger og defaultverdier Tabeller / arrays i shellprogrammer Shellfunksjoner og subshell Flere iterative mekanismer Flere mekanismer for seleksjon og gruppering Tidsbestemt kjøring av shellprogrammer Debugging og testing
3 Deklarasjon av variable Vanlige variable lagrer tegnstrenger Opprettes av shellet første gang de refereres til: navn=jan unset kan brukes til å fjerne innholdet i en variabel declare kan opprette variable med bestemte egenskaper: declare i tall declare r Pi=3.14 declare l navn declare u navn declare x navn heltallsvariabel read-only(!) variabel alltid lower-case alltid upper-case eksporteres til subshell
4 Innebygde operasjoner på tegnstrenger ${#Navn} Antall tegn ${Navn:3} Substreng fra 4. tegn ${Navn:2:3} Substreng fra 3. til 5. tegn ${Navn/en/an} Bytt første forekomst av en med an ${Navn//en/an} Bytt alle forekomster av en med an ${Navn//en/} Fjern alle forekomster av en ${Navn/#en/an} Bytt bare hvis en er i starten på streng ${Navn/%en/an} Bytt bare hvis en er i slutten av streng
5 Eksempel:.html >.htm #!/bin/bash for i in *.html do if [ f ${i/%html/htm} ] then echo "${i/%html/htm} already exists" else mv $i ${i/%html/htm} fi done
6 Fjerning av deler av en tegnstreng # Fjern korteste match fra starten av streng ## Fjern lengste match fra starten av streng % Fjern korteste match fra slutten på streng %% Fjern lengste match fra slutten på streng foo="this is a test" ${foo#t*is} is a test ${foo##t*is} ${foo%t*st} ${foo%%t*st} a test this is a
7 Ny utgave av.html >.htm #!/bin/bash for i in *.html do if [ f ${i%l} ] then echo "${i%l} already exists" else mv $i ${i%l} fi done
8 Tomme (null)strenger og defaultverdier Gir mulighet til å bruke en alternativ verdi hvis en variabel er tom (alternativt ikke-tom) Fire operatorer: : Bruk default verdi hvis streng er null := Bruk og sett default verdi hvis null :+ Bruk default verdi hvis streng ikke er null :? Skriv ut (feil)melding hvis streng er null
9 Eksempler fra kommandolinjen navn="" echo n ${navn: Jan}; echo $navn Jan echo ${navn:=jan}; echo $navn JanJan echo ${navn:+christian} Christian Navn="" echo ${navn:+christian} echo ${navn:?"navnet er ikke satt"} bash: navn: Navnet er ikke satt
10 Default verdier for parametre i shellprogrammer #!/bin/bash INFILE=${1: "infile"} OUTFILE=${2: "outfile"} sort $INFILE > $OUTFILE
11 Tabeller / arrays i shell Kan opprettes på flere måter: declare a array1 array2[3]=jan array3=( Jan Christian Robert Beathe ) array4=( [1]=Christian [0]=Jan [2]=Robert ) read a array5 array6=( $(ls) ) base_64=( {a..z} {A..Z} {0..9} ) Bruker {} for å hente ut innholdet i enkeltelementene i en tabell: echo ${array4[2]} echo ${#array4[2]}
12 Gjennomgang av hele tabeller #!/bin/bash declare a array1=( En To Tre Fire Fem ) echo ${array1[*]} # Hele tabellen skrives echo ${array1[@]} # ut på en linje echo ${array1[@]:0:5} echo ${#array1[@]} # Antall elementer # Formaterer utskrift, ett element per linje printf "%s\n" "${array1[@]}"
13 Gjennomgang av tabeller med løkker #!/bin/bash declare a array1=( En To Tre Fire Fem ) for a in ${array1[@]} do echo "$a (${#a} tegn)" done i=0 while [[ i lt ${#array1[@]} ]] do echo "array1[$i] = ${array1[$i]}" i=`expr $i + 1` done
14 Alle filer med file mode 755 i en katalog #!/bin/bash # Legger alle vanlige filer i en array temp=( $(find $1 maxdepth 1 type f) ) # Skriver ut navnet på filer med mode 755 for i in "${temp[@]}" do if ls l $i grep q "\ rwxr\ xr\ x" then # Fjerner path før selve filnavnet echo ${i##*/} fi done
15 Shellfunksjoner En funksjon i shell samler flere Linux kommandoer i en gruppe, slik at de senere kan brukes bare ved å referere til gruppens navn En shellfunksjon kjøres som en vanlig kommando i shellet, men starter ikke noen ny prosess Anvendelsesområder: Lage egne shortcuts for lengre, kompliserte kommandoer (se også alias under man builtins), slike legges ofte i oppstartfilen.bash_profile Gjenbruke kode i shellprogrammer / modularisere shellkode
16 Shellfunksjoner: Syntaks [function] funksjonsnavn () { kommando kommando... } Nøkkelordet function er valgfritt / kan sløyfes Funksjoner kan ta argumenter på kommando-linjen akkurat som shellprogrammer: Referanser til $1 $2 etc. inne i funksjonen er da lokale til funksjonen For å se koden til en funksjon: type funksjonsnavn
17 Eksempler: Shortcuts function lsext() { # Listing of files with given extension EXT=$1 ls l grep "^.*\.$EXT$" } function rpass() { # Create random strong password with # given lenght (default 12) LENGTH=${1: 12} cat /dev/urandom tr cd '[:graph:]' \ head c $LENGTH echo }
18 Eksempel: Gjenbruk av kode function stag () { echo "<$1>" } function etag () { echo "</$1>" } function tagtxt () { stag $1 echo $2 etag $1 } stag HTML stag HEAD tagtxt TITLE "Jan sin\ hjemmeside" etag HEAD stag BODY tagtxt H1 "Get lost" tagtxt P "The internet\ is full, go away" etag BODY etag HTML
19 Subshell Alle eksterne kommandoer som startes fra shellet genererer en ny prosess. Shellet har en del kommandoer som ikke starter en ny prosess, men som er innebygget i shellet og ligger resident i RAM for raskere utføring, se man builtins. Hvis bruker starter et shellprogram fra kommandolinjen, vil dette kjøre i en ny shellprosess et subshell og ikke i det opprinnelige login-shellet (sjekk $BASH_SUBSHELL) Bruk evt. source for å kjøre et program i opprinnelig shell En liste av kommandoer mellom paranteser vil kjøre i et subshell: ( command1; command2; command3;... ) Merk at shellfunksjoner ikke kjører i subshell
20 Overføring av variabelverdier til subshell Vanlige shellvariable eksisterer bare i det shellet der de er opprettet / deklarert Variable som opprettes i et subshell er ikke synlige for forelderprosessen/-shellet Variable fra foreldershellet kan eksporteres til subshell, som en kopi med samme verdi: export variabelnavn declare x variabelnavn Endringer av eksportert variabel gjort i subshellet vil ikke være synlige i foreldershell kjør i stedet shellprogram med source hvis dette er ønskelig
21 Overføring av shellfunksjoner til subshell Bourne Again Shell støtter også overføring av kode i shellfunksjoner til subshell: export f funksjonsnavn Det opprettes en shellvariabel som inneholder hele teksten som er koden til funksjonen Denne variabelen eksporteres slik at den blir synlig for subshellene Eksporterte funksjoner kan sees i listen over alle shellvariable som eksporteres: env eller printenv
22 Eksempel: Shellfunksjoner og subshell add () { echo `expr $1 + $2`; return 0; } export f add cat test_add #!/bin/bash add 4 6 exit 0./test_add 10
23 Flere iterative strukturer Har sett for og while i Bourne shell Andre mekanismer for iterasjon (og rekursjon): until samme syntaks som while, men løkken går så lenge det som testes på er false xargs Utfører en og samme kommando på f.eks. alle filene i en liste med filnavn find Kan utføre kommandoer på alle filer i et helt katalogtre
24 xargs Leser en liste med items (filnavn) fra standard input Utfører en gitt kommando en gang med hvert «item» som argument til kommandoen Eksempel: Lage kopier av alle html-filer i stående katalog: ls *.html xargs I{} cp {} old{} Se man xargs for mer info.
25 find find [opsjoner] katalog [uttrykk] find går gjennom alle filene i hele katalogtreet med rot i katalog uttrykk er en beskrivelse av hva som evt. skal gjøres med filene find har svært mange opsjoner som kan brukes til å endre funksjonalitet og f.eks. bestemme hvilke filer som skal behandles Eksempel: Sette tilgangskode på alle html-filer i hele katalogtreet med rot i stående katalog: find. name \*.html exec chmod 755 {} \;
26 find + xargs = sant Kan lage svært effektive (vær forsiktig...) kommandoer ved å la xargs jobbe på fillistene som genereres av find Fjerne alle filer under /tmp som heter core: find /tmp name core type f print \ xargs /bin/rm f Finne navnet på alle Java-filer i et helt katalogtre som ikke bruker Javas standard I/O-bibliotek: find java name \*.java print xargs\ grep vl "import java\.io\.\*;"
27 Mekanismer for seleksjon og gruppering ; Skilletegn mellom kommandoer på samme linje {} Gruppering av kommandoer () Gruppering av kommandoer i et subshell `` Kommandosubstitusjon && Utfør neste kommando bare hvis forrige OK Utfør neste kommando bare hvis forrige ikke OK && og er egentlig bare «forkortede if-tester»
28 && og : Betinget eksekvering grep q Levon filnavn && echo ": )" if grep q Levon filnavn then echo ": )" fi grep q Levon filnavn echo ": (" if!grep q Levon filnavn then echo ": (" fi
29 Komprimering av kode med && og if [ f $filnavn ] then rm filnavn else echo "No regular file $filnavn found" exit 1 fi [ f $filnavn ] && rm $filnavn { echo "No\ regular file $filnavn found"; exit 1; }
30 Tidsbestemt kjøring av kommandoer og shellprogrammer sleep: Vent en bestemt tid før neste kommando { sleep 2h; sort BIGfile > SORTEDfile } & at: Start utføring av shellscript på et bestemt tidspunkt at 4:30 am tomorrow < shellprogram at now + 3 days < shellprogram at 11:00am Monday < shellprogram at 5:00pm Feb < shellprogram atrm [jobnr] fjerne utførelse fra «ventekøen»
31 Et shellprogram som kjører seg selv en gang i uken #!/bin/bash if who grep q janh then echo "Har ikke du fått sparken ennå?" fi cat $0 at now + 1 week
32 Debugging og testing av shellprogrammer Shellprogrammering krever prøving og feiling Feilmeldinger fra shell er sparsomme og kryptiske Test hver ny linje interaktivt Bruk f.eks. emacs til testing av linjene etterhvert som de skrives Debuggingsopsjoner (se også man bash): bash v program Skriver ut kodelinjene etterhvert som de utføres bash x program Skriver ut kommandoer som utføres og verdien av variable som brukes
Videregående shellprogrammering
Videregående shellprogrammering Innhold Input og output til og fra løkker Tabeller / arrays Mer om håndtering av tekststrenger Tomme strenger og defaultverdier * Shellfunksjoner Håndtering av signaler
DetaljerLynkurs i shellprogrammering under Linux
Lynkurs i shellprogrammering under Linux Interaktiv bruk av shell Shell/skall er en applikasjon som lar bruker taste inn tekstlige kommandoer til Linux en og en linje om gangen (leser linjer fra stdin).
DetaljerShellprogrammer og -variabler
Shellprogrammer og -variabler Innhold Hva er et shellprogram? Kjøring av shellprogrammer Feil, feilsøking og feilmeldinger Input og output Shellvariable Kommandosubstitusjon Tekststrenger Tallregning Parametre
DetaljerBetinget eksekvering og logiske tester i shell
Betinget eksekvering og logiske tester i shell Betinget eksekvering *? Programmet utfører operasjon(er) bare hvis en logisk betingelse er sann Bash tilbyr to kontrollstrukturer for å kunne gjøre betinget
DetaljerOversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.
Oversikt UNIX shell 1 UNIX shell Beskrivelse Bash 2 Kommandolinje som brukergrensesnitt 3 Input og output 4 Bash builtins 5 Linux utilities Lars Vidar Magnusson () Forelesning i Operativsystemer 30.08.2011
DetaljerHøgskoleni Østfold. Ny/utsatt EKSAMEN
Høgskoleni Østfold Ny/utsatt EKSAMEN Emnekode: ITF22514 Emne: Operativsystemer og nettverk Dato: 8. januar 2016 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærere: Jan Høiberg, Tore
DetaljerNyttige Linux-kommandoer. Hvordan du kan jobbe mer effektivt Dag Langmyhr
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
DetaljerOperativsystemer og nettverk
Løsningsforslag til eksamen i Operativsystemer og nettverk 04.06.2015 Oppgave 1: Generelt om Linux a) Det grunnleggende brukergrensesnittet i Linux er et tastaturbasert CUI (Commandline User Interface),
DetaljerEKSAMEN. Dato: 7. desember 2016 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF22515 Emne: Operativsystemer med Linux Dato: 7. desember 2016 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærere: Jan Høiberg, Tore Petter Engen Om eksamensoppgavene:
DetaljerHåndtering av filer og kataloger
Håndtering av filer og kataloger Filsystem-kommandoer i Linux Navigere i katalogstrukturen Lage, slette, kopiere, flytte og endre navn på filer og kataloger Lage linker til filer Finne/lokalisere filer
DetaljerLinux-programmer som bruker regulæruttrykk: grep, sed, awk
Linux-programmer som bruker regulæruttrykk: grep, sed, awk grep * søking i tekstlige data grep [OPTIONS] REGEX [FILE...] Verktøy som finnes i alle Unix-lignende OS Leser en eller flere tekstfiler, eller
DetaljerShellscripting I. Innhold
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Shellscripting I Tor Halsan 19.08.2010 Lærestoffet er utviklet for faget LN199D Scripting av Servere Resymé: Leksjonen er første innføring
DetaljerHåndtering av filer og kataloger
Håndtering av filer og kataloger Fil- og katalognavn i Linux Filsystem-kommandoene bruker navn til å identifisere filer og kataloger Filnavn kan inneholde alle tegn untatt / og NULL-tegnet Lengde på filnavn
DetaljerFilterprogrammer og redirigering av I/O
Filterprogrammer og redirigering av I/O Linux filterprogrammer Mange kommandoer i Linux er tekstbaserte filtre Leser en strøm av tekst / tegn, linje for linje Gjør noe med ( filtrerer ) tekstlinjene Skriver
DetaljerFilterprogrammer og redirigering av I/O
Filterprogrammer og redirigering av I/O Linux filterprogrammer Mange kommandoer i Linux er tekstbaserte filtre Leser en strøm av tekst / tegn, linje for linje Gjør noe med ( filtrerer ) tekstlinjene Skriver
DetaljerOppgave 1 - Linux kommandolinje (%)
Løsningsforslag Eksamen høst 2017 Operativsystemer Oppgave 1 - Linux kommandolinje (%) a) pwd b) ps Oppgave 2 - Bash-scripting (%) a) ping -i 5 www.hin.no b) ping -c 1 www.hin.no ping -c 1 -t 1 www.hin.no
DetaljerGenerelt om shell / skall
Bourne-again Shell Generelt om shell / skall Kommandolinjebasert brukergrensesnitt Leser en og en linje med tekstlig input Inputlinjene er kommandoer som skal utføres eller programmer som skal startes
DetaljerEKSAMEN. Operativsystemer og nettverk
T EKSAMEN Emnekode: ITF22514 Dato: 1. desember 2014 Emne: Operativsystemer og nettverk Eksamenstid: kl 09.00 til kl 13.00 Hjelpemidler: Alle trykte og skrevne. Faglærer: Jan Høiberg Eksamensoppgaven: Oppgavesettet
DetaljerHØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Eksamensdato: 20. mai 2003 Varighet: 0900-1200 Fagnummer: LO247D Fagnavn: Praktisk Linux Klasse(r): FU Studiepoeng: 6 Faglærer(e): Geir Maribu,
DetaljerPrøve- EKSAMEN. Operativsystemer med Linux
T Prøve- EKSAMEN Emnekode: ITF22515 Dato: November 2015 Hjelpemidler: Alle trykte og skrevne. Emne: Operativsystemer med Linux Eksamenstid: Oppgavesettet er beregnet for en 4 timers eksamen Faglærere:
DetaljerNy EKSAMEN. Operativsystemer og nettverk
Ny EKSAMEN Emnekode: ITF22514 Dato: 4. juni 2015 Emne: Operativsystemer og nettverk Eksamenstid: kl 09.00 til kl 13.00 Hjelpemidler: Alle trykte og skrevne. Faglærere: Jan Høiberg og Tore Petter Engen
DetaljerOperativsystemer og nettverk Løsningsforslag til eksamen 01.12.2014. Oppgave 1. a) Linux-kommando: java Beregn & b) Shellprogram:
Operativsystemer og nettverk Løsningsforslag til eksamen 01.12.2014 Oppgave 1 a) Linux-kommando: java Beregn & b) Shellprogram: java Beregn & java Beregn Eventuelt, hvis man vil gjøre det med bare en linje
DetaljerLøsningsforslag til eksamen 24. november 2015
Operativsystemer med Linux Løsningsforslag til eksamen 24. november 2015 Oppgave 1 a) Et OS deler tiden inn i små deler, typisk et hundredels sekund, og fordeler slike korte timeslices til alle prossene
Detaljer1,r H øgs kolen i Østfol d
1,r H øgs kolen i Østfol d EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 2. juni 2010 Eksamenstid: kl. 9.00 til kl. 13.00 Hjelpemidler: Faglærer: 1. Læreboken "A Practical Guide to Red Hat Linux"
DetaljerOppgave 1 - Java og prosesser (20%)
Prøveeksamen våren 2012 Operativsystemer Les nøye gjennom oppgavene før du begynner og pass på å besvare alle spørsmålene. Alle trykte og skrevne hjelpemidler er tillatt. Sett gjerne egne forutsetninger
DetaljerOversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays
Oversikt C programmering 1 C programmering Introduksjon Kildekode Kompilering Hello world Hello world med argumenter 2 Funksjoner 3 Datatyper 4 Pekere og arrays 5 Kontrollstrukturer Lars Vidar Magnusson
DetaljerEKSAMEN. Dato: 24. november 2015 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF22515 Emne: Operativsystemer med Linux Dato: 24. november 2015 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærere: Jan Høiberg, Tore Petter Engen Om eksamensoppgavene:
DetaljerEKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.
EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 12. desember 2007 Eksamenstid: kl. 9.00 til kl. 13.00 Hjelpemidler: 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre
DetaljerProsesstabeller (PCB - Prosess Control Block) Se på PD: kommandoene ps og top Bakgrunnsprosesser Opprettelse av prosesser:
Prosesser i Prosesstabeller (PCB - Prosess Control Block) Se på PD: kommandoene ps og top Bakgrunns Opprettelse av : fork og exec pid og ppid Foreldre, barn og barnebarn Utførelse av kommando i Eksempler
DetaljerØvingsforelesning 3 Python (TDT4110)
Øvingsforelesning 3 Python (TDT4110) For og While-løkker Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av øving 1 Programmering for Øving 3 2 Studasser og Piazza Studasser er der for å hjelpe
DetaljerØvingsforelesning 5 Python (TDT4110)
Øvingsforelesning 5 Python (TDT4110) Repetisjon av løkker og funksjoner Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av Øving 3 Repetisjon 2 Praktisk info Prosjekter i PyCharm må startes med
DetaljerProsedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19
Prosedyrer Lars Vidar Magnusson October 26, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 26, 2011 1 / 19 Repetisjon om triggere og prosedyrer Triggere og prosedyrer ligner på hverandre
DetaljerProgrammering i C++ Løsningsforslag Eksamen høsten 2005
Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det
DetaljerUNIX/Linux brukerveiledning
Dette bygger på tre artikler i RUN-NYTT 1991 og 1992: UNIX/Linux brukerveiledning UNIX og Linux. En kort oversikt over noen kommandoer Her følger en oversikt over UNIX- og Linuxkommandoer for ulike oppgaver
DetaljerØvingsforelesning 5 Python (TDT4110)
Øvingsforelesning 5 Python (TDT4110) Repetisjon av løkker og funksjoner Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av Øving 3 Repetisjon 2 Praktisk info Prosjekter i PyCharm må startes med
DetaljerEKSAMEN. Operativsystemer. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.
EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 9. desember 2009 Eksamenstid: kl. 9.00 til kl. 13.00 Hjelpemidler: 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre
DetaljerINF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen
INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og
DetaljerDagens program. Operativsystemer Prosesser og systemkall i UNIX Hente prosessens nummer Starte prosesser Vente på prosesser Utføre programmer
Dagens program Operativsystemer Prosesser og systemkall i UNIX Hente prosessens nummer Starte prosesser Vente på prosesser Utføre programmer Nyttige forklaringer Sikker opprettelse av nye prosesser Hva
DetaljerDagens tema. Perl: Mer om regulære uttrykk Filer Lister og tabeller Kompilering og interpretering (kapittel ) IN 211 Programmeringsspråk
Dagens tema Perl: Mer om regulære uttrykk Filer Lister og tabeller Kompilering og interpretering (kapittel 2.2 2.2.2) Ark 1 av 24 Forelesning 24.09.2001 Regulære uttrykk i Perl Et regulært uttrykk er et
DetaljerPython: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre
Python: Løkker TDT4110 IT Grunnkurs Professor Guttorm Sindre Denne uka Vi trenger å Støttes av Hente data fra bruker Vise data til bruker Lagre data i minnet for bruk videre i programmet Fra tastatur:
DetaljerDagens tema: 12 gode råd for en kompilatorskriver
Dagens tema: 12 gode råd for en kompilatorskriver Hvordan sjekke navn? Testutskrifter 12 gode råd Hva skal gjøres med navn? Sjekking av navn En kompilator må også sjekke riktig navnebruk: Det må ikke forekomme
DetaljerMetoder med parametre, løkker og arrayer
Metoder med parametre, løkker og arrayer Løse problemer med programmering INF1000, uke3 Ragnhild Kobro Runde METODER MED PARAMETRE Statiske void-metoder med parametre Den typen metoder vi så på forrige
DetaljerFinne ut om en løsning er helt riktig og korrigere ved behov
Finne ut om en løsning er helt riktig og korrigere ved behov Finurlige feil og debugging av kode IN1000, uke5 Geir Kjetil Sandve Oppgave (Lett modifisert fra eksamen 2014) Skriv en funksjon Dersom parameteren
DetaljerForkurs INF1010. Dag 3. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 15.
Forkurs INF1010 Dag 3 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Gard Inge Rosvold (gardir@ifi.uio.no) Institutt for Informatikk, 15. januar 2016 Forkurs INF1010 - dag 3 Strenger 2 Forkurs INF1010 - dag
DetaljerLISP PVV-kurs 25. oktober 2012
LISP PVV-kurs 25. oktober 2012 Hva er Lisp? Grunnleggende konsepter Variabler (Pause) Lister Løkker Funksjoner Oversikt over kurset Først: Få tak i en implementasjon av Common Lisp Mange implementasjoner
DetaljerOppgaver til forkurs i informatikk dag 2
FAGUTVALGET VED INFORMATIKK Oppgaver til forkurs i informatikk dag 2 Emacs Gå inn i «forkurs» katalogen fra i går. Hvis du ikke har denne katalogen må du opprette den nå med mkdir. Åpne så Emacs med kommandoen
DetaljerDagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn?
Dagens tema: 12 gode råd for en kompilatorskriver Hva skal gjøres med navn? Sjekking av navn Hvordan sjekke navn? Testutskrifter 12 gode råd En kompilator må også sjekke riktig navnebruk: Det må ikke forekomme
DetaljerMattespill Nybegynner Python PDF
Mattespill Nybegynner Python PDF Introduksjon I denne leksjonen vil vi se litt nærmere på hvordan Python jobber med tall, og vi vil lage et enkelt mattespill. Vi vil også se hvordan vi kan gjøre ting tilfeldige.
DetaljerLøkker og arrayer. Løse problemer med programmering. INF1000, uke3 Geir Kjetil Sandve
Løkker og arrayer Løse problemer med programmering INF1000, uke3 Geir Kjetil Sandve Hva vi har lært så langt Variabler og uttrykk Beslutninger Kontrollflyt og feilmeldinger Metoder og parametre Fokus i
DetaljerProgrammering Høst 2017
Programmering Høst 2017 Tommy Abelsen Ingeniørfag - Data Innledning Dette er et dokument med litt informasjon og eksempler om kontrollstrukturer, samt oppgaver til forskjellige kontrollstrukturer. Spør
Detaljer$ls -l $grep -i Olsen adresseliste.txt less #!/bin/sh $echo `ls` $chmod 755. Praktisk Linux. Grunnleggende skall kommandoer. Irene Ludvigsen Husa
$ls -l $grep -i Olsen adresseliste.txt less #!/bin/sh $echo `ls` $chmod 755 Praktisk Linux Grunnleggende skall kommandoer Irene Ludvigsen Husa Hva er UNIX / Linux? Unix - En gruppe operativsystem som er
DetaljerDel 1 En oversikt over C-programmering
Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av
DetaljerINF1000 (Uke 5) Mer om løkker, arrayer og metoder
INF1000 (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Praktisk informasjon Når disse
DetaljerRepetisjon Novice Videregående Python PDF
Repetisjon Novice Videregående Python PDF Introduksjon I denne oppgaven skal vi repetere litt Python-syntaks. Hele dette kurset er for de som har programmert Python før. Dersom ikke har mye erfaring med
Detaljer}?> <!DOCTYPE... <html xmlns="http://www.w3.org/1999/xhtml"> <head>... </head> <body> <p>nå skal vi printe hallo:</p> <?php //funksjonskall
Hver gang funksjonen printhallo kalles utføres instruksjonene spesifisert i den. [Kurssidene] [ ABI - fagsider bibin ] //funksjonskall printhallo(); //enda en gang printhallo(); Michael Preminger (michaelp@hio.no)
DetaljerLinux distribusjoner
Linux distribusjoner http://en.wikipedia.org/wiki/linux_distribution Ubuntu (kommer fra debian) Fedora (kommer fra Red Hat) CentOs (kommer fra Red Hat Enteprise) Hva er forskjellene? Kommersiell, ikke
DetaljerKapittel 1 En oversikt over C-språket
Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske
DetaljerTDT Øvingsforelesning 1. Tuesday, August 28, 12
TDT 4165 Øvingsforelesning 1 Øvingsforelesningene Eksempelbaserte Sikter på å være på et snillere nivå enn øvingene og forelesningene Interaktive - spørsmål og dialog oppfordres Matnyttige- vil ta for
DetaljerDagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.
Dagens tema Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet
DetaljerEKSAMEN. Dato: 8. desember 2017 Eksamenstid: 09:00 13:00
EKSAMEN Emnekode: ITF22515 Emne: Operativsystemer med Linux Dato: 8. desember 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærere: Jan Høiberg, Tore Petter Engen Om eksamensoppgavene:
DetaljerMAT1030 Diskret Matematikk
MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 MAT1030 Diskret Matematikk
DetaljerITGK - H2010, Matlab. Repetisjon
1 ITGK - H2010, Matlab Repetisjon 2 Variabler og tabeller Variabler brukes til å ta vare på/lagre resultater Datamaskinen setter av plass i minne for hver variabel En flyttallsvariabel tar 8 bytes i minne
DetaljerRåd nr 1: Start nå! Det tar typisk timer å programmere Del 1 om man ikke har gjort slikt før. Dagens tema:
Dagens tema: 12 gode råd når man rammerer en kompilator Råd nr 1: Start nå! Det tar typisk 10 50 timer å rammere Del 1 om man ikke har gjort slikt før. Hvor mange timer per dag blir det? Dag Langmyhr,Ifi,UiO:
DetaljerInnhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java
INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:
DetaljerI denne oppgaven skal vi repetere litt Python-syntaks, det er en god blanding av alle tingene du har lært i Python til nå.
Repetisjon Skrevet av: Ole Kristian Pedersen, Kodeklubben Trondheim Kurs: Python Tema: Tekstbasert Fag: Programmering Klassetrinn: 8.-10. klasse Introduksjon I denne oppgaven skal vi repetere litt Python-syntaks,
DetaljerRepetisjon: operatorene ++ og -- Java 5. Nøtt. Oppgave 1 (fra forrige gang) 0 udefinert udefinert. Alternativ 1 Prefiks-operator
Litt mer om løkker Arrayer le Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i slo Java Repetisjon: operatorene ++ og -- Instruksjon i = i + i = i - Alternativ Prefiks-operator
DetaljerEksamensinformasjon. Linux kommandolinje. Linux kommandolinje. Eksamensinformasjon. Fakultet: Teknologi, kunst og design. Tid: 3 t.
Eksamensinformasjon Eksamensinformasjon Fakultet: Teknologi, kunst og design Utdanning: Teknologiske fag Emnenavn: Operativsystemer Emnekode: DATS/ITPE2500 (Kont) Dato: 4.august-2017 Tid: 3 t. Tillatte
DetaljerLøse reelle problemer
Løse reelle problemer Løse problemer med data fra fil, samt litt mer om funksjoner IN1000, uke6 Geir Kjetil Sandve Mål for uken Få enda mer trening i hvordan bruke løkker, samlinger og beslutninger for
DetaljerMAT1030 Plenumsregning 1
MAT1030 Plenumsregning 1 Kapittel 1 Mathias Barra - 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 Velkommen til plenumsregning for MAT1030 Fredager 12:15 14:00 Vi vil gjennomgå utvalgte
DetaljerEKSAMEN. Om eksamensoppgavene. Vekting av oppgavene. Emnekode og -navn: ITF22515 Operativsystemer med Linux. Dato go tid: 7.12.
Om eksamensoppgavene EKSAMEN Emnekode og -navn: ITF22515 Operativsystemer med Linux Dato go tid: 7.12.18, 4 timer Fagansvarlig: Jan Høiberg Tillatte hjelpemidler: Alle skriftlige hjelpemidler er tillatt
DetaljerBrukerveiledning for ArkN4
Brukerveiledning for ArkN4 Brukerveiledningen er delt inn i 3 deler: 1. Konfigurasjon av ArkN4 2. Kjøre ArkN4 3. Opprette ny database Eksemplene i dette kapitlet viser hvordan man velger de forskjellige
DetaljerPython: Strenger 3. utgave: Kapittel 8
Python: Strenger 3. utgave: Kapittel 8 TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Forstå Hva strenger er Grunnleggende operasjoner på strenger Indeksering av tegn i strenger,
DetaljerPlenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode
Plenumsregning 1 Kapittel 1 Roger Antonsen - 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang av ukeoppgaver Gjennomgang av eksempler fra boka Litt repetisjon
DetaljerTDT4165 PROGRAMMING LANGUAGES. Exercise 01 Introduksjon til Oz
TDT4165 PROGRAMMING LANGUAGES Fall 2012 Exercise 01 Introduksjon til Oz Denne øvingen vil gjøre deg kjent med Emacs og Mozart. Du må kunne bruke disse verktøyene for å gjøre resten av øvingene. Mozart
DetaljerBakgrunnen for INF2100. Velkommen til INF2100. Prosjektet. Hva gjør en kompilator?
Kursopplegg Velkommen til INF2100 Bakgrunnen Bakgrunnen for INF2100 Jeg er Dag Langmyhr (dag@ifi.uio.no). Dagens tema: Hva går kurset ut på? Bakgrunn for kurset Hvordan gjennomføres kurset? Hvordan får
DetaljerProgrammeringsspråket C Del 3
Programmeringsspråket C Del 3 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen malloc
DetaljerEKSAMEN. Operativsystemer. Dato: 10. desember 2008 Eksamenstid: kl til kl
EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 10. desember 2008 Eksamenstid: kl. 9.00 til kl. 13.00 Hjelpemidler: 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre
DetaljerBygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv
Bygg et Hus Introduksjon I denne leksjonen vil vi se litt på hvordan vi kan få en robot til å bygge et hus for oss. Underveis vil vi lære hvordan vi kan bruke løkker og funksjoner for å gjenta ting som
DetaljerTDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger. - 3rd edition: Kapittel 8. Professor Alf Inge Wang
1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Mer om strenger - 3rd edition: Kapittel 8 Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære om Pensum Grunnleggende operasjoner på strenger Å skive/slice
DetaljerProgrammeringsspråket C Del 3
Programmeringsspråket C Del 3 Michael Welzl E-mail: michawe@ifi.uio.no 8/25/10 inf1060 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen
DetaljerTDT4105 Informasjonsteknologi grunnkurs Øvingsforelesning 2. Iver Dihle Skjervum Vit.ass. ITGK
1 TDT4105 Informasjonsteknologi grunnkurs Øvingsforelesning 2 Iver Dihle Skjervum Vit.ass. ITGK 2 Program Praktisk informasjon Kollokvie If / else og logiske utrykk Funksjoner Formatert utskrift Lage et
DetaljerUtvikling av dynamiske nettsteder med PHP og databaser, høsten 2006
Page 1 Page 2 [Kurssidene] [ JBI] [ ] Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006 Vi kommer for det meste til å bruke while-løkker, men for-løkker anses viktige å kjenne til Michael
Detaljerif-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS
Løkker og if-tester Gløer Olav Langslet Sandvika VGS 29.08.2011 Informasjonsteknologi 2 Funksjoner, løkker og iftester Læreplansmål Eleven skal kunne programmere med enkle og indekserte variabler eller
DetaljerFiler i Linux og Bourne-again shell
Filer i Linux og Bourne-again shell Filbegrepet En fil * er en grunnleggende lagringsenhet i et OS Brukes for alle data som: Lagres utenfor RAM (primærminnet) På permanente media (sekundærminne) Definisjoner
DetaljerHva 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; }
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; Hva skrives ut på skjermen når følgende kode utføres? int [] tallene =
DetaljerINF Obligatorisk innlevering 5
INF1000 - Obligatorisk innlevering 5 Frist: 2. Oktober kl 22:00 Temaer denne uka: Klasser og objekter. I denne obligen skal du som nytt tema jobbe med klasser og objekter, i tillegg til å bruke det du
DetaljerPython: Intro til funksjoner. TDT4110 IT Grunnkurs Professor Guttorm Sindre
Python: Intro til funksjoner TDT4110 IT Grunnkurs Professor Guttorm Sindre Snart referansegruppemøte Viktig mulighet for å gi tilbakemelding på emnet Pensumbøker Forelesninger Øvingsforelesninger Veiledning
DetaljerTDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum
1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum 2 Læringsmål Mål Introduksjon til filer (som inndata og utdata) Å bruke
DetaljerHaskell. Kjetil Ørbekk. Programvareverkstedet, 19. mars 2009
Haskell Kjetil Ørbekk Programvareverkstedet, 19. mars 2009 Imperativ programmering Tilstand Operasjoner function uppercase(list) { x = 1 } while (x < length(list)) { uppercase(list[x]) x = x + 1 } Funksjonell
DetaljerFinne ut om en løsning er helt riktig og korrigere ved behov
Finne ut om en løsning er helt riktig og korrigere ved behov Finurlige feil og debugging av kode IN1000, uke5 Henrik H. Løvold Oppgave (Lett modifisert fra eksamen 2014) Skriv en funksjon Dersom parameteren
Detaljer<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.
Hver gang funksjonen printhallo kalles utføres instruksjonene spesifisert i den. [Kurssidene] [ ABI - fagsider bibin ] Webprogrammering høsten 2015 //funksjonskall printhallo(); //enda en gang printhallo();
Detaljer1. obligatoriske innlevering, høsten 2014
1. obligatoriske innlevering, høsten 2014 {Jonathan Feinberg, Joakim Sundnes} {jonathf,sundnes}@simula.no September 1, 2014 Innleveringskrav Det forventes at alle skriptene beskrevet i oppgavene blir skrevet.
DetaljerLøse reelle problemer
Løse reelle problemer Litt mer om løkker, prosedyrer, funksjoner, tekst og innlesing fra fil INF1000, uke4 Geir Kjetil Sandve 1 Tilbakeblikk Dere bør nå beherske det sentrale fra uke 1 og 2: Uttrykk, typer,
DetaljerFiler i Linux og Bourne-again shell
Filer i Linux og Bourne-again shell Filbegrepet En fil * er en grunnleggende lagringsenhet i et OS Brukes for alle data som: Lagres utenfor RAM (primærminnet) På permanente media (sekundærminne) To hovedklasser
Detaljeri=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
Forelesning inf - Java 4 Repetisjon: arrayer Tema: Løkker Arrayer Metoder Ole Christian Lingjærde,. september Deklarere og opprette array - eksempler: int[] a = new int[]; String[] a = new String[]; I
DetaljerForelesning inf Java 4
Forelesning inf1000 - Java 4 Tema: Løkker Arrayer Metoder Ole Christian Lingjærde, 12. september 2012 Ole Chr. Lingjærde Institutt for informatikk, 29. august 2012 1 Repetisjon: arrayer Deklarere og opprette
DetaljerForelesning inf Java 5
Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen
DetaljerEksamensinformasjon. Prosesser. Prosesser. Eksamensoppgave. Operativsystemer (DATS/ITPE2500) Bokmål 06. juni 2017 kl
Eksamensinformasjon Eksamensoppgave Operativsystemer (DATS/ITPE2500) Bokmål 06. juni 2017 kl. 9.00-12.00 Hjelpemidler: Ingen hjelpemidler er tillatt. Andre opplysninger: Les nøye gjennom oppgavene før
DetaljerUtførelse av programmer, metoder og synlighet av variabler i JSP
Utførelse av programmer, metoder og synlighet av variabler i JSP Av Alf Inge Wang 1. Utførelse av programmer Et dataprogram består oftest av en rekke programlinjer som gir instruksjoner til datamaskinen
DetaljerHendelser Apprentice ComputerCraft PDF
Helser Apprentice ComputerCraft PDF Introduksjon I denne leksjonen skal vi se nærmere på hvordan datamaskinene bruker såkalte helser for å reagere på ting som tastetrykk, museklikk og så videre. Etterhvert
Detaljer