Sunteți pe pagina 1din 9

10.

2020
SO
Laborator 01 - Introducere

Scop
• Introducere in tematica laboratorului

• Instalarea si familiarizarea cu mediul si uneltele folosite in cadrul laboratorului

• Lucrul cu interfata in linia de comanda

Cuvinte cheie
• Linux, VM, shell, Bash, CLI, Ubuntu

Suport de laborator
• Pentru a oferi o arie de cuprindere cat mai larga, laboratoarele au ca suport familiile de
sisteme de operare Unix si Windows. Instantele de sisteme de operare din familiile de mai
sus alese pentru acest laborator sunt GNU/Linux, respectiv Windows 7.

• Linux

• The Linux Programming Interface - TLPI

• Windows

• Windows System Programming 4th Edition - WSP4

• CLI

• Tutorial CLI

• Tutorial online pentru a invata CLI puteti gasi si aici: Codeacademy,


tutorials.ubuntu.com, Labex 🤓

• General

• Platforma MS Teams, MoodleAIA

Prezentare

LINUX

Linux este un sistem de operare cu scop general, Lansat original in 1991 de Linus Torvalds. Linux
e definit de nucleul (kernelul) sau, care reprezinta componenta de baza a intregului sistem.
Kernelul interactioneaza cu hardware-ul pentru a permite software-ului si altor componente
hardware sa schimbe informatii. Linux a fost inspirat de MINIX, care la randul lui, a fost inspirat de
UNIX. De asemenea, Linuz e bazat pe o filosofie care presupune ca software-ul si sistemul de
operare ar trebui sa fie liber. Liber in sensul de disponibil si modificabil. Licenta software care
permite acest lucru se numeste GNU General Public Licence.

Linux poate fi instalat pe o varietate larga de hardware, incepand cu telefoane mobile, tablete,
console video, router WiFi pana la computere personale si supercomputere.

1
10.2020
SO
Termenul Linux se referă și la nucleul Linux, însă în mod uzual este folosit pentru a descrie întregul
sistem de operare pentru calculatoare, compus din nucleul Linux, biblioteci software și diverse
unelte. O distribuție Linux adaugă acestor componente de bază o mare cantitate de programe,
organizate în „pachete”. Aceste distributii (sau distros) sunt mentinute de comunitati sau grupuri
de oameni din intreaga lume. La baza majoritatii distributiilor existente stau patru mari categorii:
Arch, Debian, Red Hat si Slackware. Din acestea deriva toate celelalte distributii mai mici.

MASINA VIRTUALA

Masinile virtuale permit instalarea unui alt sistem de operare fara a fi nevoie sa fie instalat pe
masina fizica. Printre utilitatile unei masini virtuale se pot numara: cautarea unei distributii de Linux
potrivite, rularea de software proprietar unui anumit SO. De exemplu, ca utilizator de Windows 10,
daca se doreste instalarea/ rularea de aplicatii specifice Windows XP, se poate instala XP intr-o
masina virtuala. Un alt avantaj al masinilor virtuale e ca acestea sunt organizate in sandbox-uri,
adica programele instalate in interiorul unei masini virtuale nu interactioneaza cu fisierele si
sistemul de operare al masinii fizice.

Exista cateva aplicatii pentru crearea de masini virtuale din care poti alege:

• VirtualBox (Windows, Linux, Mac OS X)

• VMware Player (Windows, Linux) varianta free / VMware Workstation varianta paid

• VMware Fusion (Mac OS X)

• Parallels Desktop (Mac OS X)

In acest laborator vom folosi Virtual Box pentru a crea o masina virtuala pe care ruleaza Ubuntu
Desktop. Toate fisierele necesare se gasesc pe siteurile oficiale virtualbox.org si ubuntu.com. Se
poate utiliza orice distributie de Linux preferi.

CLI

Lucrand cu un mediu de text in linia comanda, fara interfata grafica, fara ferestre si butoane,
poate fi intimidant la inceput. Dar odata ce incepi sa intelegi cum functioneaza, o sa vezi cat de
puternic si eficient poate fi. In ultima parte a laboratorului, o sa lucrezi cu un shell foarte comun,
numit Bash. Acesta este disponibil in aproape orice distributie de Linux.

WINDOWS SUBSYSTEM FOR LINUX

