CLI

Слични документи
PuTTY CERT.hr-PUBDOC

Slide 1

Uvod u PHP

PDO

Microsoft PowerPoint - Datoteke [Compatibility Mode]

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Računarski praktikum I - Vježbe 01 - Uvod

Programski jezik C

Programiranje za UNIX Okruženje unix procesa

Microsoft Word - CCERT-PUBDOC doc

AKD KID Middleware Upute za Macintosh instalaciju V1.0

Recuva CERT.hr-PUBDOC

eOI Middleware Upute za instalaciju

KORISNIČKE UPUTE APLIKACIJA ZA POTPIS DATOTEKA

INTEGRIRANI KNJIŽNIČNI SUSTAV Sustav za podršku Upute za instalaciju: Aleph v22 ZAG

JMBAG Ime i Prezime Mreže računala Završni ispit 16. veljače Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i službeni šalabahter.

Sveucilište u Zagrebu

Računarski praktikum II - Predavanje 03 - Apache Web server

Često postavljana pitanja u programu OBRT 1. Kako napraviti uplatu u knjizi tražbina i obveza? 2. Kako odabrati mapu/disk za pohranu podataka? 3. Kako

Писање и превођење модула

Računarski praktikum I - Vježbe 09 - this, static

Uvod u računarstvo 2+2

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Web programiranje i primjene - Osnovni pojmovi WEB tehnologije korišteni u kolegiju

Tutoring System for Distance Learning of Java Programming Language

ZADACI ZA VEŽBU 1. Realizovati konzolnu aplikaciju koja će računati površinu kvadrata, pravougaonika ili trougla. 2. Preko konzole se unosi ocena od 1

PowerPoint Presentation

Programiranje 2 popravni kolokvij, 15. lipnja Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanj

Računarski praktikum I - Vježbe 07 - Podstrukture, const, reference

Uvod u računarstvo 2+2

Microsoft Word - IP_Tables_programski_alat.doc

Microsoft Word - privitak prijedloga odluke

PowerPoint Presentation

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

Računarske mreže Čas 2 Ivana Tanasijević Matematički fakultet, Beograd 1

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera

Funkcije predavač: Nadežda Jakšić

Microsoft Word - 6. RAZRED INFORMATIKA.doc

Upute za instaliranje WordPressa 1.KORAK Da biste instalirali Wordpress, najprije morate preuzeti najnoviju verziju programa s web stranice WordPressa

Programski jezici i strukture podataka

Microsoft PowerPoint - LB7-2_WCCF_2012.ppt

PDF = Potencijalno destruktivan fajl

PHP proširenja za rad sa bazama podataka Postoje pojedinačna proširenja za različite tipove baza podataka sa svojim bibliotekama funkcija npr. postoji

PowerPoint Presentation

Slide 1

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

Apache Maven Bojan Tomić

NAPOMENA: Studenti na ispit donose kod urađenog zadatka

OpenVPN GUI CERT.hr-PUBDOC

Napredno web programiranje

Funkcije predavač: Nadežda Jakšić

Korisničke upute za podnošenje zahtjeva za rješavanje spora (žalbe)

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br

Microsoft Word - KORISNIČKA UPUTA za pripremu računala za rad s Fina potpisnim modulom_RSV_ doc

Programiranje 1 5. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 5. predavanj

VEŽBA 5: KLASE I OBJEKTI U C# Cilj ove vežbe je upoznavanje sa osnovama rada sa klasama i objektima u programskom jeziku C#. Pored toga, bide demonstr

Fina pain001 konverter - Korisnička uputa eksterno_ožujak 2016

PHP kod

NIAS Projekt e-građani KORISNIČKA UPUTA za aplikaciju NIAS Verzija 1.1 Zagreb, srpanj 2014.

Vjezbe

Rad u mrežnom okruženju Osnove informatike s primjenom računala

Primenjeno programiranje - vezbe GUI i baze podataka

R u z v e l t o v a 5 5, B e o g r a d, t e l : , e - m a i l : p r o d a j p s i t. r s, w w w. p s i t. r s

Marijan Gudelj-C.V.

Slide 1

MultiBoot Korisnički priručnik

Microsoft Word - WP_kolokvij_2_rjesenja.doc

m-intesa ZA KRETANJE BEZ GRANICA... INTESA SANPAOLO BANKA ZA UREĐAJE SVIJET MOGUĆEG.

Microsoft PowerPoint - 6. CMS [Compatibility Mode]

Fra Serafina Schoena Rijeka MB: MBO: Žiro račun: kod RBA d.d. GSM:

Microsoft Word - MySQL_3.doc

SVEUČILIŠTE U RIJECI TEHNIČKI FAKULTET Preddiplomski sveučilišni studij računarstva Završni rad WEB APLIKACIJA ZA PREZENTACIJU I REZERVACIJE TURISTIČK

PASCAL UVOD 2 II razred gimnazije

Državno natjecanje / Osnove informatike Srednje škole Zadaci U sljedećim pitanjima na odgovore odgovaraš upisivanjem slova koji se nalazi ispred

Linux shell u praksi

