Pikatutustuminen Nellin Unix-palvelinympäristöön

Kirjautuminen

Unixin sukuisissa käyttöjärjestelmissä kuten Linuxeissa ja OS X:ssä on yleensä vakiona OpenSSH tai vastaava, ja kirjautuminen Nelli-palvelimelle tai muualle onnistuu komentoriviltä:

ssh kayttaja@nelli.csc.fi

Salasanat syötetään Unixeissa sokkona, edes tähtiä tai pallukoita ei yleensä näy ruudulla.

Windows-käyttäjät voivat joutua erikseen asentamaan SSH-yhteysohjelman. PuTTY on suosittu.

Jos salasanaa ei kysytä eikä yhteys avaudu, voi olla että CSC:llä ei ole tehty IP-osoiteavausta koneelle, jolta kirjautumista yritetään.

Komentotulkki on ensimmäisen prosessi

Komentorivipohjaisen vuorovaikutuksen järjestelmän kanssa mahdollistaa komentotulkiksi (shell) kutsuttu ohjelma, joka käynnistyy sisäänkirjautumisen yhteydessä ja muistuttaa olemassaolostaan komentorivin alussa näkyvänä kehotteena.

[tcsh:kayttaja@nelli kayttaja]$

Komentotulkkina toimii Nellillä oletuksena tcsh, joka mainostaa kehotteessaan itseään, muistuttaa käyttäjää tämän identiteetistä ja kertoo palvelimen ja työhakemiston nimet. Jos Linux-käytöstä bash on tcsh:ta tutumpi, siihen voi vaihtaa komennolla bash tai exec bash, joista ensimmäinen tekee bashista aliprosessin ja jälkimmäinen korvaa kokonaan vanhan komentotulkin. Ero näkyy siinä, aiheuttaako bashista poistuminen paluun alla olevaan komentotulkki-prosessiin vai ssh-yhteyden katkaisun ensimmäisen ja viimeisen prosessin päättyessä. Poistuminen käy komennolla exit.

Bashin oletuskehotteen voi vaihtaa informatiivisemmaksi muuttamalla PS1 -ympäristömuuttujan (environment variable) sisältöä.

bash-2.03$ PS1='\h:\w\$ '
nelli:~$

Tiedostot puussa

Unixissa tiedoston käsite on keskeinen, ja tavanomaisten hakemistojen, tekstitiedostojen ja suoritettavien ohjelmien lisäksi tiedostopuussa on myös esimerkiksi kiintolevyn tai levyosion kaltaisia laitteita, jotka sijaitsevat pelkällä / -kauttaviivalla nimetyn juurihakemiston /dev/ -alihakemistossa. Ajan saatossa vakiintuneesti hakemistossa /etc/ sijaitsee järjestelmän asetustiedostoja kuten tunnettujen käyttäjien lista tiedostossa /etc/passwd; hakemiston /var/ alla on järjestelmän lokitiedostoja, palvelimelle saapuvan sähköpostin kansiot ja muuta usein päivittyvää tietoa; hakemistossa /bin/ on järjestelmäkriittisiä ohjelmia ja hakemistossa /usr/bin/ ovat monet käyttäjätason ohjelmat; hakemistossa /home/ sijaitsevat käyttäjien kotihakemistot.

Aktiivisena olevaa työhakemistoa (working directory) vaihdetaan komennolla cd uusityöhakemisto, ja hakemiston voi tarkastaa komennolla pwd. Työhakemistoon viitataan yksinkertaisella . -pisteellä, ja tämän emohakemistoon (parent directory) kahdennetulla .. -pistepisteellä. Heti sisäänkirjautumisen jälkeen työhakemistona on oma kotihakemisto, jonne voi aina palata parametrittomalla cd:llä. Kotihakemistoon voi myös viitata nimellä ~. Tiedostopolku ~/.bashrc viittaa kotihakemiston alla olevaan bash-alustustiedostoon, kauttaviivalla alkava /usr/bin/bash viittaa juurihakemiston usr/-alihakemiston bin/-alihakemistosta löytyvään bash-komentotulkkiohjelmaan.

MetaLib-portaalit ja tiedosto-oikeudet

cd /exlibris/metalib/m4_3/finel/www_v_fin/

Hakemistopolku on pitkä: kirjoittamista nopeuttaa hakemistonimien tab-täydennys alkujen perusteella.

Komentojen tunnistamat parametrit selviävät manuaalisivuilta. Tiedostot listataan ls-komennolla:

man ls
ls -al

Tiedostojen ryhmäoikeuksien kanssa on hyvä olla tarkkana (niitä tosin myös korjaillaan ajastetulla tarkistusskriptillä).

nelli:/exlibris/metalib/m4_3/finel/www_v_fin$ ls -dl
drwxrwsr-x   3 metalib  nelli      13824 Nov  7 15:16 ./

Uusien tiedostojen ryhmäoikeudet kohdalleen:

umask 002

