Guide: Ikke frykt Terminalen, bruk den

Det er ikke akkurat uvanlig å unngå terminalen som pesten, det er tross alt ikke uten grunn at vitser som denne fungerer så godt som de gjør, for, fra Terminalen kan man jo utslette hele verden, og bare hackere kan håndtere dette obskure tekstsystemet, eller?

Nåja, jeg er rimelig sikker på at selv "vanlige dødelige" kan lære seg å bruke Terminalen, og sågar kanskje få bruk for den. Men, hvorfor vil vi i det hele tatt fikle med tekst-grensesnitt, når vi har tilgang til et fullgodt grafisk grensesnitt?

For det første, så har Apple gjort en rimelig god jobb med å begrense brukergrensesnittet sitt til bare akkurat det man trenger, dette er i og for seg veldig lurt, siden det gjør dagligdagse oppgaver effektive, men de har ikke fjernet all funksjonalitet som går litt utenfor det vanlige, bare latt være å gi den et GUI. Under den skinnende overflaten har vi en av de kraftigere verktøyene vi kunne ønsket oss til formålet, nemlig en UNIX-variant, med alt det medfører, altså har vi mulighetene til å gjøre mer eller mindre alt BSD- og Linux-folket skryter av å kunne gjøre.

For det andre, gir det kanskje en litt bedre innsikt i hvordan maskinen fungerer.

For det tredje, er det gøy.

Så, hvor starter vi?

Vel, la oss starte med å åpne en Terminal. Gå til Programmer->Verktøy->Terminal


Slik ser et standard terminalvindu ut i Snow Leopard. Av estetiske årsaker, har jeg brukt temaet "homebrew" i resten av guiden, som du finner under "Shell->nytt vindu" i menylinjen

Det vinduet du ser foran deg nå, er muligens et av de nyttigste og kraftigste vinduene du kan jobbe mot på maskinen din, men samtidig også det det tar lengst tid å lære seg å bruke. Herifra kan du gjøre ALT. I denne omgang klarer vi oss med å gjøre noen enkle oppgaver. Men først av alt, hva er så den teksten vi har her?

I toppen av vinduet har vi "Terminal - bash - 80x24", dette er ikke ekstremt nyttig informasjon for oss nå, men det betyr at vi har et Terminalvindu som kjører bash (et av de mest vanlige skallene), som er 80 tegn bredt, og 24 linjer høyt. Sistnevnte kan du selvsagt verifisere selv, ved å prøve å gjøre vinduet høyere eller bredere. Videre har vi en linje som sier noe om når forrige sesjon ble startet for denne brukeren, og hvilken terminal vedkommende logget på fra (terminalvinduene er internt nummerert som en slags virtuell skjerm).

Men alt det er rimelig uvesentlig, siden det er linjen UNDER "last login" som virkelig er interessant, den som i bildeserien min starter med "DemoMac:", denne sier hvilken maskin du er på, hvilken katalog du befinner deg i, og hvilken bruker du er innlogget som. Dette er kommandoprompten din, linja som sitter og venter på at du skal fylle den med noe matnyttig.

Du starter altså i hjemmekatalogen din, som i terminalen forkortes til ~, men i praksis ligger under /Users/brukernavn, det er forresten greit å forklare som kjappest for de med litt DOS/Windows-bakgrunn, at vi her bruker UNIX-stier i filsystemet, det vil for det første si at vi ikke har \ men /, og for det andre at vi ikke har noe konsept om C:, D:, E: osv, istedet har vi ETT filsystem, med èn rot, /, alt ligger under denne, og alt som ikke er systemdisken, vil normalt sett befinne seg under /Volumes.

Men altså, du står i hjemmekatalogen* din, la oss kikke litt på hva vi har her. For å se hvilke filer vi har i katalogen vi befinner oss i, kan vi bruke kommandoen "ls", som er en forkortelse av "LiSt", og lister opp alle filer og kataloger i katalogen du er i. La oss prøve:

ls

Dette ser rimelig kjent ut, og minner veldig om katalogstrukturen til en vanlig hjemmekatalog i OS X, den eneste forskjellen er at alt er på engelsk, årsaken til det er at katalogene EGENTLIG har de engelske navnene, men avhengig av hvilket språk du har valgt i OS X så vises de med oversatte navn i Finder og alskens dialoger. Dette gjør det enkelt å skifte språk uten å omdøpe alle katalogene hver gang, og gir en fast struktur å forholde seg til i Terminalen, uavhengig av om brukeren har nederlandsk, svensk eller fransk språkoppsett, så, husk at engelsk språk er det som gjelder for katalognavn i Terminalen. Utover det burde disse mappene være relativt kjent.

