Hoppa yfir í efnið

Skráakerfið

Skráakerfið er það skipulag sem við höfum á skrám og möppum í stýrikerfinu. Almennt gildir að skrár innihalda gögn (runur af bætum) en möppur innihalda samansafn af skrám og möppum.

Stigveldið

Stýrikerfið í Linux myndar stigveldi (þrepaskiptingu) sem kallast tré (e. tree). Rót (e. root, athugið að rugla samt ekki við ofurpaurinn (e. superuser eða root)) skráakerfisins táknum við með /, en þaðan hvíslast allar aðrar möppur skráakerfisins út.

Skoðum örlítið dæmi.

/
├── etc
├── home
│   └── notandi
│       ├── notes
│       └── playground
└── usr
    └── bin

Hér að ofan sjáum við rótina efst (í heimi tölvunarfræðinnar vaxa tré niður á við). Undir rótinni höfum við þrjár möppur, þ.e. etc, home og usr. Undir home möppunni höfum við svo aðra möppu notandi, sem inniheldur eina skrá, notes, og eina möppu playground.

Við sjáum þannig af hverju þetta fyrirbæri kallast tré, þar sem möppur mynda greinar (e. branch) trésins, sem hvíslast út frá öðrum möppum, og skrár mynda laufin (e. leaf).

Skráakerfi Windows

Skráakerfi Windows er ólíkt Linux á margan hátt.

  • Á Windows hefur skráakerfið margar rætur, og fær hver rót, sem kallast drif, sinn staf, t.d. C:, D:, o.s.frv.
  • Windows notast við öfugt skástrik \ to tákna slóðir í skráakerfinu, en Linux notast við /.
  • Windows takmarkar nöfn á skrám og möppum að mörgu leyti. Nöfn mega ekki innihalda ákveðna stafi eins og <, >, :, ", |, ? og *, svo dæmi séu nefnd.
  • Linux greinir á milli hástafa og lágstafa í skráaheitum. Þetta þýðir að skrárnar skjal.txt, Skjal.txt og SKJAL.TXT eru þrjár ólíkar skrár og geta verið í sömu möppu á Linux. Aftur á móti gerir skráakerfi Windows ekki greinarmun á há- og lágstöfum, og því geta þessar skrár ekki verið samtímis í sömu möppu í Windows, þar sem kerfið lítur á þær sem sömu skrána.

Slóðir

Slóð lýsir staðsetningu í skráakerfinu sem við getum hugsað sem eins konar leiðarlýsing að skrá eða möppu.

Algild slóð

Algild slóð (e. absolute path) er slóð sem lýsir staðsetningu skrár eða möppu frá rót skráakerfisins og byrjar því alltaf á /. Ef við skoðum litla dæmið að ofan, þá er algild slóð notes skráarinnar /home/notandi/notes.

Afstæð slóð

Afstæð slóð (e. relative path) tekur mið af vinnumöppu (e. current directory, working directory, current working directory). Þegar unnið er í skel og skipanir keyrðar er það ávallt gert í vinnumöppu. Þegar skelin er ræst, til dæmis, er vinnumappan allajafna heimamappan (e. home directory).

Afstæðar slóðir segja til um staðsetningu skrár, miðað við vinnumöppuna og hefjast því ekki á /. Ef við lítum aftur á litla dæmið að ofan, ef vinnumappan er /home, þá er afstæð slóð skráarinnar notes notandi/notes. Aftur á móti ef vinnumappan er /home/notandi þá er afstæða slóðin einfaldlega notes.

Vinnumappa Afstæð slóð
/ home/notandi/notes
/home notandi/notes
/home/notandi notes

Heimamappan

Þú getur séð heimamöppuna þína með því að keyra echo $HOME

Styttingar

Í slóðum

  • . merkir „hérna“.
  • .. merkir yfirmappa (e. parent directory), þ.e. mappan sem inniheldur núverandi skrá eða möppu.
  • ~ merkir heimamappan.

Að skipta um vinnumöppu

