Filbehandling i linux

Denne veiledningen tar for seg filbehandling i operativsystemet Linux ved bruk av kommandolinje. Mer informasjon finnes i kompendiet Unix for nybegynnere.

Kommandolinje

Kommandolinjen i Linux får du tilgang til via en terminal. Man kan ha flere terminaler kjørende samtidig, slik at man f.eks. kan ha en til irssi og en til generell filbehandling. Når du logger deg inn på en av Linux-maskinene på termstuene så åpnes automatisk en terminal. I tillegg kan den åpnes fra Applications-menyen:

Applications -> Utilities -> Terminal

Når du åpner en terminal, så vil det se omtrent slik ut:

 brukernavnetditt@maskinenduerloggetinnpå ~ $

~-en peker på hjemmekatalogen din, som er den du befinner deg i når du først åpner et terminalvindu. Kommandoen cd ~ vil alltid ta deg tilbake hit. Hvis du endrer hvilken mappe du er i, så vil det stå foran $-tegnet, slik:

   ~ $ cd IN1000
   ~/IN1000 $ 

Noen vanlige kommandoer

Tabellen under viser en oversikt over noen vanlige kommandoer som kan brukes i terminal. Jokertegn (* og ?) er effektive for å gjøre operasjoner på flere filer i samme kommando. ? representerer et hvilket som helst tegn, mens * angir alle mulige kombinasjoner av alle mulige tegn:

 Oblig?.java angir Oblig1.java Oblig2.java Oblig3.java etc.
   *.java angir alle java filer

Mellomrom i fil- eller mappenavn angis med en \ foran.

   mv Filnavn\ med\ mellomrom.txt filnavn-med-bindestreker.txt

Husk også at tab-tasten fungerer som automatisk fullføring av navn (på filer, mapper og kommandoer), noe som er svært nyttig og tidsbesparende.

Kommando Forklaring Alternativer Eksempel
ls List: lister opp filer og mapper i den mappen man er i -l long (mer info); -a all (lister skjulte filer) ls -l
mkdir Make-Directory: lag ny mappe   mkdir IN1000
cd Change-Directory: endrer hvilken mappe man befinner seg i .. mappen over den man er i cd IN1000 (hvis den eksisterer)
cp Copy: kopierer en fil -r rekursiv (kopiere mappe med innhold) cp Oppg.odc Oppg_backup.odc
mv Move: flytter fil. Brukes også til å gi nytt navn   mv Obliger/ IN1000/
rm Remove: fjerner fil eller mappe -r rekursiv (fjerne mappe med innhold) rm IN1000/Obliger/Oblig1.java

For mer informasjon om hvordan en kommando fungerer, kan man skrive man foran kommandoen i terminal for å få opp en manual.

Filgrupper og tilgang

Adgangen til en fil er regulert på tre nivåer: eier, gruppe og alle. Kommandoen ls -l viser informasjon om grupper og tilgang:

 ~ $ ls -l
   total 20K
   drwxrwxr-x    2 jb       dg           4.0K Jan  5 19:47 IN1000/
   drwxrwxr-x    2 jb       dg           4.0K Jan  5 19:50 Testing/

Tredje kolonne viser eieren av filen eller mappen (jb) og fjerde kolonne viser filgruppen (dg). Den første kolonnen viser hvordan adgangen er regulert. Det første tegnet angir om det er en mappe eller fil:

  • - angir en fil
  • d (Directory) angir en mappe

De neste 9 tegnene er delt opp i tre bolker: eier, gruppe og andre. Bokstavene angir

  • r (Read) angir leserettighet
  • w (Write) angir skriverettighet
  • x (eXecute) angir kjørerettighet

Disse rettighetene kan endres med chmod:

chmod u=rwx,g=rx,o=x fil.txt

Tilsvarende kan tallkoder brukes:

 chmod 751 fil.txt

Der 751 setter rwx for eieren, rx for gruppen og x for resten av verden. Passende verdier i følgende tabell summeres altså for å definere tilgangsrettigheter innenfor henholdsvis eieren, gruppen og andre:

