Linux-intro: Difference between revisions

From Programvareverkstedet
(La til en del info om de forskjellige mappene under / og hva de egentlig er (/proc, /dev og /sys er litt spesiell, nemlig))
 
(la til link til Linux documentation project)
 
(3 intermediate revisions by one other user not shown)
Line 1: Line 1:
= Introduksjon til Linux =
= Introduksjon til Linux =
Det finnes mange forskjellige "linux"-er, som gjerne kalles "linux distribusjoner" eller "distroer" for kort. Noen av dem er Debian, Arch og FreeBSD. Det disse har til felles
er at alle baserer seg på den samme "kjernen", nemlig linux kernelen. En kernel er på en måte bare det "greiene" som kjører lengre nede på maskinen slik at vi kan ha kule
ting på brukerområdet. Det området man er i når man bruker en datamskin på vanlig måte er brukerområdet "userspace", mens datamskinen kjører en hel del greier i bakgrunnen
som heter "kernelspace". Det er ikke alltid en direkte kobling mellom disse områdene, men for eksempel via filsystemet på linux, får man anledning til å se hva kernelen holder
på med.
== Linux Dokumentasjon ==
Her er en side som prøver å dokumentere viktige programmer og funksjoner med linux
https://tldp.org/HOWTO/pdf/


== Filsystemet på / ==
== Filsystemet på / ==
Line 5: Line 15:
Hva er egentlig alle mappene som ligger under / på et linux-system?
Hva er egentlig alle mappene som ligger under / på et linux-system?