Skeljarskipunin cd (stytting á change directory) sér um að skipta um vinnumöppu. Skipunin tekur eina slóð sem viðfang og breytir vinnumöppunni í þá slóð, sé hún mappa. Ef slóðin er ekki til eða er ekki mappa fáum við villu og vinnumappan helst óbreytt.

Til að kanna hver núverandi vinnumappa er getum við notað skipunina pwd (stytting á print working directory), en með því að keyra

pwd
cd /etc
pwd        # Ætti að sýna /etc
getum við breytt vinnumöppunni og staðfest breytinguna.

Til að hoppa upp um möppu, þ.e. að breyta vinnumöppunni í yfirmöppu núverandi vinnumöppu, getum við notað .. og keyrt

pwd          # Ætti að sýna /etc
cd ..
pwd          # Ætti að sýna /
þar sem vinnumappan verður nú að rót skráakerfisins / ef við vorum áður í /etc.

Til að breyta vinnumöppunni (aftur) í heimamöppuna getum við nýtt okkur styttinguna ~ og keyrt

pwd          # Ætti að sýna /
cd
pwd          # Ætti að sýna /home/<notandanafn>
þar sem skelin túlkar cd án viðfangs sem beiðni um að fara beint heim.

Önnur aðgerð sem kann að reynast mjög hentug er að skipta aftur yfir í síðustu vinnumöppu, en með skipuninni

pwd          # Ætti að sýna /home/<notandanafn>
cd /etc
pwd          # Ætti að sýna /etc
cd -
pwd          # Ætti að sýna aftur /home/<notandanafn>
flytur cd - okkur á milli síðustu tveggja vinnumappa.

Dæmi

Ímyndaðu þér að þú sért í möppunni /home/notandi/myndir. Hvernig breytir þú viðfangsmöppunni í /home/notandi/skjöl?

Lausn

Þessar þrjár skipanir virka, til dæmis.

cd /home/notandi/skjöl
cd ../skjöl
cd ~/skjöl

Allt er skrá

Linux aðhyllist þá hugmyndafræði að allt sé skrá (e. everything is a file). Í stuttu máli þýðir það að skráakerfið er ekki bara listi yfir gögnin sem geymd eru á harða disknum, heldur hjúpun á marga ólíka hluti. Til að mynda eru eftirfarandi dæmi um skrár í Linux.

  • Skjöl á hörðum diski.
  • Möppur eru sérstakar tegundir af skrám.
  • Upplýsingar um vélbúnað, þ.m.t. örgjörva og harða diska
  • USB-tæki.
  • Upplýsingar um uppitíma, álag á örgjörva, o.s.frv.
  • Hver ferill er aðgengilegur sem mappa (undir /proc) sem inniheldur allar upplýsingar um hann.

Hjúpun

Hjúpun er ein mikilvægasta hugmyndafræði tölvunarfræðinnar.

Eitt dæmi um hjúpun í raunheimum eru bremsur og eldsneytisgjöf bíla. Þegar stigið er á bremsu eða eldsneytisgjöf í 40 ára gömlum bensínbíl gerist engan veginn það sama og þegar stigið er á sömu fetla í glænýjum rafmagnsbíl. En þrátt fyrir það getur ökumaður skipt auðveldlega á milli þessara tveggja bíla án þess að finna mikið fyrir þessari breytingu. Þetta er kraftur hjúpunar; hún gefur okkur samræmt viðmót og felur það sem gerist á bak við tjöldin.

Kosturinn við hjúpun er sá að hægt er að nota sömu hugmyndafræðina aftur og aftur, þrátt fyrir að undirliggjandi tæknin sé ekki sú sama. Til að sækja upplýsingar um stýrikerfið, ferla o.s.frv. þarf ég því bara að kunna að vinna með skrár, þ.e. lesa og skrifa.

Hvað er hvar?

Ýmsar hefðir varðandi stýrikerfi Linux hafa myndast í gegnum tíðina. Eftirfarandi tafla sýnir algengar möppur og tilgang þeirra. Athugið þó að mismunandi dreifingar (e. distro) Linux fylgja ekki endilega þessum hefðum.

