Differences

This shows you the differences between two versions of the page.

Link to this comparison view

uso:cursuri:curs-02 [2020/10/19 18:52]
ebru.resul
uso:cursuri:curs-02 [2024/02/26 11:42] (current)
sergiu.weisz
Line 1: Line 1:
-====== Curs 02 - Procese ​=======+====== Curs 02 - Utilizarea sistemului de fișiere ​=======
  
  
  
-  * [[https://drive.google.com/​file/d/1PTluXkBeDOKVXklKN8_rTIWrMNnUcopm/view?​usp=sharing | Slide-uri curs]] +  * [[https://docs.google.com/​presentation/d/1-8yjY74C3LZBDVXTxRhxEVZ8cjsfRKHk/edit?​usp=sharing&​ouid=108131427433094834232&​rtpof=true&​sd=true ​| Slide-uri curs]] 
-  * [[https://​drive.google.com/​open?​id=1D0n2mHD2mgc_qcLozTEHa46tnKYKlMsc | Handout 3on1 and notes space]] +  * **Cuvinte cheie**: ​fișier, director, nume, extensie, metadate, date''​stat'',​ date binare, date text, ASCII, bit, octet (//byte//), ''​file'',​ operații''​cat''​''​ls''​''​touch''​''​mkdir''​''​cp''​''​mv''​''​rm''​''​rmdir''​''​pwd''​''​cd'',​ ierarhie, director rădăcinăcaleseparatorcale relativă, cale absolută, ''​.''​ și ''​..'',​ operații recursive
-  * [[https://​drive.google.com/​open?​id=1sj55Dz-E-yMSkoyx5e4Bnwucckk7pscd | Handout 6on1]] +
-  * **Cuvinte cheie**: ​resurseinstrucțiuniatributepstopshelinitfgbgdescriptor de fișierekillkillallsemnaleinteracțiunidaemoni +
  
   * Suport de curs   * Suport de curs
-    * [[http://elf.cs.pub.ro/uso/res/carte/uso_cap-04-process.pdf|Capitolul 4 din carte: Procese]] +    * [[https://github.com/​systems-cs-pub-ro/carte-uso/releases ​Utilizarea sistemelor ​de operare]] 
-  * **Suport de curs vechi** +        Secțiunea 2 Utilizarea sistemului de fisiere 
-    * [[http://​books.google.com/books?​id=_JFGzyRxQGcC ​Introducere în sisteme ​de operare]] +
-      [[http://​books.google.com/​books?​id=_JFGzyRxQGcC&​pg=PA111 | Capitolul 5 Procese]]+
  
-/* 
 <​HTML>​ <​HTML>​
   <​center>​   <​center>​
-    ​<iframe src="​https://​docs.google.com/​viewer?​url=http:​//elf.cs.pub.ro/uso/​res/​cursuri/​curs-02/curs-02-handout.pdf&embedded=true" width="​600" height="​480" ​style="border: none;"> +  ​<iframe src="​https://​docs.google.com/​presentation/d/e/2PACX-1vSDcPLDY90lX6l0VzUGDnCr4fRbLgW1kpMVBgMQZah7LqiLdfHssIQirX0UoI6bfw/embed?​start=false&loop=false&​delayms=3000"​ frameborder="​0" width="​480" height="​389" ​allowfullscreen="true" mozallowfullscreen="​true"​ webkitallowfullscreen="​true"></​iframe> ​ 
-    ​</​iframe>​+
   </​center>​   </​center>​
 </​HTML>​ </​HTML>​
-*/+
  
 ====== Demo ======= ====== Demo =======
  
-==== Uptime ====+În acest demo, vom prezenta comenzile menționate în curs, alături de exemple și cazuri de utilizare ale acestora.
  
-Comanda ​uptime se folosește dacă dorim să aflăm ​de cât timp este aprins (rulează) sistemul. Se afișează timpul curent, starea sistemului (up), timpul ​de cat timp rulează, numărul de utilizatori logați pe sistem și media încărcăturii în ultimele 1, 5 si 15 minute.+ 
 + 
 +==== Comanda ​ls ==== 
 + 
 +Ori de câte ori este necesar să aruncați o privire asupra conținutului unui director din linia de comandă Linux''​ls''​ este comanda utilizată. Rezultatul comenzii este sortat în ordine alfabetică.
  
 <​code>​ <​code>​
-student@uso:​~/uso-labuptime +student@uso:​~$ ​ls 
- 13:37:20 up  1:34,  1 user,  load average: 0,05, 0,16, 0,10+Desktop ​   Downloads ​ Pictures ​ Templates ​ snap     ​uso.git 
 +Documents ​ Music      Public ​   Videos ​    ​uso-lab
 </​code>​ </​code>​
  
-Se poate folosi tagul -p pentru un format mai frumosmai lizibil ​(pretty), tagul -s pentru ​vedea ora de cand este pornit sistemul într-o mod mai exact (specific)+Observăm că dacă scriem simplu ''​ls''​se afișeaza fișierele și directoarele aflate în directorul în care mă aflu. Dacă dorim să vedem conținutul altui director, putem să oferim calea absolută sau calea relativă către acel director. 
 + 
 +<​note>​ 
 +Calea absolută începe din directorul root (''/''​), iar cea relativă începe din directorul în care mă aflu. Intrarea ''​.''​ indică spre același director, iar ''​..''​ indică spre directorul părinte. 
 +</​note>​ 
 + 
 +Comanda ls poate afișade asemenea, informații detaliate despre fișiere și directoare. Pentru a activa acest format de ieșire, trebuie să utilizați opțiunea ​-l în linia de comandă.
  
 <​code>​ <​code>​
-student@uso:​~/uso-labuptime ​-p +student@uso:​~$ ​ls -l 
-up 1 hour, 44 minutes +total 44 
-student@uso:~/uso-lab$ uptime ​-s +drwxr-xr-x 2 student ​student 4096 aug 13 21:05 Desktop 
-2020-10-14 12:02:26+drwxr-xr-x 3 student student 4096 aug 17 21:46 Documents 
 +drwxr-xr-x 2 student student 4096 aug 17 22:21 Downloads 
 +drwxr-xr-x 2 student student 4096 aug 13 21:05 Music 
 +drwxr-xr-x 2 student student 4096 aug 13 21:05 Pictures 
 +drwxr-xr-x 2 student student 4096 aug 13 21:05 Public 
 +drwxr-xr-x 2 student student 4096 aug 13 21:05 Templates 
 +drwxr-xr-x 2 student student 4096 aug 13 21:05 Videos 
 +drwxr-xr-x 4 student student 4096 aug 18 22:06 snap 
 +drwxrwxr-x 6 student student 4096 sep 25 17:41 uso-lab 
 +drwxrwxr-x 6 student student 4096 aug 21 10:48 uso.git
 </​code>​ </​code>​
  
-==== fg & bg ====+După cum puteți vedea mai sus, ieșirea este împărțită în 8 coloane: 
 +  * Prima coloană prezintă permisiunile de fișier 
 +  * Cea de-a doua coloană arată numărul de hard links 
 +  * A treia și a patra coloană reprezintă numele proprietarilor și ale grupurilor 
 +  * A cincea este dimensiunea fișierului 
 +  * A șasea și a șaptea sunt data și ora ultimei modificări 
 +  * Ultima coloana este numele fișierului.
  
-Un proces poate fi oprit, sau poate rula fie în foreground fie în backgroundDacă procesul rulează în foregroundacesta va acapara terminalul actual până când se va termina, spre deosebire de un proces care rulează în backgroundSe trece un proces din foreground în background oprind prima dată procesul folosind combinatia de taste Ctrl + Ziar apoi tastând comanda bg. Un proces poate fi adus din background în foreground folosind comanda fg+Comanda ls nu afișează în mod implicit ​fișierele și directoarele ascunseCu toate acesteaputeți forța instrumentul să facă acest lucru folosind opțiunea -aComparați fișierele și directoarele afișate atunci când rulăm ''​ls -a''​ vs ''​ls''​pentru a le identifica pe cele ascunde.
  
 <​code>​ <​code>​
-student@uso:​~$ ​sleep 100 +student@uso:​~$ ​ls -a 
-^Z +.                   ​.local ​                           Documents 
-[1]+  Stopped ​            ​ sleep 100 +..                  .mozilla ​                         Downloads 
-student@uso:​~$ jobs +.apport-ignore.xml ​ .profile ​                         Music 
-[1]+  Stopped ​            ​ sleep 100 +.bash_aliases ​      ​.ssh ​                             Pictures 
-student@uso:~$ bg +.bash_history ​      ​.sudo_as_admin_successful ​        ​Public 
-[1]+ sleep 100 & +.bash_logout ​       .tmux                             ​Templates 
-student@uso:~$ jobs +.bashrc ​            ​.tmux.conf ​                       Videos 
-[1]+  Running ​            ​ sleep 100 & +.cache ​             .vboxclient-display-svga-x11.pid ​ snap 
-student@uso:​~$ fg +.config ​            ​.vim ​                             ​uso-lab 
-sleep 100+.emacs ​             .viminfo ​                         ​uso.git 
 +.gitconfig ​         .vimrc 
 +.gnupg ​             Desktop
 </​code>​ </​code>​
  
-<​note>​ Folosim utilitarul jobs pentru a vedea procesele pornite din terminalul actual și statusul lor.</​note>​+==== Comanda pwd ====
  
-Pentru a verifica faptul că procesul din primul terminal ​(sleep 100rulează în foreground, putem da diferite comenzi, precum ls, și observam ca acestea nu au niciun efect, terminalul fiind acaparat de procesul sleep 100.+Comanda pwd tipărește calea absolută a directorului de lucru curent ​(PWD - Print Working Directory), locația în care mă aflu în momentul rulării comenzii.
  
 <​code>​ <​code>​
-student@uso:​~$ ​fg +student@uso:​~$ ​pwd 
-sleep 100 +/​home/​student
-ls +
-ps +
-tree+
 </​code>​ </​code>​
  
-==== Semnale (Kill) ​====+<​note>​  
 +Putem folosi această comandă pentru a verifica faptul că am ajuns în locația dorită. 
 +</​note>​ 
 +==== Comanda cd ====
  
 +Puteți schimba cu ușurință directorul curent de lucru specificând noul director ca argument la comanda cd. În funcție de locul în care vă aflați și în ce director doriți să ajungeți, poate fi necesar să specificați calea absolută către acesta din urmă, împreună cu numele său. 
  
-Comanda kill se folosește pentru a da semnale proceselornu neapărat sa le omoare, cum sugerează numele comenzii. Pentru a vedea ce comenzi putem trimite proceselor se folosește comanda ​kill -l.+De exemplusă presupunem că ne aflăm în directorul home și doresc să merg în Desktop (care se află de obicei în directorul home), atunci voi rula comanda ​următoare. Este de ajuns să folosesc o cale relativă
  
 <​code>​ <​code>​
-student@uso:​~$ ​kill -l +student@uso:​~$ ​pwd 
- 1) SIGHUP ​    2) SIGINT ​    3) SIGQUIT ​    4) SIGILL ​    5) SIGTRAP +/​home/​student 
- 6) SIGABRT ​    7) SIGBUS ​    8) SIGFPE ​    9) SIGKILL ​   10) SIGUSR1 +student@uso:​~$ cd Desktop/ 
-11) SIGSEGV ​   12) SIGUSR2 ​   13) SIGPIPE ​   14) SIGALRM ​   15) SIGTERM +student@uso:​~/​Desktop$ ​ 
-16) SIGSTKFLT ​   17) SIGCHLD ​   18) SIGCONT ​   19) SIGSTOP ​   20) SIGTSTP +student@uso:​~$ pwd 
-21) SIGTTIN ​   22) SIGTTOU ​   23) SIGURG ​   24) SIGXCPU ​   25) SIGXFSZ +/​home/​student/​Desktop
-26) SIGVTALRM ​   27) SIGPROF ​   28) SIGWINCH ​   29) SIGIO    30) SIGPWR +
-31) SIGSYS ​   34) SIGRTMIN ​   35) SIGRTMIN+1 ​   36) SIGRTMIN+2 ​   37) SIGRTMIN+3 +
-38) SIGRTMIN+4 ​   39) SIGRTMIN+5 ​   40) SIGRTMIN+6 ​   41) SIGRTMIN+7 ​   42) SIGRTMIN+8 +
-43) SIGRTMIN+9 ​   44) SIGRTMIN+10 ​   45) SIGRTMIN+11 ​   46) SIGRTMIN+12 ​   47) SIGRTMIN+13 +
-48) SIGRTMIN+14 ​   49) SIGRTMIN+15 ​   50) SIGRTMAX-14 ​   51) SIGRTMAX-13 ​   52) SIGRTMAX-12 +
-53) SIGRTMAX-11 ​   54) SIGRTMAX-10 ​   55) SIGRTMAX-9 ​   56) SIGRTMAX-8 ​   57) SIGRTMAX-7 +
-58) SIGRTMAX-6 ​   59) SIGRTMAX-5 ​   60) SIGRTMAX-4 ​   61) SIGRTMAX-3 ​   62) SIGRTMAX-2 +
-63) SIGRTMAX-1 ​   64) SIGRTMAX+
 </​code>​ </​code>​
  
