Table of Contents

Ghid Linux

Introducere

Ce este Linux?

Ce este Shell?

Shell-ul este mediul implicit prin care un utilizator poate interactiona cu sistemul de operare Linux. Acesta accepta comenzi de la utilizator si le executa.

Comenzi Linux

cd [dir]

Comanda cd (change directory) este folosita pentru a naviga prin sistem. Cand deschidem terminalul calea curenta in care ne aflam este home. Exemple de utilizare:

SDA-AB@SDA-AB:/mnt/c$ cd Users
SDA-AB@SDA-AB:/mnt/c/Users$ ls
'All Users'   Default  'Default User'   Public   desktop.ini   sda
SDA-AB@SDA-AB:/mnt/c/Users$ cd sda
SDA-AB@SDA-AB:/mnt/c/Users/sda$ cd Desktop/
SDA-AB@SDA-AB:/mnt/c/Users/sda/Desktop$ cd..
SDA-AB@SDA-AB:/mnt/c/Users/sda

Mai multe informatii despre aceasta comanda in acest link.

ls

Comanda ls (list) listeaza continutul unui director si este folosita pentru a afisa fisierele/directoarele dintr-un director/subdirector.

SDA-AB@SDA-AB:/mnt/c/Users$ ls
'All Users'   Default  'Default User'   Public   desktop.ini   sda

Mai multe informatii despre comanda ls in acest link.

mkdir [nume1] [nume2]

Comanda mkdir (make directory) creeaza un director (sau mai multe) daca acesta nu exista deja.

SDA-AB@SDA-AB:/mnt/c/Users$ ls
'All Users'   Default  'Default User'   Public   desktop.ini   sda
SDA-AB@SDA-AB:/mnt/c/Users$ mkdir SDA-AB
SDA-AB@SDA-AB:/mnt/c/Users$ ls
'All Users'   Default  'Default User'   Public   desktop.ini   sda   SDA-AB

Mai multe informatii despre comanda mkdir in acest link.

rmdir

Comanda rmdir (delete a directory) sterge un director existent care nu contine fisiere.

SDA-AB@SDA-AB:/mnt/c/Users$ ls
'All Users'   Default  'Default User'   Public   desktop.ini   sda
SDA-AB@SDA-AB:/mnt/c/Users$ mkdir SDA-AB
SDA-AB@SDA-AB:/mnt/c/Users$ ls
'All Users'   Default  'Default User'   Public   desktop.ini   sda SDA-AB
SDA-AB@SDA-AB:/mnt/c/Users$ rmdir SDA-AB
SDA-AB@SDA-AB:/mnt/c/Users$ ls
'All Users'   Default  'Default User'   Public   desktop.ini   sda
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.

SDA-AB@SDA-AB:/mnt/c/Users$ ls
'All Users'   Default  'Default User'   Public   desktop.ini   sda
SDA-AB@SDA-AB:/mnt/c/Users$ mkdir SDA-AB
SDA-AB@SDA-AB:/mnt/c/Users$ ls
'All Users'   Default  'Default User'   Public   desktop.ini   sda SDA-AB
SDA-AB@SDA-AB:/mnt/c/Users$ rm SDA-AB
SDA-AB@SDA-AB:/mnt/c/Users$ ls
'All Users'   Default  'Default User'   Public   desktop.ini   sda

Mai multe informatii despre comanda rm in acest link.

cat

Comanda cat (concatenate) concateneaza doua fisiere sau afiseaza continul unui fisier. Presupunem ca avem urmatorul text in fisierul poo.txt: ,,Programare orientata pe obiecte”

SDA-AB@SDA-AB:/mnt/c/Users$ ls
'All Users'   Default  'Default User'   Public   desktop.ini   sda sda.txt
SDA-AB@SDA-AB:/mnt/c/Users$ cat sda.txt
Structuri de Date si Algoritmi
SDA-AB@SDA-AB:/mnt/c/Users$
chmod

Comanda chmod (change file mode) este folosita pentru a schimba prioritatile pe care le avem asupra unui anumit fisier. Aceasta comanda afecteaza permisiunile de read, write, execute pentru un utilizator / grup / altii (others).

Folosind varianta numerica avem:

  • 0 = nu are nicio permisiune asupra fisierului
  • 4 = are permisiune de citire (read)
  • 2 = are permisiune de scriere (write)
  • 1 = are permisiune de stergere (execute)

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”

Mai multe informatii despre aceasta comanda 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.

SDA-AB@SDA-AB:/mnt/c/Users$ sudo ls
[sudo] password for SDA-AB: 
'All Users'   Default  'Default User'   Public   desktop.ini   sda

Mai multe informatii despre aceasta comandain acest link.

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.

SDA-AB@SDA-AB:/mnt/c/Users$ sudo apt-get install sublime-text
[sudo] password for SDA-AB: 
Reading package list... Done

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:

sudo apt-get install gcc

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.

sudo apt-get install make

Pentru a compila un program in C folosim gcc.

Exemplu de utilizare

sda.c
#include <stdio.h>
int main () {
for (int i = 0; i < 3; i++)
    cout << "Hello world of SDA!" << endl;
return 0;
}
Etapa de compilare
SDA-AB@is:/laborator gcc sda.c
SDA-AB@is:/laborator ls
sda.c a.out

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.

SDA-AB@is:/laborator gcc sda.c -o main
SDA-AB@is:/laborator ls
sda.c main
Rularea executabilului
SDA-AB@is:/laborator gcc sda.c -o main
SDA-AB@is:/laborator ls
sda.c main
SDA-AB@is:/laborator ./main
Hello world of SDA!
Hello world of SDA!
Hello world of SDA!
SDA-AB@is:/laborator

Daca avem de compilat mai multe programe, procedam astfel:

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.

./main [nume_fisier1] [nume_fisier2] [nume_fisier3]