Mappa Hlutverk
/bin og /usr/bin Algeng forrit, t.d. ls, cat, grep
/etc Stillingarskrár kerfisins
/home Heimamöppur notenda, t.d. /home/skoli45
/root Heimamappa ofurpaursins
/tmp Tímabundnar skrár (athugið að oft er gögnum eytt úr þessari möppu við endurræsingu)
/var Gögn sem breytast mikið, t.d. annálar (e. logs)
/dev Tækjaskrár, t.d. diskar og sýndartæki
/proc Lifandi upplýsingar frá kjarnanum um ferli og kerfið
/mnt og /media Staðir þar sem gagnageymslur (eins og USB lyklar) eru oft virkjaðar (e. mounted)

Vissir þú?

Í Linux er sérstök skrá sem heitir /dev/null. Hún gleypir allt sem er skrifað í hana og skilar engu til baka. Hún er stundum kölluð „svarthol“ skráakerfisins.


Æfingaskrárnar í heimamöppunni

Þegar þú skráir þig inn á fylgiþjóninn færðu nokkrar æfingaskrár. Þær eru staðsettar í möppunni examples innan heimamöppunnar þinnar (~/examples). Þær eru þar til að þú getir prófað þær skipanirnar sem við komum til með að fjalla um.

Ef þú keyrir eftirfarandi skipanir í skelinni (við útskýrum þær nánar á eftir)

cd ~/examples
pwd
ls -la

munt þú meðal annars sjá eftirfarandi möppur og skrár:

  • notes/ — textaskrár til að lesa, leita í og breyta.
  • data/ — einföld gögn fyrir sort, cut, awk, wc og pípur.
  • logs/ — annálaskrár fyrir leit og úrvinnslu.
  • search/ — lítið möpputré fyrir find og grep.
  • scripts/ — litlar skeljaskriftur til að keyra og stöðva.
  • permissions/ — skrár til að æfa chmod.
  • archives/ — pökkun og þjöppun með tar og zip.
  • web/ — lítill æfingavefur fyrir curl, wget og python3 -m http.server.
  • playground/ — örugg æfingamappa þar sem þú mátt búa til, færa og eyða skrám.

Að sýsla með skrár og möppur

Í þessum kafla munum við skoða nokkrar algengar skipanir sem tengjast skrám og möppum.

Að skoða sig um

Skipunin ls (stytting á list) sýnir innihald möppu. Ef ekkert viðfang er gefið sýnir hún innihald núverandi vinnumöppu, annars útlistar hún innihald möppunnar sem gefin er sem viðfang. Einnig er hægt að gefa ls skrá sem viðfang, en þá útlistar skipunin upplýsingar um hana.

Ýmsar stillingar eru í boði með ls, en ein sú algengasta er -l. Með henni sýnir ls ýmsar upplýsingar um skrár og möppur, þar með talið aðgangsheimildir, eigendur, stærð og hvenær síðasta uppfærsla átti sér stað.

cd ~/examples
ls                  # Sýnir möppur og skrár í vinnumöppunni
ls -l               # Sýnir möppur og skrár með aukaupplýsingum
ls -lh              # Stærð skráa í auðlesnara sniði

Hér fyrir neðan má sjá dæmi um keyrslu

$ ls -lh 
total 12K
drwxr-xr-x 2 skoli1 skoli-users 4.0K Jun  7 21:30 source
-rw-r--r-- 1 skoli1 skoli-users  331 Jun  7 21:30 source.tar.gz
-rw-r--r-- 1 skoli1 skoli-users  308 Jun  7 21:30 source.zip
──────────   ────── ─────────── ──── ──────────── ─────────────
    │           │        │        │        │            │
    │           │        │        │        │            └── Heiti skráar eða möppu
    │           │        │        │        └─────────────── Síðast breytt
    │           │        │        └──────────────────────── Stærð skráar
    │           │        └───────────────────────────────── Hópur
    │           └────────────────────────────────────────── Eigandi
    └────────────────────────────────────────────────────── Heimildir

Stærð mappa og ls