-<​note>​ Cel mai puternic semnal ​pentru a termina un proces este SIGKILL, transmis prin comanda kill -9, urmat de PID-ul procesului pe care îl vom termina</​note>​+Dacă totuși nu știu unde se află folderul în care doresc să ajung față de cel în care mă aflu sau poate doresc să scriu comanda la modul general ​pentru a o putea folosi indiferent ​de locația curentă, atunci pot sa folosesc calea absolută.
  
-Dacă vrem sa terminăm un proces dintr-un terminal care este acaparat ​de acestaaflăm PID-ul procesului din alt terminal ​folosind ​comanda ps aux urmată de comanda ​kill -9 și PID-ul aflat la pasul anteriorDe exemplu, dacă dorim să terminăm procesul sleep 100 din primul terminal, în al doilea vom avea următoarele comenzi:+<​code>​ 
 +student@uso:​~/​Downloads$ pwd 
 +/​home/​student/​Downloads 
 +student@uso:​~/​Downloads$ cd /​home/​student/​Desktop/​ 
 +student@uso:​~/​Desktop$ pwd 
 +/​home/​student/​Desktop 
 +</​code>​ 
 + 
 +<​note>​ 
 +Pentru a verifica schimbarea directorului,​ folosim comanda ''​pwd''​. 
 +</​note>​ 
 + 
 +Putem să ne mutăm rapid în directorul home, indiferent ​de locația curentă (sau actualul director de lucru), folosind ​semnul tildă (~) alături ​de comanda ​cd.
  
 <​code>​ <​code>​
