This shows you the differences between two versions of the page.
info1:teme:01 [2020/11/11 18:58] ioana_maria.culic |
info1:teme:01 [2020/11/11 21:39] (current) ioana_maria.culic created |
||
---|---|---|---|
Line 23: | Line 23: | ||
==== Cunoștințe evaluate ==== | ==== Cunoștințe evaluate ==== | ||
+ | * Folosirea terminalului Linux | ||
* Lucrul cu sistemul de fișiere; | * Lucrul cu sistemul de fișiere; | ||
- | * Procese; | ||
- | * Utilizatori, grupuri și permisiuni. | ||
==== Exercițiul 1 ==== | ==== Exercițiul 1 ==== | ||
- | Urmați instrucțiunile din laboratorul 1 și rulați mașina virtuală **USO.ova** folosind VirtualBox sau un alt program, la alegere. | + | Urmați instrucțiunile din [[info1:laboratoare:01|laboratorul 1]] și rulați mașina virtuală **USO.ova** folosind VirtualBox sau un alt program, la alegere. |
Line 35: | Line 34: | ||
==== Exercițiul 2 ==== | ==== Exercițiul 2 ==== | ||
+ | |||
+ | |||
+ | În această secțiune vom învăța să lucrăm cu fișierele și directoarele în linia de comandă. | ||
+ | |||
+ | Fișierul este unitatea de bază folosită pentru a stoca informații. Fie că este vorba despre un document (tema la mate) sau un joc, fie că este vorba de o configurare în sistemul de operare, sau chiar sistemul de operare, folosim fișiere pentru stocare. | ||
+ | |||
+ | Putem interacționa cu fișiere folosind programe specifice: | ||
+ | |||
+ | * Microsoft Word pentru documente; | ||
+ | * browser (de exemplu, Firefox) pentru o pagină web; | ||
+ | * player audio (de exemplu, Winamp) pentu melodii; | ||
+ | * player video (de exemplu, Vlc) pentru filme. | ||
+ | |||
+ | Acestea au în comun o interfață grafică. O altă opțiune este să interacționăm cu fișierele în linia de comandă. Acesta este subiectul acestei sectiuni. | ||
+ | |||
+ | Folosim linia de comandă pentru interacțiunea cu fișierele în mai multe cazuri: | ||
+ | |||
+ | * Atunci când sistemul pe care ne aflăm are **doar** linie de comandă; | ||
+ | * Atunci când putem să facem anumite operații **mai repede** decât în interfața grafică; putem folosi automatizarea unor sarcini (taskuri): scriem un script (un fișier de automatizare) o dată și îl executăm de fiecare dată când este nevoie. Există un capitol întreg //Îmbunătățirea lucrului în linia de comandă// unde vom afla mai multe detalii. | ||
+ | |||
+ | Componenta ce se ocupă de interpretarea comenzilor se numește //shell//. Shellul citește comenzile date de utilizator, le interpretează și comunică sistemului de operare ce are de făcut. | ||
+ | |||
+ | |||
+ | ===== Ierarhie de fișiere ===== | ||
+ | |||
+ | Un exemplu de ierarhie de fișier este în secțiunea //Căi în ierarhia de fișiere//. | ||
+ | |||
+ | Pentru a vedea fișierele sub formă arborescentă, folosim comanda ''%%tree%%''. | ||
+ | |||
+ | <code bash> | ||
+ | student@uso:~r$ tree -L 1 / | ||
+ | / | ||
+ | |-- bin | ||
+ | |-- boot | ||
+ | |-- dev | ||
+ | |-- etc | ||
+ | |-- home | ||
+ | |-- initrd.img -> /boot/initrd.img-3.16.0-4-586 | ||
+ | |-- lib | ||
+ | |-- lib64 | ||
+ | |-- libx32 | ||
+ | |-- lost+found | ||
+ | |-- media | ||
+ | |-- mnt | ||
+ | |-- opt | ||
+ | |-- proc | ||
+ | |-- root | ||
+ | |-- run | ||
+ | |-- sbin | ||
+ | |-- srv | ||
+ | |-- sys | ||
+ | |-- tmp | ||
+ | |-- usr | ||
+ | |-- var | ||
+ | ``-- vmlinuz -> boot/vmlinuz-3.16.0-4-586 | ||
+ | </code> | ||
+ | |||
+ | <note warning> Daca terminalul semnaleaza lipsa utilitarului tree, rulati comanda **sudo apt-get install tree**.</note> | ||
+ | |||
+ | Atașați un screenshot după ce ați rulat comanda tree in documentul aferent temei. | ||
+ | |||
+ | ==== Afișarea conținutului unui director ==== | ||
+ | |||
+ | Așa cum un dosar are mai multe foi în el, la fel și directoarele au mai multe fișiere și directoare în ele. | ||
+ | |||
+ | Pentru a afișa conținutul unui director folosim comanda ''%%ls%%'': | ||
+ | |||
+ | <code bash> | ||
+ | student@uso:~$ ls | ||
+ | Desktop Downloads Music Public Templates | ||
+ | Documents examples.Desktop Pictures snap Videos | ||
+ | </code> | ||
+ | |||
+ | Pentru a naviga într-un alt director folosim comanda ''%%cd%%'', iar pentru a vizualiza directorul în care ne aflăm folosim comanda ''%%pwd%%'': | ||
+ | <code bash> | ||
+ | student@uso:~$ pwd | ||
+ | /home/student | ||
+ | student@uso:~$ cd /home | ||
+ | student@uso:~$ pwd | ||
+ | /home | ||
+ | </code> | ||
+ | |||
+ | Atașați un screenshot cu terminalul în care ați rulat comenzile de mai sus si atașați-l în documentul aferent temei. | ||
+ | |||
+ | ==== Crearea fișierelor ==== | ||
+ | |||
+ | Există situații când vrem să creăm fișiere. De exemplu vrem să scriem cod sau să luăm notițe la un curs. | ||
+ | |||
+ | Fișierele se creează folosind utilitarul ''%%touch%%''. | ||
+ | |||
+ | Creăm un fișier astfel: | ||
+ | |||
+ | <code bash> | ||
+ | student@uso:~$ ls cities | ||
+ | ls: cannot access cities: No such file or directory | ||
+ | student@uso:~$ touch cities | ||
+ | student@uso:~$ ls cities | ||
+ | cities | ||
+ | </code> | ||
+ | |||
+ | Dacă vrem să creăm un fișier cu numele ''%%orașe romania%%'', adică vrem ca numele fișierului să conțină caracterul //spațiu (space)//, folosim tot comanda ''%%touch%%'' ca în exemplul de mai jos: | ||
+ | |||
+ | <code bash> | ||
+ | student@uso:~$ touch cities romania | ||
+ | student@uso:~$ ls -l | ||
+ | (...) | ||
+ | -rw-rw-r-- 1 student student 0 Oct 13 13:02 cities | ||
+ | -rw-r--r-- 1 student student 8980 Sep 24 09:00 examples.desktop | ||
+ | -rw-rw-r-- 1 student student 0 Oct 13 13:02 romania | ||
+ | drwxr-xr-x 4 student student 4096 Oct 2 03:11 snap | ||
+ | </code> | ||
+ | Observăm că în comanda de mai sus am încercat să creăm un fișier numit ''%%cities romania%%'', însă au fost create două fișiere. Pentru a crea un fișier cu //spații (space)// inclus în nume este nevoie să folosim ghilimelele la începutul și sfârșitul numelui astfel: ''%%touch "cities romania"%%''. | ||
+ | |||
+ | <code bash> | ||
+ | student@uso:~$ touch "cities in romania" | ||
+ | student@uso:~$ ls -l | ||
+ | (...) | ||
+ | -rw-rw-r-- 1 student student 0 Oct 13 13:02 cities | ||
+ | -rw-rw-r-- 1 student student 0 Oct 13 13:03 'cities in romania' | ||
+ | -rw-r--r-- 1 student student 8980 Sep 24 09:00 examples.desktop | ||
+ | -rw-rw-r-- 1 student student 0 Oct 13 13:02 romania | ||
+ | drwxr-xr-x 4 student student 4096 Oct 2 03:11 snap | ||
+ | </code> | ||
+ | Acum avem în directorul ''%%~%%'' 3 fișiere în plus: ''%%cities%%'', ''%%cities in romania%%'', ''%%romania%%''. | ||
+ | |||
+ | Atașați un screenshot cu terminalul în care ați rulat comenzile de mai sus si atașați-l în documentul aferent temei. | ||
+ | |||
+ | ==== Crearea directoarelor ==== | ||
+ | |||
+ | Este util să creăm directoarele atunci când vrem să păstrăm fișierele din sistem într-un mod organizat. De exemplu, putem crea câte un director pentru fiecare an de licență. Pentru fiecare an/director, cream câte un director pentru fiecare materie si pentru fiecare materie putem să facem directoare pentru teme, laboratoare, cursuri etc. | ||
+ | |||
+ | Creăm directoarele folosind utilitarul ''%%mkdir%%''. Etimologia comenzii provine din limba engleză - //make directory//. | ||
+ | |||
+ | Creăm un directoarele ''%%GameOfThrones%%'' și ''%%Avengers%%'' în directorul ''%%~%%'' ca în exemplul de mai jos: | ||
+ | |||
+ | <code bash> | ||
+ | student@uso:~$ mkdir GameOfThrones | ||
+ | student@uso:~$ mkdir Avengers | ||
+ | student@uso:~$ ls -l | ||
+ | total 56 | ||
+ | drwxrwxr-x 2 student student 4096 Oct 13 13:17 Avengers | ||
+ | (...) | ||
+ | drwxrwxr-x 2 student student 4096 Oct 13 13:17 GameOfThrones | ||
+ | (...) | ||
+ | </code> | ||
+ | Am creat 2 directoare noi: ''%%Avengers%%'' și ''%%GameOfThrones%%''. | ||
+ | |||
+ | Atașați un screenshot cu terminalul în care ați rulat comenzile de mai sus si atașați-l în documentul aferent temei. | ||
+ | |||
+ | ==== Exercițiul 3 ==== | ||
+ | |||
+ | Creați următoarele directoare: | ||
+ | * /home/student/filme | ||
+ | * /home/student/filme/seriale | ||
+ | * /home/student/filme/comedie | ||
+ | * /home/student/actori | ||
+ | |||
+ | Creați următoarele fișiere: | ||
+ | * /home/student/filme/review | ||
+ | * /home/student/filme/seriale/Scrubs | ||
+ | * /home/student/filme/seriale/Futurama | ||
+ | * /home/student/filme/seriale/Modern Family | ||
+ | * /home/student/filme/comedie/Airplane | ||
+ | * /home/student/filme/comedie/American Pie | ||
+ | * /home/student/actori/Jennifer Lawrence | ||
+ | * /home/student/actori/Tom Hanks | ||
+ | |||
+ | Pe măsură ce creați directoarele și fișiere, scrieți în document comenzile folosite (puteți face screen-shoots pe parcurs și să le adaugați în document în locul comenzilor efective). | ||
+ | |||
+ | Folosiți comanda **tree** pentru a afișa ierarhia obținută. Faceți un screenshot terminalului și atașați-l în documentul aferent temei. | ||
+ | |||
+ | ====Exercițiul 4 ==== | ||
+ | Navigați în directorul **/home/student/filme** și afișați directorul curent. Explicați comenzile utilizate și atașați un screenshot în documentul aferent temei. | ||
+ | |||
+ | ====Exercițiul 5==== | ||
+ | Folosiți o cale relativă pentru a naviga în directorul **/home/student/actori** și afișați directorul curent. Explicați cum ați rezolvat exercițiul și atașați un screenshot în documentul aferent temei. | ||
+ | |||