Daca sistemul de operare existent pe PC/laptop e Windows 10, poti instala Windows Subsystem
for Linux pentru a avea access direct la un terminal Bash. In loc sa rulezi o masina virtuala,
Windows Subsystem for Linux ruleaza o instanta de mediu compatibil Linux chiar pe Windows.
Este un layer de compatibilitate, iar pentru a-l accesa trebuie instalata o distributie de Linux.
Pachetele pentru acesta sunt disponibile pe Windows Store. Nu este o versiune completa
desktop de Linux, dar e suficient sa inveti despre Bash si despre instrumentele de lucru standard
care se gasesc pe majoritatea sistemelor Linux.

Setarea mediului de lucru

1. Instalare VM (Virtual Machine)

2
10.2020
SO
• Instaleaza VirtualBox accesand pagina: https://www.virtualbox.org (daca nu este deja
instalat).

• Asigura-te ca downloadezi executabilul specific pentru Windows, daca masina pe care


instalezi VM are sistemul de operare Windows instalat.

• Daca ai nevoie de ajutor in procesul de instalare VirtualBox, acceseaza oricare din linkurile
de mai jos:

• https://www.virtualbox.org/manual/ch01.html

• http://blog.infoeducatie.ro/tutorial/2015/07/25/tutorial-virtualbox.html

• https://www.howtogeek.com/196060/beginner-geek-how-to-create-and-use-virtual-
machines/

2. Creare Linux VM

• Asigura-te ca ai VirtualBox deja instalat in computer.

• Urmeaza pasii pentru a crea o noua masina virtuala accesand unul din linkurile de mai sus.

• Masina virtuala creata de noi azi o sa aibe numele Ubuntu Desktop. Ramai la setarile
prestabilite de VirtualBox.

• Downloadeaza imaginea de Linux accesand pagina: https://www.ubuntu.com/download/


desktop

• Selecteaza Ubuntu 18.04 LTS, iar daca sistemul de operare curent nu indeplineste
cerintele necesare, se va selecta unul din versiunile mai vechi de Ubuntu, accesand linkul
urmator: https://www.ubuntu.com/download/alternative-downloads

• Odata ce ai obtinut fisierul .iso sau imaginea de SO, trebuie sa adaugi linkul catre acesta
in masina virtuala deja creata.

• Urmeaza toti pasii impliciti pentru a instala sistemul de operare.

• Cand ajungi la stabilirea unui utilizator, seteaza user: ubuntu, parola: student.
• Exploreaza noul tau sistem de operare 🧐

3. Configurare Windows Subsystem for Linux (Windows 10 only!!!)

• Instaleaza Windows Subsystem for Linux si apoi restarteaza computerul.

• Cauta Turn Windows Features on and off


• In fereastra care apare, scroleaza la sfarsit si bifeaza optiunea Windows Subsystem for
Linux
• Dupa ce sistemul s-a restartat, cauta Ubuntu in Microsoft Store.🔍

• In sectiunea Apps, ar trebui sa gasesti aplicatia Ubuntu 18.04. Downloadeaza-l!


• Dupa ce s-a instalat, lanseaza aplicatia si asteapta sa se configureze.

• In momentul in care esti intrebat de UNIX username, seteaza: ubuntu, iar la parola:
student
• Daca totul a decurs fara probleme pana aici, ar trebui sa ai promptul de Bash afisat.
Felicitari! 👏

4. Daca sistemul de operare pe care-l rulezi este Mac OS X sau Linux, este suficient sa deschizi
aplicatia de terminal. Acesta e interfata de linie comanda de care ai nevoie, care ruleaza Bash.


3
10.2020
SO
Interfata cu linia de comanda (CLI)
• Trebuie sa te familiarizezi cu termenii necesari pentru a lucra cu CLI.

• Primul lucru pe care il vezi cand intri in terminal e promptul. Acesta iti arata informatii ca:
username@host: location$

• Structura unei sintaxe CLI arata cam asa:

ls -lh /usr/bin
sort -u users.txt
grep -i “needle” haystack

comanda optiune(i) argument(e)

• Acesta este doar un exemplu de sintaxa. In functie de ceea ce vrei sa faci, e posibil sa ai nevoie
doar de o comanda, sau de o comanda insotita de una sau mai multe optiuni. Intotdeauna va fi
o comanda la inceput!

• Comanda este de fapt programul pe care il rulezi sau actiunea pe care o faci.

Comenzi de baza
In Linux exista peste 300 de comenzi folosite pentru managementul sistemului. Mai jos sunt
explicate cele mai folosite comenzi din Linux. O intelegere buna a acestora este extrem de
importanta pentru a putea avansa in studiul unui sistem de operare Linux.

