Göm meny
Gäller för: HT25

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.

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 specifikt program.

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 en terminalemulator, eller oftare skalfönster eller terminalfönster. Även om vissa av alla dessa namn har specifika betydelser så ska vi inte gräva ner oss i det.

Vi kommer fördjupa oss mer i vilka kommandon du kan använda i skalet i nästa kapitel, men först ska vi gå igenom lite grundbegrepp.

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 och kanske något kalkylark eller verktyg för att bygga presentationer. 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 kanske redan är bekant med, är filer. En fil är helt enkelt den minsta enheten av information som du som användare normalt kan interagera med direkt och lagra i datorns sekundärminne eller externminne. D.v.s. i den del av datorns minne som sparas på lång sikt och inte försvinner när du loggar ut eller datorn startas om.

  • 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, möjligtvis oläsliga för ett mänskligt öga och på en plats som du som användare inte kan se direkt, 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. Istället har du olika appar för olika typer av filer (galleriapp för att visa bilder du tagit eller sparat, appar som kan ladda ner och spela upp podcasts, osv.), som gömmer de underliggande likheterna kring dessa filer. Men om du är intresserad av att utveckla egna appar i framtiden, då behöver du förstå hur filer och de filsystem som hanterar dem 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 med hjälp av skalet 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

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 ledtråd 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 moderna versioner av operativsystemet 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.

Exemplet ovan visar hur det typiskt kan se ut i Windows. Om vi vill se vad en fil har för filändelse kan vi högerklicka och välja Egenskaper. Normalt kan vi dock 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 någorlunda bekant. Den poäng som vi vill lyfta fram är att det inte är 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 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 alltid på samma sätt i Linux. Här behöver vi själva hålla reda på lite mer.

Kataloger

För att skapa lite ordning organiseras filer tillsammans i kataloger, eller mappar som Windows kallar det. På engelska talar vi om directories eller folders. Ytterligare ett kärt barn med 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 (det här är en egenhet bland datavetare och matematiker, som envist hävdar att alla träd är rotade i toppen och växer nedåt, det är bara att acceptera).

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 ibland titta runt i, men du kan inte påverka innehållet, och i många fall kan du inte ens se det (mer om det i avsnittet C5. Inställningar och rättigheter).

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.

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 (kom ihåg att roten är i toppen av trädet).

Ö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.

Program är också filer

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örbar”. Hur det går till ska vi se lite längre fram.

Vi kan också dela in filer i lite olika kategorier. Binärfiler är ett gemensamt namn för filer som innehåller data som inte kan representeras som text, t.ex. bilder, ljud, video och program som har översatts till maskininstruktioner som datorn själv kan tolka. Vi kan som människor endast med stor svårighet titta på och tolka innehållet i sådana filer. Textfiler, däremot, är filer som enbart innehåller männisoläsbar information. Källkod till program är textfiler, d.v.s. program som inte översatts till maskininstruktioner. Linux använder också textfiler för att lagra inställningar till olika program vilket gör det lättare att inspektera och ändra inställningar.

Sammanfattning

  • Som programmerare är det viktigt att kunna det inbyggda kommandospråk som vi använder via skalet, terminalen, konsolen, 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 kataloger, som i sin tur kan organiseras i kataloger, osv.

Diagnos

När du har läst detta avsnitt är det dags att göra diagnos C1. Filer och kataloger. Gå till kursrummet i Lisam och klicka på Test i vänstermenyn.


Sidansvarig: Johan Falkenjack
Senast uppdaterad: 2025-08-17