Filterprogrammer og redirigering av I/O

Like dokumenter
Filterprogrammer og redirigering av I/O

Håndtering av tekstfiler

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

Håndtering av tekstfiler

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

Operativsystemer og nettverk

Lynkurs i shellprogrammering under Linux

Filer i Linux og Bourne-again shell

Håndtering av filer og kataloger

Oppgaver til forkurs i informatikk dag 1

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

Filer i Linux og Bourne-again shell

Shellscripting I. Innhold

Betinget eksekvering og logiske tester i shell

Linux distribusjoner

Håndtering av filer og kataloger

Høgskoleni Østfold. Ny/utsatt EKSAMEN

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

Kurset består av to relativt uavhengige deler. Foreleser: Hårek Haugerud, rom PS431

Løsningsforslag til eksamen 24. november 2015

1 Diverse linuxtips. Innhold

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

Videregående shellprogrammering

Filer og kataloger, prosesser og jobber

Filsystemet fra innsiden

faks: Avdeling for Ingeniørutdanning. Cart Aælersgate Oslo - tlf 05. iu@hio.no

1,r H øgs kolen i Østfol d

EKSAMEN. Operativsystemer og nettverk

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

Shellprogrammer og -variabler

Øving 0 - Xcode TDT4102

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

EKSAMEN Innføring i Linux

Brukermanual for Quizbuilder

1. obligatoriske innlevering, høsten 2014

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

Ny EKSAMEN. Operativsystemer og nettverk

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning Data

Definisjon av prosess

Operativsystemer og nettverk

Linux-kommandolinje for nybegynnere. PVV-kurs

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

Prøve- EKSAMEN. Operativsystemer med Linux

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

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

Oppgave 1 - Java og prosesser (20%)

Generelt om operativsystemer

Oppgaver til forkurs i informatikk dag 2

Først må vi få datamaskinen til å velge et tilfeldig ord, så la oss begynne. Lagre programmet ditt og kjør det. Hvilket ord skrives ut?

Oblig 4Hybelhus litt mer tips enn i oppgaven

EKSAMEN. Operativsystemer. Dato: 10. desember 2008 Eksamenstid: kl til kl

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

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

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre,

Læringsmål og pensum. v=nkiu9yen5nc

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?

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

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

UNIX/Linux brukerveiledning

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

INF109 - Uke 1b

Brukerveiledning for ArkN4

Labbene skal være oppsatt med dual boot. Disse labene er satt opp med dual boot, dvs. at vi må velge Linux eller Windows under oppstart av maskin.

Kom i gang med Python

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

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

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

INF109 - Uke 1a

Eksamensinformasjon. Linux kommandolinje. Linux kommandolinje. Eksamensinformasjon. Fakultet: Teknologi, kunst og design. Tid: 3 t.

Oppgaver i CMB-analyse. 1 Oppgave 1 Power spektra og CAMB

Kjøre Wordpress på OSX

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

Hendelser Apprentice ComputerCraft PDF

Operativsystemer og grensesnitt

NSA mandag 4. oktober Brukerbehandling Systempolitikk Kontroll av resurser Om system logger Litt om cron og cfengine

Introduksjon til dataanlegget ved Institutt for informatikk. Marc Bezem Institutt for informatikk Universitetet i Bergen

"How I hate this damned machine, I wish that I could sell it, It never does what I want it to, But only what I tell it".

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Dokumentstyring og Maler

ITGK - H2010, Matlab. Repetisjon

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

Generelt om shell / skall

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

Havforskningsinstituttet

Nadine Pedersen GRIT Datamaskinen- kjenn din Mac

Høgskolen i Telemark Fakultet for allmennvitenskapelige fag

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

Fjerninnlogging over Internett

EKSAMEN. Dato: 24. november 2015 Eksamenstid: 09:00 13:00

Kort veiledning for mottakere

Kom forberedt til tirsdag. INF1000 Tips til obligatorisk oppgave 4. Noen generelle tips. Oblig4: Komme igang

Generelt om permanent lagring og filsystemer

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Operativsystemer To eksepmler

Filsystemet fra innsiden

Innhold. Kommandoskallet i Linux

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

Hvor gammel er du? Hvor gammel er du? Del 1: Skrive ut til skjerm. Gjøre selv. Skrevet av: Sindre O. Rasmussen, Kodeklubben Trondheim

Filsikkerhet i Linux

Transkript:

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 deretter ut filtrert tekst linje for linje

