This shows you the differences between two versions of the page.
sda-ab:ghidlinux [2020/12/24 12:44] ruben_gilian.udroiu created |
sda-ab:ghidlinux [2020/12/24 12:56] (current) ruben_gilian.udroiu [GNU Compiler] |
||
---|---|---|---|
Line 16: | Line 16: | ||
* cd [nume] = navigam catre directorul cu numele specificat (daca acesta poate fi accesat din calea curenta) | * cd [nume] = navigam catre directorul cu numele specificat (daca acesta poate fi accesat din calea curenta) | ||
<code bash> | <code bash> | ||
- | sergiu@SERGIU:/mnt/c$ cd Users | + | SDA-AB@SDA-AB:/mnt/c$ cd Users |
- | sergiu@SERGIU:/mnt/c/Users$ ls | + | SDA-AB@SDA-AB:/mnt/c/Users$ ls |
- | 'All Users' Default 'Default User' Public desktop.ini sergi | + | 'All Users' Default 'Default User' Public desktop.ini sda |
- | sergiu@SERGIU:/mnt/c/Users$ cd sergi | + | SDA-AB@SDA-AB:/mnt/c/Users$ cd sda |
- | sergiu@SERGIU:/mnt/c/Users/sergi$ cd Desktop/ | + | SDA-AB@SDA-AB:/mnt/c/Users/sda$ cd Desktop/ |
- | sergiu@SERGIU:/mnt/c/Users/sergi/Desktop$ cd.. | + | SDA-AB@SDA-AB:/mnt/c/Users/sda/Desktop$ cd.. |
- | sergiu@SERGIU:/mnt/c/Users/sergi | + | SDA-AB@SDA-AB:/mnt/c/Users/sda |
</code> | </code> | ||
Mai multe informatii despre aceasta comanda [[https://man7.org/linux/man-pages/man1/cd.1p.html|in acest link.]] | Mai multe informatii despre aceasta comanda [[https://man7.org/linux/man-pages/man1/cd.1p.html|in acest link.]] | ||
Line 28: | Line 28: | ||
Comanda **ls** (list) listeaza continutul unui director si este folosita pentru a afisa fisierele/directoarele dintr-un director/subdirector. | Comanda **ls** (list) listeaza continutul unui director si este folosita pentru a afisa fisierele/directoarele dintr-un director/subdirector. | ||
<code bash> | <code bash> | ||
- | sergiu@SERGIU:/mnt/c/Users$ ls | + | SDA-AB@SDA-AB:/mnt/c/Users$ ls |
- | 'All Users' Default 'Default User' Public desktop.ini sergi | + | 'All Users' Default 'Default User' Public desktop.ini sda |
</code> | </code> | ||
Mai multe informatii despre comanda **ls** [[https://man7.org/linux/man-pages/man1/ls.1.html|in acest link.]] | Mai multe informatii despre comanda **ls** [[https://man7.org/linux/man-pages/man1/ls.1.html|in acest link.]] | ||
Line 35: | Line 35: | ||
Comanda **mkdir** (make directory) creeaza un director (sau mai multe) daca acesta nu exista deja. | Comanda **mkdir** (make directory) creeaza un director (sau mai multe) daca acesta nu exista deja. | ||
<code bash> | <code bash> | ||
- | sergiu@SERGIU:/mnt/c/Users$ ls | + | SDA-AB@SDA-AB:/mnt/c/Users$ ls |
- | 'All Users' Default 'Default User' Public desktop.ini sergi | + | 'All Users' Default 'Default User' Public desktop.ini sda |
- | sergiu@SERGIU:/mnt/c/Users$ mkdir POO | + | SDA-AB@SDA-AB:/mnt/c/Users$ mkdir SDA-AB |
- | sergiu@SERGIU:/mnt/c/Users$ ls | + | SDA-AB@SDA-AB:/mnt/c/Users$ ls |
- | 'All Users' Default 'Default User' Public desktop.ini sergi POO | + | 'All Users' Default 'Default User' Public desktop.ini sda SDA-AB |
</code> | </code> | ||
Mai multe informatii despre comanda **mkdir** [[https://man7.org/linux/man-pages/man1/mkdir.1.html|in acest link.]] | Mai multe informatii despre comanda **mkdir** [[https://man7.org/linux/man-pages/man1/mkdir.1.html|in acest link.]] | ||
Line 45: | Line 45: | ||
Comanda **rmdir** (delete a directory) sterge un director existent care nu contine fisiere. | Comanda **rmdir** (delete a directory) sterge un director existent care nu contine fisiere. | ||
<code bash> | <code bash> | ||
- | sergiu@SERGIU:/mnt/c/Users$ ls | + | SDA-AB@SDA-AB:/mnt/c/Users$ ls |
- | 'All Users' Default 'Default User' Public desktop.ini sergi | + | 'All Users' Default 'Default User' Public desktop.ini sda |
- | sergiu@SERGIU:/mnt/c/Users$ mkdir POO | + | SDA-AB@SDA-AB:/mnt/c/Users$ mkdir SDA-AB |
- | sergiu@SERGIU:/mnt/c/Users$ ls | + | SDA-AB@SDA-AB:/mnt/c/Users$ ls |
- | 'All Users' Default 'Default User' Public desktop.ini sergi POO | + | 'All Users' Default 'Default User' Public desktop.ini sda SDA-AB |
- | sergiu@SERGIU:/mnt/c/Users$ rmdir POO | + | SDA-AB@SDA-AB:/mnt/c/Users$ rmdir SDA-AB |
- | sergiu@SERGIU:/mnt/c/Users$ ls | + | SDA-AB@SDA-AB:/mnt/c/Users$ ls |
- | 'All Users' Default 'Default User' Public desktop.ini sergi | + | 'All Users' Default 'Default User' Public desktop.ini sda |
</code> | </code> | ||
== rm == | == rm == | ||
Comanda **rm** (remove) sterge un fisier sau un director. Daca directorul pe care vrem sa il stergem contine alte fisiere la randul lui, putem folosi comanda **rm -f** care sterge fortat acel director. | Comanda **rm** (remove) sterge un fisier sau un director. Daca directorul pe care vrem sa il stergem contine alte fisiere la randul lui, putem folosi comanda **rm -f** care sterge fortat acel director. | ||
<code bash> | <code bash> | ||
- | sergiu@SERGIU:/mnt/c/Users$ ls | + | SDA-AB@SDA-AB:/mnt/c/Users$ ls |
- | 'All Users' Default 'Default User' Public desktop.ini sergi | + | 'All Users' Default 'Default User' Public desktop.ini sda |
- | sergiu@SERGIU:/mnt/c/Users$ mkdir POO | + | SDA-AB@SDA-AB:/mnt/c/Users$ mkdir SDA-AB |
- | sergiu@SERGIU:/mnt/c/Users$ ls | + | SDA-AB@SDA-AB:/mnt/c/Users$ ls |
- | 'All Users' Default 'Default User' Public desktop.ini sergi POO | + | 'All Users' Default 'Default User' Public desktop.ini sda SDA-AB |
- | sergiu@SERGIU:/mnt/c/Users$ rm POO | + | SDA-AB@SDA-AB:/mnt/c/Users$ rm SDA-AB |
- | sergiu@SERGIU:/mnt/c/Users$ ls | + | SDA-AB@SDA-AB:/mnt/c/Users$ ls |
- | 'All Users' Default 'Default User' Public desktop.ini sergi | + | 'All Users' Default 'Default User' Public desktop.ini sda |
</code> | </code> | ||
Mai multe informatii despre comanda **rm** [[https://man7.org/linux/man-pages/man1/rm.1.html|in acest link.]] | Mai multe informatii despre comanda **rm** [[https://man7.org/linux/man-pages/man1/rm.1.html|in acest link.]] | ||
Line 71: | Line 71: | ||
Presupunem ca avem urmatorul text in fisierul poo.txt: ,,Programare orientata pe obiecte" | Presupunem ca avem urmatorul text in fisierul poo.txt: ,,Programare orientata pe obiecte" | ||
<code bash> | <code bash> | ||
- | sergiu@SERGIU:/mnt/c/Users$ ls | + | SDA-AB@SDA-AB:/mnt/c/Users$ ls |
- | 'All Users' Default 'Default User' Public desktop.ini sergi poo.txt | + | 'All Users' Default 'Default User' Public desktop.ini sda sda.txt |
- | sergiu@SERGIU:/mnt/c/Users$ cat poo.txt | + | SDA-AB@SDA-AB:/mnt/c/Users$ cat sda.txt |
- | Programare orientata pe obiecte | + | Structuri de Date si Algoritmi |
- | sergiu@SERGIU:/mnt/c/Users$ | + | SDA-AB@SDA-AB:/mnt/c/Users$ |
</code> | </code> | ||
== chmod == | == chmod == | ||
Line 86: | Line 86: | ||
* 1 = are permisiune de stergere (execute) | * 1 = are permisiune de stergere (execute) | ||
- | 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.c 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.c"</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 == | == 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. | 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> | <code bash> | ||
- | sergiu@SERGIU:/mnt/c/Users$ sudo ls | + | SDA-AB@SDA-AB:/mnt/c/Users$ sudo ls |
- | [sudo] password for sergiu: | + | [sudo] password for SDA-AB: |
- | 'All Users' Default 'Default User' Public desktop.ini sergi | + | 'All Users' Default 'Default User' Public desktop.ini sda |
</code> | </code> | ||
Mai multe informatii despre aceasta comanda[[https://man7.org/linux/man-pages/man8/sudo.8.html|in acest link.]] | Mai multe informatii despre aceasta comanda[[https://man7.org/linux/man-pages/man8/sudo.8.html|in acest link.]] | ||
Line 99: | Line 99: | ||
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**. | ||
<code bash> | <code bash> | ||
- | sergiu@SERGIU:/mnt/c/Users$ sudo apt-get install sublime-text | + | SDA-AB@SDA-AB:/mnt/c/Users$ sudo apt-get install sublime-text |
- | [sudo] password for sergiu: | + | [sudo] password for SDA-AB: |
Reading package list... Done | Reading package list... Done | ||
</code> | </code> | ||
Line 107: | Line 107: | ||
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. | 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: | Daca nu avem preinstalat acest compilator pe versiunea noastra de Linux il putem obtine folosind comanda: | ||
- | <note important>sudo apt-get install g++</note> | + | <note important>sudo apt-get install gcc</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**. | + | In decursul laboratorului de SDA 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 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> | + | <note>Pentru a compila un program in C folosim **gcc**.</note> |
=== Exemplu de utilizare === | === Exemplu de utilizare === | ||
- | Presupunem ca avem programul ,,poo.cpp" care contine | + | |
- | <code c++> | + | <code c sda.c> |
- | #include <iostream> | + | #include <stdio.h> |
- | using namespace std; | + | |
int main () { | int main () { | ||
for (int i = 0; i < 3; i++) | for (int i = 0; i < 3; i++) | ||
- | cout << "Hello world of OOP!" << endl; | + | cout << "Hello world of SDA!" << endl; |
return 0; | return 0; | ||
} | } | ||
Line 124: | Line 123: | ||
== Etapa de compilare == | == Etapa de compilare == | ||
<code bash> | <code bash> | ||
- | poo@is:/laborator g++ poo.cpp | + | SDA-AB@is:/laborator gcc sda.c |
- | poo@is:/laborator ls | + | SDA-AB@is:/laborator ls |
- | poo.cpp a.out | + | sda.c a.out |
</code> | </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**. | 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> | <code bash> | ||
- | poo@is:/laborator g++ poo.cpp -o main | + | SDA-AB@is:/laborator gcc sda.c -o main |
- | poo@is:/laborator ls | + | SDA-AB@is:/laborator ls |
- | poo.cpp main | + | sda.c main |
</code> | </code> | ||
== Rularea executabilului == | == Rularea executabilului == | ||
<code bash> | <code bash> | ||
- | poo@is:/laborator g++ poo.cpp -o main | + | SDA-AB@is:/laborator gcc sda.c -o main |
- | poo@is:/laborator ls | + | SDA-AB@is:/laborator ls |
- | poo.cpp main | + | sda.c main |
- | poo@is:/laborator ./main | + | SDA-AB@is:/laborator ./main |
- | Hello world of OOP! | + | Hello world of SDA! |
- | Hello world of OOP! | + | Hello world of SDA! |
- | Hello world of OOP! | + | Hello world of SDA! |
- | poo@is:/laborator | + | SDA-AB@is:/laborator |
</code> | </code> | ||
<note important>Daca avem de compilat mai multe programe, procedam astfel: | <note important>Daca avem de compilat mai multe programe, procedam astfel: | ||
- | //g++ program1.cpp program2.cpp program3.cpp program4.cpp -o main// | + | **gcc program1.c program2.c program3.c program4.c -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. | 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> | + | **./main [nume_fisier1] [nume_fisier2] [nume_fisier3]**</note> |