Cutie cat!

Miten käyttää...

Tässäpä kirjattuna komentoja eri ohjelmiin merkityksineen.

Gitiä

Lista tarpeellisimmista komennoista Gitissä:
git init
Perustaa uuden git repon
git status
Kertoo gitin statuksen; eli tehdyt muutokset
git diff
Näyttää tehdyt muutokset
git log
Näyttää aiemmat commitit
git add .
Lisää kaikki muutokset committiin
git add [tiedosto1] [tiedosto2]
Lisää valitut tiedostot committiin
git reset
Poistaa kaikki muutokset, jotka on lisätty git addilla
git commit -m "[viesti]"
Tallentaa muutokset yhteen pakettiin eli committiin
git push
Tallentaa muutokset esim. Githubiin
git clone [repon verkko-osoite]
Kopioi repon työkansioon
git fetch
Hakee muutokset yhdistetystä reposta
git merge
Yhdistää muutokset, jotka poikkeavat toisistaan esim. remotella ja omalla koneella
git pull
Hakee muutokset remotelta ja yhdistää omiin tiedostoihin, eli fetch + merge
git stash
Tallentaa muutokset, joita ei ole commitattu
git branch [branchin nimi]
Luo repoon uuden haaran, jossa voi poiketa esim päähaaran "mainin" muutoksista
git checkout [branchin nimi]
Siirtyy branchiin

Linuxia

Lista tarpeellisimmista Linux-komennoista:
pwd
Tulostaa työkansion polun
ls
Tulostaa työkansion sisällön
ls -la
Tulostaa työkansion sisällön sekä piilotetut tiedostot lisätietoineen
cd ..
Siirry yksi taso alaspäin polussa
cd /
Siirry roottiin
cd [polku]
Siirry polkuun
cp [tiedosto] [uusi tiedosto]
Luo tiedostosta kopio samaan polkuun
cp [tiedosto] [polku/uusi tiedosto]
Luo tiedostosta kopio eri polkuun
rm [tiedosto]
Poista tiedosto
rmdir [kansio]
Poista tyhjä kansio
rm -r [kansio]
Poista kansio sisältöineen
mkdir [kansio]
Luo kansio
cat [tiedosto]
Tulostaa tiedoston sisällön
nano [tiedosto]
Avaa tiedoston editorissa
touch [uusi tiedosto]
Luo uuden tiedoston
mv [tiedosto] [uusi tiedosto]
Uudelleennimeää tiedoston
mv [tiedosto] [polku/tiedosto]
Siirtää tiedoston uuteen polkuun
clear
Tyhjentää terminaali-ikkunan
chmod [numero]
Muuttaa työkansion oikeuksia
apt install [ohjelma]
Asentaa ohjelman
systemctl [toiminto] [ohjelma]
Suorittaa ohjelmalle toiminnon (toiminto=start/stop/status)
ssh -i [SSH-avain] [laite]
Kirjatuu laitteelle SSH-avaimella

Sublime Textiä

Lista tarpeellisimmista pikanäppäimistä Sublimessa:
cmd + shift + 7
Kommentoi valitut rivit
ctr + shift + ylä/alanuoli
Valitse monta riviä
ctr + cmd + ylä/alanuoli
Siirrä rivejä pystysuunnassa
cmd + D
Siirry valitun merkkijonon seuraavaan esiintymiskohtaan ja valitse se

Seleniumia

Tarkista, että koneellasi on asennettuna npm. Mene projektikansioosi ja aja siellä komento
npm init
Seleniumin asennus npm:llä komennoilla:
npm install selenium-webdriver --save-dev
npm install mocha --save-dev
Lisää projektikansioosi kansio testeille. Avaa scripts.json ja lisää sinne alla oleva pläjäys
"scripts": { "testall": "npx mocha \"[projektikansion testikansio]/**/test_*.js\"", "testone": "npx mocha" },
Nyt voit luoda testejä testikansioon (huom. scripteissä määritellyt asiat testien nimelle jne.) ja ajaa niitä komennolla
npm run testall
tai
npm run testone [testikansio/testi]
Jos lisäät muita scriptejä jsoniin, voit tarkastella niitä ajamalla komennon
npm run