Microsoft PowerPoint - LB7-2_WCCF_2010.ppt

n50

Sveučilište u Zagrebu Fakultet prometnih znanosti Zavod za inteligentne transportne sustave Katedra za primijenjeno računarstvo Vježba: #7 Kolegij: Ba

Datoteke predavač: Nadežda Jakšić

PowerPoint Presentation

UVOD - OD JAVE DO C# ELEMENTARNE RAZLIKE Veliki broj Java/C# razlika su uglavnom preimenovane ključne reči i razlike u konvencijama imenovanja. Neke o

PROMENLJIVE, TIPOVI PROMENLJIVIH

Računarski praktikum I - Vježbe 11 - Funktori

Sadržaj Wi-Fi MESHtar...4 Upute za povezivanje osnovnog paketa od dva uređaja...6 Savjeti i napredne postavke A) Preporuke za optimalno postavljanje u

NAZIV PREDMETA UPRAVLJANJE POSLUŽITELJSKIM RAČUNALIMA Kod SIT135 Godina studija 3 Nositelj/i Dipl.ing Valentini Kožica, Bodovna vrijednost 6 predmeta

PowerPoint Presentation

Programski jezici i strukture podataka 2018/2019. Programski jezici i strukture podataka Računarske vežbe vežba 10 Zimski semestar 2018/2019. Studijsk

obavezno je koristiti spell-checker

Korisničko uputstvo mobilne aplikacije Digitalni Kiosk 1

Development Case

Računarski praktikum II - Predavanje 02 - HTML forme. Git.

Microsoft Word - PLC na Ethernet mrezi.doc

1 jmbag ime i prezime Programiranje 2 prvi kolokvij, Rezultati i uvidi u kolokvije: Rezultati u petak, 3.5., navečer na webu, a uvidi u p

070-ALIP2-udzbenik.indb

GTS obrt za savjetovanje, trgovinu i sport, vl. Tihomir Grbac HR Sveta Nedelja, Ferde Livadića 15 Tel/Fax: ,

CARNET Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za nadzor razrednih knjiga tel: fax: mail:

Primenjeno programiranje - Vežbe

Microsoft PowerPoint - 11.Programski_Jezik_C_ulaz-izlaz [Compatibility Mode]

RAD SA PROGRAMOM

Транскрипт:

CLI Marijan Šuflaj FER, 2018

Sadržaj Konzolno sučelje Pokretanje skripti Kontrola procesa Alarmi Alat Composer

Konzolno sučelje Omogućuje pisanje konzolnih aplikacija Postoje razlike u odnosu na web-sučelje Ne šalju se zaglavlja Ne mijenja se trenutni radni direktorij Vrijeme je izvršavanja neograničeno secure.php.net/manual/en/ features.commandline.differences.php # php -v PHP 7.2.2 (cli) (built: Feb 16 2018 23:15:49) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans

Docker Docker slika u sebi ima i PHP konzolno sučelje # docker run \ --rm \ -v "$(pwd)"/:/app/src/ \ oipa/backend:2.0 php -v PHP 7.2.2 (cli) (built: Feb 16 2018 23:15:49) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Xdebug v2.6.0, Copyright (c) 2002-2018, by Derick Rethans Lakši je način ući u ljusku kontejnera i od tamo pozivati PHP preko php naredbe # docker run \ --rm \ -it \ -v "$(pwd)"/:/app/src/ \ oipa/backend:2.0 bash root@6db4fbd88ef4:/app#

Pokretanje skripti Naredba php prima preko argumenta skriptu koju je potrebno izvršiti php main.php Svi argumenti nakon imena datoteke prosljeduju se u skriptu php main.php --a=b "c d" ef $argv - argumenti prosljedeni u skriptu Prvi je element putanja da same skripte $argc - broj elemenata u $argv var_dump($argc, $argv);

Pokretanje skripte - nastavak Ime datoteke ne mora završavati na.php Pomoću #! moguće skiptu napraviti izvršivom en.wikipedia.org/wiki/shebang (Unix) #!/usr/bin/env php <?php declare(strict_types=1); var_dump(1, 2.); chmod +x executable

Opcije naredbe php Opcije prije imena skripte mijenjaju ponašanje naredbe php php -l main.php - provjerava sintaksnu ispravnost datoteke no ne izvršava ju php -d xdebug.cli color=0 main.php - promjena konfiguracijske postavke xdebug.cli color Korisno za procesiranje podataka echo -e "2\n4\n13\n26" \ php \ -B '$sum = 0;' \ -R 'echo sqrt((float) $argn), "\n"; $sum += sqrt((float) $argn);' \ -E 'echo "Sum: ", $sum, "\n";' secure.php.net/manual/en/features.commandline.options.php

Ulaz/izlaz Tri konstante koje predstavljaju tokove podataka STDIN - standardni ulaz STDOUT - standardni izlaz STDERR - izlaz za greške Moguće pristupati i preko toka tipa php php://stdin - standardni ulaz php://stdout - standardni izlaz php://stderr - izlaz za greške Načine pristupa nije moguće kombinirati echo sha1( file_get_contents('php://stdin') ), "\n"; en.wikipedia.org/wiki/standard streams