Bokstav Verdi
r 4
w 2
x 1

Filkomprimering

I Unix/Linux er det vanlig å bruke tar sammen med gzip for å komprimere filer. tar kombinerer flere filer til en større fil, mens gzip komprimerer enkeltfiler.

Pakke inn

I eksempelet under kombineres først alle filene i mappen test til fil.tar med tar-kommandoen. Deretter komprimeres fil.tar som resulterer i fil.tar.gz.

   ~/test $ tar -cvf fil.tar * 
   ~/test $ gzip -v fil.tar

Alternativt slås disse to operasjonene sammen, slik at en midlertidig tar-fil unngås

   ~/test $ tar -czvf fil.tar.gz *

Forøvrig kan det være mer hensiktsmessig å stå i mappen over for å pakke en hel mappen:

   ~/test> cd ..
   ~> tar -zcvf fil.tar.gz test

Fordelen med å stå utenfor mappen er at du får med deg alle filene i mappen (* tar ikke med seg filer som starter på .), og at også mappenavnet blir lagret i filen (noe som er praktisk når man skal pakke ut igjen ettersom filen da vil havne i en slik mappe igjen).

Pakke ut

For å pakke ut en tar.gz-fil kan man gjøre følgende:

   ~/test $ gunzip -v fil.tar.gz
   ~/test $ tar -xvf fil.tar

Vil man også her slippe å ha tar-filen liggende så kan man gå direkte til utpakking med:

   ~/test $ tar -zxvf fil.tar.gz

Oppsettfiler

De fleste Linux-program lagrer oppsettet sitt i filer eller mapper med navn som begynner med punktum. Feks har du filen .bashrc og mappen .mozilla på hjemmeområde ditt. Disse kan man se ved å benytte ls -a

  ~ $ ls -a
  ./   .bashrc   IN1000/         IN1010/   revlusjon/
  ../  familie/  kjaerleiksbrev/  .mozilla/

Dersom du sletter disse filene eller mappene vil du tilbakstille oppsettet til det aktuelle programmet.

Historikk

Siden ~/.bash_history i utgangspunktet er tom, tar ikke terminalen vare på historikken din. En enkel måte å løse dette på er å skrive følgende i en terminal:

  ~ $ HISTFILESIZE=500

lukk terminalen - og neste gang du åpner en terminal, har den hukommelse.

Sikkerhetskopier

Snapshot

Studenter kan finne en mappe som heter .snapshot på hjemmeområdet sitt. Denne mappen er aldri synlig når du lister opp filene, du må vite om den. Under denne mappen finner du kopier av hjemmeområdet ditt fra de siste dagene, og kan bruke denne mappen til å finne filer du har slettet ved et uhell. Mer om dette kan du finne her: Snapshot – sikkerhetskopi av hjemmeområdet/fellesområder

restore@usit.uio.no

Hvis du har mistet en fil på hjemmeområdet ditt, og du ikke finner enne under .snapshot eller ikke har .snapshot, kan du ta kontakt med backup-avdelingen hos USIT. Send en e-post til restore@usit.uio.no. I denne e-posten må du skrive så mye av filbanen til filen eller mappen du vil ha gjennopprettet, og håpe på det beste. Hvis filen er mer enn en dag gammel da den var slettet eller overskrevet er det nesten sikkert at du får filen tilbake.

Det er ikke backup av alt

Området /tmp på Linux-maskinene er reservert til midlertidig filer. Alt du lagrer her vil bare ligge på den spesifikke maskinen du bruker og vil ikke være synlig på andre maskiner. Dessuten vil de bli slettet i løpet av natta. Det finnes ikke backup av dette området.

Områdene C: og D: på Windows-maskiner er bare delvis tilgjengelie, og det som er lagra kan bli sletet med jevne mellomrom.

 

Publisert 9. aug. 2020 12:24 - Sist endret 2. nov. 2021 08:49