Filterprogrammer og I/O Input leses fra standard innenhet stdin: stdin er i utgangspunktet (default) satt til å være tastaturet Output skrives til standard utenhet stdout: stdout er i utgangspunktet terminalvinduet (skjermen) Feilmeldinger skrives til standard feilenhet stderr: stderr er i utgangspunktet også terminalvinduet

Filbegrepet i Linux Vanlig definisjon av en fil: En samling data (bytes) som logisk hører sammen I Linux kan en fil også defineres som: En kilde som data kan leses fra, eller et medium som data kan skrives til Alt er filer i Linux: Vanlige diskfiler, men også mus, skjerm, tastatur, printer... Alle I/O-enheter representeres med en systemfil som man kan lese fra eller skrive til Betyr at stdin, stdout og stderr også er filer

stdin, stdout og stderr Linux OS og (nesten) all programvare for Linux er skrevet i programmingsspråket C Alle C-programmer har de tre I/O-strømmene (filene) stdin, stdout og stderr åpne når programmet starter Default oppsett er: stdin er systemfilen som representerer tastaturet stdout og stderr er begge systemfilen for det terminalvinduet som programmet kjører i

Fildeskriptorer stdin, stdout og stderr er egentlig bare enkle heltall som tolkes som fildeskriptorer (file descriptors) Fildeskriptor: Indeks i en tabell i OS med info. om alle åpne filer som programmet til enhver tid bruker File descriptor 0 (null) er reservert for stdin File descriptor 1 er reservert for stdout, 2 er stderr

Redirigering av I/O for Linux-kommandoer Shellet tilbyr redirigering (redirection) av input og output for filterprogrammer Kan sette stdin og stdout til å være vanlige filer i stedet for tastatur og skjerm Betyr at det er lettvint (og elegant) å få Linux-program og -kommandoer til å lese fra og skrive til filer Kan også redirigere I/O slik at output fra en kommando leses som input til neste kommando (piping)

Spesialtegn for redirigering av I/O > filnavn Skriv output til fil, overskriv hvis filen finnes >> filnavn Skriv output til fil, append hvis filen finnes < filnavn Les input fra fil <<EOF Les input fra tastatur inntil en linje med bare EOF leses ( EOF kan være hva som helst) Send output fra denne kommandoen som input til neste kommando (pipe)

Enkelt eksempel: cat cat Filter som bare kopierer stdin til stdout cat < fil_1 Viser innholdet av filen fil_1 på skjermen cat < fil_1 > fil_2 Lager en kopi av fil_1 og lagrer denne i fil_2 cat < fil_1 >> fil_2 Legger til innholdet av fil_1 på slutten av fil_2 cat > fil_1 Det som tastes inn blir lagret i fil_1 * *: cat blir en teksteditor!

Redirigering: Flere eksempler Liste med alle filene i stående katalog lagres på en fil: ls > liste fil Legger til nåværende tidspunkt og en liste med alle påloggede brukere på den samme filen: date >> liste fil who >> liste fil Legger til de 20 siste linjene på en fil på slutten av en annen fil : tail 20 < fil_1 >> fil_2

Beskyttelse av filer mot overskriving Dette vil overskrive filen hvis den finnes fra før: echo "Hello, world" > file.txt For å unngå at redirigering av output skriver over filer: set o noclobber (*) Vil da få feilmelding ved forsøk på å overskrive med > Kan allikevel tvinge frem overskriving med operatoren > echo Hello world > file.txt For å sette Bash tilbake til vanlig overskriving med > set +o noclobber (*): Clobbering: Overwriting, usually unintentionally

Piping / rørlegging i Linux Sender output fra en kommando som input til en annen kommando Gjøres ved å sette tegnet ' ' ( pipe / rør / vertikal strek) mellom to kommandoer Kan også sette sammen tre eller flere kommandoer med pipe i mellom en pipeline Internt i Linux foregår interprosesskommunikasjon: Den første kommandoen skriver output til et buffer Den andre kommandoen leser input fra samme buffer

Eksempler på piping * Telle antall filer (og kataloger) i stående katalog: ls wc l Sortere listen over innloggede brukere på brukernavn: who sort Hvor mange brukere heter Magnus?: ypcat passwd grep w Magnus wc l Lage tilfeldig passord med 32 tall / bokstaver: tr cd '[:alnum:]' < /dev/urandom \ fold w32 head n1 * Eksemplene inneholder flere kommandoer som vi skal studere senere i kurset