Þegar ls er keyrt með stillingunni -l eða -lh má sjá stærð skráa. Við hlið mappa birtist einnig stærð, 4096 (eða 4.0K ef -h var notað). Athugið að þetta er ekki stærð möppunnar, þ.e. stærð þeirra skráa og mappa sem þessi mappa inniheldur.

Eins og við höfum sagt frá áður þá lítur Linux á allt sem skrá, þar með talið möppur. Þessi stærð, 4096 bæti, er stærðin á skránni sem inniheldur lýsigögn möppunnar.

ls á fylgiþjóninum

Þegar þú keyrir ls á fylgiþjóninum er tveimur stillingum sjálfkrafa bætt við, þ.e. --color=auto og --group-directories-first. Þessar stillingar gera það að verkum að möppur birtast með öðrum lit og er raðað fremst þegar ls er keyrt. Þetta einfaldar okkur að greina á milli mappa og skráa.

Faldar skrár og möppur

Flestar skipanir og virkni koma fram við möppur og skrár sem byrja á punkti sem faldar. Til að sjá faldar skrár með ls notum við stillinguna -a eða --all.

cd
ls
ls -a
ls -la

Faldar skrár eru oft notaðar fyrir stillingarskrár, þ.e. skrár sem hafa að geyma stillingar fyrir ýmis forrit. Ef þú keyrir ls -a í heimamöppunni þinni sérðu ýmis dæmi þess, svo sem .bashrc, .profile og .ssh/.

Faldar skrár í Windows og Linux

Í Linux er það eingöngu hefð sem flestar skipanir fylgja að koma fram við skrár og möppur sem byrja á punkti sem faldar. Fyrir skráakerfinu og stýrikerfinu sjálfu eru þetta bara venjulegar skrár, og teljast því ekki „faldar“ í raunverulegum skilningi.

Í Windows er hægt að gera hvaða skrá eða möppu sem er sem falda, óháð nafni, og eru þær þá merktar í skráakerfinu sjálfu sem faldar.

Prófaðu: finndu falda skrá

Í heimamöppunni er falin æfingaskrá. Hvaða skrá er það og hvað stendur í henni?

Lausn
cd ~/examples
ls -la
cat .hidden_note

Möppur

Skipunina mkdir (stytting á make directory) má nota til að búa til nýja möppu (og einnig fleiri en eina í einu). Einnig er hægt að búa til hreiðraðar (e. nested) möppur, þ.e. margar möppur þar sem hver inniheldur næstu, t.d. a/b/c, með því að gefa upp stillinguna -p eða --parents, en þá verða allar möppurnar (eða öll keðjan) búnar til í einu. Ef reynt er að búa til möppu sem hefur sama heiti og önnur mappa eða skrá skilar skipunin villu.

mkdir prufa                 # býr til möppuna prufa
mkdir -p a/b/c              # búa til margar hreiðraðar möppur í einu
mkdir prufa                 # villa: mappan er nú þegar til

Hægt er að fjarlægja tómar möppur með skipuninni rmdir (stytting á remove directory). Ef mappan er ekki tóm skilar skipunin villu.

rmdir prufa                 # eyðir möppunni prufa
rmdir a                     # villa: mappan er ekki tóm
rmdir a/b/c                 # eyðir möppunni c inni í möppunni a/b

Skrár

Margar leiðir eru í boði til að búa til skrár í Linux, en til að búa til tóma skrá (eða margar tómar skrár í einu) er m.a. hægt að nota skipunina touch. Viðfang skipunarinnar er nafn skráarinnar sem búa á til. Ef touch er keyrt á skrá, sem er nú þegar til, hefur það engin áhrif á innihald hennar en tímastimpill síðustu breytingar skráarinnar er uppfærður.

touch prufa.txt             # býr til prufa.txt í vinnumöppunni
touch a/b/prufa.txt         # býr til prufa.txt í möppunni a/b

Að færa og eyða

Hægt er að færa skrár og möppur með skipuninni mv (stytting á move). Hegðun skipunarinnar veltur á því hvort viðföng hennar séu möppur eða skrár. Viðföngin eru túlkuð á þann veg að síðasta viðfangið er áfangastaður (e. destination) og hin viðföngin eru frumrit (e. source).