Ja miten perustan nettiservun

Nettiservunteko-ohjeet, kun servu pyörii Amazonin EC2-instanssilla Linux-käyttiksellä. Mukana MySql:n, PHP:n ja Nginx:in asennusohjeet sekä HTTPS-sertifikaatin lisäysohjeet. Tietokantojen käsittely on tässä ohjeessa tehty TablePlus-ohjelmalla. 1. Luodaan ensin EC2-instanssi Amazonissa. Ohjeet instanssin luomiseen ja laitteelle kirjautumiseen löydät otsikon "EC2" alta. 2. Kirjautuneena SSH:lla servukoneelle, asenna Nginx, PHP ja MySql. Ohjeet löytyvät vastaavien otsikoiden alta. 3. Luo yhteys servusi tietokantoihin tietokoneellasi TablePlus-sovelluksen avulla. Ohjeet löytyvät "TablePlus"-otsikon alta. Voit importata jo tietokantasi sovellukseen. 4. Oletettavasti olet ostanut domainin esim. Namecheapista. Domainin asetuksista voit tehdä konffauksen siten, että domain sekä alidomainit toimivat. Ohjeet "Namecheap"-otsikon alla, mutta samat asetukset löytyvät muistakin palveluista. 5. Seuraavana voidaan alkaa tuuttaamaan tavaraa servulle... 5.1. Kirjautuneena servukoneelle, mene polkuun /var/www/html/ ja cloonaa reposi polkuun. Nimeä tiedosto uudelleen domainin nimellä. 5.2. Mene polkuun /etc/nginx/sites-available/ ja luo uusi tiedosto domainin nimellä. Tiedostosta tulee sivun konffitiedosto. 5.3. Kopioi alla oleva setti tiedostoon korvaten kohtaan root oma domainisi nimi ja public-kansio (tai missä ikinä index.php onkaan), esim. ropaz.dev/public. Laita domainisi nimi server_nameen. Tarkista, että php-versio on ok.
server { listen 80; listen [::]:80; root /var/www/html/[domainin nimi]; # Add index.php to the list if you are using PHP index index.php index.html index.htm index.nginx-debian.html; server_name [domainin nimi]; location / { try_files $uri $uri/ /index.php?url=$uri&$args; } # pass PHP scripts to FastCGI server location ~ \.php$ { include snippets/fastcgi-php.conf; # With php-fpm (or other unix sockets): fastcgi_pass unix:/run/php/php8.4-fpm.sock; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one location ~ /\.ht { deny all; } }
5.4. Luo symlink polkuun /etc/nginx/sites-enabled komennolla:
sudo ln -s /etc/nginx/sites-available/[tiedostosi nimi] /etc/nginx/sites-enabled
5.5. Tarkista, että "sites-enabled" kansioon tuli tiedosto ja testaa polkuun /etc/nginx/sites-available luotu konffifilu koodivirheiden varalta komennolla
sudo nginx -t
5.6. Päivitä reposi polussa /var/www/html/[domain], mikäli tuonne tarvii tehdä päivityksiä esim. tietokantaan tai ympäristöön (servu vai lokaali). 6. Asenna Certbot. Ohjeet Certbot-otsikon alla. Aja sitten sivuillesi HTTPS-sertifikaatti komennolla
sudo certbot
Valitse listasta domainisi. Kun sertifikaatti on luotu, käy varmistamassa, että nettisivun konffitiedosto päivittyi polussa /etc/nginx/sites-available. 7. Nyt nettisivujen pitäisi toimia... JEEE! Jos ei, niin ei niin JEEE. Lisänä... Jos haluaa lisäillä alisivuja niin käytä poluissa /etc/nginx/sites-available ja /var/www/html konffitiedoston ja repon nimenä [alisivu.domain] ja päivitä konffitiedoston muuttujat alidomainin nimellä.

EC2

EC2-instanssin luonti Amazonissa. 1. Amazoniin kirjautuneena, kirjoita hakuun "EC2" ja etsi kohta jossa lukee "Launch instance". Avautuu instanssinluomissivu. 2. Anna instanssille nimi. 3. Valitse käyttöjärjestelmäksi Ubuntu (tai muu Linux-käyttis). 4. Valitse instanssin tyypiksi micro tai isompi. 5. Luo avainpari, jollei jo ole. 6. Valitse nettiasetuksista "Allow SSH ..." mistä vain osoitteesta, "Allow HTTP ..." ja "Allow HTTPS ...". 7. Muuten oletusasetukset ovat ok. Paina "Launch instance". Instanssi näkyy nyt instanssilistalla. Valitsemalla instanssin, näet instanssin tietoja, kuten public IP:n. Allokoidaan vielä instanssille elastinen IP. Voit hakea Amazonin hakuikkunasta elastic IP ja menemällä EC2:teen liittyvälle sivulle. Valitse sieltä "Allocate Elastic IP address" ja valitse instanssi. Amazonin puolelta asia on nyt kunnossa. Kirjaudu instanssiin tietokoneelta käyttämällä SSH-avainta. Jos SSH-avain puuttuu, sen saa tehtyä EC2-instanssin luonnin yhteydessä. Kirjaudu EC2-instanssille komennolla
ssh -i [avaintiedosto] [tietokone]
Avain on esim. tiedosto.pem ja tietokone esim. ubuntu@[tähän tietokoneen public IP]. Jos ei onnistu, anna avaimelle lukuoikeudet komennolla (avaimen polussa):
chmod 400 [avaintiedosto]

Nginx

Päivitä apt ja asenna Nginx:
sudo apt update
sudo apt install nginx
Mene serverin public-IP:hen selaimella http://[public IP]. Jos kaikki ok, pitäisi näkyä “Welcome to Nginx” tms.

PHP

Asenna PHP:
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo add-apt-repository ppa:ondrej/nginx
sudo apt-get update
sudo apt-get install php8.4-common php8.4-cli php8.4-opcache php8.4-mysql php8.4-xml php8.4-curl php8.4-zip php8.4-mbstring php8.4-gd php8.4-intl php8.4-bcmath php8.4-fpm

MySql

Asenna ja konffaa MySql:
sudo apt install mysql-server
sudo mysql_secure_installation
Asennuksen jälkeen käynnistä MySql:
sudo mysql
MySql:ssä lisää käyttäjänimi ja salasana, sekä anna kaikki oikeudet:
CREATE USER '[käyttäjänimi]'@'%' IDENTIFIED WITH mysql_native_password BY '[salasana]';
GRANT ALL ON *.* TO '[käyttäjänimi]'@'%';

TablePlus

Luo uusi yhteys (=connection) sovelluksessa ja valitse MySql. 1. Lisää avautuneeseen formiin yhteyden nimi, MySql:n käyttäjänimi ja salasana kohtiin "user" ja "password". 2. Enabloi "Over SSH". 3. Lisää kohtaan "server" servun public IP ja kohtaan "user" servukoneen käyttäjänimi (=ubuntu). 4. Enabloi "use SSH key" ja valitse SSH-avaintiedosto (.pem). 5. Lopuksi paina "test" ja kenttien pitäisi muuttua vihreiksi. Nyt yhdistäminen pitäisi onnistua. Voit importata tai lisätä uusia tietokantoja nyt sovelluksessa.

Namecheap

Valitse domainisi ja paina "Manage". Mene kohtaan "Advanced DNS". Luodaan kaksi uutta recordia. Molempiin laitetaan typeksi "A Record" ja valueksi instanssin public IP. TTL saa olla molemmissa automaattinen. Laitetaan ensimmäiseen recordiin hostiksi "*" ja toiseen "@". Nämä takaavat sen, että domain ja alidomainit toimivat. Valmis!

Certbot

Certbottia varten tarkista, että servukoneelta löytyy python ja päivitä apt. Aja seuraavat komennot:
sudo python3 -m venv /opt/certbot/
sudo /opt/certbot/bin/pip install --upgrade pip
sudo /opt/certbot/bin/pip install certbot certbot-nginx
sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot
Certbotilla voi ajaa sertifikaatit uusille sivuille komennolla
sudo certbot