This shows you the differences between two versions of the page.
poo-is:ghidcomenzilinux [2020/09/09 00:28] ruben_gilian.udroiu |
poo-is:ghidcomenzilinux [2020/09/09 01:01] (current) ruben_gilian.udroiu |
||
---|---|---|---|
Line 88: | Line 88: | ||
Exemplu: daca apelam chmod 756 program.cpp inseamna ca utilizatorul principal are drepturi depline (4+2+1), grupul de utilizatori are permisiuni de citire si stergere (4+1), iar pentru others avem permisiune de citire si scriere(4+2). Daca in loc de 6 aveam 0, insemna ca revocam toate permisiunile pentru others asupra fisierului ,,program.cpp"</note> | Exemplu: daca apelam chmod 756 program.cpp inseamna ca utilizatorul principal are drepturi depline (4+2+1), grupul de utilizatori are permisiuni de citire si stergere (4+1), iar pentru others avem permisiune de citire si scriere(4+2). Daca in loc de 6 aveam 0, insemna ca revocam toate permisiunile pentru others asupra fisierului ,,program.cpp"</note> | ||
Mai multe informatii despre aceasta comanda [[https://www.howtoforge.com/tutorial/linux-chmod-command/|in acest link.]] | Mai multe informatii despre aceasta comanda [[https://www.howtoforge.com/tutorial/linux-chmod-command/|in acest link.]] | ||
+ | == sudo == | ||
+ | Comanda **sudo** (substitute user do) permite utilizatorului sa aiba privilegii de **root** (high level). Este recomandat sa evitam pe cat de mult posibil utilizarea comenzilor folosind sudo pentru ca, in anumite circumstante, putem sa provocam avarii sistemului de operare. In cadrul laboratorului de POO nu o sa abuzam aceasta comanda. | ||
+ | <code bash> | ||
+ | sergiu@SERGIU:/mnt/c/Users$ sudo ls | ||
+ | [sudo] password for sergiu: | ||
+ | 'All Users' Default 'Default User' Public desktop.ini sergi | ||
+ | </code> | ||
+ | Mai multe informatii despre aceasta comanda[[https://man7.org/linux/man-pages/man8/sudo.8.html|in acest link.]] | ||
== apt-get install [nume] == | == apt-get install [nume] == | ||
Aceasta comanda este folosita pentru a instala un anumit pachet (exemple: sublime, chrome etc.). Deoarece un element strain este vazut ca un eventual ,,pericol" pentru sistemul de operare, trebuie sa fortam sistemul sa execute aceasta comanda, de aceea trebuie sa folosim comanda **sudo**. | Aceasta comanda este folosita pentru a instala un anumit pachet (exemple: sublime, chrome etc.). Deoarece un element strain este vazut ca un eventual ,,pericol" pentru sistemul de operare, trebuie sa fortam sistemul sa execute aceasta comanda, de aceea trebuie sa folosim comanda **sudo**. | ||
Line 95: | Line 103: | ||
Reading package list... Done | Reading package list... Done | ||
</code> | </code> | ||
- | == sudo == | + | |
- | Comanda **sudo** (substitute user do) permite utilizatorului sa aiba privilegii de **root** (high level). Este recomandat sa evitam pe cat de mult posibil utilizarea comenzilor folosind sudo pentru ca, in anumite circumstante, putem sa provocam avarii sistemului de operare. In cadrul laboratorului de POO nu o sa abuzam aceasta comanda. | + | ==== GNU Compiler ==== |
+ | Sistemul de operare Linux este prevazut un compilator care, la inceput, suporta doar limbajul C. Cu timpul, GNU Compiler, s-a extins si ofera suport si pentru limbajele C++, Java, Fortran, Objective-C. | ||
+ | Daca nu avem preinstalat acest compilator pe versiunea noastra de Linux il putem obtine folosind comanda: | ||
+ | <note important>sudo apt-get install g++</note> | ||
+ | In decursul laboratorului de POO o sa avem nevoie de un tool suplimentar care automatizeaza procesul de compilare a aplicatiilor (cu ajutorul makefile-urilor), **GNU Make**. | ||
+ | <note important>sudo apt-get install make</note> | ||
+ | <note>Pentru a compila un program in C folosim **gcc**, iar pentru a compila un program in C++ folosim **g++**.</note> | ||
+ | === Exemplu de utilizare === | ||
+ | Presupunem ca avem programul ,,poo.cpp" care contine | ||
+ | <code c++> | ||
+ | #include <iostream> | ||
+ | using namespace std; | ||
+ | int main () { | ||
+ | for (int i = 0; i < 3; i++) | ||
+ | cout << "Hello world of OOP!" << endl; | ||
+ | return 0; | ||
+ | } | ||
+ | </code> | ||
+ | == Etapa de compilare == | ||
<code bash> | <code bash> | ||
- | sergiu@SERGIU:/mnt/c/Users$ sudo ls | + | poo@is:/laborator g++ poo.cpp |
- | [sudo] password for sergiu: | + | poo@is:/laborator ls |
- | 'All Users' Default 'Default User' Public desktop.ini sergi | + | poo.cpp a.out |
+ | </code> | ||
+ | Observam ca in urma compilarii am obtinut executabilul **a.out** deoarece nu i-am impus un nume, iar compilatorul i-a atribuit unul by default. Pentru a denumi sugestiv executabilul o sa folosim extensia **-o**. | ||
+ | <code bash> | ||
+ | poo@is:/laborator g++ poo.cpp -o main | ||
+ | poo@is:/laborator ls | ||
+ | poo.cpp main | ||
+ | </code> | ||
+ | == Rularea executabilului == | ||
+ | <code bash> | ||
+ | poo@is:/laborator g++ poo.cpp -o main | ||
+ | poo@is:/laborator ls | ||
+ | poo.cpp main | ||
+ | poo@is:/laborator ./main | ||
+ | Hello world of OOP! | ||
+ | Hello world of OOP! | ||
+ | Hello world of OOP! | ||
+ | poo@is:/laborator | ||
</code> | </code> | ||
+ | <note important>Daca avem de compilat mai multe programe, procedam astfel: | ||
+ | |||
+ | //g++ program1.cpp program2.cpp program3.cpp program4.cpp -o main// | ||
+ | |||
+ | In cazul in care lucram cu fisiere de input/output, acestea trebuie introduse ca argumente in linia de comanda delimitate de cate un spatiu. | ||
+ | |||
+ | //./main [nume_fisier1] [nume_fisier2] [nume_fisier3]//</note> | ||
+ |