Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti are being decommissioned in stages, and their storage areas will become fully unavailable from 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

Lisää komentoja tiedostojen hallintaan

Tiedostojen etsiminen find-komennolla

find-komentoa käytetään tiedostojen etsimiseen Linuxin tiedosto- järjestelmästä. Komento vaatii kaksi argumenttia:

  1. sen hakemiston nimen, josta tiedostoa etsitään
  2. hakuehdon

Komennon perussyntaksi on:

find directory search_condition 

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.

$ find ./ -name dataset27.txt
./dataset3/dataset27.txt

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.

find $HOME/ -name "*.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:

find /scratch/project_2001234 -mtime +28

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:

find ./ -mtime -1

file-komento kertoo tiedostotyypin

file-komento arvioi annetun tiedoston tyypin. Komennon syntaksi on:

file file_name

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ä:

wc -l file_name

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.

ls *.dat | wc -l

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:

diff file1 file2

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:

md5sum file_name

Esimerkiksi:

$ md5sum poster1.pdf
cc494699398122a6b6d93a5a69bd2667 poster1.pdf

Voit helposti tallentaa tarkistussumman tiedostoon ohjaamalla komennon tulosteen uuteen tiedostoon >-merkillä.

md5sum poster1.pdf > poster1.pdf.md5

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.

md5sum -c checksum_list

Esimerkiksi tarkistaaksesi tiedoston poster1.pdf aiemmin luodulla tarkistussummatiedostolla poster1.pdf.md5, käytä komentoa:

$ md5sum -c poster1.pdf.md5
poster1.pdf: OK

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:

gpg -c file_name

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 gpg_encrypted_file 

GPG-esimerkki

Oletetaan, että meillä on tiedosto my_file.txt, jonka haluamme salata. Tämä voidaan tehdä komennolla:

gpg -c my_file.txt

Kun komento käynnistetään, näkyviin tulee seuraava kehote:

Enter passphrase:

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:

Repeat passphrase:

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.

rm my_file.txt

Myöhemmin, esimerkiksi tiedoston kopioinnin jälkeen toiseen sijaintiin, voit purkaa datan komennolla:

gpg my_file.txt.gpg

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:

  1. merkkijonon, joka määrittää, mitä muutoksia tehdään, ja
  2. 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:

chmod g+r Test.txt

Voit tarkistaa vaikutuksen ls -l -komennolla:

$ ls -l Test.txt
-rw-r-----+  1 kkayttaj csc       48 Dec 22 09:05 Test.txt 

Voit määrittää useita käyttäjäluokkia ja käyttöoikeuksia samalla kertaa. Esimerkiksi

chmod go+rwx Test.txt

lisäisi kaikki käyttöoikeudet kaikille käyttäjille tiedostoon Test.txt. Jos haluat poistaa oikeudet, vaihda +-merkki merkiksi -.

chmod go-rwx Test.txt

Huomaa, että oletusarvoisesti hakemiston käyttöoikeuksien muuttaminen ei muuta kohdehakemiston tiedostojen ja alihakemistojen käyttöoikeuksia. Siksi komento

chmod g+w project1

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:

chmod -R g+w project1

Voit käyttää komentoa groups tarkistaaksesi, mihin ryhmiin kuulut.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta