lu.se

Datavetenskap

Lunds Tekniska Högskola

Denna sida på svenska This page in English

Om kommandoraden / Cygwin

Kort om kommandoraden / Cygwin

Laboration 1 fokuserar på utvecking av C++-program i kommandorads-miljö.

Här kommer en kort introduktion till en *nix-liknande kommandoradsmiljö. Mac-användare kommer att känna igen sig: detta är i princip samma miljö som i terminalen i MacOS X.

Terminalen startas genom att köra programmet "Cygwin64 Terminal" som finns i start-menyn
under "All programs->Cygwin->Cygwin64 Terminal"

Navigering av filsystemet

Det skal som finns i Cygwin-terminalen fungerar ganska likt MS-DOS-prompten för grundläggande navigering. De viktigaste skillnaderna är

  • avdelare i sökvägar är tecknet / (i stället för \)
  • optioner till kommandon brukar inledas med - (i stället för / som i DOS)
  • kommandot för att flytta till en annan katalog är cd, och för att flytta upp en nivå används cd .. (notera att man måste ha mellanslag efter kommandot i cd ..)
  • kommandot för att lista filer är ls -- kort för list (i stället för dir i DOS)
  • kommandot för att kopiera en fil är cp -- kort för copy. För att copiera rekursivt ges optionen -r
    (Exempel:  cp -r katalog kopiaAvKatalog)
  • kommandot för att döpa om eller flytta en fil är mv -- kort för move (i stället för "rename")
  • kommandot för att ta bort en fil är rm -- kort för "remove"
  • kommandot för att skapa en ny katalog är mkdir -- "make dir"
  • kommandot för att ta bort en katalog är rmdir -- "remove dir"
  • aktuell katalog ingår inte i sökvägen för kommandon. För att köra kommandot "kommando" i aktuell katalog skriver man "./kommando"
  • skalet har kommando-historia, så man kan komma åt tidigare körda kommandon med piltangenterna
  • skalet har tab-komplettering, så man behöver inte skriva hela filnamnet, utan man kan skriva de inledande bokstäverna (tills det blir unikt) och trycka <TAB> så fyller skalet i resten av namnet.

 Åtkomst av windows-filsystemet

  • De olika enheterna i Windows-filsystemet syns i Cygwin under /cygdrive/<enhetsbokstav>. Till exempel så finns "C:" under /cygdrive/c , och motsvarigheten till DOS-kommandot cd D:\foo är cd /cygdrive/d/foo
  • För att komma åt er användarprofil behöver den mappas till en enhetsbokstav. Det finns en .bat-fil (mount_home.bat), som gör att er filarea på nätverket får enhetsbokstaven "X", och därmed kan nås i cygwin under /cygdrive/x
    Kommandot för att göra denna till aktuell katalog är då cd /cygdrive/x
  • Ladda ner mount_home.bat och lägg den lätt tillgänglig -- du behöver köra denna varje gång du loggar in för att komma åt dina filer från cygwin-terminalen.

Att editera filer

För att editera filer kan man antingen göra det direkt i terminalen eller med en Windows-texteditor.

Under cygwin finns de vanliga editorerna vim och emacs (som är kraftfulla texteditorer för programmering, men har en viss inlärningströskel) samt nano (som är en enklare att använda men inte är lika kraftfull). För att öppna filen "test.cpp" i editorn nano ges kommandot nano test.cpp

I Windows i datorsalarna finns editorn Notepad++. En källkodsfil kan öppnas i Notepad++ från Windows explorer med [högerklick]->"edit with Notepad++"

Exempel: skapa hello.cpp

Två sätt att skapa en katalog för lab1 (på skrivbordet) och hello.cpp:

I båda fallen, börja med att köra mount_home.bat

I cygwins kommandorad:

  1. gå till skrivbordet med cd /cygdrive/x/Desktop
  2. skapa katalogen "lab1" med mkdir lab1
  3. gå ner i katalogen med cd lab1
  4. öppna filen med t ex nano: nano hello.cpp
  5. skriv kod, och spara med ctrl-O (de vanligaste kommandona visas nederst på skärmen)

Därefter, öppna en annan terminal för att kompilera och testa

I windows skrivbordsmiljö:

  1. skapa en mapp på skrivbordet som heter lab1
  2. öppna mappen
  3. skapa en ny textfil som heter hello.cpp
  4. öppna filen med Notepad++ (högerklick på hello.cpp->Edit with Notepad++)

Öppna en cygwin-terminal, och kompilera och testa:

  1. gå till mappen lab1 på skrivbordet med cd /cygdrive/x/Desktop/lab1
  2. lista filer och verifiera att filen hello.cpp finns i mappen: ls
  3. kompilera och testa

I exemplen har jag lagt katalogen lab1 på skrivbordet, ni kan så klart lägga den var som helst.

Andra kommandon

Några andra kommandon som är användbara är

  • man (för att visa manualsidan för ett visst kommando)
  • less (för att titta på filer),
  • cat (för att skriva ut innehållet av en fil i terminalen) och 
  • diff (för att jämföra två filer), 
  • pwd (för att skriva ut aktuell katalog "print working directory")

Till exempel kan man titta på manualsidan för kommandot cp genom att ge kommandot man cp (och motsvarande för de andra navigerings-kommandona, använd man om du undrar om något om t ex vilka options ett kommando har)

För att se de vanligaste optionerna till kompilatorn g++ ger man kommandot man g++

Kommandot man använder kommandot less för att visa manualsidan. För att avsluta trycker man q ("quit"). För att söka efter en sträng trycker man / (för sökning framåt) eller ? (för sökning bakåt),  skriver söksträngen och trycker enter. För att upprepa sökningen (d v s gå till nästa träff) trycker man n (eller N för att gå till föregående träff).