✂ Pentru o lista de shortcut-uri pentru Bash acceseaza acest link.

Command Description Options

pwd Print Working Directory. Afiseaza directorul curent. Nu are optiuni sau argumente.

cd Change Directory. Schimba directorul curent. .. = directorul parinte

. = directorul curent

cd NEW_DIRECTORY
~ = home directory
mkdir Make Directory. -p = creaza atat directorul cat si
directoarele parinte daca
mkdir [OPTIONS] DIRECTORY
acestea nu exista. Daca
directorul parinte nu exista
$ mkdir /home/student/Documents/Privat comanda mkdir returneaza
eroare daca se foloseste fara
optiunea –p
-v = verbose (afisare detaliata)

ls List. Listeaza continut director sau listare informatii -l = listare lunga, sortare dupa
despre fisier. nume

-F = afiseaza tipul fisierelor


4
10.2020
SO nume

-F = afiseaza tipul fisierelor


ls [OPTIONS] FILE/DIRECTORY
continute

-i = afisare inode

-S = sortare dupa marime

-d = afisare informatii despre


director

-a = afisare fisiere ascunse (cele al


caror nume incep cu .)
mv Move. Muta sau redenumeste (in functie de -f = force (do not prompt before
context) fisiere si directoare. In Linux nu exista overwriting)

comenzi diferite pentru mutare, respectiv denumire. -i = interactive (prompt before
mv [OPTIONS] SOURCE DESTINATION overwriting)

-u = update (muta doar daca sursa


Exemplu:
este mai noua ca destinatia sau
1. Muta fisierul file1.txt din ~/Downloads in ~/ destinatia lipseste)
Documents
-v = verbose
$ mv ~/Downloads/file1.txt ~/Documents

2. Redenumeste file1.txt in file2.txt

$ mv ~/Documents/file1.txt ~/Documents/file2.txt

cp Copy. Copiaza fisiere sau directoare din sursa in -i = interactiv

destinatie. -p = pastreaza owner, grup si


cp [OPTIONS] SOURCE DESTINATION permisiuni pt fisierul destinatie
creat

-r = copiaza recursiv (obligatoriu


pentru directoare)
-f = force (do not prompt before
overwriting)
rm Remove. Sterge fisiere sau directoare. -i = interactiv

-r = sterge recursiv (obligatoriu


rm [OPTIONS] FILE/DIRECTORY
pentru directoare)
-f = force
Important
Un fisier sau director sters folosind comanda rm nu mai poate fi recuperat in mod
standard din Recycle Bin. In Linux pentru fisierele si directoarele sterse folosind comanda
rm nu exista Recycle Bin. Un fisier odata sters nu mai poate fi recuperat in mod
conventional.
touch Creeaza un fisier gol daca FILE nu exista sau
reseteaza atime, mtme si ctime pentru FILE daca
acesta exista.
touch [OPTIONS] FILE

cat Concateneaza si/sau afiseaza continutul unui fisier. -b = numarul de linii non-blank

-n = numarul total de linii


cat [OPTIONS] FILES

5
10.2020
SO
Exemplu:

1. Afiseaza fisierul /etc/passwd la consola

$ cat /etc/passwd

2. Concateneaza fisierele /etc/passwd si /etc/


shadow in fisierul ~/passwd-shadow

$ cat /etc/passwd /etc/shadow > ~/passwd-shadow

more & less Programe de paginare

more FILE
less FILE
head Afiseaza primele linii (default 10) dintrun fisier -n nr = afiseaza primele nr linii

head [OPTIONS] FILE

tail Afiseaza ultimele linii (default 10) dintrun fisier -n nr = afiseaza ultimele nr linii

-n +nr = afiseaza incepand cu linia


tail [OPTIONS] FILE ‘nr’

Exemplu: -f = afiseaza in timp real ultimele linii


dintr-un fisier. tail -f fisier este
1. Afiseaza fisierul /etc/passwd incepand cu linia nr
cea mai importanta comanda
5 pana la final.

pentru urmarirea modificarii in


$ tail -n +5 /etc/passwd timp real a logurilor.
2. Afiseaza in timp real ultimele 10 linii din fisierul cu
loguri /var/log/messages
$ tail -f /var/log/messages

strings Afiseaza caracterele printabile/ascii dintrun fisier


binar
strings FILE

Exemplu:
$ strings /bin/ls

wc Afiseaza nr. de randuri, caractere sau cuvinte -l = nr de linii