Ef aðeins eitt frumrit er gefið og áfangastaðurinn er ekki til (þ.e.a.s. ekki er til mappa eða skrá sem heitir sama nafni), þá endurnefnir mv frumritið eftir áfangastaðnum. Þetta gerist óháð því hvort frumritið er mappa eða skrá.

mkdir prufa                 # býr aftur til möppuna prufa
mv prufa test               # mappan prufa heitir núna test
mv prufa.txt test.txt       # skráin prufa.txt heitir núna test.txt

Ef áfangastaðurinn er mappa eru öll upprunagögnin færð inn í áfangastaðinn, hvort sem þau eru möppur eða skrár.

mv test.txt a test          # Skráin test.txt og mappan a eru færð inn í möppuna test

Skipunin cp (stytting á copy) hegðar sér á mjög svipaðan máta og mv, nema frumritin eru afrituð á áfangastaðinn í stað þess að vera færð. Eitt sem þarf að gæta að er að bæta þarf við stillingunni -r eða --recursive (e. recursive) til að afrita möppur.

mv og cp geta eytt gögnum

Bæði mv og cp yfirskrifa skrár ef áfangastaðurinn (eða skrá á áfangastaðnum) ber sama nafn og frumritið. Það er því auðvelt að skrifa yfir og eyða gögnum óvart með mv og cp. Gott er að notast við stillinguna -i eða --interactive þegar kallað er á mv og cp, en við erum þá spurðar/spurðir áður en skrár verða yfirskrifaðar.

Munum eftir leiðbeiningunum

Skipunina man (stytting á manual) má nota til að sjá leiðbeiningar flestra Linux skipana. Kallað er á man með nafni skipaninnar sem viðfang, t.d. man rm.

Athugið að man opnar leiðbeiningarnar í svokölluðum síðufletti (e. pager) sem leyfir okkur að skruna fram og til baka. Síðuflettirinn sem fylgiþjónninn notast við kallast less. Honum má loka með því að ýta á Q.

Skipunina rm (stytting á remove) má nota til að eyða bæði möppum (sem þurfa ekki að vera tómar) og skrám.

rm spyr ekki alltaf aftur

Í Linux er engin ruslafata (e. recycle bin) eins og í Windows. Ef gögnum er eytt með rm er þeim eytt fyrir fullt og allt og ekki hægt að endurheimta þau. Það er því mikilvægt að fara varlega þegar rm er notað, sérstaklega með stillingunni -r eða með *.

Samantekt

Skipun Hvað gerir hún?
pwd Sýnir núverandi vinnumöppu
cd Skiptir um möppu
ls Sýnir innihald möppu
mkdir Býr til möppu
touch Býr til tóma skrá eða breytir tímastimpli
cp Afritar skrár eða möppur (-r fyrir möppur)
mv Færir eða endurnefnir
rm Eyðir skrám (-r til að eyða einnig möppum)
rmdir Eyðir tómri möppu
tree Sýnir möppur sem tré, ef tólið er uppsett

Skrár og möppur

Búðu til möppu í examples/playground/, afritaðu skrá þangað, endurnefndu hana og eyddu henni síðan.

Lausn
cd ~/examples/playground
mkdir afrit
cp ~/examples/welcome.txt afrit/kvedja.txt
ls -l afrit
mv afrit/kvedja.txt afrit/velkomin.txt
cat afrit/velkomin.txt
rm afrit/velkomin.txt
rmdir afrit

Ef þú vilt fara aftur heim:

cd ~/examples


Aðgangsheimildir

Í Linux hefur hver skrá eiganda, hóp og aðgangsheimildir. Þessar upplýsingar má sjá þegar kallað er á ls -l.

-rwxr-xr-- 1 anna nemendur 1234 jún  4 12:00 script.sh

Fyrsti stafurinn segir til um tegund færslunnar.

  • - merkir venjulega skrá.
  • d merkir möppu.
  • l merkir tákntengil (e. symbolic link), eins konar flýtivísun (e. shortcut) sem vísar á aðra skrá eða möppu.

