Unix på arbetstationer

Filer och kataloger

(nästa avsnitt, föregående avsnitt, innehållsförteckning)


Filer

När man vid arbetsstationen skrivit in t ex ett program som man vill spara, ger man operativsystemet order om att skriva ut programtexten på skivminne. Det utrymme på skivminnet där programtexten sparas kallas en fil. I filer kan man förutom programtext också lagra annan text (brev, avhandlingar, laborationsredogörelser, indata till program osv) samt information av annat slag, exempelvis program som översatts av en kompilator. Varje fil i Unix har ett unikt filnamn. I ett filnamn får förekomma bokstäver a-z och A-Z, siffror 0-9 samt vissa specialtecken t.ex. punkt. Unix skiljer mellan stora och små bokstäver. Vanligen utnyttjar man bara små bokstäver i filnamn. En konvention som man brukar följa när man ger filer namn är att man förser filnamnet med ett tillägg, enligt följande:

Tillägget är en eller flera bokstäver som anger vad filen innehåller. Exempelvis skall filer som innehåller Pascal-källprogram ha tillägget .p och C-program tillägget .c.

Wildcards

De båda tecknen ? och * behandlas speciellt när de förekommer på en kommandorad. De kallas wildcards, ''jokrar'', och kan motsvara vilket tecken som helst. ? motsvarar ett godtyckligt tecken medan * motsvarar noll eller flera godtyckliga tecken. Med hjälp av wildcards kan man alltså referera till mer än en fil i samma kommando, utan att behöva räkna upp alla filnamnen.

Exempel: Vi har följande filer:

  test1.p   test1.o   test1
  test2.p
  prog.doc

I nedanstående uppställning visas exempel på användning av wildcards (rm betyder remove, dvs tag bort filer):

Kommandon för filhantering

I beskrivningarna av kommandon skall kursiva parametrar ersättas med användarens egna namn.

Kataloger

Filerna i ett datorsystem lagras i kataloger. En katalog kan betraktas som en mapp i vilken man lagrar filer. Till varje användarkonto hör en huvudkatalog, där användaren lagrar sina filer. Huvudkatalogen namnges normalt med användarnamnet. Om man har många filer i sin huvudkatalog kan det bli svårt att hålla ordning på dem. Man kan då skapa underkataloger till sin huvudkatalog och i var och en av dessa lagra filer som på något sätt hör samman. En underkatalog kan sedan i sin tur ha underkataloger osv. Den struktur som uppkommer brukar man kalla ett katalogträd. För att fullständigt identifiera en fil måste man ge både katalognamn och filnamn. Katalognamnen skrivs före filnamnet, efterföljda av snedstreck /.

Exempel: En användare har följande katalogträd (katalogerna är inramade):

Kataloger och filer namnges:

I de flesta Unix-system finns många användare och därmed många huvudkataloger. Dessutom finns andra kataloger som innehåller systemprogram. Alla kataloger i Unix-systemet ingår i ett och samma katalogträd. Den översta katalogen i trädet, ''rotkatalogen'', har namnet /. Ett absolut filnamn inleds med rotkatalogen och därefter följer alla katalognamn på väg mot filen. Det är emellertid opraktiskt att behöva ange det fullständiga filnamnet varje gång man vill referera till en fil. Operativsystemet håller därför hela tiden reda på aktuell katalog (kallas ibland arbetskatalog) vars filer man kan referera med enbart filnamnet. Namn som anges med utgångspunkt i aktuell katalog kallas \index{relativa filnamn} relativa filnamn. Vissa filnamn kan förkortas:

Det är lämpligt att alltid utnyttja ~ resp ~nn i stället för absoluta filnamn.

Exempel: Del av ett katalogträd i ett Unix-system:

Antag att katalogen /usr/matematik/pn/tex är aktuell katalog. Olika sätt att ange namn på kataloger och filer i trädet:

Kommandon för kataloghantering

Filskydd

Det finns i Unix möjligheter att skydda filer så att obehöriga inte kan komma åt dem. För varje fil kan man specificera huruvida filen får läsas, skrivas eller exekveras av användare av olika kategorier. Dessa kategorier är:

De olika ''skyddskoderna'' kallas:

När man listar innehållet i en katalog med ls -l skrivs skyddskoderna ut för varje fil, i ordningen user-group-others.

Exempel: Exempel på utskrift från ls -l:

  -rwxr-xr-x  1 pn          24576 Aug 27 16:16 fil*
  -rw-r--r--  1 pn            455 Aug 27 16:16 fil.c
  -rw-r--r--  1 pn             27 May 19  1992 fil.dat
  -rw-r--r--  1 pn             44 May 21  1992 makefile
  -rw-r--r--  1 pn             28 May 23  1992 makefile.fil
  -rwxr-xr-x  1 pn          40960 May 21  1992 newton*
  -rw-r--r--  1 pn           6296 May 21  1992 newton.c
  drwxr-xr-x  2 pn            512 Jan 30 12:59 tmp/

Alla filer får här läsas, skrivas och exekveras av ägaren. Gruppen kan läsa allt och exekvera de exekverbara filerna. Övriga har här samma rätt som gruppen. d:et först i sista raden anger att tmp är ett bibliotek.

För att ändra skyddskoder för en fil utnyttjar man kommandot chmod:

kategorier är u, g och o. skyddskoder är r, w och x.

Exempel: chmod ugo=rw fil.c ger alla rättigheter att läsa och skriva fil.c.

Exempel: chmod go= fil.c tar bort alla rättigheter för gruppen och övriga.

Initieringsfiler

Många program läser en ''initieringsfil'' när de startas. Det finns initieringsfiler av två slag: dels filer som innehåller kommandon som exekveras när programmet startas, dels filer som innehåller parametrar som läses av programmet. De vanligaste initieringsfilerna är:

Om .xinitrc, .startx.sun4, .xrc och .Xdefaults inte finns så körs en central version. Ändra inte i filerna, om du inte är helt säker på vad du gör! Nedanstående definitioner kan man lägga in i .cshrc. Alias-namnen medför att systemet alltid frågar innan det tar bort en fil, set noclobber medför att man inte kan skriva över en fil med I/O-omkoppling.


(nästa avsnitt, föregående avsnitt, innehållsförteckning)

If you have any problem using our IT facilities, please feel
free to leave a message by clicking on my mail address.
 james@maths.lth.se

James Hakim