Filbehandling i linux

(Forskjell mellom revisjoner)
Gå til: navigasjon, søk
m (sett over, ryddet opp i lenker, pyntet litt)
m
Linje 1: Linje 1:
Denne veiledningen tar for seg filbehandling i operativsystemet Linux ved bruk av både kommandolinje. Mer informasjon finnes i kompendiet [http://folk.uio.no/inf1010/bruksanvisninger/Lokal-guide-til-Unix.pdf Unix for nybegynnere].
+
Denne veiledningen tar for seg filbehandling i operativsystemet Linux ved bruk av kommandolinje. Mer informasjon finnes i kompendiet [http://folk.uio.no/inf1010/bruksanvisninger/Lokal-guide-til-Unix.pdf Unix for nybegynnere].
  
 
==Kommandolinje==
 
==Kommandolinje==

Revisjonen fra 23. sep 2011 kl. 10:05

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

Innhold

Kommandolinje

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 ett 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 mappe navn angis med en \ foran.

  mv Filnamn\ med\ mellomrom.txt filnamn-med-bindestrekar.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 -l long (mer info); -a all (lister skjulte filer) ls -l
mkdir Make-Directory: lag ny mappe mkdir INF1000
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/ INF1000/
rm Remove: fjerner fil eller mappe -r rekursiv (fjerne mappe med innhold) rm INF1000/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 inf1000/
  drwxrwxr-x    2 jb       dg           4.0K Jan  5 19:50 kjaerleiksbrev/

Tredje kolonne viser eieren av fila 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

Access Control Lists

ACL er en utvidelse av filtilgangene i UNIX. Programmene getfacl og setfacl håndterer acl. Getfacl skriver ut tilgangene. Prøver man dette på en tilfeldig fil, får man:

   $ getfacl fil 
  # file: fil
  # owner: roberth
  # group: roberth
  user::rw-
  group::---
  other::---

Det spesielle med ACL er at man kan gi bestemte brukere eller filgrupper tilgang. Hvis jeg ønsker å gi brukeren termvakt lesetilgang til filen, gjør jeg slik:

   $ setfacl -m u:termvakt:r fil

Kommandoen setfacl kan endre ACL for en fil. -m betyr modifisér, u er kort for user (man kan gi grupper tilgang med g) og r markerer lesetilgang som vanlig.

   $ getfacl fil
  # file: fil
  # owner: roberth
  # group: roberth
  user::rw-
  user:termvakt:r--
  group::---
  mask::r--
  other::---

Resultatet synes her. To nye linjer har kommet til: user:termvakt:r-- og mask::r--. Den første er enkel å forstå: Brukeren termvakt har nå fått lesetilgang.

Mask er ikke like lett å forstå, men her er forklaringen: Mask begrenser hva ACL-oppslagene kan gjøre (unntatt user:: og other::), så for at termvakt skal ha lesetilgang må r være satt både i linjen user:termvakt og i linjen mask::.

Skulle man ha behov for å slette linjer i filens ACL, kan dette gjøres slik:

   $ setfacl -x u:termvakt fil
   $ getfacl fil
  # file: fil
  # owner: roberth
  # group: roberth
  user::rw-
  group::---
  other::---


Filkomprimering

I Unix/Linux er det vanlig å bruke tar sammen med gzip/code> for å komprimere filer. <code>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.

   asah@isolde ~/test> tar -cvf fil.tar * 
   asah@isolde ~/test> gzip -v fil.tar
  

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

   asah@isolde ~/test> tar -czvf fil.tar.gz *

Forøvrig kan det være mer hensiktsmessig å stå i katalogen over for å pakken en hel katalog:

   ~> tar -zcvf fil.tar.gz test

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

Pakke ut

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

   asah@isolde ~/test> gunzip -v fil.tar.gz
   asah@isolde ~/test> tar -xvf fil.tar

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

   asah@isolde ~/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   inf1000/         mat1100/   revlusjon/
  ../  familie/  kjaerleiksbrev/  .mozilla/
                                                                                                                                                                                 

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


Tryggleikskopiar

Snapshot

Studentar kan finna ein katalog som heiter .snapshot på heimeområdet. Denne katalogen er aldri synleg når du listar opp filene, du må vita om han. Under denne finn du kopiar av heimeområdet ditt frå dei siste dagane, og du kan bruka denne katalogen til å finna att filer du har sletta ved eit uhell. Meir om detta kan du finna her: Snapshot – sikkerhetskopi av hjemmeområdet ditt


restore@usit.uio.no

Viss du har mista ei fil på heimeområdet ditt, og du ikkje finn henne under .snapshot eller ikkje har .snapshot, kan du ta kontakt med backup-avdelinga på USIT. Send ein e-post til restore@usit.uio.no. I e-posten skriv du så fullstendig bane som mogleg til fila eller mappa du vil ha gjenoppretta, og håpar det beste. Viss fila var meir enn ein dag gamal då ho vart sletta eller overskriven er det nesten sikkert at du kan få henne igjen.

Det er ikkje backup av alt

Området /tmp på Linux-maskinane er reservert til mellombelse filer. Alt du lagrar her vil berre liggja på den maskinen du brukar, og vil ikkje vera synleg på andre maskinar. Dessutan vil det verta sletta i løpet av natta. Det finst ikkje backup av dette området

Områda C: og D: på Windows-maskinar er berre delvis tilgjengelege, og det som er lagra her vert sletta med jamne mellomrom.

Personlige verktøy
Navnerom
Varianter
Handlinger
Navigasjon
Kategorier
Programvare
Andre
Translate
Verktøy