-
Lisää komentoja tiedostojen hallintaan
Lisää komentoja tiedostojen hallintaan
Tiedostojen etsiminen find-komennolla
find-komentoa käytetään tiedostojen etsimiseen Linuxin
tiedostojärjestelmästä. Komento vaatii kaksi argumenttia:
- sen hakemiston nimen, josta tiedostoa etsitään
- hakuehdon
Komennon perussyntaksi on:
Hakuehto perustuu tavallisesti tiedoston nimeen
(-name value), mutta voit käyttää myös päivämääriin
tai käyttöoikeusasetuksiin liittyviä valintoja. find-komennolla voi olla myös kolmas argumentti,
joka määrittää, mitä löydetyille tiedostoille tehdään. Oletustoiminto,
jota käytetään, jos komentoargumenttia ei anneta, on
-print, joka tulostaa osuvien tiedostojen polun ja nimen.
Seuraava esimerkkikomento etsii tiedostoa nimeltä dataset27.dat
nykyisestä hakemistosta. Tässä tapauksessa tiedosto löytyy alihakemistosta
dataset3.
Nimeen perustuvissa hakuehdoissa voi käyttää myös jokerimerkkejä. Huomaa
kuitenkin, että tällöin hakuehto täytyy laittaa lainausmerkkeihin. Seuraava
komento etsii kotihakemistostasi ($HOME) kaikki tiedostot, joiden
pääte on .tmp.
Viimeisissä find-komennon esimerkeissä käytämme -mtime-hakuehtoa,
joka valitsee tiedostot niiden muokkausajan perusteella. Seuraavalla
komennolla voit tarkistaa, mitä tiedostoja hakemistossa
/scratch/project_2001234 ei ole käytetty viimeisten 28 päivän aikana:
Tässä +28 tarkoittaa "yli 28 päivää". Vastaavasti miinusmerkki
(-) tarkoittaa alle. Jos siis haluat nähdä, mitä tiedostoja on
muokattu nykyisessä hakemistossasi alle 24 tuntia sitten, voit käyttää
komentoa:
file-komento kertoo tiedostotyypin
file-komento arvioi annetun tiedoston tyypin. Komennon syntaksi
on:
Komento tulostaa tiedoston nimen ja yhden rivin kuvauksen
tiedostotyypistä. file-komento tunnistaa useimmat yleiset tekstitiedosto-
muodot, pakatut tiedostot ja Linuxin suoritettavat tiedostot. Se tutkii myös
tiedoston sisältöä ja yrittää arvioida esimerkiksi, sisältääkö tavallinen
tekstitiedosto ohjelmakoodia tai joitakin yleisesti käytettyjä datan
muotoilutyyppejä, kuten XML:ää. Huomaa kuitenkin, että file ei usein
onnistu luokittelemaan oikein sovelluskohtaisia tiedostoja. Jos tiedosto on
binääritiedosto, jota file-komento ei tunnista, se ilmoitetaan
data-tiedostoksi.
Alla olevassa esimerkissä luetellaan kaikkien nykyisessä työhakemistossa olevien tiedostojen tyypit.
$ file ./*
./a.out: ELF 64-bit MSB MIPS-IV executable, MIPS, version 1
./common.py: a python script text executable .
/data_old.gz: gzip compressed data, from Unix
./data.txt: ASCII text
./instrction.html: HTML document text
./molecule.msv: data
./output4.jpg: JPEG image data, JFIF standard 1.01
./outout4.png: PNG image data, 640 x 480, 4-bit colormap
./output4.xml: XML document text
./poster1.pdf: PDF document, version 1.4
./report.doc: Microsoft Office Document
Laske rivit ja merkit wc:llä
Komento wc (Word Count) on työkalu, jolla voidaan laskea merkkien
(-m), sanojen (-w) tai rivien (-l) määrä, jonka Linuxin tekstitiedosto
sisältää. wc-komennon yleisin käyttötapa on tarkistaa nopeasti
tiedoston rivimäärä:
Toinen yleinen käyttötapa on tarkistaa, kuinka monta riviä komennon tuloste
sisältää. Esimerkiksi seuraava komento antaisi nykyisessä hakemistossa olevien
.dat-päätteisten tiedostojen määrän.
Kahden tiedoston vertailu diff:llä
diff-komentoa voidaan käyttää kahden tiedoston vertailuun. diff käy
tiedostot läpi rivi riviltä ja tulostaa rivit, jotka eivät ole
identtisiä. diff on hyödyllisimmillään silloin, kun sinun täytyy verrata kahta lähes
samanlaista tiedostoa, kuten saman ohjelmatiedoston kahta versiota. Perus-
syntaksi on:
Tarkistussummien käyttäminen onnistuneen datan tallennuksen tai siirron varmistamiseen
Tarkistussummat tarjoavat keinon varmistaa, että datatiedosto säilyy täysin muuttumattomana tallennuksen tai kopioinnin aikana. Tarkistussummien idea perustuu algoritmiin, joka laskee tiedoston sisällön perusteella luvun tai merkkijonon. Tarkistussummamerkkijono lasketaan ja tallennetaan ennen kuin tiedosto siirretään tallennusmedialle tai kopioidaan uuteen sijaintiin. Myöhemmin, kun data haetaan tallennuksesta tai kopiointiprosessi on valmis, haetuille tai kopioiduille tiedostoille lasketaan uusi tarkistussumma. Jos uusi tarkistussumma on sama kuin aiemmin laskettu, voimme olla melko varmoja siitä, että data on säilynyt täysin muuttumattomana.
Yksi yleisimmistä tarkistussumma-algoritmeista on md5, jota käytetään usein datatiedostojen oikeellisuuden varmistamiseen. Esimerkiksi monien internetissä saatavilla olevien tieteellisten aineistojen mukana toimitetaan luettelo md5-summista. Md5-summa on aina 32 merkkiä pitkä tekstimerkkijono. Tällä merkkijonolla on hyvän tarkistussumman ominaisuudet: se ei kerro mitään lähdetiedoston varsinaisesta sisällöstä, ja mikä tahansa muutos alkuperäiseen tiedostoon tuottaa täysin erilaisen tarkistussumman. Muita usein käytettyjä tarkistussumma-algoritmeja ovat SHA (Secure Hash Algorithm), jota käytetään usein kryptografiassa, ja CRC (Cyclic Redundancy Check), joka on yleinen datansiirrossa.
Alla oleva esimerkki näyttää, miten md5sum-komentoa käytetään CSC:n ympäristössä. Tiedoston md5-tarkistussumma lasketaan komennolla:
Esimerkiksi:
Voit tallentaa tarkistussumman helposti tiedostoon ohjaamalla komennon
tulosteen uuteen tiedostoon >-merkillä.
Yllä oleva komento tallentaa tarkistussumman ja tiedoston nimen uuteen
tiedostoon nimeltä poster1.pdf.md5.
Tiedostojoukon tarkistaminen md5-summaluetteloa vasten tehdään käyttämällä
valintaa -c.
Esimerkiksi tiedoston poster1.pdf oikeellisuuden tarkistamiseen aiemmin
luodun tarkistussummatiedoston poster1.pdf.md5 avulla käytä komentoa:
Tiedostojen salaaminen GPG:llä
Huomaa
Jos työskentelet CSC:llä sensitiivisen datan kanssa, katso sensitiivisen datan palveluiden opas.
Tiedostojen salausta voidaan käyttää datasi turvallisuuden parantamiseen. Normaaleissa olosuhteissa (eli silloin, kun et työskentele sensitiivisen datan kanssa) CSC:ssä sijaitsevien tiedostojen salaaminen ei ole tarpeen. Tiedostoihin pääsee oletusarvoisesti käsiksi vain käyttäjä itse. Periaatteessa CSC:n järjestelmänvalvojat voivat kuitenkin lukea kaiken datan CSC:n palvelimilla. Joissakin tilanteissa ylläpitäjien voi olla tarpeen tarkistaa tiedostojen nimet ja koot, mutta CSC:n ylläpitäjäkäytäntö kieltää tiukasti käyttäjien datatiedostojen sisällön lukemisen. Salaus voi kuitenkin olla järkevää esimerkiksi silloin, jos sinun täytyy kopioida dataa CSC:n ulkopuolelle tai jos datan omistaja vaatii salausta.
CSC:llä voit käyttää GPG-ohjelmaa tiedostojesi salaamiseen. GPG:tä käytetään usein salausavainparien luomiseen sähköpostin ja muun datansiirron suojaamiseksi. Tässä luvussa näytämme kuitenkin vain, miten GPG:tä voidaan käyttää yksittäisten tiedostojen salaamiseen.
Perussyntaksi tiedoston salaamiseen gpg-komennolla on:
Komento pyytää käyttäjää määrittämään tiedostolle salasanan. Tämä salasana ei ole eikä sen pidä olla millään tavalla yhteydessä CSC- salasanaasi. Kun salasana on vahvistettu, komento tekee salatun kopion annetusta tiedostosta. Oletusarvoisesti salaus tehdään CAST5- algoritmilla, mutta myös useita muita algoritmeja voidaan käyttää.
GPG-salatun tiedoston avaamiseen anna komento:
GPG-esimerkki
Oletetaan, että meillä on tiedosto my_file.txt, jonka haluamme salata. Tämä voidaan
tehdä komennolla:
Kun komento käynnistetään, näkyviin tulee seuraava kehote:
Nyt voit kirjoittaa tiedostolle minkä tahansa salasanan. Tässä tapauksessa käytämme
seuraavaa salasanaa: y8kIeg%a. Kun salasana on kirjoitettu, ohjelma
pyytää sinua vahvistamaan sen:
Kun salaus on valmis, meillä on kaksi tiedostoa: alkuperäinen
tiedosto ja sen salattu versio, jonka pääte on .gpg.
$ ls -l
-rw-------+ 1 kkayttaj csc 1291176 Feb 11 15:57 my_file.txt
-rw-------+ 1 kkayttaj csc 313848 Feb 11 16:05 my_file.txt.gpg
Huomaa, että tässä tapauksessa salattu tiedosto on alkuperäistä pienempi. Nyt voimme poistaa alkuperäisen tiedoston.
Myöhemmin, esimerkiksi sen jälkeen kun tiedosto on kopioitu johonkin toiseen sijaintiin, voit purkaa datan komennolla:
Ohjelma pyytää nyt salasanaa, jota käytit salauksessa (tässä
tapauksessa: y8kIeg%a). Tämän jälkeen sinulla on jälleen kaksi tiedostoa: salattu tiedosto
my_file.txt.gpg ja alkuperäinen, luettava tiedosto my_file.txt. Huomaa,
että jos unohdat salatun tiedostosi salasanan, kukaan ei voi avata tiedostoa!
Tiedostojen ja hakemistojen käyttöoikeuksien hallinta
Sadat käyttäjät käyttävät CSC:n laskenta- ja tallennusympäristöjä. Jotta tiedostot pysyvät yksityisinä ja järjestyksessä, jokainen CSC:n Linux- ympäristön tiedosto ja kansio on tietyn käyttäjätilin omistuksessa. Linux- järjestelmissä jokaisella tiedostolla on kolme käyttäjäluokkaa: owner, group ja others. Kullekin näistä käyttäjäluokista on kolme käyttöoikeusasetusta: luku-, kirjoitus- ja suoritusoikeus.
Oletusarvoisesti vain tiedoston omistaja voi lukea ja muokata (eli kirjoittaa) luomiaan tiedostoja ja hakemistoja. Muilla käyttäjillä ei ole tiedostoihin mitään käyttöoikeuksia. Tavallisesti tämä asetus on hyvä, koska se pitää datasi yksityisenä. Jos kuitenkin haluat jakaa dataa tai suorittaa itse kirjoittamiasi ohjelmia, käyttöoikeuksia täytyy muuttaa.
Huomaa, että Puhdin ja Mahdin projektikohtaiset levyalueet ovat poikkeus tähän sääntöön. Niissä myös muut samaan UNIX-ryhmään kuuluvat projektin jäsenet saavat oletusarvoisesti täydet oikeudet muiden käyttäjien luomiin tiedostoihin.
Voit tarkistaa käyttöoikeudet komennolla ls -l. Katsotaanpa
esimerkkitiedostolistausta, jota käytettiin aiemmin
ls -la -esimerkissä.
Tässä tiedostolistauksessa toisen ja
kymmenennen sarakkeen väliset merkit sisältävät tiedot käyttöoikeuksista.
Näistä käyttöoikeusmerkeistä kolme ensimmäistä näyttävät
omistajan oikeudet, seuraavat kolme näyttävät
UNIX-ryhmän jäsenten käyttöoikeudet ja viimeiset kolme merkkiä
kaikkien muiden käyttäjien oikeudet. Alla on ls -la-komennon esimerkkituloste:
total 26914
drwx------+ 3 kkayttaj csc 10 Dec 22 09:12 .
drwxr-xr-x 20 root root 0 Dec 22 09:12 ..
drwx------+ 42 kkayttaj csc 472 Dec 22 09:07 ..
-rwxr-x---+ 1 kkayttaj csc 1648 Dec 22 09:01 .cshrc
-rw-------+ 1 kkayttaj csc 93 Dec 22 09:01 .my.cnf
-rw-------+ 1 kkayttaj csc 48 Dec 22 09:05 Test.txt
-rw-------+ 1 kkayttaj csc 878849 Jan 19 2009 input.table
drwxr-xr-x+ 2 kkayttaj csc 2 Dec 22 09:11 project1
-rw-------+ 1 kkayttaj csc 26432051 Dec 22 09:08 results.out
-rw-------+ 1 kkayttaj csc 25 Mar 27 2009 sample.data
-rw-------+ 1 kkayttaj csc 49 Mar 27 2009 test.txt
Tiedoston Test.txt tapauksessa asetus on: rw-------. Tämä tarkoittaa,
että tiedoston omistajalla (kkayttaj) on oikeus lukea (r)
ja kirjoittaa (w) tiedostoa. Muilla käyttäjillä ei ole oikeuksia
tähän tiedostoon. Tiedoston .cshrc tapauksessa määrittely on: rwxr-x---.
Tässä tapauksessa omistajalla on myös suoritusoikeus (x) tiedostoon,
ja myös muilla ryhmään csc kuuluvilla käyttäjillä on oikeus lukea (r) ja
suorittaa (x) tiedosto.
Käyttöoikeuksien hallinta komentorivillä
Komentorivillä käyttöoikeuksia voidaan muuttaa komennolla chmod. Tämä komento tarvitsee kaksi argumenttia:
- merkkijonon, joka määrittää, mitä muutoksia tehdään, ja
- argumentin, joka määrittää kohdetiedoston tai -hakemiston
Ensimmäisessä argumentissa määritetään ensin
käyttäjäluokka: u (user eli omistaja), g (group) tai o
(others). Sen jälkeen määritetään plus- tai miinusmerkillä, ollaanko
oikeuksia lisäämässä (+) vai poistamassa (-). Lopuksi määritetään,
mitä oikeuksia lisätään tai poistetaan. Jos esimerkiksi haluat sallia kaikkien ryhmän
jäsenten lukea tiedoston Test.txt, anna komento:
Voit tarkistaa vaikutuksen ls -l-komennolla:
Voit määrittää useita käyttäjäluokkia ja oikeuksia samalla kertaa. Esimerkiksi
lisäisi kaikki käyttöoikeudet kaikille käyttäjille tiedostoon Test.txt. Jos haluat
poistaa oikeudet, vaihda +-merkki --merkiksi.
Huomaa, että oletusarvoisesti hakemiston käyttöoikeuksien muuttaminen ei muuta kohdehakemiston tiedostojen ja alihakemistojen käyttöoikeuksia. Siksi komento
ei sallisi muiden ryhmän jäsenten muokata hakemiston
project1 tiedostoja. Voit käyttää valintaa -R, jotta sama käyttöoikeusmuutos
tehdään rekursiivisesti eli kaikille kohdehakemiston tiedostoille ja alihakemistoille:
Voit käyttää komentoa groups tarkistaaksesi, mihin ryhmiin kuulut.