Kontrola procesa Proširenje dostupno unutar konzolnog sučelja Ne postoji u kontekstu web-poslužitelja Omogućuje funkcionalnosti poput fork i obrade signala secure.php.net/manual/en/book.pcntl.php

fork Stvara novi proces dijete Prije izlaska iz procesa roditelja treba pričekati na djecu $var = [1, 2, 3]; switch (pcntl_fork()) { case -1: var_dump('error'); exit(1); case 0: $var[] = 4; var_dump($var); exit(0); default: pcntl_wait($status); } var_dump($var);

Obrada signala Postavljanje vlastite obrade signala pomoću funkcije pcntl signal Od verzije 7.1 (napokon) postoje asinkroni signali Omogućuju se pomoću funkcije pcntl async signals pcntl_async_signals(true); pcntl_signal(sigint, function (int $signal): void { var_dump('cistim'); exit(); }); for ($d = 0, $i = 0; $i < 10000000; $i++) { $d += $i; } var_dump($d); secure.php.net/manual/en/function.pcntl-signal.php

Primjer - ispis napretka Želimo ispisivati postotak obradenih elemenata Operacije su ispisa skupe operacija Možemo nekako namjestiti nakon koliko elemenata radimo ispis Varira izmedu različitih računala i kod neuniformnog vremena trajanja obrade elemenata $i = 1; $l = 100000000; while ($i <= $l) { printf("\r%6.2lf%%", ($i++ / $l) * 100); } echo "\n";

Alarmi Implementiranje asinkronih obrada u odredenim vremenskim intervalima Postavlja se obrada za signal SIGALRM Postavljanje alarma pomoću pcntl alarm Interval se zadaje u sekundama Vrijednost 0 čisti alarm u redu čekanja

Alarmi - primjer pcntl_async_signals(true); $i = 1; $l = 100000000; $callback = function () use (&$i, $l) { printf("\r%6.2lf%%", ($i / $l) * 100); pcntl_alarm(1); }; pcntl_signal(sigalrm, $callback); pcntl_alarm(1); $callback(); while ($i <= $l) { $i++; } pcntl_alarm(0); $callback(); echo "\n";

Naredba kill Linux naredba za slanje signala procesu kill -SIGALRM <pid> - slanje signal alarma procesu s ID-em <pid> pcntl_async_signals(true); $i = 1; $l = 100000000; $callback = function () use (&$i, $l) { printf("\r%6.2lf%%", ($i / $l) * 100); }; pcntl_signal(sigalrm, $callback); $callback(); echo 'PID: ', getmypid(), "\n"; while ($i <= $l) { $i++; } $callback(); echo "\n";

Interaktivna konzola Pokretanjem php -a Puno moćnija interaktivna konzola je PsySH psysh.org Predinstalirana za potrebe vještine Naredba psysh u kontekstu kontejnera

Ugradeni web-poslužitelj Namjenjen razvojnom i testnom okruženju Ograničenih mogućnosti Samo jedan proces obraduje zahtjeve Jednostavan način za upogoniti web-poslužitelj php -S 127.0.0.1:8899 - pokreće lokalni web-poslužitelj na portu 8899 Korjenski je direktorij direktorij iz kojeg je naredba pokrenuta php -S 127.0.0.1:8899 -t /app/src/14-cli/ws/ Postavljamo korjenski direktorij na /app/src/14-cli/ws/

Alat Composer Alat za upravljanje aplikacijama i bibliotekama za PHP Globalni i lokalni način rada Pozabaviti ćemo se samo lokalnim načinom rada Unutar datoteke composer.json dan je opis ovisnosti Obično se nalazi u korjenskom direktoriju projekta Naredba se composer poziva iz direktorija gdje se nalazi datoteka composer.json Datoteka composer.lock zaključava projekt na odredene verzije biblioteka Za biblioteke se ne stavlja u VCS sustav, dok se za aplikacije stavlja getcomposer.org/doc/

Alat Composer - nastavak Predinstaliran za potrebe vještine docker pull oipa/backend:3.0 Osnovne naredbe require - ubacuje biblioteku u projekt i sprema nove vrijednosti u composer.lock update - ažurira verzije biblioteka i sprema nove vrijednosti u composer.lock install - instalira biblioteke navedene u datoteci composer.lock ili, ako datoteka ne postoji, poziva update remove - uklanja biblioteku iz projekta i sprema nove vrijednosti u composer.lock Biblioteke se instaliraju u direktorij vendor Sadrži datoteku autoload.php Repozitorij paketa na packagist.org

Alat Composer - primjer korištenja composer require mossadal/math-parser require_once DIR.'/vendor/autoload.php'; $parser = new StdMathParser(); $differentiator = new Differentiator('x'); $evaluator = new Evaluator(); /* @var ExpressionNode $f */ $f = $parser->parse('exp(2*x)-x*y'); /* @var ExpressionNode $df */ $df = $f->accept($differentiator); $evaluator->setvariables(['x' => 1, 'y' => 2]); var_dump((string) $f, (string) $df); var_dump($df->accept($evaluator));