For at selv helt nybegynnere skal kunne henge med, tenkte jeg å avklare noen begreper aller først.
Kommandolinja («Command Line Interface» eller CLI på engelsk) baserer seg, i motsetning til grafiske brukergrensesnitt («Graphical User Interface» eller GUI på engelsk), utelukkende på tekst. For å bruke kommandolinja trenger man et shell, som er grensesnittet som tolker det du skriver, og overleverer det til datamaskinen. Det finnes flere forskjellige shell, men jeg tror vi for enkelhets skyld forholder oss til bash på Linux og kommandolinja på Windows.
For å nå et shell bruker man en terminalemulator. Dette er rett og slett vinduet du åpner når du skal skrive inn kommandoer i shellet. På Windows ligger CMD inne som standard, så vi benytter oss av den. Igjen finnes det mange forskjellige varianter på Linux, men de mest kjente er gnome-terminal, xterm og konsole. De gjør stort sett det samme, så det har ikke så stor betydning hvilken du bruker.
Hvor finner jeg kommandolinja?
Jeg kommer til å dekke noen kommandoer for Windows også, så vi kan jo begynne med den. Du går kort og godt i startmenyen, velger Kjør (Run) og skriver
cmd
og trykker enter.
På Linux finnes det som nevnt flere shell og terminalemulatorer å velge mellom. Som oftest får du terminalen i fullskjerm ved å trykke Ctrl-Alt-F1 (Ctrl-Alt-F7 for å komme tilbake til det grafiske brukergrensesnittet), men du kan også åpne den som et vindu ved å velge Konsole, Terminal eller xterm i programmenyen. Eksempelvis finner du Terminal under Programmer->Tilbehør på Ubuntu.
Det første du ser når du åpner kommandolinja er en ledetekst. Denne kan konfigureres til å vise forskjellig informasjon, men den kan for eksempel se slik ut:
audun@tjener:~$
I eksemplet viser den brukernavn, maskinnavn og filsti, etterfulgt av et $-tegn. Skriver du inn en kommando og trykker Enter, vil du få opp ledeteksten på nytt når kommandoen er ferdig med å kjøre.
Syntaks
Ettersom datamaskiner er dumme og må ha alt inn med teskje, er det laget en egen grammatikk for kommandolinja. I all hovedsak er den bygget opp slik:
verbal subjekt objekt --adverb --adjektiv
eller på Windows
verbal subjekt objekt /adverb /adjektiv
Det er kun verbal som alltid er påkrevet, og i mange tilfeller er de andre valgfrie eller fraværende. Den enkleste formen for kommando er altså
verbal
På fagterminologi kalles gjerne det jeg her refererer til som adverb og adjektiv brytere eller argumenter. Verbal kalles gjerne bare kommandoen eller programmet, men jeg synes likevel at det kan være greit å dra noen paralleller til et språk vi kjenner.
Da er det kanskje på tide at vi skriver vår første kommando. Åpne terminalen og skriv
ls
på Linux, eller
dir
på Windows. ls (list?) og dir (directory) er kommandoer for å liste opp filer og mapper. I dette tilfellet vises filer og mapper i gjeldende mappe, ettersom vi ikke har angitt noen filsti. For å illustrere en litt mer avansert variant, kan vi liste innholdet i en annen mappe med skjulte filer:
ls /home/audun --all
og på Windows:
dir "C:\Documents and Settings\audun" /ah
Standard inndata og utdata
Kommandoene er kraftige i seg selv, men det er først når man begynner å behandle output og input (heretter kalt utdata og inndata) med forskjellige kommandoer at det virkelig begynner å bli nyttig.
Som tegningen viser kan en kommando som regel ta inndata og levere utdata til forskjellige kilder, for eksempel en fil eller en annen kommando.
Pipe
Det kanskje mest nyttige med kommandolinja er muligheten for å sende resultatet fra en kommando til en annen.
For å ta et konkret eksempel: En ansatt i kommunen lurte på hvorfor han ikke har fått e-posten som fylkeskommunen har sendt ham. «cat» (Concatenate) er en kommando for å vise alt innholdet i en fil, så man kan skrive
cat /var/log/mail.log
for å få listet opp alt innholdet i e-postloggen.
Vil man hente ut bare linjer som inneholder @hedmark.org, kan man bruke kommandoen «grep». «-i» gjør at den ikke bryr seg om å skille mellom store og små bokstaver.
cat /var/log/mail.log | grep -i @hedmark.org
Resultatet fra cat-kommandoen blir med andre ord brukt som inndata til grep-kommandoen.
Filer som inndata og utdata
Man kan også bruke «krokodilletegn» for å hente data fra eller skrive data til en fil. For å gjøre nøyaktig det samme som i kommandoen over, kan man med andre ord bruke følgende kommando:
grep -i @hedmark.org < /var/log/mail.log
Bruker du krokodilletegnet andre veien, skrives output-en til en fil i stedet for til skjerm.
grep -i @hedmark.org < /var/log/mail.log > /home/audun/e-post_fylkeskommunen.log
Dersom du ønsker å ha en fortløpende logg uten å overskrive kan du bruke doble krokodilletegn. Resultatet blir da lagt til helt på slutten av fila.
grep -i @hedmark.org < /var/log/mail.log >> /home/audun/e-post_fylkeskommunen.log
I Kommandolinja #3 vil jeg å gå igjennom hvordan man som nybegynner kan begynne å bruke kommandolinja effektivt, og hvordan man skal bruke hjelpefunksjonene i kommandolinja.
Ref:

Flott guide, selv jeg som har styra litt rundt i linuxkonsollen noen år synes det er greit med en pragmatisk, lettforståelig innføring, synes det er vanskelig å lese meg opp på slikt, da det enten er kompliserte manualer eller heeelt nybegynner artikler å finne.
Håper du fortsetter denne serien! Jeg følger med
| 3. jun, 2009 @ 20:39
Det blir garantert mer, for nå har jeg fått blod på tann
| 5. jun, 2009 @ 18:02
Ser frem til #3
| 20. aug, 2009 @ 9:31