Linux filsystem

Filsystemet i Linux, likt andra operativsystem, organiserar data och filer på disken. Det tillåter användaren att strukturera, lagra och hantera information. I Linux är filsystemet en del av ett hierarkiskt system med rötterna i en rotkatalog. Det inkluderar kataloger som /home för användarhemkataloger, /bin för binära verktyg och /etc för konfigurationsfiler.

Bild 2: Linux filsystem

Linux-filsystemet bygger på en hierarki av kataloger och filer. Vissa kataloger innehåller systemfiler som endast kan ändras av root-användaren eller administratören. Viktiga egenskaper för Linux-filsystemet inkluderar:

  • Åtkomstkontroll: Filrättigheter styrs av behörigheter för ägare, grupp och andra användare, vilket skyddar systemkritiska filer från otillåten åtkomst.
  • Monteringspunkter: Alla enheter och partitioner (som hårddiskar och nätverksenheter) monteras inom filsystemets struktur, vilket gör dem åtkomliga under rot (/).
  • Fil- och katalogstruktur: Filsystemet har en tydlig och organiserad struktur där varje katalog har en specifik roll, exempelvis för systemkommandon och /etc för konfigurationsfiler.
  • Virtuella och temporära filer: Kataloger som /proc innehåller virtuella filer för systeminformation, medan /temp används för temporära filer som automatiskt rensas ut vid omstart.
  • Symboliska och hårda länkar: Linux tillåter länkar som skapar kopplingar mellan filer utan att duplicera innehåll, vilket underlättar systemadministration och lagringshantering.
/bin och /sbin Här finns det binära exekverbara filer, de vanligaste programmen man använder som exempelvis kommandon. De kommandon som kräver root för åtkomst ligger dock i mappen /sbin.
Användarspecifika program som man installerar själv hamnar ofta under/usr/local/bin.
/etc Innehåller konfigurationsfiler i vanligt textformat. Filerna kan redigeras med en vanlig texteditor. Vi kommer främst använda oss av nano.
/home Användarnas hemkataloger. Root-användaren har dock en egen katalog /root
/lib Systemfiler och biblioteks filer, liknande Windows dll filer
/media Innehåller genvägar till CD-ROM och Floppy
/root Root-användarens hemkatalog.
/usr Innehåller gemensamma program för alla användare, liknande Windows Program Files katalogen. De flesta stora program ligger här. Om man inte vet vart programmet installerats är detta ett bra ställe att börja leta på.
/var ”Felsökningskatalogen” Här hamnar loggfiler samt temporära filer som används vid felsökning av systemet. I den kan hittas katalogen /log
/proc Kärnfilerna ligger här och bör naturligtvis inte röras om man inte är helt på det klara med vad man gör.
/dev Devices – drivrutiner för hårdvaran.
/mnt Standardkatalog för att montera flyttbara enheter t.ex. USB-minne. Behövs oftast inte göras i den grafiska miljön längre, dock behövs det om man arbetar i text-läge.

Filsystemhantering

Här är några viktiga kommandon för att hantera Linux-filsystemet. Från att navigera, hantera filer och kataloger, kontrollera utrymme, till att montera och avmontera enheter.

Navigering och visning

  • pwd – Anger den aktuella katalogen man befinner sig
  • lsListar filer och kataloger. Vanliga alternativ inkluderar -l (detaljerad lista), -a (visar även dolda filer), och -h (visar storlek i läsbart format).
  • cd – Byter katalog. Skriv cd utan argument för att gå till hemkatalogen. För att gå direkt till rotkatalogen (C:\) skriv på prompten cd /

Filhantering

  • cp – Kopierar filer och kataloger. Använd -r för att kopiera kataloger rekursivt. Syntax: cp source_file destination_file
  • mv – Flyttar eller byter namn på filer och kataloger. Syntax: mv old_name new_name för att byta namn och mv file /path/to/destination för att flytta filer till en annan katalog.
  • rm – Tar bort filer och kataloger. Använd -r för att ta bort kataloger rekursivt och -f för att tvinga borttagning. rm file_name för att ta bort filer och rm -rf directory_name för att ta bort en katalog.
  • mkdir – Skapar en ny katalog. Använd -p för att skapa underkataloger rekursivt. mkdir new_directory för att skapa en ny katalog och mkdir -p parent_directory/sub_directory för att skapa katalog och underkatalog samtidigt.
  • rmdir – Tar bort en tom katalog. Syntax: rmdir empty_directory