=== /bin ===
{| class="wikitable"
 
! Mappenavn
Dette er en mappe for binærfilene som utgjør mange av kommandoene man kan kjøre i et skall på linux.  
! Beskrivelse
Som regel er innholdet her filer som systemet bruker og administrerer, og man bør som regel ikke tulle mye med denne mappen.
|-
 
| /bin
=== /boot ===
|
 
* Inneholder binærfiler som utgjør kommandoene man kan kjøre i et skall på linux.
Denne mappen inneholder bootloadere for det gjeldende systemet og er ikke noe man som regel trenger å prike borti.
* Som regel er disse filene brukt og administrert av systemet.
 
* Det er som regel ikke nødvendig å tulle mye med denne mappen.
=== /dev ===
|-
 
| /boot
Innholdet i denne mappen er egentlig ikke filer. Dette er nemlig mappen som inneholder alle enhetene (devices) som er tilkoblet systemet.
|
For eksempel tilkoblede disker, output-strømmer som ''stdout'' og usb-devices er tilkoblet her. Det er imidlertid ''ikke'' her innholdet på tilkoblede disker ligger.
* Inneholder bootloadere for det gjeldende systemet.
''sda'' og ''sdb'' er gjerne første og andre tilkoblede disk, men disse monteres som filsystemer på et annet sted for at man skal få tilgang til dataen i et fornuftig format.
* Som regel trenger man ikke pirke borti denne.
 
|-
=== /etc ===
| /dev
 
|
''etc'' står for et cetera. Tidligere var dette et sted for å dumpe ting som ikke havnet andre steder.  
* Inneholder filer som ikke ''egentlig'' er filer.
I praksis brukes denne mappen kun for konfigurasjonsfiler og maler til konfigurasjonsfiler.
* Innholdet er alle enheter (devices) som er tilkoblet systemet.
Konfigurasjonsfilene her vil ofte være globale, slik at de gjelder for hele systemet, fordi bruker-spesifike konfigurasjonsfiler havner under /home/<brukernavn>.
* Eksempler: disker, output-strømmer som ''stdout'' og usb-devices.
 
* Det er imidlertid ''ikke'' her innholdet på de tilkoblede diskene ligger.
=== /home ===
* ''sda'' og ''sdb'' er gjerne første og andre tilkoblede disk, men disse monteres som filsystemer på et annet sted.
 
|-
Her ligger brukermappene til alle brukerne på maskinen. På normale installasjoner av linux vil alle de lokale brukerne ha sine mapper her under sitt eget brukernavn,
| /etc
men på maskinene på PVV ligger ikke mappene lokalt, fordi man skal kunne kunne ha persistent tilgang til hjemmeområdet sitt fra hvilken som helst maskin.
|
Hjemmeområdet ligger lagret på en annen maskin og hjemmemappen lokalt på maskinen peker til "nettverkslokasjonen" som er hvor den ''faktisk'' er lagret.
* ''etc'' står for et cetera. Tidligere et sted for å dumpe ting som ikke havnet andre steder.
 
* I praksis er mappen brukt for konfigurasjonsfiler og maler til konfig-filer.
=== /lib ===
* Konfig-filene i denne mappen er ofte globale, slik at de gjelder for hele systemet.
 
* Brukerspesifike konfig-filer havner under /home/<brukernavn>
I denne mappen ligger mange av de delte bibliotekene forskjellige programmer trenger tilgang til for å fungere. Som med /bin er det veldig mye av innholdet som er system-relatert,
|-
og mye av innholdet bør las være i fred.
| /home
 
|
=== /media ===
* Her ligger brukermappene til alle brukerne på maskinen.
 
* På normale installasjoner av linux vil alle de lokale brukerne ha sine mapper her under sitt eget brukernavn.
Denne mappen brukes ofte som monteringspunkt for eksterne filsystemer. Sekundære harddisker som monteres på maskinen med kommandoen ''mount'' kan monteres her.
* På PVV ligger mappene derimot ikke lokalt, fordi området skal være lik over flere maskiner.
"Mediabiblioteker" og denslags monteres gjerne her, og det trenger da ikke være "tradisjonelle" disker med generell data, men heller nettverkslagringsstasjoner
* Hjemmeområdet ligger lagret på en annen maskin og hjemmemappen lokalt på maskinen peker til "nettverkslokasjonen" hvor alt ''faktisk'' er lagret.
som kun deler lyd, bilder og video som kobles til her.
|-
 
| /lib
=== /mnt ===
|
 
* Inneholder mange av de delte bibliotekene forskjellige programmer trenger tilgang til for å fungere.
En forkortning av mount og er også et monteringspunkt for disker. "General purpose" disker monteres gjerne her, slik som partisjoner på en eventuell disk ''sdb''.
* Som med /bin er det veldig mye av innholdet som er system-relatert og mye bør las være i fred.
 
|-
=== /opt ===
| /media
 
|
Opt er kort for "optional" og er brukt for programmer man installerer selv. Som regel havner egeninstallerte programmer under /usr/local, men det kan forekomme
* Ofte brukt som monteringspunkt for eksterne filsystem.
programmer under /opt også. Tredjeparts programmer og applikasjoner kan kanskje tenke seg å installere seg selv under /opt, da en del tredjeparter av uvisste
* Sekundære harddisker som monteres med kommandoen ''mount'' kan monteres her.
grunner ikke synes /usr mappen høres grei nok ut. Pakkebehandlere som apt og rpm kommer sannsynligvis ''ikke'' til å tukle med /opt.
* "Mediabiblioteker" og denslags monteres gjerne her.
 
* Ikke bare "tradisjonelle" disker men også nettverkslagringsstasjoner som kun deler lyd, bilde og video.
=== /proc ===
|-
 
| /mnt
Dette er i likhet med /dev ikke en "faktisk" mappe med "egentlige" filer. Proc er nemlig kort for "process" og inneholder informasjon om alle kjørende prosesser
|
på maskinen. Dersom man greier å forandre på disse filene forandrer man kjørende prosesser direkte. Det at denne informasjonen ligger som en del av filsystemet
* En forkortning av mount og er også et monteringspunkt for disker.
kommer av at på linux er "alt en fil" i en eller annen kapasistet.  
* "General purpose" disker monteres gjerne her, slik som partisjoner på en eventuell disk ''sdb''.
 
|-
=== /root ===
| /opt
 
|
Dette er hjemmemappen til rot-brukeren på systemet. I likhet med at alle brukere har en mappe på sitt hjemmeområde som inneholder litt forskjellig knask som en liste
* Opt er kort for "optional" og er brukt for programmer man selv installerer.
over de sist kjørte kommandoene, inneholder /root mye av det samme bare for brukeren "root".
* Som regel havner egeninstallerte programmer under /usr/local, men det kan forekomme programmer under /opt også.
 
* Tredjeparts programmer og applikasjoner kan kanskje installere seg selv under /opt
=== /run ===
* Dette er fordi noen tredjeparter ikke synes /usr mappen høres grei nok ut.
 
* Pakkebehandlere som apt og rpm kommer sannsynligvis ''ikke'' til å tukle med /opt.
Dette er en ganske ny mappe, og trenger ikke eksistere på eldre maskiner. Grunnen til at den ''kanskje'' eksisterer, er at oppstartsrutiner kan trenge et sted å lagre
|-
unna kjøretidsinformasjon før andre mapper (som /var/run) er montert i filsystemet. Dette er en slags videreføring av forholdet mellom /bin og /usr/bin, der de to sistnevnte
| /proc
utfører den samme jobben, nemlig å holde binærfiler som kan kjøres som kommandoer, men /usr/bin monteres senere i oppstartsrutinen, mens oppstarten selv krever at enkelte
|
binærfiler er tilgjengelig for å i det hele tatt kunne laste /usr/bin. /run monteres tidlig og kan brukes for å holde informasjon som kanskje til og med er nødvendig for at
* Dette er i likhet med /dev ikke en "faktisk" mappe med "egentlige" filer.
/var/run settes opp på rett måte.
* Proc er nemlig kort for "process" og inneholder informasjon om alle kjørende prosesser på maskinen.
 
* Dersom man greier å forandre på disse filene forandrer man kjørende prosesser direkte.
=== /sbin ===
* Det at denne informasjonen ligger som en del av filsystemet kommer av at på linux er "alt en fil".
 
|-
Denne mappen inneholder ''enda'' flere binærfiler, gjerne filer systemet trenger (derav s-en i sbin som står for system), men kun filer som ikke er kritisk under oppstart.
| /root
Det er som regel ikke nødvendig å tukle med innholdet her heller.
|
 
* Dette er hjemmeområdet til rotbrukeren på systemet.  
=== /sys ===
* I brukernes hjemmeområder ligger det mye knask som en historikk over sist kjørte kommandoer.
 
* I /root har man mye det samme, bare for rotbrukeren.
Dette er enda et "virtuelt" filsystem på samme måte som /proc og /dev. Det spesielle med denne mappen er at den holder informasjon om systemet selv.
|-
/proc er prosesser, /dev er devices og /sys er info om systemet. Informasjonen i denne mappen omhandler gjerne kernelen selv og RAM.
| /run
 
|
=== /usr ===
* Dette er en ganske ny mappe, og trenger ikke eksistere på eldre maskiner.  
* Oppstartsrutiner trenger et sted å lagre unna kjøretidsinformasjon før andre mapper monteres.
* /run er en videreføring av forholdet mellom /bin og /usr/bin.
* Begge mappene inneholder binærfiler som kjøres som kommandoer, men /usr/bin monteres senere i oppstartsrutinen, men noen kommandoer trengs ganske tidlig.
* /run monteres tidlig og kan brukes for å holde informasjon som kan være nyttig for å starte /var/run, blant annet.
|-
| /sbin
|
* Inneholder ''enda'' flere binærfiler, gjerne systemfiler (derav s-en for system), som ikke er kritisk under oppstart.
* Som regel er det ikke nødvendig å tukle med innholdet.
|-
| /sys
|
* Dette er enda et "virtuelt" filsystem på samme måte som /proc og /dev.  
* Det spesielle med denne mappen er at den holder informasjon om systemet selv.
* /proc er prosesser, /dev er devices og /sys er info om systemet.  
* Informasjonen i denne mappen omhandler gjerne kernelen selv og RAM.
|-
| /usr
|
* En samlemappe for programmer og filer relatert til brukerne av systemet.
* /usr inneholder mapper som /usr/bin, /usr/lib og /usr/local.
* Her finner man binærfiler og biblioteker som er lastet ned av eller for brukeren(e).
* Ofte har man en pakkebehandler som tar seg av innholdet her, men det kan hende at man må tulle med noen filer her for å få systemet til å samarbeide.
* Det kommer helt an på hvilke programmer man har lastet ned.
|-
| /var
|
* ''var'' står for "various" og er destinasjonen for en del filer systemet bruker for å lagre unna data under kjøretid.
* /var/cache inneholder cachet data for forskjellige programmer som kjører.
* /var/run inneholder info om kjøretid og prosesser som kun er gyldig til maskinen skrus av.
* /var/lock inneholder en oversikt over låser som programmet kan putte på andre filer for å hindre endring mens en prosess trenger filen.
* /var/lib inenholder dynamiske biblioteker som programmene renger mens maskinen kjører.
* /var/log inneholder logfiler fra diverse prosesser og andre ting.
|}


Dette er en samlemappe for programmer og filer relatert til brukerne av systemet. /usr inneholder mapper som /usr/bin, /usr/lib og /usr/local.
== Skall og terminaler ==
Her har man binærfiler og biblioteker som er lastet ned av eller for brukeren(e). Man har ofte pakkebehandlere som tar seg av innholdet her, men
det kan gjerne tenkes at man må tulle med noe filer her inne for å få systemet til å samarbeide. Det kommer da an på hvilke programmer man har lastet ned.


=== /var ===
Et skall er et program som mottar en kommando og får operativsystemet til å utføre kommandoen.
En terminal er et program som tar tastene man trykker på og oversetter dem til tegn som maskinen forstår som den da sender videre, enten til et skall eller til et annet program som lytter.


var står for "various" og er destinasjonen for en del filer systemet bruker for å lagre unna data under kjøretid.  
Terminalen tolker dermed tastaturet, mens skallet tolker teksten man skriver inn.


* /var/cache inneholder cachet data for forskjellige programmer som kjører på maskinen
Dersom man ønsker å vite mer om dette, kan man lese mer her: http://unixsheikh.com/articles/the-terminal-the-console-and-the-shell-what-are-they.html
* /var/run inneholder informasjon om kjøretid og prosesser som ikke skal lagres til neste oppstart (kun gyldig frem til maskinen skrus av)
* /var/lock inneholder en oversikt over låser som programmer kan putte på andre filer på systemet for å hindre at filer forandres mens programmene trenger at de er uendret
* /var/lib inneholder dynamiske biblioteker som programmene trenger mens maskinen kjører
* /var/log inneholder logfiler fra diverse prosesser og andre ting

