Introduksjon til UNIX
Hva menes med katalog og fil
For videre lesning er det viktig å ha god forståelse av begrepene katalog og fil. Disse kan virke fremmede og vanskelige i begynnelsen, men de vil etterhvert bli selvsagte.
Når man skal ta vare på noe, blir det vanligvis lagt i et lagringsmedium. Man kan sammenligne en datamaskin med et kontor. På et kontor vil det være normalt å benytte et arkivskap som lagringsmedium, mens en datamaskin benytter en harddisk. I arkivskapet kan man legge dokumenter som for eksempel papirer, tegninger, videobånd eller lydkassetter. På harddisken kan man lagre data digitalt der dataene kan være for eksempel tekst, bilder, lyd og programmer. I arkivskapet har man mange mapper som kan inneholde både dokumenter og nye mapper. Videre kan de nye mappene inneholde nye dokumenter og flere nye mapper.
I en datamaskin vil harddisken tilsvare arkivskapet, kataloger og underkataloger tilsvarer mappene og filene tilsvarer dokumentene. En fil er altså en fellesbetegnelse for tekstdokumenter, bilder, lyd og programmer, mens kataloger fungerer som mapper vi ordner filer og underkataloger i. En fil kan ikke inneholde en katalog eller en annen fil. En underkatalog er en katalog som ligger inne i en annen katalog.
Ofte bruker man ordet element som fellesbetegnelse på filer og kataloger.
Adressering av kataloger og filer
Akkurat som mapper i et arkivskap, er formålet med kataloger i en harddisk å lage et hierarkisk lagringssystem slik at det blir ryddig og lett å finne frem i. For å angi hvor en katalog eller en fil finnes, benytter man seg av en adresseringskode. Alle adresser tar utgangspunkt i toppen av hierarkiet, kalt '/'. Hvis det under toppen ligger en katalog home vil adressen til denne være /home. Hvis denne har en underkatalog homee og den igjen har en ny underkatalog je som igjen har underkatalogen jensj, så vil den fulle adressen være /home/homee/je/jensj. Når en adresse starter med '/' kalles den absolutt fordi den bare kan tolkes på en måte. En mer utdypende forklaring vil bli gitt etter hvert i kapitlene når det er behov for det.
Vis stående katalog (pwd)
For å finne ut hvor på harddisken man er, kan man bruke kommandoen pwd. Dette er en forkortelse for print working directory. Rett etter innlogging vil pwd alltid gi adressen til hjemmekatalogen. Dette fordi man alltid blir plassert i sin egen hjemmekatalog når man logger seg inn.
login:~$ pwd /home/homee/je/jensj
Begynnelsen på første linje i eksempelet viser navnet på maskinen man er logget inn på, så et kolon, deretter hvilken katalog man befinner seg i og til slutt et dollartegn. Etter dollartegnet kommer kommandoen som skal skrives. På linjen under er det vist hva kommandoen pwd svarte.
Så kan man spørre seg hva tegnet '~' (tilde) gjør der det vitterlig skulle stått /home/homee/je/jensj. Grunnen til dette er at man som regel befinner seg i hjemmekatalogen eller et sted under den. Derfor bruker man for letthets skyld '~' som et symbol for hjemmekatalogen. Ved henvisninger til andre brukeres hjemmekataloger kan bruke ~bruker som henspeiler til det stedet hvor brukeren har hjemmekatalog, normalt /home/home*/**/bruker. Jens kan da henvise til både ~, ~jensj og /home/homee/je/jensj som alle betyr akkurat det samme. En annen person, la oss si Arne kan ha hjemmekatalog på /home/homek/ar/arne.
Vis innholdet i en katalog (ls)
For å vise innholdet i en katalog kan en bruke kommandoen ls, som står for list. For bruker jensj vil ls gi følgende:
login:~$ ls Mail/ brevmor.txt mail@ public_html/
Vi ser at hjemmekatalogen til Jens inneholder fire elementer. Mail og public_html er kataloger siden de slutter med '/' (skråstrek eller slash), mail er en symbolsk lenke siden den slutter med @ (krøllalfa) og brevmor.txt er en vanlig fil siden den ikke har noe tegn etter seg.
Det er verd å merke seg at det skilles mellom små og store bokstaver. Derfor er Mail og mail ikke det samme. En symbolsk lenke betyr bare at elementet henviser til et annet element. Hvis elementet den henviser til forsvinner, vil den peke ut i intet, egentlig ikke finnes, og ikke ha noen fornuftig mening. Symbolske lenker blir nærmere forklart i kapittelet ved samme navn.
Opsjoner til ls
Opsjonen -l
Denne opsjonen viser listen sortert alfabetisk i langt format.
login:~$ ls -l total 4 drwx------ 2 jensj ntnu 9 Jul 16 13:40 Mail/ -rw------- 1 jensj ntnu 135 Jul 16 19:00 brevmor.txt lrwx------ 1 jensj ntnu 4 Jul 20 14:27 mail -> Mail/ drwxr-xr-x 3 jensj ntnu 43 Jul 16 13:49 public_html/
Rettigheter L Bruker Gruppe Størrelse mm dd tt:mm Navn
- Rettigheter. Forklares i kapittelet om rettigheter og grupper
- L. Hvor mange lenker som henviser til elementet. (Ignorer denne!)
- Bruker. Hvem som eier elementet.
- Gruppe. Forklares i kapittelet om rettigheter og grupper.
- Størrelse. Hvor mye plass elementet tar opp på harddisken. Måles i antall bytes.
- mm dd tt:mm. Viser henholdsvis måned, dag, time og minutt for når elementet sist ble endret, eller eventuelt når det ble opprettet hvis det aldri har blitt endret.
-
Navn. Hva elementet heter. I tillegg ser man som
tidligere hva slags type element det er.
Ut fra listen som ls ga ut ser vi at mail henviser til Mail. Så akkurat i dette tilfellet er de samme katalog selv om man skiller mellom små og store bokstaver. Men hvis Mail fjernes er mail ubrukelig.
Opsjonen -a
Denne lister skjulte filer og kataloger. De begynner alltid med tegnet punktum. Dette er ofte filer som inneholder kommandoer som kjøres ved innlogging eller innstillinger som forteller hvordan ulike programmer skal oppføre seg.
storm:~$ ls -a ./ .Xdefaults .bash_profile Mail/ public_html ../ .bash_history .bashrc brevmor.txt .Xauthority .bash_logout .netscape/ mail@
Vi ser her at det finnes en katalog, .netscape, og seks filer som er skjult. Alle .bash-filene og .Xdefaults brukes i forbindelse med innlogging. .Xauthoriy brukes i forbindelse med sikkerhet for brukeren. .netscape inneholder innstillinger og bokmerker for Netscape.
Opsjonen -la
Kombinerer vi opsjonene -l og -a listes både de ordinære og de skjulte elementene i en lang liste.
storm:~$ ls -la total 104 drwx--x--x 5 jensj ntnu 4096 Jul 20 18:44 ./ drwxr-xr-x 1531 root root 65536 Jul 20 06:43 ../ -rw------- 1 jensj ntnu 49 Jul 20 14:26 .Xauthority -rw------- 1 jensj ntnu 196 Jul 16 13:37 .Xdefaults -rw------- 1 jensj ntnu 1089 Jul 19 08:32 .bash_history -rw------- 1 jensj ntnu 232 Jul 16 13:37 .bash_logout -rw------- 1 jensj ntnu 236 Jul 16 13:37 .bash_profile -rw------- 1 jensj ntnu 212 Jul 16 13:37 .bashrc drwx------ 3 jensj ntnu 4096 Jul 20 18:44 .netscape/ drwx------ 2 jensj ntnu 9 Jul 16 13:40 Mail/ -rw------- 1 jensj ntnu 135 Jul 16 19:00 brevmor.txt lrwx------ 1 jensj ntnu 4 Jul 20 14:27 mail -> Mail/ drwxr-xr-x 3 jensj ntnu 43 Jul 20 14:55 public_html/
Opsjonen -ld
Denne viser bare selve katalogen vi står i, ikke innholdet i den. Den kan være nyttig dersom man kun ønsker informasjon om katalogen og ikke alle filene også.
storm:~/public_html$ ls -ld drwxr-xr-x 5 jensj ntnu 93 Jul 22 17:44 ./
Dersom man ønsker å liste innholdet i en katalog, trenger man ikke å gå inn i katalogen. Da skriver man bare adressen til katalogen etter kommandoen: login:~$ ls -la public_html/bilder
Her listes innholdet i katalogen bilder opp. Den ligger
under katalogen public_html som ligger under hjemmekatalogen.
Ved
langlisting av kataloger vil det alltid dukke opp to linjer øverst som
viser katalogene '.' (punktum) og '..' (punktumpunktum). Disse har en
helt spesiell betydning. Katalogen '.' er den stående katalogen, altså
katalogen vi befinner oss i. I dette tilfellet er det
/home/homee/je/jensj. Katalogen '..' er katalogen over den stående
katalogen, i dette tilfellet /home/homee/je. De er altså ikke egentlige
kataloger og '.' vil ikke alltid være /home/homee/je/jensj. Dersom vi
står i katalogen /home/homee/je/jensj/public_html vil '.' være den
katalogen. Dette vil man få mye bruk for ved for eksempel kopiering av
filer og kataloger.
Opsjonen -ltr
I stedet for å sortere alfabetisk kan man sortere etter når filen sist ble lagret. Dette gjøres med opsjonen -t. I tillegg kan man reversere sorteringen med -r. Sammen med langlisteformatet vil ls nå gi ut en liste der nederste fil er den som er endret sist.
storm:~$ ls -ltr public_html/bilder total 164 -rw-r--r-- 1 jensj ntnu 1920 Jul 16 13:46 diskett.gif -rw-r--r-- 1 jensj ntnu 160335 Jul 22 17:40 100acre.gif
Vi ser at filen 100acre.gif er den som ble endret på sist. Dette er praktisk hvis man ikke husker navnet på den filen man arbeidet med sist i katalogen.
Skifte katalog (cd)
For å bevege seg rundt omkring på harddisken bruker man kommandoen cd som står for change directory. Kommandoen trenger normalt ett argument som bestemmer hvorhen man skal flytte seg. Dersom man ønsker å flytte seg til katalogen public_html skriver man
storm:~$ cd public_html storm:~/public_html$
Vi ser at kommandolinjen endrer seg og viser at vi befinner oss i katalogen public_html under hjemmekatalogen.
Vi husker at '..' betyr katalogen over stående katalog. Dersom man ønsker å flytte seg til katalogen over den man står i kan man altså skrive
storm:~/public_html$ cd .. storm:~$
Tilsvarende kan man flytte seg to kataloger oppover:
storm:~$ cd ../.. storm:/home$
Hvis argumentet til cd begynner med tegnet '/' er adressen som tidligere nevnt absolutt. Når det ikke gjør det tolkes det relativt i forhold til der man står. Så når man befinner seg i hjemmekatalogen og vil gå til public_html trenger man som vist i eksemplene ikke skrive hele adressen. Det holder å skrive det som kommer i tillegg til adressen til der man står. Argumentet tolkes også absolutt når det starter med '~' siden dette egentlig står for adressen /home/homee/je/brukernavn som begynner med '/'. Hvis man ikke gir et argument til cd kommer man alltid til hjemmekatalogen.
storm:/home$ cd /local/www/html/studorg storm:/local/www/html/studorg$ cd ~/public_html storm:~/public_html$ cd storm:~$
Lage katalog (mkdir)
For å lage nye kataloger brukes kommandoen mkdir som står for make directory. Denne kommandoen må ha minst ett argument som bestemmer navnet til den nye katalogen. For å lage katalogen musikk skriver man:
storm:~$ mkdir musikk storm:~$ ls -l total 4 drwx------ 2 jensj ntnu 9 Jul 16 13:40 Mail/ -rw------- 1 jensj ntnu 135 Jul 16 19:00 brevmor.txt lrwx------ 1 jensj ntnu 4 Jul 20 14:27 mail -> Mail/ drwx------ 2 jensj ntnu 9 Jul 21 02:10 musikk/ drwxr-xr-x 3 jensj ntnu 43 Jul 20 14:55 public_html/
Vi ser her at katalogen musikk er blitt opprettet. Katalogen blir opprettet i stående katalog. Dersom man vil ha den i en annen katalog må man enten gå inn i denne slik at den blir stående katalog, eller man skriver stien til den nye katalogen. Dersom man vil opprette katalogen lyd i katalogen public_html skriver man:
storm:~$ mkdir public_html/lyd storm:~$ cd public_html/ storm:~/public_html$ ls -l total 8 -rw-r--r-- 1 jensj ntnu 21 Jul 22 17:44 IMAGEMAP drwxr-xr-x 2 jensj ntnu 9 Jul 22 17:44 USERBIN/ drwxr-xr-x 2 jensj ntnu 49 Jul 22 17:40 lyd/ drwxr-xr-x 2 jensj ntnu 29 Jul 22 17:42 imagemap/ -rw-r--r-- 1 jensj ntnu 806 Jul 18 13:17 index.html drwx------ 2 jensj ntnu 9 Jul 27 17:04 musikk/
Nå ble lyd opprettet som underkatalog til public_html.
Slette katalog (rmdir)
For å slette kataloger brukes kommandoen rmdir som står for remove directory. Denne kommandoen må ha minst ett argument som angir adressen til katalogen(e) som skal slettes.
storm:~$ rmdir musikk public_html/lyd storm:~$ ls -l . public_html .: total 4 drwx------ 2 jensj ntnu 9 Jul 16 13:40 Mail/ -rw------- 1 jensj ntnu 135 Jul 16 19:00 brevmor.txt lrwx------ 1 jensj ntnu 4 Jul 20 14:27 mail -> Mail/ drwxr-xr-x 3 jensj ntnu 43 Jul 20 14:55 public_html/ public_html: total 8 -rw-r--r-- 1 jensj ntnu 21 Jul 22 17:44 IMAGEMAP drwxr-xr-x 2 jensj ntnu 9 Jul 22 17:44 USERBIN/ drwxr-xr-x 2 jensj ntnu 29 Jul 22 17:42 imagemap/ -rw-r--r-- 1 jensj ntnu 806 Jul 18 13:17 index.html
Vi ser her at katalogene musikk og lyd er blitt slettet.
For å bruke denne kommandoen må katalogen som skal slettes være tom.
Kopiere filer (cp)
For å kopiere filer brukes kommandoen cp som står for copy. Denne kommandoen må ha minst to argumenter som angir hvilken fil eller hvilke filer som skal kopieres, og hvor kopien skal ligge. Hvis det oppgis mer enn to argumenter må siste argument være en katalog. Eksempler på bruken av cp er:
cp frafil tilfil cp frafil tilkatalog cp frafil1 frafil2 ... frafil9 ... tilkatalog
Jens har allerede skrevet et brev til mor. For å spare tid vil han sende nesten det samme brevet til onkel. For å gjøre dette kopieres filen brevmor.txt til brevonkel.txt slik at brevet til onkel kan endres på uten at brevet til mor blir endret.
storm:~$ cp brevmor.txt brevonkel.txt storm:~$ ls -l total 8 drwx------ 2 jensj ntnu 9 Jul 16 13:40 Mail/ -rw------- 1 jensj ntnu 135 Jul 16 19:00 brevmor.txt -rw------- 1 jensj ntnu 135 Jul 21 13:17 brevonkel.txt lrwx------ 1 jensj ntnu 4 Jul 20 14:27 mail -> Mail/ drwxr-xr-x 3 jensj ntnu 43 Jul 20 14:55 public_html/
Hvis man skal kopiere flere filer på en gang, kan det gjøres ved å gi inn flere argumenter til kommandoen. Siste argument må da være en katalog siden en fil ikke kan inneholde flere filer.
storm:~$ cp brevmor.txt brevonkel.txt public_html storm:~$ ls -l public_html total 12 drwxr-xr-x 2 jensj ntnu 29 Jul 16 13:47 bilder/ -rw------- 1 jensj ntnu 135 Jul 21 13:18 brevmor.txt -rw------- 1 jensj ntnu 135 Jul 21 13:18 brevonkel.txt -rw-r--r-- 1 jensj ntnu 806 Jul 18 13:17 index.html
Begge brevene er nå kopiert inn i katalogen public_html.
I neste eksempel har Jens sett på brukeren til Jorun og funnet ut at hun har en fil han gjerne skulle ha hatt. Denne filen ligger i Joruns hjemmekatalog og heter .emacs. Jens ønsker å plassere filen i sin egen hjemmekatalog:
storm:~$ cp ~jorunj/.emacs . storm:~$ ls -la total 100 drwx--x--x 7 jensj ntnu 4096 Jul 25 11:44 ./ drwxr-xr-x 1531 root root 65536 Jul 25 11:32 ../ -rw------- 1 jensj ntnu 49 Jul 20 14:26 .Xauthority -rw------- 1 jensj ntnu 196 Jul 16 13:37 .Xdefaults -rw------- 1 jensj ntnu 2941 Jul 24 20:20 .bash_history -rw------- 1 jensj ntnu 232 Jul 16 13:37 .bash_logout -rw------- 1 jensj ntnu 236 Jul 16 13:37 .bash_profile -rw------- 1 jensj ntnu 212 Jul 16 13:37 .bashrc -rw------- 1 jensj ntnu 147 Jul 25 11:44 .emacs drwx------ 2 jensj ntnu 126 Jul 21 05:50 .netscape/ drwx------ 2 jensj ntnu 51 Jul 24 19:45 Brev/ drwx------ 2 jensj ntnu 9 Jul 16 13:40 Mail/ drwxrwx--- 2 jensj ineo 9 Jul 21 15:57 boksider/ lrwx------ 1 jensj ntnu 4 Jul 20 14:27 mail -> Mail/ drwxr-xr-x 5 jensj ntnu 93 Jul 22 17:44 public_html/
Dersom vi ser på kommandolinjen skrev ikke Jens adressen til sin egen hjemmekatalog, han skrev bare '.'. Dette er fordi han stod i hjemmekatalogen sin da han utførte kopieringen og '.' betyr som kjent stående katalog. For å kopiere elementer fra andre brukere må man ha rettigheter til å lese dem. Dette vil bli forklart i kapittelet om rettigheter.
Slette filer (rm)
For å slette filer brukes kommandoen rm som står for remove. Denne kommandoen må ha minst ett argument som sier hvilken fil som skal slettes. Den kan også slette mange filer på en gang.
storm:~/public_html$ rm brevonkel.txt brevmor.txt storm:~/public_html$ ls -l total 4 drwxr-xr-x 2 jensj ntnu 29 Jul 16 13:47 bilder/ -rw-r--r-- 1 jensj ntnu 806 Jul 18 13:17 index.html
Brevene til mor og onkel er nå slettet. Det er verdt å merke seg at det bare er de eksemplarene av brevene som lå i katalogen public_html som ble slettet. Eksemplarene som lå i hjemmekatalogen til Jens ligger der fortsatt.
storm:~$ ls -l total 8 drwx------ 2 jensj ntnu 9 Jul 16 13:40 Mail/ drwxrwx--- 2 jensj ineo 9 Jul 21 15:57 boksider/ -rw------- 1 jensj ntnu 135 Jul 21 13:17 brevonkel.txt -rw------- 1 jensj ntnu 135 Jul 16 19:00 brevmor.txt lrwx------ 1 jensj ntnu 4 Jul 20 14:27 mail -> Mail/ drwxr-xr-x 5 jensj ntnu 93 Jul 22 17:44 public_html/
For å slette alle filene i en katalog kan man bruke opsjonen -r hvor r står for rekursjon. Skal man slette alle filene i katalogen katalog skriver man altså: rm -r katalog. Vær oppmerksom på at kommandoen rm ikke gir noen angremuligheter og man får ingen advarsler! Når filene blir slettet er de borte for alltid.
Flytte filer (mv)
For å flytte filer brukes kommandoen mv som står for move. Denne kommandoen må ha minst to argumenter som angir hvilken fil, eventuelt hvilke filer, som skal flyttes og hvorhen de skal flyttes. Hvis det oppgis mer enn to argumenter må det siste argumentet være en katalog. Eksempler på bruken av mv er:
mv frafil tilfil mv frafil tilkatalog mv frafil1 frafil2 ... frafil9 ... tilkatalog
Listingen under viser at Jens har laget en katalog som han har kalt Brev:
storm:~$ ls -l total 8 drwx------ 2 jensj ntnu 9 Jul 24 19:33 Brev/ drwx------ 2 jensj ntnu 9 Jul 16 13:40 Mail/ drwxrwx--- 2 jensj ineo 9 Jul 21 15:57 boksider/ -rw------- 1 jensj ntnu 135 Jul 21 13:17 brevonkel.txt -rw------- 1 jensj ntnu 135 Jul 16 19:00 brevmor.txt lrwx------ 1 jensj ntnu 4 Jul 20 14:27 mail -> Mail/ drwxr-xr-x 5 jensj ntnu 93 Jul 22 17:44 public_html/
Nå ønsker Jens å flytte brevene til mor og onkel inn i den nye katalogen:
storm:~$ mv brevonkel.txt brevmor.txt Brev storm:~$ ls -l total 0 drwx------ 2 jensj ntnu 49 Jul 24 19:34 Brev/ drwx------ 2 jensj ntnu 9 Jul 16 13:40 Mail/ drwxrwx--- 2 jensj ineo 9 Jul 21 15:57 boksider/ lrwx------ 1 jensj ntnu 4 Jul 20 14:27 mail -> Mail/ drwxr-xr-x 5 jensj ntnu 93 Jul 22 17:44 public_html/
Som vi ser er brevene fjernet fra hjemmekatalogen, men vi finner dem igjen i katalogen Brev:
storm:~$ cd Brev storm:~/Brev$ ls -l total 8 -rw------- 1 jensj ntnu 135 Jul 21 13:17 brevonkel.txt -rw------- 1 jensj ntnu 135 Jul 16 19:00 brevmor.txt
Dersom man flytter en fil innenfor samme katalog så er det akkurat det samme som å endre navn på filen.
storm:~/Brev$ mv brevonkel.txt brevjorun.txt storm:~/Brev$ ls -l total 8 -rw------- 1 jensj ntnu 135 Jul 21 13:17 brevjorun.txt -rw------- 1 jensj ntnu 135 Jul 16 19:00 brevmor.txt
Stakkars onkel får ikke lenger noe brev, det gjør derimot Jorun.
Rettigheter og grupper
Med kommandoen ls -l fikk vi ut ganske mye informasjon. Feltene det ikke har blitt sagt noe om til nå er rettigheter og gruppe. Vi minnes følgende:
Rettigheter L Bruker Gruppe Størrelse mm dd tt:mm Navn storm:~$ ls -la total 96 drwx--x--x 7 jensj ntnu 4096 Jul 24 19:34 ./ drwxr-xr-x 1530 root root 65536 Jul 24 06:28 ../ -rw------- 1 jensj ntnu 49 Jul 20 14:26 .Xauthority -rw------- 1 jensj ntnu 196 Jul 16 13:37 .Xdefaults -rw------- 1 jensj ntnu 2644 Jul 23 11:27 .bash_history -rw------- 1 jensj ntnu 232 Jul 16 13:37 .bash_logout -rw------- 1 jensj ntnu 236 Jul 16 13:37 .bash_profile -rw------- 1 jensj ntnu 212 Jul 16 13:37 .bashrc drwx------ 2 jensj ntnu 126 Jul 21 05:50 .netscape/ drwx------ 2 jensj ntnu 51 Jul 24 19:45 Brev/ drwx------ 2 jensj ntnu 9 Jul 16 13:40 Mail/ drwxrwx--- 2 jensj ineo 9 Jul 21 15:57 boksider/ lrwx------ 1 jensj ntnu 4 Jul 20 14:27 mail -> Mail/ drwxr-xr-x 5 jensj ntnu 93 Jul 22 17:44 public_html/
Feltet for rettigheter består alltid av ti tegn. Det første viser hvilken type elementet er.
- = Fil d = Katalog (directory) l = Symbolsk lenke (link)
De siste ni tegnene kan deles inn i tre grupperinger med tre tegn der de tre første gjelder for eieren, de tre midterste for medlemmer av gruppe og de tre siste for alle andre.
Det er i denne forbindelse at feltet gruppe blir viktig. En kan for eksempel gi medlemmer av en gruppe lov til å både lese og skrive til en fil mens alle andre kun har lov til å lese filen.
I hver av de tre grupperingene er det et fast mønster for hvilke bokstaver som kan stå der og hva de betyr. Betydningen av disse bokstavene er forskjellig for filer og kataloger. Følgende gjelder på de ulike plassene, nummerert en til tre fra venstre, for filer.
1 r Lov til å lese innholdet i filen 1 - Ikke lov til å lese innholdet i filen 2 w Lov til å redigere innholdet i filen 2 - Ikke lov til å redigere innholdet i filen 3 x Filen er et kjørbart program 3 - Filen er ikke et kjørbart program
Følgende gjelder for kataloger:
1 r Lov til å se hvilke filer som finnes i katalogen 1 - Ikke lov til å se hvilke filer som finnes i katalogen 2 w Lov til å redigere filer i katalogen 2 - Ikke lov til å redigere filer i katalogen 3 x Lov til å komme inn i katalogen 3 - Ikke lov til å komme inn i katalogen 3 s Samme som x, men filer som opprettes i katalogen får samme gruppe som det katalogen har. Vanligvis får nye filer samme gruppe som det brukeren har som standard, oftest navnet på fakultetet vedkommende er tilknyttet.
For Jens kan vi lese følgende informasjon fra utvalgte linjer i listingen over:
drwx--x--x 6 jensj ntnu 4096 Jul 21 15:57 ./
Alle har lov til å komme inn i hjemmekatalogen hans, men ingen andre enn han kan lese innholdet i katalogen eller skrive til den.
drwxr-xr-x 3 jensj ntnu 43 Jul 21 14:34 public_html/
Alle har lov til å komme inn i katalogen public_html og lese innholdet i den, men bare Jens kan skrive til den.
drwxrws--- 2 jensj ineo 9 Jul 21 15:57 boksider/
Kun medlemmer av gruppen ineo har lov til å gå inn i katalogen boksider. De kan også skrive til filer under den og alle filer som blir opprettet får automatisk gruppe ineo.
drwx------ 2 jensj ntnu 9 Jul 16 13:40 Mail/
Katalogen Mail er bare åpen for Jens. Det er slik det skal være, ingen andre enn brukeren selv skal ha tilgang til e-posten.
lrwx------ 1 jensj ntnu 4 Jul 20 14:27 mail -> Mail/
Rettighetene til den symbolske lenken mail er helt uinteressante fordi det er rettighetene til katalogen den henviser til som gjelder.
Sjekke gruppemedlemskap (groups)
For å sjekke hvilke grupper man er medlem i kan kommandoen groups benyttes:
storm:~$ groups ntnu ineo
Jens er medlem av gruppene ntnu og ineo. Når man får tildelt bruker blir man også medlem av en gruppe. Som regel er det gruppen for fakultetet man går på.
Det arbeides med et opplegg der hver enkelt bruker kan opprette en egen personlige gruppe. Brukerne vil da selv kunne styre hvem som får tilgang til denne gruppen.
Endre gruppe (chgrp)
For å endre gruppe på filer og kataloger benytter en kommandoen chgrp som står for change group. Første argument sier hvilken gruppe som skal få tilgang og alle argumenter etter dette forteller hvilke filer og kataloger det gjelder:
storm:~$ ls -ld boksider drwxrwx--- 2 jensj ineo 9 Jul 21 15:57 boksider/ storm:~$ chgrp ntnu boksider storm:~$ ls -ld boksider drwxrwx--- 2 jensj ntnu 9 Jul 21 15:57 boksider/
Gruppen til boksider er endret fra ineo til ntnu.
Endre rettigheter (chmod)
Denne kommandoen brukes til å endre rettighetene til en fil eller en katalog. Den krever minst to argumenter. Det første angir hva slags endring som skal utføres, det andre, og eventuelt de påfølgende, hvilke elementer som skal endres.
For gruppene bruker vi betegnelsene:
u bruker (user) g gruppe (group) o andre (other) a alle (all)
Betegnelser for hva som skal gjøres:
+ Legg til rettighet - Fjern rettighet = Sett rettighet til
Fra kapittelet om rettigheter og grupper har vi betegnelsene for rettighetene:
Filer:
1 r Leseadgang 2 w Skriveadgang 3 x Kjørbart program
Kataloger:
1 r Lov å lese innholdet i katalogen 2 w Lov å skrive til filer i katalogen 3 x Lov til å passere inn i katalogen og videre ned i underkataloger. 3 s Samme som x, men når filer opprettes får de samme gruppe som katalogen har.
For å endre rettighetene til filen 100acre.map slik at de som tilhører samme gruppe og alle andre skal få adgang til å lese filen må man bruke chmod slik:
storm:~/public_html/imagemap$ ls -l total 0 -rw------- 1 jensj ntnu 0 Jul 22 17:42 100acre.map storm:~/public_html/imagemap$ chmod go+r 100acre.map storm:~/public_html/imagemap$ ls -l total 0 -rw-r--r-- 1 jensj ntnu 0 Jul 22 17:42 100acre.map
Her ser vi at rettighetene for gruppe og andre er endret.
Man kunne i dette tilfellet også ha skrevet chmod go=r 100acre.map. Da ville rettighetene for gruppe og andre bli satt til 'r--' uansett hva de var tidligere. Ved å bruke '+' unngår han å endre andre rettigheter enn leseadgangen.
Symbolske lenker (ln -s)
Med denne kommandoen kan man opprette symbolske lenker mellom elementer. Den krever minst to argumenter som bestemmer hva den symbolske lenken skal henvise til og hva den skal hete.
Jorun har et program liggende på brukeren sin som Jens gjerne vil ha tilgang på. Jens kan selvfølgelig kopiere programmet over på sin egen bruker, men han velger å lage en symbolsk lenke. Dette har to fordeler; for det første sparer han plass på harddisken, en symbolsk lenke opptar praktisk talt ingen plass. For det andre vet Jens at Jorun sørger for å oppdatere programmet slik at hun alltid har nyeste og beste versjon liggende. Når Jens kjører programmet via den symbolske lenken vil han kjøre den versjonen Jorun har liggende og dermed slipper han å oppdatere programmet selv hver gang Jorun endrer noe.
Programfilen heter maplay og Jens vil legge linken i sin nylagde katalog bin. Så lenge Jens ikke oppgir noe filnavn på lenken, men kun katalogen den skal ligge i, vil den bli hetende det samme som filen den henviser til.
storm:~$ ln -s ~jorunj/bin/maplay bin storm:~$ cd bin storm:~/bin$ ls -l total 0 lrwx------ 1 jensj ntnu 28 Jul 27 17:55 maplay -> ~jorunj/bin/maplay*
For at Jens skal kunne kjøre dette programmet må han ha rett til å gå gjennom Joruns hjemmekatalog og bin-katalog. Foruten leserettigher til katalogen bin må han også ha lese- og kjørerettigheter på filen maplay. Disse rettighetene må han ha hver gang han skal kjøre programmet, ikke bare når han oppretter lenken. Dette er det Jorun som må tillate ved å gi ham disse rettighetene.
Vis innhold av filer (cat)
For å vise innholdet av filer på skjermen brukes kommandoen cat som står for concatenate files and print. Denne kommandoen må ha minst ett argument som bestemmer hvilke(n) fil(er) som skal vises.
storm:~/Brev$ cat brevmor.txtHei Mor! Gratulerer med dagen som var for 5 dager siden. Som vanlig husket jeg det ikke i år heller. Unnskyld... Jeg håper du har det bra og at du hadde en fin bursdag. Jeg har det bare bra her i Trondheim. Har dere fint vær hjemme? Her i Trondheim er det ganske mye regn, men det gjør jo ingenting når jeg sitter inne og leser. Jeg kommer hjem til jul. Hilsen Jensemannen.
Jens får her se hva han har skrevet i brevet til mor.
Vis innhold av filer side for side (less)
Dersom man bruker cat på filer som er større enn en vinduside, vil teksten bare rulle over vinduet og man får bare lest slutten av filen. Da bruker man heller kommandoen less som viser innholdet av filen side for side. Denne må ha minst et argument som bestemmer hvilken fil som skal vises.
For å bevege seg rundt omkring i filen bruker man:
space en side ned enter en linje ned b en side opp j en linje ned k: en linje opp g Gå til begynnelsen av filen G Gå til slutten av filen /ord Søke etter ord q Avslutte
Foruten disse er det mange flere funksjoner tilgjengelig. Hvordan disse finnes, blir forklart i kapittelet om manualsider. På ytterst få maskiner finnes ikke kommandoen less. Da vil den kunne erstattes av kommandoen more. Denne kommandoen brukes på akkurat samme måte.
Vis begynnelsen av en fil (head)
Denne kommandoen viser de første ti linjene av en fil. Den krever minst et argument som bestemmer hvilken fil som skal vises. Jens har lagret en sang i katalogen Brev. Han har kalt filen sang.txt, men nå husker han ikke hvilken sang det var. En enkel måte å finne det ut på er å se på begynnelsen av filen.
storm:~/Brev$ head sang.txt Neste Sommer - DeLillos [ NB! B = "norsk" H ] (D Bm Em F#) x 2 D Bm Em F# Det var en gang en sommer i nittenhundre og nittitre D Bm Em F# Hvor alt var saa behagelig og verden var discret
Ut i fra dette er det lett å se at tekstfilen inneholder en eller flere sanger av DeLillos.
Dersom man ønsker å se flere eller færre linjer enn de ti første skriver man: head -antall_linjer filnavn
Vis slutten av en fil (tail)
Denne kommandoen viser de ti siste linjene av en fil. Den krever et argument som bestemmer hvilken fil som skal vises.
Jens lurer på om "Neste sommer" er den eneste sangen han har i filen sang.txt:
storm:~/Brev$ tail sang.txt Det var en gang en sommer i nittenhundre og nittitre hvor verden laa ufarlig langs Norges kyst et sted paa radioen var det et program om sommermat vi ruslet ned og tok et bad [refrenget to ganger til...]
Dette er slutten på sangen som ble vist med kommandoen head og sjansen er da veldig stor for at filen bare inneholder en sang.
Dersom man ønsker å se flere eller færre linjer enn de ti siste skriver man: tail -antall_linjer filnavn
Gjøre vinduet blankt (clear)
Denne kommandoen visker ut alt i vinduet og plasserer prompten på nytt i øvre venstre hjørne akkurat som da man logget inn..
Listing av ledig diskplass (diskkvote)
Kommandoen viser enkelt og greit hvor mye plass du har fått tildelt, og hvor av det du bruker. Hvis du bruker for mye så vil du få se hvilke filer som vil til å bli slettet neste gang periodeslett blir gjennomført.
login:~$ diskkvote
--Disk quota for user jensj—
Your qouta...............: 61440 KB
Checking directories....: /home/homee/je/jensj
: /local/www.stud/users/jensj
Diskusage................:32902 KB
You are below your quota of 61440 KB
Det kan være en god ide og kjøre denne kommandoen en gang iblant slik at du uår at filer du vil ta vare på slettes.
Personlig bruk av diskplass (diskusage).
Denne kommandoen brukes til å se hvor mye plass underkataloger og tilhørende er under en katalog opptar på harddisken. Kommandoen er ofte brukt for å vise hvor mye plass man selv bruker.
login:~$ diskusage 292 ./.netscape 172 ./public_html 164 ./public_html/bilder 12 ./Brev 0 ./Mail 0 ./bin 0 ./boksider 696 .
Forbruket for hver katalog og summen av alle underkataloger og filer under de vises i antall KB i første kolonne. Det betyr at i katalogen ./public_html/ber er det 164 KB med filer. I katalogen public_html, inkludert underkatalogenpublic_html/bilder, er det 172 KB med filer. Det betyr at det i selve public_l kun er brukt 8 KB. Totalt bruker Jens 696 KB på harddisken.
Manualsider (man)
Med de fleste kommandoer følger det med manualer. Disse får man frem ved å skrive man kommando. Hvis man vil se manualen til kommandoen cat skriver man
storm:~$ man cat
CAT(1) FSF (GNU Text Utilities) CAT(1)
NAME
cat - concatenate files and print on the standard output
SYNOPSIS
cat [-benstuvAET] [--number] [--number-nonblank]
[--squeeze-blank] [--show-nonprinting] [--show-ends]
[--show-tabs] [--show-all] [--help] [--version] [file...]
DESCRIPTION
This manual page documents the GNU version of cat. cat
writes the contents of each given file, or the standard
input if none are given or when a file named `-' is given,
to the standard output.
OPTIONS
-b, --number-nonblank
Number all nonblank output lines, starting with 1.
Manualene blir vist ved hjelp av programmet less. Man flytter seg derfor rundt i dokumentet på samme måte som i less. Forklaring til hvordan manualene er bygget opp og hvordan man skal forstå dem finnes med kommandoen man man.
Ikke fortvil hvis dette eksempelet virker overveldende. Manualsidene skal forklare alt om hver eneste kommando og da blir det fort mye informasjon som skal med. De viktigste punktene i en manualside er:
Synopsis Hvilke opsjoner kommandoen godtar. Hvis opsjonene står mellom to []-klammer er det frivillig om man vil ha dem med. Description Hva kommandoen kan gjøre. Options Hva alle opsjonene betyr. Ofte er det mange av dem.
Søke etter manualsider (apropos)
Når man vet hva man vil gjøre, men ikke vet hvilken kommando som gjør det, er det behov for å søke etter den. Det gjøres med kommandoen apropos.
storm:~$ apropos mail MIME (1) - Multipurpose Internet Mail Extensions Rnmail (1) - a program for replying via mail audiosend (1) - Send an audio email message cmail (6) - an email chess helper elm (1) - an interactive mail system filter (1) - filter incoming messages before adding to mailbox formail (1) - mail (re)formatter frm,nfrm (1) - list from and subject of selected messages hypermail (1) - convert mail archives in UNIX box format to HTML pages mailcap (4) - metamail capabilities file mailto (1) - Simple mutlimedia mail sending program mailto-hebrew (1) - Run the mailto program to send Hebrew/English mail messages (1) - quick count of messages in mailbox or folder metamail (1) - mailcap-based multimedia mail handling metasend (1) - Crude interface for sending non-text mail mimencode (1) - Translate to and from mail-oriented encoding formats pine (1) - a Program for Internet News and Email printmail (1) - format mail in a readable fashion for printing procmail (1) - autonomous mail processor ... osv 50+ linjer til ...
Ut fra dette kan man velge et program, f.eks. pine, som ser ut til å gjøre det man ønsket.
Reserverte tegn og deres betydning
I UNIX er det en del tegn som er reservert fordi de har en spesiell symbolsk betydning. Disse bør normalt ikke brukes i navn på kataloger og filer. Viktige eksempler på dette er:
? Ett hvilket som helst tegn eller intet tegn. * Alle tegnkomkombinasjoner som finnes. Som uendelig mange ? etter hverandre. ; Skiller mellom hele kommandolinjer. Space Skiller mellom kommandoer, opsjoner og argumenter. Tab Ikke tillatt som vanlig tegn. & Sender jobber i bakgrunnen. Se kapittel om jobbkontroll. ( Grupperer kommandoer. ) Grupperer kommandoer. | Sender output fra kommando videre. > Sender output til fil. < Tar input fra fil.
Komprimering av filer (gzip)
Denne kommandoen kan komprimere filer slik at de opptar mindre plass på harddisken. I praksis skjer det ved at filene kodes om til uleselig tekst som bruker mindre plass enn den originale filen. For å kunne lese filene igjen eller arbeide med dem må de dekomprimeres tilbake til original form. For å spare plass er det derfor en god skikk å komprimere filer man sjelden bruker, men likevel vil beholde.
Kommandoen gzip står for gnu zip, der gnu er betegnelse for en type gratis programmer og zip er standarden for komprimeringen. Kommandoen krever minst ett argument som angir hvilken fil som skal komprimeres.
storm:~/Brev$ ls -l total 12 -rw------- 1 jensj ntnu 135 Jul 21 13:17 brevjorun.txt -rw------- 1 jensj ntnu 379 Jul 26 14:06 brevmor.txt -rw------- 1 jensj ntnu 1040 Jul 26 15:13 sang.txt storm:~/Brev$ gzip *.txt storm:~/Brev$ ls -l total 12 -rw------- 1 jensj ntnu 145 Jul 21 13:17 brevjorun.txt.gz -rw------- 1 jensj ntnu 268 Jul 26 14:06 brevmor.txt.gz -rw------- 1 jensj ntnu 457 Jul 26 15:13 sang.txt.gz storm:~/Brev$
Vi husker at * erstatter alle mulige tegn og kommandoen derfor vil bli utført på alle filer som slutter på .txt. Filene som er blitt komprimert har nå fått et tillegg .gz i navnet for å vise at de er komprimert.
Vi ser at filene brevmor og sang nå opptar atskillig mindre plass på harddisken, mens brevjorun faktisk opptar større plass. Dette skyldes at komprimeringsprogrammet bruker en gjenkjenningsalgoritme som blir mer og mer effektiv jo større filen er. For små filer vil det altså kunne virke mot sin hensikt.
Dekomprimering av filer (gunzip)
Denne kommandoen dekomprimerer filer som er komprimert med kommandoen gzip. Navnet gunzip er bygget opp på samme måte som gzip og står for gnu unzip, altså motsatt virkning av gzip. kommandoen gunzip krever minst ett argument som angir hvilken fil som skal dekomprimeres.
storm:~/Brev$ gunzip *.gz storm:~/Brev$ ls -l total 12 -rw------- 1 jensj ntnu 135 Jul 21 13:17 brevjorun.txt -rw------- 1 jensj ntnu 379 Jul 26 14:06 brevmor.txt -rw------- 1 jensj ntnu 1040 Jul 26 15:13 sang.txt storm:~/Brev$
Nå kan filene igjen leses og redigeres som om det aldri hadde vært gjort noe spesielt med dem. Men ulempen er at de igjen opptar mer plass enn i komprimert tilstand.
Arkivere filer og kataloger som en fil (tar)
Denne kommandoen gjør det mulig å arkivere flere filer og kataloger som en fil. Dette kan være svært nyttig, for eksempel når man skal komprimere mange filer samtidig. Programmet ble opprinnelig utviklet for å kopiere data over på taper for ta backup, derav navnet tape archiver. Til vanlig bruk må man alltid bruke opsjonen f. Denne tilsynelatende unødige opsjonen må alltid være med fordi tar ellers tror at vi ønsker å skrive filene til en tape. Det spesielle med kommandoen tar er at denne ikke bruker '-' foran opsjonene. En nærmere beskrivelse av kommandoene følger i tabellen under:
Opsjoner
c Legge til filer x Hente ut filer t Vise innholdet i et arkiv v Sier at tar skal fortelle hva den gjør f Bruke fil istedenfor tape
Generelt for å arkivere flere filer som en fil skriver man: tar cvf filnavn.tar fil1 fil2 ... fil9 ...
Man kan velge om man vil ha med opsjonen v eller ikke, da den bare bestemmer om tar skal fortelle hva den gjør.
storm:~$ tar cvf backup.tar Brev Brev/ Brev/brevmor.txt Brev/brevjorun.txt Brev/sang.txt storm:~$ ls -l Brev backup.tar -rw------- 1 jensj ntnu 10240 Jul 27 21:31 backup.tar Brev: total 12 -rw------- 1 jensj ntnu 135 Jul 21 13:17 brevjorun.txt -rw------- 1 jensj ntnu 379 Jul 26 14:06 brevmor.txt -rw------- 1 jensj ntnu 1040 Jul 26 15:13 sang.txt
Det er lett å legge til flere filer i arkivet.
storm:~$ tar cf backup.tar public_html/bilder public_html/index.html
Etter at man har laget arkivet er det fornuftig å teste innholdet i det.
storm:~$ tar tvf backup.tar drwx------ jensj/ntnu 0 Jul 27 17:27 1996 Brev/ -rw------- jensj/ntnu 379 Jul 26 14:06 1996 Brev/brevmor.txt -rw------- jensj/ntnu 135 Jul 21 13:17 1996 Brev/brevjorun.txt -rw------- jensj/ntnu 1040 Jul 26 15:13 1996 Brev/sang.txt drwxr-xr-x jensj/ntnu 0 Jul 27 17:07 1996 public_html/ drwxr-xr-x jensj/ntnu 0 Jul 22 17:40 1996 public_html/bilder/ -rw------- jensj/ntnu 1920 Jul 16 13:46 1996 public_html/bilder/diskett.gif -rw------- jensj/ntnu 160335 Jul 22 17:40 1996 public_html/bilder/100acre.gif -rw------- jensj/ntnu 806 Jul 18 13:17 1996 public_html/index.html
For at arkivet skal ta mindre plass er det fornuftig å komprimere det.
storm:~$ ls -l backup.tar -rw------- 1 jensj ntnu 163840 Sep 7 21:45 backup.tar storm:~$ gzip -9 backup.tar storm:~$ ls -l backup.tar.gz -rw------- 1 jensj ntnu 158479 Sep 7 21:45 backup.tar.gz
I dette tilfellet sparte man nesten ingenting på å komprimere. Det er fordi nesten hele arkivet består av bilder. De er vanskelige å komprimere og er nesten alltid komprimert på forhånd, avhengig av bildeformatet.
| Språk: | Kommentarer: | 0 | Aid: | 194 | Brukervurdering: |
|
|
| Sist oppdatert: | 2007-06-18 | Forfatter: | erlingbo | Lest: | 13343 ganger |