Göm menyn

C1. Filer och kataloger

Nu ska vi börja nosa på Linux lite mer på allvar genom att så småningom lära oss skalkommandon, men vi börjar med att reda ut några grundbegrepp.

1. Två grundläggande sätt att hantera datorn

I ett tidigare kapitel konstaterade vi att operativsystemet är den grundläggande programvara som är närmast hårdvaran och som hjälper alla andra program igång. För att vi som användare ska kunna göra något med datorn erbjuder de flesta operativsystem någon form av fönsterhanterare. I Windows och MacOS är detta inbyggt, men i Linux har vi större möjligheter att själva välja fönsterhanterare. Detta grafiska användargränssnitt baserar sig på konceptet fönster, alltså en ruta på skärmen där vi interagerar med ett specifik program. Det här är så självklart att vi inte ens tänker på att det är på det sättet.

Men, det finns ytterligare ett sätt att hantera datorn. Som utvecklare kommer du behöva lära dig att hantera även det kommandospråk som finns inbyggt i Linux. Detta arbetssätt började användas redan på 1960-talet, då det bara fanns textterminaler, men det är fortfarande användbart även idag.

Du kan använda detta kommandospråk i skalet (som på engelska kallas shell). Ibland kallar vi det för kommandoskal, eftersom du skriver kommandon i skalet. Vi kan också kalla det för en terminal eller en konsol. Ofta startar vi ett fönstersystem först och öppnar skalet i ett särskilt fönster. Då talar vi om skalfönster eller terminalfönster. Kärt barn har många namn. Vi kommer fördjupa oss mer i vilka kommandon du kan använda i skalet i nästa kapitel.

2. Vad är en fil?

Du är säkert van vid att använda surfplattor, smarta telefoner, bärbara datorer och andra typer av enheter. Du har laddat ner appar, letat runt på olika webbplatser och tvingats använda ordbehandlingsprogram. Men den som ska lära sig att själva utveckla program behöver förstå lite mer av vad som händer bakom kulisserna.

Ett viktigt grundbegrepp, som du säkert redan har koll på, är filer. En fil är helt enkelt den minsta enheten av information som du som användare normalt kan interagera med.

  • När du tar en bild med telefonen, så lagras den som en fil.
  • Om du skriver en uppsats på din laptop, så sparar du den antagligen som en fil.
  • Alla inställningar som du har gjort för apparna i din surfplatta, de lagras säkert som en eller flera filer, oläsliga för ett mänsligt öga, men likaväl i form av filer.

En fil är i grund och botten en samling med data. Den är helt passiv. Den bara ligger där, lagrad någonstans, utan att det händer någonting. Det först när ett program öppnar filen och gör något med den som det händer något.

Filer kan lagras lokalt på datorns hårddisk eller i molnet. Att filen är lagrad i molnet innebär bara att den ligger lagrad på någon annans hårddisk, och att du har ett enkelt sätt att via nätet komma åt den. Även i din telefon lagras filer, men de flesta telefoner har ett gränssnitt som gör att du inte behöver tänka så mycket på det. Men om du är intresserad av att utveckla egna appar i framtiden, då behöver du förstå hur filsystemen i telefoner fungerar.

I det här kapitlet går vi igenom lite grundläggande begrepp. I de kommande kapitlen kommer vi att gå igenom hur du kan

  • gå runt i filträdet, alltså förflytta dig mellan olika kataloger
  • titta vad som finns i den aktuella katalogen, undersöka filerna och deras egenskaper
  • köra program (alltså de filer som är körbara) och skicka in andra filer som indata till dessa program
  • på olika sätt manipulera filer och kataloger: skapa, radera, flytta, ändra innehåll

3. Filnamn

Alla filer har ett unikt filnamn så att vi ska kunna hitta och identifiera dem. Och precis som människor har filer oftast både förnamn och efternamn. Efternamnet brukar kallas för filändelse och det är en vink om vad det är för typ av information som vi kan hitta i filen, alltså vilken filtyp eller filformat det är. Filändelsen kommer efter en punkt, så din uppsats kanske ligger sparad i filen Uppsats-v3-final-edited.docx. Efternamnet är alltså .docx vilket antyder att det här är en fil som mår bäst av att öppnas i Microsoft Word.

I Windows ser du sällan filändelserna direkt. I stället använder Windows olika ikoner för att markera filtyp, men filändelsen finns där internt, om man vet var man ska kolla. I Linux är filändelsen inte riktigt lika helig som i Windows. Du kan ändra filändelsen när du vill och samma fil kan ibland öppnas av många olika program.

Exempel från Utforskaren i Microsoft Windows