Jälkikäteen tiedostojen oikeuksia voi (omistajana) muuttaa chmod-komennolla. Oikeudet määrittyvät read-, write-, ja execute-bittien (on/off) kokonaisuutena tiedoston omistajalle, määritellylle käyttäjäryhmälle ja muille. chmod 640 myöntää omistajalle luku- ja kirjoitusoikeudet (4+2=6), ryhmälle lukuoikeudet (4) ja muille ei mitään (0). umask 027 sallii omistajalle kaikki oikeudet ja evää ryhmältä kirjoitusoikeudet (2) sekä muilta luku- ja suoritusoikeudetkin (4+2+1=7).

Tiedostojen muokkaaminen

Unixin vakioeditori on vi:

vi tiedosto

Välittömän paniikin välttämiseksi on hyvä tietää, että vi:stä pääsee pois komennolla :q!, jossa kaksoispiste siirtää editorin komentorivitilaan, q on komento quit ja huutomerkki pakottaa poistumisen vaikka muutoksia jäisi tallentamatta. Muutokset tallennetaan lisäämällä write-komento: :wq. Komentorivi päätetään enterillä tai perutaan escapella. Pienempään paniikkiin auttaa escape, joka palauttaa editorin muista tiloistaan normaaliin komentotilaan.

Normaalitilassa tekstissä navigoidaan merkki kerrallaan pienillä kirjaimilla h, j, k ja l, jotka sattumalta sijaitsevat querty-näppäimistöllä vierekkäin. Nuolinäppäimetkin saattavat toimia. Sana kerrallaan siirrytään w:llä ja b:llä. Kursorin alla olevan merkin voi poistaa x:llä ja koko rivin dd:llä. Kolme sanaa poistettaisiin d3w:llä ja neljä riviä 4dd:llä. Viimeksi poistetut merkit tai rivit voi palauttaa isolla P:llä, joka siirtää kursorin alla olevan merkin tai rivin vastaavasti eteenpäin, tai pienellä p:llä, joka palauttaa merkit tai rivit kursorista seuraavaksi. Yleinen tapa kopioida tekstiä on poistaa se ja lisätä sitten takaisin haluttuihin paikkoihin. Kätevä kahden peräkkäisen komennon yhdistelmä on xp, joka vaihtaa kahden merkin paikan. Modernimmissa Emacsin sukuisissa editoreissa samaan muokkaukseen tarvittaisiin todennäköisesti jopa neljä painallusta! (Tosin niin tarvitaan kyllä oikeasti vi:ssäkin, jos on siirryttävä aluksi normaalitilaan ja lopuksi pois...)

Tekstinsyöttötilaan pääsee komennoilla i (insert) ja a (append) sekä O ja o, joista ensimmäiset kaksi lisäävät tekstiä keskelle riviä ennen tai jälkeen kursorin äskeisen sijainnin ja jälkimmäiset kaksi aloittavat (avaavat? open?) vastaavasti uuden rivin. Jos tekstiä syöttäessä herää halu hypätä toiseen kohtaan tiedostoa, on kierrettävä normaalitilan kautta (escape); backspace-painike kuitenkin toimii.

Kaksi riviä yhdistetään J (join) -näppäinkomennolla. Viimeisimmän näppäinkomennon voi perua komennolla u (undo).

vi on aloittelijavihamielisyydestään huolimatta vahva editori, jonka perusosaaminen kuuluu vähänkin enemmän Unixien kanssa työskentelevän työkalupakkiin. Jos Unix-työskentely on satunnaista, löytyy Nelliltäkin sentään vaihtoehdoksi ainakin pine-sähköpostiohjelmasta joillekin tuttu pico. Pico on syytä käynnistää ilman word wrap -toimintoa ettei se lisää ylimääräisiä rivinvaihtoja:

pico -w tiedosto

Tiedostojen kopioiminen ja linkittäminen

Siltä varalta että tiedostoa muokatessa tulisi rikkoneeksi jotakin, voi siitä tehdä varmuuskopion, esimerkiksi näin:

cp -p tiedosto tiedosto~bak20121115

Tiedostoja nimetessä ainoa ehdoton sääntö lienee, että kauttaviiva on varattu hakemistoerottimeksi. Pienet ja isot kirjaimet ovat erillisiä ja tapana on käyttää pieniä. Hankaluuksien välttämiseksi voi olla järkevää rajoittua englannin aakkosiin ja muutamaan turvalliseen välimerkkiin kuten ala- ja yhdysviivaan. Pistettä voi periaatteessa käyttää vapaasti, mutta usein sitä käytetään tiedoston tyypin osoittavien päätteiden yhteydessä, ja nimen ensimmäisenä merkkinä se normaalisti piilottaa tiedoston listauksista ja jokerimerkkitäydennykseltä (patterns). Tiedostopäätteet eivät ole välttämättömiä ja usein ne jätetäänkin pois niin tekstitiedostoilta kuin binäärimuotoisilta, suoritettavilta ohjelmiltakin.