Næstu níu stafir skiptast niður í þrjá þriggja stafa hópa sem segja til um hverjir hafa aðgang að skránni eða möppunni og hvernig aðgang þeir hafa. Sé aðgangur fyrir hendi, er hver þriggja stafa hópur í eftirfarandi röð.

  • r Lesaðgangur (e. read):
    • Skrá: Hægt er að lesa innihald skrárinnar
    • Mappa: Hægt er að sjá hvaða skrár og möppur mappan inniheldur
  • w Skrifaðgangur (e. write):
    • Skrá: Hægt er að skrifa í skrána (breyta henni) og eyða
    • Mappa: Hægt er að bæta möppum og skrám í möppuna
  • x Keyrsluaðgangur (e. execute):
    • Skrá: Hægt er að keyra skrána sem forrit
    • Mappa: Veitir aðgang að skrám og möppum undir möppunni

Keyrslu

Á skrá merkir x að hægt sé að keyra hana sem forrit. Á möppu merkir x að hægt sé að fara inn í möppuna og nálgast skrár og möppur inni í henni, ef þú veist nöfnin á þeim.

Skorti einhverja aðgangsheimild birtist - í stað stafsins.

Aðgangsheimildarhóparnir þrír tákna svo heimildir eiganda skráarinnar eða möppunnar, hópsins (e. group) sem skráin eða mappan tilheyrir og allra annarra.

-rwx r-x r--
 ─── ─── ───
  │   │   └── aðrir
  │   └────── hópur
  └────────── eigandi

Í dæminu hér að ofan hefur þannig anna, eigandi script.sh, aðgangsheimildirnar rwx að skránni, meðlimir hópsins nemendur hafa heimildirnar r-x og allir aðrir notendur kerfisins r--.

Að breyta heimildum

Skipunin chmod (stytting á change mode) er notuð til að breyta aðgangsheimildum. Fyrsta viðfang skipunarinnar er snið aðgangsheimildanna sem beita á á þær skrár og möppur sem gefnar eru upp sem næstu viðföng. Sniðið segir til um hvaða heimildir á að bæta við eða fjarlægja af hverjum hóp fyrir sig. Sniðið u+x segir t.d. að bæta eigi við keyrsluheimild (x) á eigandann (u stendur fyrir user). Hægt er að taka fram marga hópa og heimildir í einu. T.a.m. segir sniðið go-rx að fjarlægja eigi les- og keyrsluheimild (r og x) af hópnum (g stendur fyrir group) og öðrum (o stendur fyrir others). Einnig er hægt að sleppa hópnum alfarið og þá er heimildinni bætt við alla hópa. Þannig veitir sniðið +x öllum keyrsluheimild.

chmod +x script.sh      # bæta við keyrsluheimild
chmod u+w skjal.txt     # eigandi má skrifa
chmod go-r leynd.txt    # hópur og aðrir mega ekki lesa

Sniðið má einnig gefa upp sem þrjár áttundakerfistölur (e. octal), á eftirfarandi hátt.

chmod 644 skjal.txt     # eigandi má lesa/skrifa, aðrir lesa
chmod 755 script.sh     # eigandi má allt, aðrir lesa/keyra

Aðgangsheimildin byggir þá á summu talnanna, en hvert veldi af tveimur (1, 2, og 4) hefur samsvarandi aðgangsheimild.

  • r = 4
  • w = 2
  • x = 1

Þannig táknar \(7 = 4+2+1\) aðgangsheimildina rwx, og \(5 = 4+1\) aðgangsheimildina r-x.

Eftirfarandi tafla sýnir algeng snið og þær aðgangsheimildir sem þau tákna.

Tala Heimildir Merking
7 rwx lesa, skrifa og keyra/fara inn
6 rw- lesa og skrifa
5 r-x lesa og keyra/fara inn
4 r-- bara lesa
0 --- enginn aðgangur

Tvíundakerfið og bitalyklar