Latest revision as of 19:13, 27 August 2021

Introduksjon til Linux

Det finnes mange forskjellige "linux"-er, som gjerne kalles "linux distribusjoner" eller "distroer" for kort. Noen av dem er Debian, Arch og FreeBSD. Det disse har til felles er at alle baserer seg på den samme "kjernen", nemlig linux kernelen. En kernel er på en måte bare det "greiene" som kjører lengre nede på maskinen slik at vi kan ha kule ting på brukerområdet. Det området man er i når man bruker en datamskin på vanlig måte er brukerområdet "userspace", mens datamskinen kjører en hel del greier i bakgrunnen som heter "kernelspace". Det er ikke alltid en direkte kobling mellom disse områdene, men for eksempel via filsystemet på linux, får man anledning til å se hva kernelen holder på med.

Linux Dokumentasjon

Her er en side som prøver å dokumentere viktige programmer og funksjoner med linux

https://tldp.org/HOWTO/pdf/

Filsystemet på /

Hva er egentlig alle mappene som ligger under / på et linux-system?

Mappenavn Beskrivelse
/bin
  • Inneholder binærfiler som utgjør kommandoene man kan kjøre i et skall på linux.
  • Som regel er disse filene brukt og administrert av systemet.
  • Det er som regel ikke nødvendig å tulle mye med denne mappen.
/boot
  • Inneholder bootloadere for det gjeldende systemet.
  • Som regel trenger man ikke pirke borti denne.
/dev
  • Inneholder filer som ikke egentlig er filer.
  • Innholdet er alle enheter (devices) som er tilkoblet systemet.
  • Eksempler: disker, output-strømmer som stdout og usb-devices.
  • Det er imidlertid ikke her innholdet på de tilkoblede diskene ligger.
  • sda og sdb er gjerne første og andre tilkoblede disk, men disse monteres som filsystemer på et annet sted.
/etc
  • etc står for et cetera. Tidligere et sted for å dumpe ting som ikke havnet andre steder.
  • I praksis er mappen brukt for konfigurasjonsfiler og maler til konfig-filer.
  • Konfig-filene i denne mappen er ofte globale, slik at de gjelder for hele systemet.
  • Brukerspesifike konfig-filer havner under /home/<brukernavn>
/home
  • Her ligger brukermappene til alle brukerne på maskinen.
  • På normale installasjoner av linux vil alle de lokale brukerne ha sine mapper her under sitt eget brukernavn.
  • På PVV ligger mappene derimot ikke lokalt, fordi området skal være lik over flere maskiner.
  • Hjemmeområdet ligger lagret på en annen maskin og hjemmemappen lokalt på maskinen peker til "nettverkslokasjonen" hvor alt faktisk er lagret.
/lib
  • Inneholder mange av de delte bibliotekene forskjellige programmer trenger tilgang til for å fungere.
  • Som med /bin er det veldig mye av innholdet som er system-relatert og mye bør las være i fred.