Det du kanskje ikke visste, er at det er "more than meets the eye" i brukerkatalogen din, alle filer og kataloger som starter med et punktum skjules nemlig både i Finder, og normal ls, men vi kan be om å få se alt:

ls -a

Her ser vi at det ligger noen skjulte filer, deriblant noe XCode-relatert, en DS_Store (som er fila Finder bruker til å oppbevare innstillinger for visning av katalogen), .Trash (Papirkurven for brukeren din), og .bash_history (som er en logg over kommandoer du har skrevet i terminalen. Disse er stort sett skjult fordi du ikke egentlig trenger å se dem i Finder, eller i daglig bruk av terminalen heller for den del.

Men uansett, å bare vise innholdet i kataloger fører oss ikke veldig langt, så la oss lage en ny katalog vi kan leke oss i
så, la oss lage en katalog vi kan leke oss litt i:

mkdir mac1-guide

Denne kommandoen lager en ny katalog i den katalogen vi befinner oss i, med navnet "mac1-guide", la oss så flytte oss INN i den katalogen:

cd mac1-guide

Når du skriver dette, kan du prøve å bare skrive deler av navnet, og trykke tab, da skal resten av navnet fullføres automagisk for deg.

Her kan vi f.eks. lage en tom fil, med kommandoen "touch", touch har to bruksområder, det ene er å sette "sist endret"-tidspunktet på en fil til nå, og den andre er en bivirkning av at touch ikke bryr seg om filen allerede eksisterer, nemlig å opprette en tom fil.

touch testfil.txt

la oss så putte noe tekst inn i denne filen

nano testfil.txt

(Her fungerer nok en gang tab, mens den ikke gjør det på touch-kommandoen over, dette fordi testfil.txt ikke finnes før du har kjørt touch)

Skriv inn noe tekst i testfila:

Nano er ganske enkelt i bruk, og hurtigtaster kan leses av fra de nederste linjene, "^" betyr Ctrl, så vi ser at Ctrl-O betyr lagre, og Ctrl-X betyr avslutt (forøvrig spør nano deg om du vil lagre når du prøver å avslutte med ulagrede endringer), så, vi lagrer og avslutter nano.

Nå kan vi kikke på fila fra terminalen med kommandoen cat (som lister innholdet i tekstfiler):

cat testfil.txt

Og, siden vi ikke egentlig bryr oss om denne fila, kan vi slette den:

rm testfil.txt

NB! Rm er et kraftig verktøy, pass på at du har skrevet riktig når du ber den slette ting, siden den tar flere filer på lista, og er i stand til å slette hele kataloger "rekursivt", er det enorm forskjell på å gi den "/Users/filnavn.txt som argument, og "/ Users/filnavn.txt", førstnevnte sletter riktig fil, mens den andre kan finne på å slette hele disken, og så klage på at "Users/filnavn.txt" ikke finnes.

Nå har jeg nevnt "argument", så da er det på sin plass å forklare hva dette betyr. Kommandoer og programmer i UNIX-systemer (og forsåvidt i DOS også), tar formen:

[kommando] [parameter] [argument]
f.eks:
ls -a /Users/brukernavn
Der:
Kommando: ls
Parameter: -a
Argument: /Users/brukernavn

Kommandoen bestemmer hva som skal gjøres, Parametrene bestemmer hvordan, og Argumentet bestemmer hva dette skal gjøres på.

Så, hvordan gjør vi så grunnleggende ting som å flytte rundt på, eller kopiere filer? Jo, til dette har vi to kommandoer som følger samme forkortingsmetode som ls:
mv (MoVe)
cp (CoPy)

Disse fungerer på samme måte som nevnt over, men, de tar da to argumenter, nemlig hva, og hvor.
Skriver du f.eks. cp testfil.txt testfil2.txt, så kopierer du tekstfil.txt til tekstfil2.txt, bruker du mv på samme måte, skifter du navn på fila. Disse fungerer også på tvers av stier, så, la oss ta noen eksempler på det:



Men, en video sier mer enn tusen bilder:

Legg merke til bruken av .. i siste bilde, uansett hvilken katalog man er i har man alltid referansepunktene . og .., der førstnevnte er katalogen man til enhver tid befinner seg i, og .. er katalogen over, "cd .." er med andre ord måten man kommer seg tilbake til katalogen over den man er i nå. Et siste lite tips er at bare "cd" sender deg tilbake til brukerkatalogen din.

Dette burde iallfalle ufarliggjøre terminalen litt for de fleste der ute, hvis dette var interessant lesning, eller hvis noe var uklart, si ifra i kommentarfeltet, så skal jeg prøve å følge opp.

* Jeg har valgt å være konsekvent på bruken av "katalog" fremfor "mappe" her, ene og alene fordi jeg selv er mest vant med det uttrykket, og ville unngå begrepsforvirring.

inter

Synes dette var en fin innføring til terminal for dem som ikke har vært borti det før.

En ting som i tillegg kan være greit å nevne for at folk ikke skal frykte terminal er at brukerkontoen man er logget inn med har begrenset med rettigheter der inne. Det betyr at man i utgangspunktet ikke har rettigheter til å slette viktige systemfiler som operativsystemet er avhengig av.

iKarlsens bilde

iKarlsen

Takk!
Håper det kommer oppfølgere til dette for oss som ikke har vært borti dette før.

K.D.Gs bilde

K.D.G

"EinarJ"
* Jeg har valgt å være konsekvent på bruken av "katalog" fremfor "mappe" her, ene og alene fordi jeg selv er mest vant med det uttrykket, og ville unngå begrepsforvirring.*

________________________________________________________________________________________
jeg ble få vira av det :S katalog .. aldri hørt om hehe

Cybbe

osascript -e 'say "Dum dum dum dum dum dum dum he he he ho ho ho fa lah lah lah lah lah lah fa lah full hoo hoo hoo" using "Cellos"'

ddybings bilde

ddybing

Takk for fin guide. Har vært litt "redd" for terminalen før, og egentlig ikke sett noen nytte i den, men denne guiden viste meg at man jammen kan gjøre litt av hvert :-)

