Linux-kommandolinjen i dybden · Lektion

Standardstreams og omdirigering

Lær om stdin, stdout og stderr, og hvordan De omdirigerer dem ved hjælp af `|`, `>`, `>>` og `<`.

Lektion 1 af 416 trin

Standardstreams og omdirigering er en gratis Linux-kommandolinjen i dybden-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Linux-kommandolinjen i dybden, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Linux-kommandolinjen i dybden-kurset indeholder 4 lektioner i alt.

Hvad er standardstrømme?

I Linux-terminalen kommunikerer kommandoer ved hjælp af »standardstrømme«. Tænk på dem som standardkanaler, hvor data flyder ind i og ud af et program.

  • Standardinput (stdin): Det sted, hvor en kommando henter sit input fra (normalt tastaturet).
  • Standardoutput (stdout): Det sted, hvor en kommando sender sine normale resultater hen (normalt skærmen).
  • Standardfejl (stderr): Det sted, hvor en kommando sender sine fejlmeddelelser hen (normalt skærmen).

Disse strømme giver dig mulighed for at styre, hvordan kommandoer interagerer!

Standardoutput (`stdout`)

Når en kommando kører korrekt og producerer et resultat, sendes resultatet til standardoutput. Som standard vises stdout direkte på din terminalskærm.

Når du f.eks. bruger kommandoen echo, sendes dens output til stdout.

Omdirigering af `stdout` (overskrivning)

Symbolet > (større end) bruges til at omdirigere standardoutput fra skærmen til en fil. Hvis filen ikke findes, oprettes den. Hvis den allerede findes, bliver dens indhold overskrevet!

Det er nyttigt, når du vil gemme kommand resultater til senere brug.

Eksempel på overskrivning af `stdout`

Prøv at køre dette eksempel. Bemærk, hvordan outputtet fra kommandoen echo ikke vises på skærmen, men gemmes i message.txt. Derefter viser cat filens indhold.

echo "Hello CoddyKit!" > message.txt
cat message.txt

Omdirigering af `stdout` (tilføjelse)

Hvad nu, hvis du vil føje output til en fil uden at slette det eksisterende indhold? Det er her, >> kommer ind i billedet!

Operatoren >> (dobbelt større end) omdirigerer standardoutput til en fil og tilføjer det nye indhold i slutningen af filen.

Eksempel på tilføjelse til `stdout`

Lad os tilføje endnu en linje til vores message.txt-fil uden at miste den første linje. Kør koden, og se på outputtet fra den afsluttende cat-kommando.

echo "Hello CoddyKit!" > message.txt
echo "Welcome to Linux!" >> message.txt
cat message.txt

Standardinput (`stdin`)

Standardinput er den kanal, som en kommando modtager data igennem. Som standard kommer stdin fra dit tastatur – du skriver kommandoer eller inputværdier direkte.

Nogle kommandoer er udviklet til at behandle input, som du angiver, eller som kommer fra en anden kilde.

Inputomdirigering med `<`

Symbolet < (mindre end) giver dig mulighed for at omdirigere standardinput fra en fil i stedet for tastaturet. Det er særdeles nyttigt, når du vil føre data fra en fil ind i en kommando, der forventer input.

Kommandoen behandler derefter filens indhold, som om du havde skrevet det.

Eksempel på input fra en fil

Kommandoen wc -l tæller linjer. Her opretter vi en fil og bruger derefter < til at få wc -l til at læse sit input direkte fra filen.

echo "Line 1" > mydata.txt
echo "Line 2" >> mydata.txt
wc -l < mydata.txt

Standardfejl (`stderr`)

Når en kommando støder på et problem eller en fejl, sender den diagnostiske meddelelser til standardfejl. Ligesom stdout vises stderr som regel på skærmen som standard.

Ved at holde stderr adskilt fra stdout bliver det lettere at få øje på fejl.

Omdirigering af `stderr` med `2>`

Hvis du vil omdirigere standardfejl til en fil, bruger du fildeskriptoren 2 efterfulgt af omdirigeringsoperatoren: 2>.

Det giver dig mulighed for at gemme fejlmeddelelser i en logfil og holde dit primære output rent. Du kan også omdirigere stdout og stderr til den samme fil ved hjælp af &> eller > file 2>&1.

Eksempel på fejlomdirigering

Lad os prøve at vise indholdet i en mappe, der ikke findes. Vi omdirigerer fejlmeddelelsen til en fil med navnet errors.log.

ls non_existent_dir 2> errors.log
cat errors.log

Sammenkædning af kommandoer med pipes (`|`)

Symbolet | (pipe) er en af de mest effektive funktioner i Linux-skallen. Det forbinder standardoutputtet (stdout) fra én kommando direkte med standardinputtet (stdin) i en anden kommando.

Det giver dig mulighed for at oprette komplekse datapipelines ved at kæde simple kommandoer sammen.

Pipe-eksempel: `ls` til `wc`

Her sendes outputtet fra ls -l (en detaljeret liste over filer) som input til wc -l (ordoptælling – linjer). På den måde tælles det effektivt, hvor mange elementer der vises af ls -l.

ls -l | wc -l

Hurtigt tjek

Se på følgende sekvens af kommandoer:

echo "Apple" > fruits.txt
echo "Banana" >> fruits.txt
echo "Cherry" > fruits.txt
cat fruits.txt

Hvad bliver det endelige indhold i fruits.txt, som vises af kommandoen cat?

Opsummering: Strømme og omdirigering

Godt arbejde! Du har lært det grundlæggende om standardstrømme, og hvordan du omdirigerer dem:

  • Standardstrømme: stdin (input), stdout (normalt output), stderr (fejloutput).
  • >: Omdirigerer stdout til en fil og overskriver den.
  • >>: Omdirigerer stdout til en fil og tilføjer indhold til den.
  • <: Omdirigerer en fils indhold til en kommandos stdin.
  • 2>: Omdirigerer stderr til en fil.
  • | (pipe): Forbinder stdout fra én kommando med stdin i en anden.

Disse teknikker er afgørende for effektive arbejdsgange på kommandolinjen. Derefter lærer du, hvordan du filtrerer tekst med den effektive kommando grep!

Gratis at komme i gang

Lær Linux-kommandolinjen i dybden med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Standardstreams og omdirigering” gratis?

Ja — hele teksten til “Standardstreams og omdirigering” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Linux-kommandolinjen i dybden-kurset, skal du opgradere til CoddyKit PRO. Linux-kommandolinjen i dybden-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Standardstreams og omdirigering”?

Lær om stdin, stdout og stderr, og hvordan De omdirigerer dem ved hjælp af `|`, `>`, `>>` og `<`. Du øver dig i Linux-kommandolinjen i dybden med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Linux-kommandolinjen i dybden?

Der kræves ingen tidligere erfaring. Linux-kommandolinjen i dybden på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Standardstreams og omdirigering”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Linux-kommandolinjen i dybden-lektion?

Ja. Alle Linux-kommandolinjen i dybden-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Standardstreams og omdirigering
  2. Filtrering af tekst med `grep`
  3. Tekstmanipulation med `sed` og `awk`
  4. Kombinér og sortér output med sort, uniq og cut
← Tilbage til Linux-kommandolinjen i dybden