/media
  • Ofte brukt som monteringspunkt for eksterne filsystem.
  • Sekundære harddisker som monteres med kommandoen mount kan monteres her.
  • "Mediabiblioteker" og denslags monteres gjerne her.
  • Ikke bare "tradisjonelle" disker men også nettverkslagringsstasjoner som kun deler lyd, bilde og video.
/mnt
  • En forkortning av mount og er også et monteringspunkt for disker.
  • "General purpose" disker monteres gjerne her, slik som partisjoner på en eventuell disk sdb.
/opt
  • Opt er kort for "optional" og er brukt for programmer man selv installerer.
  • Som regel havner egeninstallerte programmer under /usr/local, men det kan forekomme programmer under /opt også.
  • Tredjeparts programmer og applikasjoner kan kanskje installere seg selv under /opt.
  • Dette er fordi noen tredjeparter ikke synes /usr mappen høres grei nok ut.
  • Pakkebehandlere som apt og rpm kommer sannsynligvis ikke til å tukle med /opt.
/proc
  • Dette er i likhet med /dev ikke en "faktisk" mappe med "egentlige" filer.
  • Proc er nemlig kort for "process" og inneholder informasjon om alle kjørende prosesser på maskinen.
  • Dersom man greier å forandre på disse filene forandrer man kjørende prosesser direkte.
  • Det at denne informasjonen ligger som en del av filsystemet kommer av at på linux er "alt en fil".
/root
  • Dette er hjemmeområdet til rotbrukeren på systemet.
  • I brukernes hjemmeområder ligger det mye knask som en historikk over sist kjørte kommandoer.
  • I /root har man mye det samme, bare for rotbrukeren.
/run
  • Dette er en ganske ny mappe, og trenger ikke eksistere på eldre maskiner.
  • Oppstartsrutiner trenger et sted å lagre unna kjøretidsinformasjon før andre mapper monteres.
  • /run er en videreføring av forholdet mellom /bin og /usr/bin.
  • Begge mappene inneholder binærfiler som kjøres som kommandoer, men /usr/bin monteres senere i oppstartsrutinen, men noen kommandoer trengs ganske tidlig.
  • /run monteres tidlig og kan brukes for å holde informasjon som kan være nyttig for å starte /var/run, blant annet.
/sbin
  • Inneholder enda flere binærfiler, gjerne systemfiler (derav s-en for system), som ikke er kritisk under oppstart.
  • Som regel er det ikke nødvendig å tukle med innholdet.
/sys
  • Dette er enda et "virtuelt" filsystem på samme måte som /proc og /dev.
  • Det spesielle med denne mappen er at den holder informasjon om systemet selv.
  • /proc er prosesser, /dev er devices og /sys er info om systemet.
  • Informasjonen i denne mappen omhandler gjerne kernelen selv og RAM.
/usr
  • En samlemappe for programmer og filer relatert til brukerne av systemet.
  • /usr inneholder mapper som /usr/bin, /usr/lib og /usr/local.
  • Her finner man binærfiler og biblioteker som er lastet ned av eller for brukeren(e).
  • Ofte har man en pakkebehandler som tar seg av innholdet her, men det kan hende at man må tulle med noen filer her for å få systemet til å samarbeide.
  • Det kommer helt an på hvilke programmer man har lastet ned.
/var
  • var står for "various" og er destinasjonen for en del filer systemet bruker for å lagre unna data under kjøretid.
  • /var/cache inneholder cachet data for forskjellige programmer som kjører.
  • /var/run inneholder info om kjøretid og prosesser som kun er gyldig til maskinen skrus av.
  • /var/lock inneholder en oversikt over låser som programmet kan putte på andre filer for å hindre endring mens en prosess trenger filen.
  • /var/lib inenholder dynamiske biblioteker som programmene renger mens maskinen kjører.
  • /var/log inneholder logfiler fra diverse prosesser og andre ting.

Skall og terminaler

Et skall er et program som mottar en kommando og får operativsystemet til å utføre kommandoen. En terminal er et program som tar tastene man trykker på og oversetter dem til tegn som maskinen forstår som den da sender videre, enten til et skall eller til et annet program som lytter.

Terminalen tolker dermed tastaturet, mens skallet tolker teksten man skriver inn.

Dersom man ønsker å vite mer om dette, kan man lese mer her: http://unixsheikh.com/articles/the-terminal-the-console-and-the-shell-what-are-they.html