Jos olet asentanut Raspberry Pi laitteeseen Rasbian -käyttöjärjestelmän, se on lähes samanlainen kuin mikä tahansa muukin Linux. Siinä voi olla graafinen käyttöliittymä tai se voi olla vain pelkkä mustapohjainen ruutu jossa on tekstiä.
Molemmissa tapauksissa olisi hyvä osata Linux komentorivityöskentelyn perusteet. Komentoriviä käytetään myös Linux järjestelmien etähallinnassa, SSH yhteyden yli.
Raspbian käyttöönotto
Jos Raspberry Pi laitteessa on näyttö ja näppäimistö niin pääset jo käyttämään komentoriviä suoraan. Suosittelen myös että laitteeseen olisi verkkoyhteys kytkettynä.
Jos käytät Raspbian Desktop versiota, käynnistyy laite graafiseen tilaan. Lite versiossa ei ole graafista käyttöliittymää joten se on paljon kevyempi. Graafisella Linuxilla saat tekstiliittymän auki avaamalla sovelluksen Terminal. Voit suurentaa ikkunan mahdollisimman korkeaksi jotta näyttöön mahtuu enemmän tekstiä.
Jos haluat saada etähallinnan niin laitteesta tulisi tehdä muutama valmistelu. Tekstiruutuun anna komento: sudo raspi-config
Selaa valikosta kohta Interfacing Options ja sieltä SSH. Valitse Yes, sen jälkeen Ok ja lopuksi vielä Finish. Näin laitteelle aktivoituu SSH etäyhteyspalvelu ja siihen saadaan yhteys verkosta. Tarkista vielä laitteen IP osoite komennolla: ip addr
Osoitteen löydät riviltä jossa on teksti inet, tyyliin:
inet 100.115.92.204/28 brd 100.115.92.207 scope global eth0
Voit jatkaa Linux komentojen kanssa harjoittelua tältä Raspbianin ikkunalta tai ottaa etäyhteyden. Ensimmäiseksi suosittelen oletussalasanan vaihtamista!
Windows koneelta etäyhteys
Jos käytössäsi on Windows, on sinulla mahdollisuus a) Asenna “Linux subsystem” Windows 10 ohjelmakirjastosta tai b) Ota SSH etäyhteys Linuxiin “PuTTY” ohjelmistolla.
PuTTY -ohjelmistoa ei tarvitse asentaa ja voidaan vain suorittaa sellaisenaan. Mutta haastavinta sinulla on löytää etähallittavan Linux järjestelmän verkko-osoite (IP osoite tai DNS nimi), käyttäjätunnus ja salasana. Raspbian järjestelmässä voit joutua aktivoimaan SSH palvelun erikseen ja selvittämään laitteen IP osoitteen.
Mac ja Linux koneilta etäyhteys
Näillä koneilla on SSH ohjelmisto jo valmiina. Avaa vain Terminal eli Pääte. Siellä saat jo komentorivikehoitteen eteesi. Etäyhteyden voit ottaa Raspbianiin komennolla: ssh pi@11.22.33.44 (käytä oikeaa tunnusta ja osoitetta).
Komentokehoite
Linuxin komentokehite kertoo yleensä tärkeimmät tiedot: tunnus@koneennimi:hakemisto $
. Tunnus on se millä kirjauduit sisään, koneen nimi on järjestelmän nimi (sen voi vaihtaa), sitten kaksoispiste ja tämän jälkeen hakemisto missä olet (viimeisin osa siitä). Ja lopuksi vielä joko $ merkki joka kertoo että olet tavallinen käyttäjä. Pääkäyttäjällä root se olisi # merkki. Siksi oheisissa esimerkeissä alussa on aina joko $ tai # merkki, sitä ei syötetä mutta kertoo että annetaanko komento normaalin vaiko pääkäyttäjän oikeudella.
Komentokehoitetta voi muuttaa haluamakseen.
Käyttäjätunnukset ja salasanat
Linux järjestelmiin on helppo murtautua jos käyttäjätunnuksen ja salasanan osaa arvata. Joten ensin tulee suojata Rasbianin oletuskäyttäjätunnus: pi
Komentokehoitteessa salasana vaihdetaan komennolla:
$ passwd
Anna vanha salasana ja tämän jälkeen uusi salasana kaksi kertaa, kirjoitusvirheiden välttämiseksi. Salasana tulisi olla riittävän pitkä (vähintään 8-10 merkkiä) ja siinä olisi oltava isoja ja pieniä kirjaimia, numeroita ja mahdollisesti vielä jokin erikoismerkki. Esimerkiksi jotain tyyliin: kaLa77/Luut
Yleensä Linux järjestelmissä on normaalin käyttäjätunnuksen lisäksi pääkäyttäjä: root
Sen salasana tulisi olla erittäin vahvasti suojattu tai jopa sisäänkirjautuminen kokonaan estetty. Myöhemmin esitellään komentoja joilla voi generoida hyviä salasanoja (pwgen, apg
).
Pääkäyttäjäksi voi vaihtaa komentorivillä kahdella vaihtoehtoisella tavalla. Komento:
$ su -
Vaihtaa sinut pääkäyttäjäksi (Switch User) ja kysyy pääkäyttäjän root salasanan. Toinen menetelmä saada pääkäyttäjän oikeudella ajettua komennon on käyttää käskyä:
$ sudo <komento-ja-parametrit>
Siinä käyttäjällä tulee olla oikeus ajaa komento pääkäyttäjän oikeudella. Tämä olisi suositeltavampi tapa kuin su -komennon käyttö.
Hakemistorakenne
Linuxin tiedostojärjestelmä ja hakemistorakenne poikkeaa Windows ja Mac tietokoneista. Juurihakemisto on / jonka alla on useita alihakemistoja. Ohessa tärkeimpiä paikkoja:
/home …/pi /root /etc /usr …/bin /bin /var …/log /tmp /run /opt | Käyttäjien kotihakemistot Käyttäjän pi kotihakemisto /home:n alla Pääkäyttäjän root kotihakemisto, ei ole /home:n alla Järjestelmän asetukset Järjestelmän ohjelmistot ja muut “kiinteät” tiedostot Käskyt ja komennot Lisää komentoja Muuttuvat tiedostot, esim tietokannat ja Lokitapahtumat Väliaikaistiedostoja Ajonaikaisia tiedostoja Kolmannen osapuolen ohjelmia, esimerkiksi Minecraft |
Lisää tietoa Linuxin hakemistorakenteesta löytää dokumentaatiosta.
Komentoja hakemistorakenteen hallintaan
pwd | Print working directory, näytä hakemisto Change directory, vaihda hakemistoa (kotiin) Mene suoraan hakemistoon /tmp Mene edelliseen hakemistoon List files, listaa tiedostoja Listaa kyseisestä hakemistosta Luo alihakemisto “kansio” Luo suoraan /tmp:n alle Tee tiedosto nimeltään tyhjä nykyiseen paikkaan Kopioi tiedosto kansioon /tmp/ Uudelleennimeä tyhjä nimelle tiedosto Siirrä tiedosto tyhjä hakemistoon /tmp Poista kansio, mutta vain jos se on tyhjä Poista tiedosto Lue tekstitiedostoa, poistu q kirjaimella |
Ohjeet ja komentojen parametrit
Linuxissa on erinomainen tietolähde kaikille komennoille ja niiden parametreille. Voit lukea manuaalisivuja komennolla:
$ man less
Tämä näyttää kyseisen komennon less ohjeet. Voit liikkua ohjeessa ylös ja alaspäin ja poistua q -kirjaimella. Lyhyempi yhteenveto komennon parametreistä onnistuu myös käyttämällä komentoa ja antamalla sille parametriksi –help
$ less --help
Mikäli et tiedä mikä ohjesivu kertoisi jostain tietystä aiheesta, voit kysyä sitä:
$ apropos password
Tämä kertoo kaikki manuaalisivut jossa sivutaan kysyttyä aihetta. Mukana on myös ohjelmoijille tarkoitettua informaatiota joka voi olla hyvä ohittaa.
Jos tiedät käskyn mutta et tiedä mitä se tekee, käytä komentoa:
$ whatis <komento>
Se antaa lyhyen kuvauksen antamastasi komennosta.
Tiedostojen muokkaus
Yksi yleisimmin tarvittava työkalu Linuxissa on tekstieditori. Mikäli käytössä on vain tekstipohjainen Linux, voi tiedostojen muokkaus olla alkuun hankalaa. Mutta graafisella puolella on yleensä useita helppokäyttöisiä vaihtoehtoja, esimerkiksi gedit.
Kaikista Linux järjestelmistä löytyy tekstieditori nimeltään vi (Visual Improved). Se on aloittelijoille hankala johtuen eri tiloista. Mutta sen perusteet on silti hyvä oppia. Tiedoston muokkaus käynnistetään tyyliin:
$ vi teksti.cfg
Tärkeintä sieltä on oppia pääsemään ulos, ilman mitään muutoksia tiedostoon. Se onnistuu kun painat pari kertaa Esc nappia ja tämän jälkeen kaksoispistettä : ja kirjoitat q! merkit. Paina sitten vielä Enter. Selitys: Ensin parilla Esc napilla mennään komentotilaan. Sieltä : merkillä rivitilaan ja kirjoitetaan quit ja pakotus (huutomerkki). Ja lopuksi tämä syötetään Enter napilla.
Mutta helpompi tekstieditori on nano. Se käynnistyy komennolla:
$ nano tiedosto.txt
Ohjelman alareunassa näkyy aina tärkeimmät näppäinoikotiet. Jos merkin edessä on ^ merkki niin se tarkoittaa Ctrl -nappia ja yhdessä merkin perässä oleva kirjain. Esim ^G saadaan kun painetaan Ctrl-G nappeja ja silloin tulee ohjesivu. M-U tarkoittaa Alt nappia yhdessä U kirjaimen kanssa. Silloin saadaan peruttua edellinen toimenpide. Nano editorista pääsee pois painamalla Ctrl-X ja silloin kysytään varmistus että haluatko tallentaa. Paina Y (yes) ja tarkista tiedoston nimi. Jos se kelpaa niin paina vielä Enter.
Tavallisella käyttäjällä ei välttämättä ole oikeutta muokata (avata ja/tai tallentaa) tiedostoa, silloin joudut ajamaan vi tai nano ohjelmaa pääkäyttäjän oikeudella. Se onnistuu antamalla editorin nimen eteen sudo -komennon. Silloin sinulta voidaan kysyä oma salasanasi.
Järjestelmän ylläpito
Tietoturvapäivitykset
Linux on turvallinen järjestelmä vain jos käyttäjien salasanat on riittävän vahvoja sekä järjestelmän ohjelmistot on päivitettyjä. Ohjelmistojen päivitys tarvitsee aina verkkoyhteyden. Raspbian käyttöjärjestelmä on Debian pohjainen ja siellä ohjelmistojen hallintaan on komento: apt
Päivitystiedot haetaan komennolla:
$ sudo apt update
Tämän jälkeen järjestelmä tietää mitä ohjelmistoversioita on saatavilla. Ja varsinainen päivitys suoritetaan komennolla
$ sudo apt upgrade
Tämä vertailee asennettua ohjelmistoa saatavilla olevaan ja lataa tarvittavat päivitykset ja asentaa ne.
Uudelleenkäynnistys
Osa päivityksistä voi vaatia laitteen uudelleenkäynnistyksen. Se onnistuu komennoilla: $ sudo reboot
Järjestelmä voidaan myös sammuttaa ajamalla komennon: $ sudo poweroff
Ohjelmiston asennus
Mikäli haluat asentaa lisää ohjelmia, voit käyttää siihen samaa apt -komentoa. Ensin voit etsiä ohjelmapaketin nimeä “nmap” komennolla:
$ sudo apt search nmap
Mikäli ohjelma löytyy, asenna se komennolla
$ sudo apt install nmap
Tämän jälkeen ohjelma asentuu. Jos haluat tietää mitä tiedostoja ohjelmapaketista tuli, voit selvittää sitä komennolla:
$ dpkg -L nmap
Koska lista voi olla pitkä ja jos et pysty vierittämään ruutua, opetellaan seuraavaksi prosessien putkitus.
Putket ja prosessit
Linuxissa komentoja voi antaa useita peräkkäin. Esimerkiksi päivitystä varten jouduimme ajamaan kaksi komentoa erikseen. Mutta ne voidaan ajaa myös yhdellä komentorivillä. Erotinmerkkinä käskyille on puolipiste ;
$ sudo apt update ; sudo apt upgrade
Putki käskyltä toiselle
Mikäli komento antaa pitkän listauksen ruudulle etkä pysty sitä vierittämään edestakaisin päätteessä (kokeile Shift-PageUp ja -PageDown), käytetään putkimerkkiä (tolppa, pystyviiva, AltGr ja ><| napeilla) tyyliin:
$ dpkg -L nmap | less
Tässä dpkg komento lähettää “tulosteen” ohjelmalle less joka ottaa sen vastaan ja antaa käyttäjälle mahdollisuuden vierittää tulostetta edestakaisin. Tästä pääsee pois q -napilla.
Muita “putkitus” kohteita voi olla esim grep, tr, cat, tr tai lähes mikä tahansa. Esimerkkejä:
$ dpkg -L nmap | grep bin
$ echo “Linux komentorivityöskentely on hauskaa” | sed s/hauska/hupi/
$ date | tr -d a-zA-Z
Uudelleenohjaus
Joskus ohjelman tuloste halutaan talteen, esimerkiksi tekstitiedostoon. Silloin käytetään > merkkiä. Esimerkiksi:
$ ls /usr > /home/pi/usr-alihakemistot.txt
Tässä listataan /usr hakemiston sisältö ja listaus tallennetaan hakemistoon /home/pi tiedostoon usr-alihakemistot.txt.
Komennot voidaan myös pyytää lukemaan tiedoston sisältöä. Silloin käytetään < merkkiä, esimerkiksi:
$ cat < /home/pi/usr-alihakemistot.txt
Tässä cat (conCATenate) komento lukee syötettä annetusta tiedostosta ja lähettää sen käyttäjän ruudulle. Vertaa tulostetta komentoon:
$ tac < /home/pi/usr-alihakemistot.txt
Prosessit
Linuxissa (ja monissa muissa käyttöjärjestelmissä) on prosesseja. Niitä pyörii käyttäjältä näkymättömissä tai käyttäjän terminaalissa. Prosessi on yksi ohjelmakokonaisuus jolla on oma muisti, ohjelmakoodi, kirjastot sekä avoimia tiedostoja. Prosesseja voi listata komennolla: ps
Oletuksena se listaa vain aktiivisen päätteen prosessit joten siihen on hyvä antaa parametrejä, esim:
$ ps -ef | less
Tämä listaa kaikki prosessit kyseiseltä koneelta. Listauksessa näkee UID eli käyttäjätunnuksen, PID eli prosessin ID numeron, TTY eli päätteen missä sitä ajetaan sekä tietysti CMD eli komennon ja sen parametrit.
Jos käyttäjällä on prosesseja ajossa, hän voi myös antaa niille signaaleja jolla ohjelma esimerkiksi lopettaa ajon. Tähän on komento: kill ja siihen tarvitaan aina prosessin numero. Tässä esimerkki kun prosessia 1234 pyydetään tekemään “Hang Up”:
$ kill -HUP 1234
Terminaalista käynnistetyt ohjelmat harvoin jää “taustalle” ajoon mutta tarvittaessa ne saa käskettyä niin antamalla loppuun “et” merkin &. Tässä jätetään ohjelma sleep nukkumaan 1000 sekunniksi taustalle, listataan prosessit joissa on teksti sleep ja annetaan sille HUP signaali:
$ sleep 1000 &
$ ps -ef |grep sleep
$ kill -HUP <pid>
Lisätietoa
Linux komentorivityöskentelyn oppiminen vie pajon aikaa. Hyvää suomenkielistä informaatiota löytää Linux.fi sivulta https://www.linux.fi/wiki/Komentorivin_perusteet
Henri Paasovaara 2019