dintrun fisier -w = nr de cuvinte

wc [OPTIONS] FILE -m = nr caractere

file Determina tipul fisierului -p = preserve atime

file [OPTIONS] FILE

du Disk Usage. Afiseaza marimea unui fisier sau -k = adauga prefixul KB

director. -s = sum (summarize)

Exemplu: -h = human readable format


$ du -ksh /etc/

free Disk Free. Afiseaza spatiul total, spatiul ocupat si -h = human readable

spatiul liber de pe fiecare partitie de pe hard disk. -i = print used/free inodes


df [OPTIONS]

Exemplu:

$ df -hi

6
10.2020
SO
cmp Compare. Compararea a doua fisiere fara afisarea
diferentelor dintre ele.
cmp FILE1 FILE2

diff Compara FILE 1 si FILE 2 dupa continut si afiseaza -i = case insensitive

diferentele -B = ignora liniile goale (blank lines)

-w = ignora spatiile libere (white


diff [OPTIONS] FILE1 FILE2 spaces)

-c = comparare detaliata

-y = afiseaza pe coloane
stat Statistics. Afiseaza informatii despre FILE (size,
type, atime, mtime, ctime)
stat FILE

history Afiseaza comenzile din history -c = sterge comenzile din history

-d nr = sterge linia nr din history


history [OPTIONS]

which Cauta si afiseaza calea catre o comanda

whereis Cauta si afiseaza calea catre o comanda, man page


sau sursa.
uptime Afiseaza timpul de cand hostul este pornit precum
si load-ul din ultimele 1,5 si 15 minute
date Afiseaza/ modifica ora

free Afiseaza informatii despre RAM si SWAP -t = total

-m = MB

-k = kB
uname Afiseaza informatii despre sistem (kernel version -a = all info

etc.) -s = kernel name

uname -a -r = kernel release

uname -srvm -v = kernel version

-m = machine

-p = processor
vmstat Virtual Memory Statistics. Afiseaza informatii Informatiile afisate sunt
despre memorie, cpu, I/O blocks etc. documentate in man page-ul
comenzii.
ifconfig Interface Configuration. Afiseaza informatii despre
interfetele de retea. Se foloseste si pentru a seta
caracteristicile interfetelor de retea (IP, Network
Mask, MAC etc.)
netstat Afiseaza informatii despre porturile deschise -t = porturile TCP

precum si despre conexiunile existente. -u = porturile UDP

Exemplu: -p = afiseaza numele programului


$ netstat -tupan (client sau server) care
foloseste portul

-a = all

-n = afisare numerica

7
10.2020
SO
lshw Afiseaza informatii despre hardware

Exemplu:
$ lshw | less

lspci Afiseaza informatii despre dispozitivele PCI

acpi -V Afiseaza informatii despre baterie, in cazul


laptopurilor.
iftop Afiseaza informatii despre conexiunile din retea
inclusiv Bandwidth. Se poate folosi si pe post de
“Bandwidth Meter”.

Exemplu:

$ iftop -i wlan0 -B -P -n

Ajutor pentru comenzi

Important
Cunoasterea tuturor comenzilor si a tuturor optiunilor acestora este imposibila chiar si pentru cei mai
experimentati admini. Documentatia comenzilor se gaseste in man care trebuie folosite intesiv in momentul
in care se doreste aflarea efectului unei comenzi sau a unei optiuni a comenzii.
Exemplu: man ls
In afara de manual, se poate utiliza si helperul. Acesta se utilizeaza prn adaugarea -- help dupa o
comanda.
Daca nu stii numele comenzii poti utiliza apropos si un cuvant cheie din documentatie.

$ apropos “List”
$ man ls
$ ls -- help

8
10.2020
SO
Exercitii

1. Să se creeze următoarele structuri arborescente de directoare:

a) b)

c) d)

2. Afişaţi conținutul directorului user-ului dumneavoastră (hint: home).

3. Creați în directorul user-ului un folder numit Sem1Linux.

4. Copiaţi de pe hard un fişier oarecare în directorul creat anterior.

5. Copiați din /etc toate fișierele cu extensia .txt în directorul creat anterior.

6. Concatenați două fișiere text, salvați rezultatul într-un fișier numit concatFile.txt și apoi afișați
textul cuprins între linia 5 și linia 10.

7. Copiați directorul creat anterior în același loc, dar cu numele Sem1Copy.

8. Creați în directorul Sem1Copy un director Student. Ştergeţi directorul Student.

S-ar putea să vă placă și