Exemplet ovan visar hur det typiskt kan se ut i Windows. Om vi vill se vad en fil har för efternamn kan vi högerklicka och välja Egenskaper. Men normalt kan vi lita på att ikonen visar vilken typ av fil det är. Windows har associerat varje filtyp med ett lämpligt program, så om vi dubbelklickar på filen så öppnas den i rätt program.

Det här känns förhoppningsvis väldigt bekant. Den poäng som vi vill lyfta fram är att det är inte ikonen som är filen. Ikonen är bara en bild som hjälper oss att hantera filen. Och det är inte filen som är programmet. Den här uppsatsen (längst till vänster i bilden), det är ju inte den som är programmet Word. Däremot är filtypen .docx associerad med programmet Word. Den här typen av associering har vi dock inte riktigt på samma sätt i Linux. Här behöver vi själva hålla reda på lite mer.

4. Kataloger

För att skapa lite ordning organiseras filer tillsammans i kataloger eller mappar. På engelska talar vi om folders eller directories. Kärt barn har många namn.

En katalog kan även innehålla andra kataloger. Detta leder till att vi får en slags hierarki av kataloger och filer. Det kan vi kallar för ett filsystem, ett katalogträd, eller något liknande. Till skillnad från biologiska träd har filträd roten längst upp.

Filsystemet är i princip detsamma oavsett vilken dator du loggar in på i våra datorsalar. Och till skillnad från din egen dator så har du inte fullständiga rättigheter. Du har i stället en så kallad hemkatalog knuten till din användare. Där kan du placera alla filer du behöver och i den katalogen kan du göra i princip vad som helst. Resten av filsystemet kan du förstås titta runt i, men du kan inte påverka innehållet.

Exempel på filhanterar Thunar i Linux

Det här är ett exempel från filhanteraren Thunar som finns i våra Linux-miljöer.Den visar just nu innehållet i en underkatalog. I trädet till vänster ser vi användarens hemkatalog, i det här fallet användaren petjo96. Användaren har ett antal olika underkataloger, bland annat en som heter lab. Denna katalog har i sin tur en underkatalog som heter python och det är innehållet i den som vi ser till höger.

Exempel på skrivbordsikoner

Om du just nu sitter inloggad i någon av våra Linux-datorsalar ser du antagligen ovanstående tre ikoner på skrivbordet. De öppnar alla tre filhanteraren Thunar, men börjar på olika ställen i filsystemet. Ikonen till vänster öppnar papperskorgen (alltså en katalog där filer hamnar om du tar bort dem via filhanteraren). Ikonen till höger öppnar din hemkatalog. Ikonen i mitten öppnar filsystemets rot, alltså den katalog som är högst upp i hierarkin.

Övning
Klicka på någon av skrivbordsikonerna som visades ovan. Prova sedan att klicka runt lite i filsystemet och se hur det är uppbyggt. Eftersom du inte har rättighet att göra något utanför din hemkatalog behöver du inte vara orolig för att göra fel.

5. Program är också filer

Och för att göra det riktigt rörigt: Program är också filer. Ett program är helt enkelt en fil som innehåller instruktioner till datorn. Att starta ett program handlar alltså om att be operativsystemet öppna filen, försöka tolka innehållet som instruktioner och följa dem till punkt och pricka. I Windows markeras körbara filer, alltså program, med ändelsen .exe. I Linux används inte filändelser på det sättet, utan i stället kan filerna ha olika egenskaper, t.ex. "körbarhet". För att få Linux att tolka en fil som ett program behöver vi bara se till att den har egenskapen "körbarhet". Hur det går till ska vi se lite längre fram.

Vi kan alltså dela in filer i lite olika kategorier. Binärfiler är ett gemensamt namn för körbara filer som innehåller instruktioner till datorn. Vi kan som människor endast med stor svårighet titta på innehåller i sådana filer. Textfiler, däremot, är filer som enbart innehåller männisoläsbar information. Källkod till program är textfiler. Linux använder också textfiler för att lagra inställningar till olika program. Det gör att vi enkelt kan ändra i dem. Som blivande programutvecklare kommer du att ha mycket med textfiler att göra i framtiden.

Sammanfattning

  • Som utvecklare är det viktigt att kunna det inbyggda kommandospråk som vi använder via skalet, terminalen, konsollen, eller vad vi nu vill kalla det.
  • En fil är en samling data som lagras i ett sekundärminne.
  • Filer kan vara av olika typer, vilket indikeras genom en filändelse (efternamn). En del filer är körbara.
  • Filer kan organiseras i mappar.

Diagnos
När du har förstått de begrepp som vi har gått igenom i det här kapitlet är det dags att göra diagnos C1.


Sidansvarig: Peter Dalenius
Senast uppdaterad: 2025-06-30