-
Lisää komentoja tiedostojen hallintaan
Lisää komentoja tiedostojen hallintaan
Tiedostojen etsiminen find-komennolla
find-komentoa käytetään tiedostojen etsimiseen Linuxin tiedosto-
jä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.
Voit käyttää nimihakuehdoissa 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-esimerkeissä käytämme -mtime-hakuehtoa,
joka valitsee tiedostoja niiden muokkauspäivän perusteella. Seuraavalla
komennolla voit tarkistaa, mitä tiedostoja hakemistossa
/scratch/project_2001234 ei ole muokattu 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
nykyisessä hakemistossasi on muokattu 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 pysty luokittelemaan oikein
sovelluskohtaisia tiedostoja. Jos tiedosto on binaaritiedosto, jota file-komento ei tunnista,
sen ilmoitetaan olevan data-tiedosto.
Alla olevassa esimerkissä luetellaan kaikkien nykyisessä työhakemistossa olevien tiedostojen tyypit.
$ file ./*
./a.out: ELF 64-bit executable
./common.py: a python script text executable .
./data_old.gz: gzip compressed data, from Unix
./data.txt: ASCII text
./instruction.html: HTML document text
./molecule.msv: data
./output4.jpg: JPEG image data, JFIF standard 1.01
./output4.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
Rivien ja merkkien laskeminen 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 niiden tiedostojen määrän,
joiden pääte on .dat nykyisessä hakemistossa.
Kahden tiedoston vertaaminen diff:llä
diff-komentoa voidaan käyttää kahden tiedoston vertaamiseen. diff käy
tiedostot läpi rivi riviltä ja tulostaa rivit, jotka eivät ole
identtisiä. diff on hyödyllisimmillään, kun sinun täytyy verrata kahta lähes
identtistä 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. Tarkistussumma lasketaan ja tallennetaan ennen kuin tiedosto siirretään tallennusvälineelle tai kopioidaan uuteen sijaintiin. Myöhemmin, kun data haetaan tallennuksesta tai kopiointi on valmis, lasketaan uusi tarkistussumma haetun tai kopioidun tiedoston perusteella. 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 lista 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 helposti tallentaa tarkistussumman 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 tarkistaaksesi tiedoston poster1.pdf aiemmin
luodulla tarkistussummatiedostolla poster1.pdf.md5, käytä komentoa:
Tiedostojen salaaminen GPG:llä
Huom.
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 ei työskennellä sensitiivisen datan kanssa) CSC:llä sijaitsevien tiedostojen salaaminen ei ole tarpeen. Tiedostoihin pääsee oletusarvoisesti käsiksi vain käyttäjä itse. Periaatteessa CSC:n järjestelmäylläpitäjät voivat kuitenkin lukea kaikkea CSC:n palvelimilla olevaa dataa. Joissakin tilanteissa ylläpitäjien voi olla tarpeen tarkistaa tiedostojen nimet ja koot, mutta CSC:n ylläpitäjiä koskevat ehdot kieltävät 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 annetusta tiedostosta salatun kopion. Oletusarvoisesti GPG valitsee symmetrisen salausalgoritmin määritystensä ja versiokohtaisten oletustensa perusteella. Nykyisissä GnuPG-versioissa symmetrisen salauksen oletusalgoritmi on AES-128, mutta myös muita algoritmeja voidaan valita komentorivivalinnoilla.
GPG:llä salatun tiedoston avaamiseen käytä komentoa:
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 pienempi kuin alkuperäinen tiedosto. Nyt voimme poistaa alkuperäisen tiedoston.
Myöhemmin, esimerkiksi tiedoston kopioinnin jälkeen 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.
Tallenna salasanasi tärkeää dataa varten!
Jos unohdat salatun tiedostosi salasanan, ei ole ketään,
joka voisi avata tiedoston!
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 omistama. 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ä Roihu-supertietokoneen projektikohtaiset levyalueet ovat poikkeus tästä säännöstä. Hakemistoissa scratch ja projappl uudet tiedostot ja hakemistot ovat oletusarvoisesti
projektiryhmän omistamia ja saman projektin muiden jäsenten käytettävissä.
Tiedostot ovat tavallisesti ryhmän luettavissa ja kirjoitettavissa, kun taas hakemistot ovat
ryhmän luettavissa, kirjoitettavissa ja suoritettavissa, jotta projektin jäsenet voivat
siirtyä niihin.
Voit tarkistaa käyttöoikeudet komennolla ls -l. Tarkastellaan
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 UNIX-ryhmän jäsenten
käyttöoikeudet ja viimeiset kolme merkkiä kaikkien muiden
käyttäjien oikeudet. Alla on esimerkkituloste ls -la -komennolle:
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 käyttäjillä, jotka kuuluvat ryhmään csc, 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ä, aiotaanko
käyttöoikeuksia lisätä (+) vai poistaa (-). 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 käyttö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 tehdäksesi saman käyttöoikeus-
muutoksen rekursiivisesti eli kaikille kohdehakemiston tiedostoille ja alihakemistoille:
Voit käyttää komentoa groups tarkistaaksesi, mihin ryhmiin kuulut.