Differences

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

Link to this comparison view

uso:laboratoare:ac:laborator-02:paths [2020/10/19 16:43]
127.0.0.1 external edit
uso:laboratoare:ac:laborator-02:paths [2024/10/15 12:34] (current)
ioana_maria.culic
Line 3: Line 3:
 Atunci când folosim un terminal este important să știm unde ne aflăm în ierarhie. Dacă vrem să jucăm un joc, știm că vrem să ajungem în directorul ''​%%Games%%'',​ unde avem jocul preferat, ''​%%Warcraft3%%''​. Pentru a ajunge în directorul ''​%%Games%%'',​ trebuie să știm unde suntem și apoi să navigăm în sistemul de fișiere până acolo. Atunci când folosim un terminal este important să știm unde ne aflăm în ierarhie. Dacă vrem să jucăm un joc, știm că vrem să ajungem în directorul ''​%%Games%%'',​ unde avem jocul preferat, ''​%%Warcraft3%%''​. Pentru a ajunge în directorul ''​%%Games%%'',​ trebuie să știm unde suntem și apoi să navigăm în sistemul de fișiere până acolo.
  
-O ierarhie de fișiere și directoare este o structură de organizare a acestora. Structura ierarhică permite gruparea acestora în directoare, ce conțin la rândul lor alte directoare sau fișiere. În acest fel, putem lucra doar cu un subset de fișiere și directoare din totalitatea acestora de pe sistem.+**O ierarhie de fișiere și directoare** este o structură de organizare a acestora. Structura ierarhică permite gruparea acestora în directoare, ce conțin la rândul lor alte directoare sau fișiere. În acest fel, putem lucra doar cu un subset de fișiere și directoare din totalitatea acestora de pe sistem.
  
 Un astfel de exemplu este următorul: Un astfel de exemplu este următorul:
Line 9: Line 9:
 {{:​uso:​laboratoare:​laborator-01:​ierarhie.png?​500|}} {{:​uso:​laboratoare:​laborator-01:​ierarhie.png?​500|}}
  