-student@uso:​~$ ​ps aux +student@uso:​~/Desktopcd ~ 
-USER       ​PID ​ %CPU  %MEM VSZ ​     RSS   ​TTY ​ STAT START   TIME COMMAND +student@uso:~$  
-root             ​1 ​      ​0.0 ​        ​0.3 ​        ​168976 ​  ​12980 ​   ?       ​  ​ Ss     ​12:​01 ​    ​0:​03 ​ /sbin/init sp +student@uso:​~$ ​pwd 
-root             ​2 ​      ​0.0 ​        ​0.0 ​              0     0         ? ​      ​S 12:​01 ​   0:00  [kthreadd] +/​home/​student
-root             ​3 ​      ​0.0 ​        ​0.0 ​    0     0         ? ​      ​I< ​    ​12:​01 ​   0:00  [rcu_gp] +
-root             ​4 ​      ​0.0 ​        ​0.0 ​    0     0         ? ​      ​I< ​     12:01    0:00 [rcu_par_gp] +
-[...] +
-root   ​  ​   24687  0.0        0.0     ​0 ​          ​0 ​        ? ​      ​I 13:​32 ​  0:00 [kworker/​1:​0- +
-root          24717  0.0        0.0     0     0         ? ​      ​I 13:​37 ​ 0:00  [kworker/​0:​1- +
-student ​   ​24735 ​ 0.0        0.0  19572 ​   592     ​pts/​0  ​ S+     13:43   ​0:​00 ​ sleep 100 +
-student ​   24736  0.0        0.0  22972 ​  ​3608 ​   pts/1   R+     ​13:​43 ​  ​0:​00 ​ ps aux +
-student@uso:​~$ ​kill -9 24735+
 </​code>​ </​code>​
  
-Șobservam ca în terminalul inițial apare “Killed”:+<​note>​ 
 +Dacă doresc să mă întorc în directorul părinte, atunci folosesc comanda ''​cd ..''​ 
 +</​note>​ 
 + 
 +==== Comanda file ==== 
 + 
 +Comanda file este folosită pentru a determina tipul unui fișier. 
 + 
 +<​code>​ 
 +student@uso:​~$ file Music/ 
 +Music/: directory 
 +</​code>​ 
 + 
 +<​note>​  
 +Putem folosi această comandă pentru a verifica tipul fișierului. 
 +</​note>​ 
 +==== Comanda cat ==== 
 + 
 +Comanda cat vă permite să vizualizațconținutul unui fișier ​în ieșirea standard (stdout). Acest lucru se poate face în modul următor: 
 + 
 +<​code>​ 
 +student@uso:​~$ cat fisier.txt  
 +Curs uso 
 +</​code>​ 
 + 
 +<​note>​  
 +Putem folosi această comanda pentru a verifica faptul că s-a salvat conținutul în fișier. 
 +</​note>​ 
 +==== Comanda touch ==== 
 + 
 +Comanda touch este folosită pentru a schimba timpul când un fișier a fost accesat și modificat ultima dată. Este de asemenea folosită pentru a crea un fișier gol. Comanda nu modifică conținutul fișierului. Deseori o folosim în scopul de a crea un fișier gol. 
 + 
 +<​code>​ 
 +student@uso:​~$ ls 
 +Desktop ​   Downloads ​ Pictures ​ Templates ​ snap     ​uso.git 
 +Documents ​ Music      Public ​   Videos ​    ​uso-lab 
 +student@uso:​~$ touch fisier.txt 
 +student@uso:​~$ ls 
 +Desktop ​   Downloads ​ Pictures ​ Templates ​ fisier.txt ​ uso-lab 
 +Documents ​ Music      Public ​   Videos ​    ​snap ​       uso.git 
 +</​code>​ 
 + 
 +<​note>​  
 +Pentru a verifica faptul că am creat fișierul, putem folosi comanda ''​ls''​. 
 +</​note>​ 
 +==== Comanda rm ==== 
 + 
 +Comanda rm este folosită pentru a șterge un fișier. Pentru a face asta, este nevoie doar să oferim calea către fișierul respectiv.  
 + 
 +<​code>​  
 +student@uso:​~$ ls 
 +Desktop ​   Downloads ​ Pictures ​ Templates ​ fisier.txt ​ uso-lab 
 +Documents ​ Music      Public ​   Videos ​    ​snap ​       uso.git 
 +student@uso:​~$ rm fisier.txt  
 +student@uso:​~$ ls 
 +Desktop ​   Downloads ​ Pictures ​ Templates ​ snap     ​uso.git 
 +Documents ​ Music      Public ​   Videos ​    ​uso-lab 
 +</​code>​ 
 + 
 +<​note>​  
 +Pentru a verifica faptul că am șters fișierul, putem folosi comanda ''​ls''​. 
 +</​note>​ 
 + 
 +Dacă dorim să ștergem un director, atunci trebuie să utilizăm opțiunea -r în linia de comandă. 
 + 
 +<​code>​ 
 +student@uso:​~$ rm Music/ 
 +rm: cannot remove '​Music/':​ Is a directory 
 +student@uso:​~$ rm -r Music/ 
 +student@uso:​~$ ls 
 +Desktop ​   Downloads ​ Public ​    ​Videos ​ uso-lab 
 +Documents ​ Pictures ​  ​Templates ​ snap    uso.git 
 +</​code>​ 
 + 
 +==== Comanda rmdir ==== 
 + 
 +Comanda rmdir este folosită pentru a șterge directoare. ATENȚIE! Directoarele trebuie să fie goale. Dacă nu sunt goale, atunci trebuie să le ștergem cu ''​rm -r'',​ pentru că rmdir nu va funcționa. 
 + 
 +<​code>​ 
 +student@uso:​~$ rmdir Music 
 +student@uso:~$ ls 
 +Desktop ​   Downloads ​ Public ​    ​Videos ​ uso-lab 
 +Documents ​ Pictures ​  ​Templates ​ snap    uso.git 
 +</​code>​ 
 + 
 + 
 +==== Comanda mkdir ==== 
 + 
 +Folosim această comandă pentru a crea un director gol. 
 <​code>​ <​code>​
-student@uso:​~$ ​sleep 100 +student@uso:​~$ ​ls 
-Killed +Desktop ​   Downloads ​ Public ​    ​Videos ​ uso-lab 
-student@uso:​~$+Documents ​ Pictures ​  ​Templates ​ snap    uso.git 
 +student@uso:​~$ ​mkdir FolderNou 
 +student@uso:​~$ ls 
 +Desktop ​   Downloads ​ Pictures ​ Templates ​ snap     ​uso.git 
 +Documents ​ FolderNou ​ Public ​   Videos ​    ​uso-lab
 </​code>​ </​code>​
  
-<​note>​Putem afla PID-ul procesului folosind, de asemenea, comanda ​pgrep sleep, obtinând PID-ul comenzii sleep, 24735.</​note>​+<​note> ​Pentru a verifica faptul că am creat directorulputem folosi ​comanda ​''​ls'' ​</​note>​
  
  
  
  
 +<​note>​
 +Pentru a afla mai multe detalii despre cum funcționeaza o comandă și pentru a putea vizualiza opțiunile acestora, puteți să folosiți comanda ''​man''​ alături de numele comenzii: ''​man ls''​
 +</​note>​
uso/cursuri/curs-02.1603122723.txt.gz · Last modified: 2020/10/19 18:52 by ebru.resul
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0