Það getur virkað dálítið dularfullt í fyrstu að nota tölur eins og 7 eða 5 til að tákna heimildir, en á bak við þetta liggur afar snjallt kerfi. Hver heimild (r, w, x) er látin tákna ákveðinn bita (e. bit) í tvíundakerfinu (e. binary) sem getur verið annað hvort slökktur (0) eða kveiktur (1).

Þar sem heimildirnar eru þrjár, getum við hugsað okkur þriggja bita tölu (þ.e. áttundakerfistölu)

  r   w   x
 ─── ─── ───
  │   │   └── gildi: 1 (2^0) - Keyrsluheimild (x)
  │   └────── gildi: 2 (2^1) - Skrifheimild (w)
  └────────── gildi: 4 (2^2) - Lesheimild (r)

Ef við viljum veita ákveðnar heimildir kveikjum við einfaldlega á samsvarandi bitum (setjum 1) en annars slökkvum við (setjum 0).

Skoðum t.d. réttindin r-x (lesa og keyra, en ekki skrifa):

  r   w   x
  1   0   1   --> Tvíundatalan: 101_2
  │   │   │
  │   │   └── 1 * 1 = 1
  │   └────── 0 * 2 = 0
  └────────── 1 * 4 = 4
                 ───────
             Samtals: 5

Með því að leggja saman gildin fáum við töluna 5.

Þetta mynstur, þar sem margar stillingar eða valmöguleikar (e. flags) eru geymdir í einni heiltölu með því að láta hvern bita tákna sjálfstæðan rofa, er kallað bitasía (e. bitmask eða bit field). Þetta er gríðarlega algeng aðferð í tölvunarfræði. Hún hefur marga kosti eins og að spara pláss, en hún gerir einnig kleift að breyta og uppfæra stillingar með einföldum bitaaðgerðum.

Notendur og hópar

Hægt er að nota skipanirnar chown (stytting á change owner) og chgrp (stytting á change group) til að breyta þeim eiganda og hópi sem skrár og möppur tilheyra. Að breyta notanda þarfnast ávallt aukinna réttinda og sömuleiðis að breyta um hóp, nema verið sé að breyta í hóp sem núverandi notandi er nú þegar meðlimur í. Við fjöllum betur um það síðar hvernig farið er að því að sækja aukin réttindi við keyrslu skipana.

chgrp nemendur skjal.txt    # breyta hópi skjal.txt í nemendur
chown root skjal.txt        # breyta eiganda skjal.txt í root

Af hverju þarf að nota ./ til að keyra?

Þegar við viljum keyra forrit eða skelskriftu sem við höfum búið til (eða er í æfingamöppunum okkar), þurfum við að setja ./ fyrir framan heitið, t.d.:

./permissions/run_me.sh
Eins og við sáum í kaflanum um slóðir, þá merkir staki punkturinn . „núverandi mappa“. Með því að skrifa ./ fyrir framan erum við að segja við skelina: „Keyrðu forritið run_me.sh sem er staðsett nákvæmlega hérna í þessari möppu.“

Af hverju dugar ekki bara að skrifa run_me.sh? Af öryggisástæðum leitar Linux ekki sjálfkrafa í núverandi vinnumöppu að forritum til að keyra. Ef þú skrifar bara run_me.sh mun skelin halda að þú sért að reyna að keyra kerfisskipun og segja „command not found“. Við munum skoða nákvæmlega hvernig skelin finnur skipanir (og hlutverk umhverfisbreytunnar $PATH) í kaflanum um kerfisferli!

Prófaðu: keyrsluheimild

Í permissions/ er skeljaskrifta sem heitir run_me.sh, en hún er ekki keyranleg í byrjun. Prófaðu að keyra hana, skoðaðu heimildirnar, bættu við keyrsluheimild og keyrðu hana aftur.

Lausn
cd ~/examples
ls -l permissions/run_me.sh
./permissions/run_me.sh
chmod +x permissions/run_me.sh
ls -l permissions/run_me.sh
./permissions/run_me.sh

Fyrsta keyrslan ætti að mistakast með „Permission denied“. Eftir chmod +x ætti hún að virka.