Hantering av filsystem och enheter

  • mount – Monterar ett filsystem. För att montera en USB-enhet på /mnt/usb:
    • sudo mount /dev/sdb1 /mnt/usb
  • umount – Avmonterar ett filsystem.
    • sudo umount /mnt/usb
  • df – Visar diskutrymme på monterade filsystem. Använd -h för ett läsbart format.
  • du – Beräknar utrymme som används av filer och kataloger. Använd -h för ett läsbart format och -s för en sammanfattning. Exempel: du -sh /path/to/directory
  • fsck – Kontrollera och reparera filsystem. Detta kommando kräver ofta root-privilegier. Exempel: sudo fsck /dev/sdb1

Filåtkomst och rättigheter

  • chmod – Ändrar filrättigheter. Använd numerisk eller symbolisk notation för rättigheter.
    • chmod 755 file_name
  • chown – Ändrar ägare och grupp för en fil eller katalog.
    • sudo chown owner:group file_name
  • chgrp – Ändrar en fils grupp utan att ändra ägaren.
    • sudo chgrp group_name file_name

Skapande och hantering av symboliska och hårda länkar

  • ln – Skapar en hård länk. Exempel: ln existing_file link_name
    • ln -s: Skapar en symbolisk länk (mjuk länk). Exempel: ln -s /path/to/original /path/to/link

Sökning och information

  • find – Söker efter filer och kataloger. Syntax: find /path -name ”filename”
  • locate – Söker snabbt efter filer och kataloger baserat på en indexerad databas. Syntax: locate filename
  • stat – Visar detaljerad information om en fil eller katalog, inklusive rättigheter, ägare och tidsstämplar. Syntax: stat file_name
  • file – Visar filtyp och identifierar innehållet i en fil. Syntax: file file_name

Hantering av arkiv och komprimerade filer

  • tar – Skapar eller extraherar arkiv.
    • Skapa ett arkiv: tar -cvf archive.tar /path/to/directory
    • Extrahera ett arkiv: tar -xvf archive.tar
  • gzip eller gunzip – Komprimerar och dekomprimerar filer. Syntax: gzip file_name eller gunzip file_name.gz
  • zip eller unzip – Komprimerar och dekomprimerar zip-filer.
    • zip archive.zip file1 file2
    • unzip archive.zip

Dessa kommandon täcker många av de vanliga uppgifterna för att hantera filsystem och filer i Linux.

Absolut och relativ sökväg

Sökvägen som anger hela vägen till destinationsmappen kallas för absolut sökväg. Det betyder att den utgår ifrån roten /. Till exempel chalo@maximus:~$ cd /home/chalo/Photos/2015 

Är du redan en bit på vägen till en viss mapp är det enklare att ange en relativ sökväg, därifrån man startar ändringen. Observera att i kommandot inkluderas inte /. Till exempel:
chalo@maximus:~$ cd Photos/2015

Att få hjälp

Det grafiska gränssnittet för hjälp kan tas fram genom att klicka på ”dash”, första ikonen i start menyn, och skriva i sökfältet help. Då får man en annan ikon med namn Help. När man startar den visas en omfattande information. På terminalen kan man skriva också help och trycka på Enter för att få hjälp. Men när du skriver långa kommandon har du stor hjälp av att trycka på TAB-tangenten istället, för då kompletterar skalet dina kommando automatiskt. Som hjälpresurser kan nämnas google, bloggar, forum, youtube, etc.

Manualsidor – man

Kommandot man är terminalens inbyggda manual som innehåller väldigt mycket. Till en början är inte lätt att läsa av man-sidorna men man blir bekant så småningom. Exempelvis kan du få fram specifik information om kommandot LS

chalo@maximus:~/labbmapp$ man ls

Du kommer att se att det finns fler alternativ än ls -l och ls -a. Manualsidorna finns också på Internet:

https://manpages.ubuntu.com/manpages/oracular/en/man1/man.1.html