-În Linux, începutul acestei ierarhii este ''​%%/​%%'',​ directorul rădăcină al sistemului de fișiere (root directory). Dacă privim sistemul de fișiere ca un arbore întors, directorul rădăcină este chiar rădăcina acestui arbore. De acolo cresc ramurile și frunzele sistemului de fișiere, formând ceea ce vom numi căi (paths).+În Linux, începutul acestei ierarhii este ''​%%/​%%'',​ directorul rădăcină al sistemului de fișiere (//root directory//). Dacă privim sistemul de fișiere ca un arbore întors, directorul rădăcină este chiar rădăcina acestui arbore. De acolo cresc ramurile și frunzele sistemului de fișiere, formând ceea ce vom numi **căi** (//paths//).
  
 Putem vedea mai jos începutul ierarhiei din Linux: Putem vedea mai jos începutul ierarhiei din Linux:
  
 <code bash> <code bash>
-student@uso:/​$ tree -L 1 /+student@uso:/​$ tree -F -L 1 /
 / /
-|-- bin +|-- bin/ 
-|-- boot +|-- boot/ 
-|-- dev +|-- dev/ 
-|-- etc +|-- etc/ 
-|-- home+|-- home/
 |-- initrd.img -> /​boot/​initrd.img-3.16.0-4-586 |-- initrd.img -> /​boot/​initrd.img-3.16.0-4-586
-|-- lib +|-- lib/ 
-|-- lib64 +|-- lib64/ 
-|-- libx32 +|-- libx32/ 
-|-- lost+found +|-- lost+found/ 
-|-- media +|-- media/ 
-|-- mnt +|-- mnt/ 
-|-- opt +|-- opt/ 
-|-- proc +|-- proc/ 
-|-- root +|-- root/ 
-|-- run +|-- run/ 
-|-- sbin +|-- sbin/ 
-|-- srv +|-- srv/ 
-|-- sys +|-- sys/ 
-|-- tmp +|-- tmp/ 
-|-- usr +|-- usr/ 
-|-- var+|-- var/
 ``-- vmlinuz -> boot/​vmlinuz-3.16.0-4-586 ``-- vmlinuz -> boot/​vmlinuz-3.16.0-4-586
 </​code>​ </​code>​
Line 45: Line 45:
  
 <code bash> <code bash>
-student@uso:/​home$ tree -L 1 /home+student@uso:/​home$ tree -F -L 1 /home
 . .
-|-- student +``-- student/
-|-- test+
 </​code>​ </​code>​
-Există ​două directoare ​''​%%student%%''​ și ''​%%test%%''​.+Există ​un singur director, numit ''​%%student%%''​.
  
 <​note>​ <​note>​
 Observăm cum se schimbă promptul de terminal: Observăm cum se schimbă promptul de terminal:
  
-  * în primul exemplu ''​%%student@uso:/​$ tree -L 1 /​%%''​ eram în directorul ''​%%/​%%''​. +  * în primul exemplu ''​%%student@uso:/​$ tree -F -L 1 /​%%''​ eram în directorul ''​%%/​%%''​. 
-  * în al doilea exemplu ''​%%student@uso:/​home$ tree -L 1%%''​ eram în directorul ''​%%/​home%%''​.+  * în al doilea exemplu ''​%%student@uso:/​home$ tree -F -L 1%%''​ eram în directorul ''​%%/​home%%''​.
 </​note>​ </​note>​
 +
  
 În continuare detaliem conceptul de cale. În continuare detaliem conceptul de cale.
Line 65: Line 65:
 Pornim de la următoarea analogie: Avem patru puncte pe o dreaptă: A, B, C și D. Pentru a ajunge de la A la D, trebuie să trecem prin B și C. Astfel, avem următoarele segmente: AB, BC, CD. Pornim de la următoarea analogie: Avem patru puncte pe o dreaptă: A, B, C și D. Pentru a ajunge de la A la D, trebuie să trecem prin B și C. Astfel, avem următoarele segmente: AB, BC, CD.
  
-Similar, pentru sistemul de fișiere, pornim de la directorul rădăcină (''​%%/​%%''​) și să coborâm ​în jos pe arbore.+Similar, pentru sistemul de fișiere, pornim de la directorul rădăcină (''​%%/​%%''​) și coborâm pe arbore.
  
-Lista de directoare intermediare de la rădăcina ierarhiei de fișiere (''​%%/​%%''​) până la un anumit fișier sau director se numeste ​//cale//.+Lista de directoare intermediare de la rădăcina ierarhiei de fișiere (''​%%/​%%''​) până la un anumit fișier sau director se numeste ​**cale**.
  
 //Calea curentă// este pozitia noastră în sistemul de fișiere. //Calea curentă// este pozitia noastră în sistemul de fișiere.
Line 88: Line 88:
 /usr/bin /usr/bin
 </​code>​ </​code>​
-Acum ne aflăm la poziția ''​%%/​usr/​bin%%''​ în sistemul de fișiere. Observăm cum calea curentă se schimbă atunci când schimbăm directorul în care ne aflăm. Vom vorbi despre comanda ''​%%cd%%''​ în capitolul ​//​Îmbunătățirea lucrului în linia de comandă//.+Acum ne aflăm la poziția ''​%%/​usr/​bin%%''​ în sistemul de fișiere. Observăm cum calea curentă se schimbă atunci când schimbăm directorul în care ne aflăm. Vom vorbi despre comanda ''​%%cd%%''​ în laboratorul ​//​Îmbunătățirea lucrului în linia de comandă//.
  
-===== Separator de cale ===== 
- 
-În exemplele de mai sus, observăm că există un delimitator între directoare: / (slash). Atunci când compunem calea, după fiecare nod/​director (nivel de arbore) prin care trecem, punem acest delimitator. Astfel, îi transmitem sistemului de operare că am înaintat în ierarhia de fișiere. 
- 
-Faptul că și directorul rădăcină (''​%%/​%%''​) are același simbol, este doar o coincidență. În Windows, nodul rădăcină este ''​%%C:​%%'',​ iar separatorul de cale este \. 
  
 ===== Cale relativă și cale absolută ===== ===== Cale relativă și cale absolută =====
Line 135: Line 130:
  
 <code bash> <code bash>
-student@uso:​~$ ls -l snap/spotify+student@uso:​~$ ls -l uso.git/lab02
-total 8 +total 12 
-drwxr-xr-x 5 student student 4096 Oct  2 03:11 42 +drwxr-xr-x 5 student student 4096 aug 20  2018 anul_1 
-drwxr-xr-x ​student student 4096 Oct  2 03:10 common +drwxr-xr-x ​student student 4096 aug 20  2018 anul_2 
-lrwxrwxrwx 1 student student ​   2 Oct  2 03:10 current -> 42+drwxr-xr-x 4 student student ​4096 aug 20  2018 demo
 </​code>​ </​code>​
-În exemplul de mai sus, ne aflăm la calea ''​%%/​home/​student%%''​ și am coborât în jos în ierarhia de fișiere către directorul ''​%%snap%%'',​ apoi directorul ''​%%spotify%%''​.+În exemplul de mai sus, ne aflăm la calea ''​%%/​home/​student%%''​ și am coborât în jos în ierarhia de fișiere către directorul ''​%%uso.git%%'',​ apoi directorul ''​%%lab02%%''​.
  
 Același rezultat îl obținem folosind calea absolută: Același rezultat îl obținem folosind calea absolută:
  
 <code bash> <code bash>
-student@uso:​~$ ls -l /​home/​student/​snap/spotify+student@uso:​~$ ls -l /​home/​student/​uso.git/lab02
-total 8 +total 12 
-drwxr-xr-x 5 student student 4096 Oct  2 03:11 42 +drwxr-xr-x 5 student student 4096 aug 20  2018 anul_1 
-drwxr-xr-x ​student student 4096 Oct  2 03:10 common +drwxr-xr-x ​student student 4096 aug 20  2018 anul_2 
-lrwxrwxrwx 1 student student ​   2 Oct  2 03:10 current -> 42+drwxr-xr-x 4 student student ​4096 aug 20  2018 demo
 </​code>​ </​code>​
-Calea ''​%%/​home/​student/​snap/spotify/​%%''​ este validă oricare ar fi calea curentă (oriunde ne-am afla în ierarhia de fișiere).+Calea ''​%%/​home/​student/​uso.git/lab02/​%%''​ este validă oricare ar fi calea curentă (oriunde ne-am afla în ierarhia de fișiere).
  
 În acest caz, este mai eficient să folosim //calea relativă//​. În cazul în care putem ajunge mai repede de la directorul rădăcina ''​%%/​%%''​ la directorul țintă, este mai utilă //calea absolută//​. În acest caz, este mai eficient să folosim //calea relativă//​. În cazul în care putem ajunge mai repede de la directorul rădăcina ''​%%/​%%''​ la directorul țintă, este mai utilă //calea absolută//​.
Line 240: Line 235:
  
 Observăm cum am urcat în ierarhie folosind ''​%%..%%''​ până la ''​%%/​%%''​ (//​directorul rădăcină//​) iar apoi am coborât spre ''​%%usr%%''​ și apoi ''​%%bin%%''​. Observăm cum am urcat în ierarhie folosind ''​%%..%%''​ până la ''​%%/​%%''​ (//​directorul rădăcină//​) iar apoi am coborât spre ''​%%usr%%''​ și apoi ''​%%bin%%''​.
 +
 +În exemplul de mai jos, comanda de mai sus nu este valabilă:
 +
 +<code bash>
 +student@uso:​~/​Desktop$ pwd
 +/​home/​student/​Desktop
 +student@uso:​~/​Desktop$ cd ../​../​usr/​bin
 +bash: cd: ../​../​usr/​bin:​ No such file or directory
 +</​code>​
 +Observăm că suntem la calea ''​%%/​home/​student/​Desktop%%''​. Executând comanda ''​%%cd ../​../​usr/​bin%%''​ de mai sus, am ajunge la calea ''​%%/​home/​usr/​bin%%''​ care nu există.
  
 === Exerciții - schimbarea directorului curent === === Exerciții - schimbarea directorului curent ===
Line 255: Line 260:
 Observăm că atunci când calea pe care o scriem se termină cu ///// (slash), apăsând de 2 ori pe tasta ''​%%Tab%%''​ ne arată fișierele și directoarele din calea respectivă. Atunci vrem să ne auto-completeze numele, apăsăm o singură dată pe tasta ''​%%Tab%%''​. Observăm că atunci când calea pe care o scriem se termină cu ///// (slash), apăsând de 2 ori pe tasta ''​%%Tab%%''​ ne arată fișierele și directoarele din calea respectivă. Atunci vrem să ne auto-completeze numele, apăsăm o singură dată pe tasta ''​%%Tab%%''​.
  
-Tasta ''​%%Tab%%''​ este descrisă în detaliu în capitolul ​//​Îmbunătățirea lucrului în linia de comandă//.+Tasta ''​%%Tab%%''​ este descrisă în detaliu în laboratorul ​//​Îmbunătățirea lucrului în linia de comandă//.
  
 ===== Scurtături de căi ===== ===== Scurtături de căi =====
  
-Pentru o eficiență mai bună, putem folosi simboluri pentru interacțiunea cu utilitarul ''​%%cd%%''​:+Pentru o eficiență mai bună, putem folosi simboluri pentru interacțiunea cu utilitarul ''​%%cd%%''​.
  
-  * Folosim caracterul (''​%%~%%''​) pentru a referi //​directorul home// a utilizatorului.<​code bash>+Folosim caracterul (''​%%~%%''​) pentru a referi //​directorul home// a utilizatorului.<​code bash>
 student@uso:/​usr/​bin$ cd /tmp/ student@uso:/​usr/​bin$ cd /tmp/
 student@uso:/​tmp$ pwd student@uso:/​tmp$ pwd
uso/laboratoare/ac/laborator-02/paths.1603115015.txt.gz · Last modified: 2021/10/14 20:05 (external edit)
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