Linux palvelimet H6

Tehtävässä käytetyt harjoitukset löytyvät osoiteesta : linux palvelimet.
Kurssin opettajana toimii Tero Karvinen

a) Kirjoita ja suorita “Hei maailma” kolmella kielellä. Asenna tarvittavat ympäristöt.

Toteutan harjoituksen Ubuntu 16.04.3 LTS 64 bittisellä käyttöjärjestelmällä joka on asennettu Virtual box virtuaali ympäristöön, aikaisemmissa harjoituksissa käytetyssä Lenovo Thinkpad T470P tietokoneeseen. Harjoitus suoritettiin 04.10.2017 klo 19.45-22.00.

Aloitan luomalla uuden käyttäjän koe1, jotta voin testata että tiedoston voi suorittaa eri käyttäjillä.

Teen tämän komennolla

“sudo adduser koe1”.

Python3

Ennen kuin kirjoitan python tiedoston, selvitän mihin python3 on asennettu,
teen tämän komennolla

“which python3”.

Luon hello.py tiedoston käyttäen nano.a, komennolla

“nano hello.py”

Kirjoitan tiedoston ensimmäiselle riville shebang lisäyksen “#!/usr/bin/python3”, näin suoritettava tiedosto tietää mitä ohjelmaa käyttää, kun tiedosto ajetaan.

Kirjoitan tiedostoon rivin

“print (“Hello World!”)

Tallennan tiedoston ja koe ajan sen.

Lisään tiedostoon lukemis- sekä suoritus oikeuksia, että muut käyttäjät voivat suorittaa sen. Teen tämän komenolla

“chmod ugo+rx hello.py”

Tämän jälkeen siirrän tiedoston “/usr/local/bin/” jotta sitä voi suorittaa järjestelmän laajuisesti.

Teen tämän komennolla

“sudo mv hello.py /usr/local/bin”.

Tämän jälkeen testaan molemmilla käyttäjillä että tiedoston voi suorittaa heidän kotikansiossaan.

 

Bash

Kuten aikaisemmassa tehtävässä,
selvitän mihin bash on asennettu komennolla

“which bash”.

Luon nano.a käyttäen tiedoston hello1.sh.

Teen Shebang lisäyksen “#!/bin/bash”.

Kirjoitan tiedostoon

echo “Hello World!”

Kun yritän suorittaa tiedostoa komennolla “./hello1.sh” tulee ilmoitus “permission denied”, tarkastan oikeudet ja käy ilmi että käyttäjillä ei ole suoritusoikeuksia tiedostoon.

Lisään oikeudet komennolla

“chmod ugo+rx hello1.sh”.

Kun yritän suorittaa tiedostoa uudelleen, loppu tulos ei ole ihan tarkoituksen mukainen.

Teen korjaukseen tiedostoon

#!/bin/bash
STR=”Hello World!”
echo $STR

Tämän jälkeen tiedoston voi suorittaa ongelmitta.

Siirrän tiedoston kansioon /usr/local/bin ja kokeilen sen suorittamista kummallakin käyttäjällä.

C

En ole vielä ohjelmoinut C.n kanssa mutta kiinnostusta on ollut.
Sen valitseminen tähän tehtävään tuntui siis luontevalta.

Aloitan tehtävän varmistamalla että GCC sekä glibc löytyvät järjerjestelmästä, ymmärsin että näillä on hyvin keskeinen osa useissa linux versioissa, joten ei ole syytä epäillä että ne eivät olisi asennettu, mutta testaan kaiken varalta.

GCC on compiler jolla ohjelma rakennetaan, glibc on c kirjasto.

GCC antaa virhe ilmoituksen, mutta näin varmistun että se on asennettu.

Teen tiedoston hello2.c käyttäen nano.a

Kirjoitan siihen tekstin

#include <stdio.h>

main()
{
printf(“Hello, world!\n”);
return 0;
}

Tämän jälkeen rakennan ohjelman GCC käyttäen, komennolla

“gcc -o hello2 hello2.c”

-o argumentti lisää toivotun käynnitys nimen, tässä tapauksessa hello2.

Tämän jälkeen varmistan että hello2 on rakentunut “ls” komennolla ja testaan ohjelmaa komennolla

“./hello2”.

Tämän jälkeen lisään luku sekä suoritusoikeudet tiedostoon hello2 komennolla

“chmod ugo+rx hello2”.

Siirrään tiedoston kansioon /usr/local/bin ja testaan että sen voi suorittaa molemmilla käyttäjillä.

GO

Tämä on itselle täysin tuntematon kieli, tehtävän annossa pyydettiin vain kolmea eri kieltä mutta tuumasin koska python3.a harjoiteltiin jo opetustunnilla, teen harjoituksen vuoksi vielä neljännellä kielellä.

Go kieltä ei ole järjestelmässäni asennettuna joten aluksi asennan sen. Käytän komentoa

“sudo apt-get install golang”

Luon tämän jälkeen tiedoston hello3.go käyttäen nano.a, kirjoitan tiedostoon

package main

import “fmt”

func main() {
fmt.Printf(“Hello World! \n”)
}

Rakennan tiedoston komennolla “go build”.

Kun yritin rakentaa tiedostoa tuli virheilmoitus, nähtävästi tiedostoa hello3.go ei voi rakentaa kun se on samassa tiedostossa hello2.c kanssa. Luon siis tätä varten hello3 kansion komennolla

“mkdir hello3”

ja siirrään hello3.go tiedoston sinne, komennolla

“mv hello3.go hello3/”.

Tämän jälkeen tiedoston pystyi rakentamaan ilman ongelmia.

Testaan tiedostoa komennolla

“./hello3”.

Kuten edellisessä tehtävissä, muokaan tiedoston luku sekä suoritusoikeuksia ja siirrään sen “/usr/local/bin/” kansioon.

Tämän jälkeen testaan ohjelmaa molemilla käyttäjillä.

Lähteet

http://www.linfo.org/create_c1.html

http://terokarvinen.com/2017/hello-go-world-install-and-run-go-in-less-than-a-minute-on-ubuntu-16-04-lts

http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO-5.html

https://bash.cyberciti.biz/guide/Shebang