Eggmont Forlags bilde

Eggmont Forlag

Har syslet litt med "hemmelige" funksjoner i Snow Leopard gjennom Terminal. Ganske kult!

rachets bilde

rachet

Har selv brukt terminalen en del og syns at den er alt for lite brukt. En skattekiste uten like! Fint at du prøver å lære bort dette :)

Selv om det meste var kjent her, fikk jeg noen aha-opplevelser, og jeg vil med glede følge med videre med fremtidige leksjoner, stå på!

-Johannes T. Røsvik

torbjoerns bilde

torbjoern

Jeg har brukt terminalen siden dag 1 med OS X. Den er IMHO mye bedre til flytting av filer enn Finder er (som ikke godtar klipp og lim).

Onizuka89

God guide dette :) har prøvd å skrive guider om dette selv, og har innholt akkurat det samme, minus cat og touch :P

Forslag til neste guide er å bruke noen tegn av tegna som er nyttige når man gjør det ene og det andre i terminal :)
Så da tenker jeg på | && & > >>, og i samme slengen slenge inn echo, kanskje grep. :P

og introduser .alias fila, den er nyttig ^^

espen007s bilde

espen007

Om jeg ikke tar feil fines det noe som heter AppleScript? Kan man kjøre disse scriptene som batch jobber i Terminalen? Dette ser ut som gode gamle DOS på meg. Er det noen som har noen tips om noe man får til i Terminalen som man ikke får til i det grafiske GUI'et ? Finnes det f.eks en email command line applikasjon der man kan pipe inn en email text og sende email til en gruppe mottakere?

ddybings bilde

ddybing

Finnes det f.eks en email command line applikasjon der man kan pipe inn en email text og sende email til en gruppe mottakere?

Ta en titt her ;) http://hints.macworld.com/article.php?story=20081217161612647

Stortord

Tusen takk EinarJ!
Dette setter jeg stor pris på. Fortsett slik!

Og enig med Onizuka89 i at alias er nyttig, gjerne mer om slikt.

God sommer!

JohannesHalvorsen

Hvordan kommer jeg ut av mac1-guide filen?

otroean

Hvordan kommer jeg ut av mac1-guide filen?

Skriv "cd .." (cd mellomrom ..)

Airjoern

hvoran kan jeg slette mac1-guide directory igjen.??

svanos bilde

svano

Om mappen er tom kan du bruke:

rmdir mac1-guide

Om den ikke er tom, men inneholder kun ting du er sikker på at du vil slette kan du bruke:

rm -R mac1-guide
(dette sletter mappen og alt den inneholder)

Står du ikke i mappen som inneholder mappen du vil slette, må du bruke hele stien til filen. F.eks. rmdir /Users/brukerNavn/mac1-guide

  • Skriv ut artikkel
  • Abonner med RSS

Alt om iPad, iPhone og iOS

Nettradio i iTunes

Nettradio i iTunes
130 norske radiokanaler.
Få de mest populære norske, svenske og danske radiokanalene inn i en egen spilleliste i iTunes.
Oppdatert 13. mai