Eräiden tiedostojen pitäisi kaikissa Nelli-portaaleissa linkittää finel-instanssiin. find-komennolla (man find) voidaan listata mitkä tiedostot Helsingin yliopiston instanssin englantiversiossa ovat symbolisia linkkejä:

nelli:/exlibris/metalib/m4_3/hyxxx/www_v_eng$ find . -type l -ls
5178405    1 lrwxrwxrwx   1 metalib  exlibris       52 Apr 30  2007 ./banner-notice -> /exlibris/metalib/m4_3/finel/www_v_eng/banner-notice
5178406    1 lrwxrwxrwx   1 metalib  exlibris       59 Apr 30  2007 ./portaalit-yliopistot -> /exlibris/metalib/m4_3/finel/www_v_eng/portaalit-yliopistot
5178407    1 lrwxrwxrwx   1 metalib  exlibris       54 Apr 30  2007 ./portaalit-amkit -> /exlibris/metalib/m4_3/finel/www_v_eng/portaalit-amkit
5178408    1 lrwxrwxrwx   1 metalib  exlibris       56 Apr 30  2007 ./portaalit-yleiset -> /exlibris/metalib/m4_3/finel/www_v_eng/portaalit-yleiset
nelli:/exlibris/metalib/m4_3/hyxxx/www_v_eng$ find . -type l -ls
5178405    1 lrwxrwxrwx   1 metalib  exlibris       52 Apr 30  2007 ./banner-notice -> /exlibris/metalib/m4_3/finel/www_v_eng/banner-notice
5178406    1 lrwxrwxrwx   1 metalib  exlibris       59 Apr 30  2007 ./portaalit-yliopistot -> /exlibris/metalib/m4_3/finel/www_v_eng/portaalit-yliopistot
5178407    1 lrwxrwxrwx   1 metalib  exlibris       54 Apr 30  2007 ./portaalit-amkit -> /exlibris/metalib/m4_3/finel/www_v_eng/portaalit-amkit
5178408    1 lrwxrwxrwx   1 metalib  exlibris       56 Apr 30  2007 ./portaalit-yleiset -> /exlibris/metalib/m4_3/finel/www_v_eng/portaalit-yleiset

Yllä listatut linkit ovat kaikki absoluuttisia eli linkitys tehdään suhteessa / -juurihakemistoon. Linkki muodostetaan komennolla ln -s:

nelli:/exlibris/metalib/m4_3/?????/www_v_???$ ln -s ../../finel/www_v_fin/banner-notice banner-notice

Tässä linkki muodostettiin suhteellisena.

-s on tärkeä: ilman sitä linkistä tulee symbolisen sijaan kova, jolloin samalla tiedostolla on oikeasti kaksi tai useampi nimeä. Kovia linkkejä kannattaa yleensä välttää.

Tiedostoja poistetaan komennolla rm, jonka kanssa on oltava tarkkana, erityisesti jos komennon yhdistää jokerimerkkeihin. Tarkemmin ottaen rm poistaa vain tiedoston nimen. Jos tiedosto on kovalinkitetty usemmalle nimelle, vasta viimeisen nimen poistaminen vapauttaa tiedoston varaaman levytilan.

Komento mv puolestaan joko siirtää tiedostot, jos parametreja on kaksi tai enemmän, ja viimeisenä on olemassaoleva hakemisto, tai uudelleennimeää tiedoston, jos parametreja on tasan kaksi.

MetaLibin aineistotyypit

vi /exlibris/metalib/m4_3/dat01/www_m_eng/type-include-omainstituutti
vi /exlibris/metalib/m4_3/?????/www_v_???/type-include

Käännöstiedostot:

vi /exlibris/metalib/m4_3/?????/tab/www_const.???

Hakuohjelmat

cd /exlibris/metalib/m4_3/?????/vir_ext

SFX

SFX-instansseilla on kullakin oma Unix-tunnuksensa, joihin kirjaudutaan henkilökohtaisten Unix-tunnusten kautta avainautentikoinnilla (ilman salasanaa) ssh:lla:

nelli:~$ ssh sfxtst41@localhost

Useimmin tarvittavat Unixin kautta tehtävät SFX-ylläpitotehtävät tehdään SFX:n omalla valikkopohjaisella ylläpitotyökalulla:

da
./server_admin_util

Esimerkiksi lehtilistaindeksoinnin ajaminen tätä kautta manuaalisesti voi joissakin tilanteissa olla tarpeellista (normaalisti indeksointi tapahtuu joka yö ajastetusti). Myös SFX:n MySQL-taulujen eheyden voi tarkastaa, mutta jos virheitä löytyy, on näistä hyvä ilmoittaa Nelli-toimistoon.

Tiedostojen siirtäminen koneiden tai tunnusten välillä

nelli:~$ scp tiedosto toinen sfxtst41@localhost:

Windowsista tiedostoja voi siirtää Unixiin PuTTYn sukuisella PSFTP:llä.

  • No labels