Differences

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

Link to this comparison view

info1:laboratoare:02 [2020/10/20 11:18]
alexandru.vochescu
info1:laboratoare:02 [2020/10/20 11:32] (current)
alexandru.vochescu
Line 3: Line 3:
  
 {{page>​uso:​laboratoare:​ac:​laborator-01:​paths&​nofooter&​noeditbutoon}} {{page>​uso:​laboratoare:​ac:​laborator-01:​paths&​nofooter&​noeditbutoon}}
-{{page>​uso:​laboratoare:​ac:​laborator-01:​files&​nofooter&​noeditbutoon}} 
-{{page>​uso:​laboratoare:​ac:​laborator-01:​cheatsheet&​nofooter&​noeditbutoon}} 
  
-==== Cuprins ​====+====== Interacțiunea cu fișiere în linia de comandă ======
  
-{{page>uso:laboratoare:ac:laborator-01:nav&​noheader&​nofooter&​noeditbutton}}+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. 
 + 
 +În acest capitol discutăm despre cum interacționăm cu fișierele în linia de comandă. 
 + 
 +===== 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>​ 
 +===== Lucrul cu fișiere și directoare ===== 
 + 
 +În această secțiune vom învăța să lucrăm cu fișierele și directoarele în linia de comandă: 
 + 
 +  * afișarea conținutului fișierelor și directoarelor;​ 
 +  * crearea de fișiere și directoare;​ 
 +  * ștergerea de fișiere și directoare;​ 
 +  * redenumirea fișierelor și directoarelor;​ 
 + 
 +==== 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>​ 
 + 
 +Vedem mai multe detalii despre fișierele și directoarele din directorul ''​%%/​home/​student%%''​ (adică directorul **home** al utilizatorului **student**,​ **~**) folosind comanda ''​%%ls%%'':​ 
 + 
 +<code bash> 
 +student@uso:​~$ ls -l 
 +total 48 
 +drwxr-xr-x 3 student student 4096 Oct 13 12:53 Desktop 
 +drwxr-xr-x 2 student student 4096 Sep 30 05:03 Documents 
 +drwxr-xr-x 2 student student 4096 Sep 30 05:03 Downloads 
 +drwxr-xr-x 2 student student 4096 Sep 30 05:03 Music 
 +drwxr-xr-x 2 student student 4096 Sep 30 05:03 Pictures 
 +drwxr-xr-x 2 student student 4096 Sep 30 05:03 Public 
 +drwxr-xr-x 2 student student 4096 Sep 30 05:03 Templates 
 +drwxr-xr-x 2 student student 4096 Sep 30 05:03 Videos 
 +-rw-r--r-- 1 student student 8980 Sep 24 09:00 examples.desktop 
 +drwxr-xr-x 4 student student 4096 Oct  2 03:11 snap 
 +</​code>​ 
 + 
 +Interpretarea rezultatelor de mai sus o vom discuta într-un ​laborator ​viitor. 
 + 
 +=== Exerciții ​afișarea conținutului directoarelor === 
 + 
 +  * Afișați conținutul directoarelor **/usr**, **/tmp**, **/etc**, **/​home**. 
 + 
 +==== 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%%''​. Zero-ul //(0)// din linia ''​%%-rw-r--r-- 1 student student 0 Oct 13 13:02 cities%%''​ ne arată că fișierul cities are 0 bytes, adică este gol. Toate cele 3 fișiere sunt goale. 
 + 
 +==== 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%%''​. 
 + 
 +=== Exerciții - creare fișiere și directoare === 
 + 
 +  * Creați un director numit "​WinnieThePooh"​ și unul numit "​TomSiJerry"​. 
 +  * Creați fișierele "Iron Man", "​Hulk",​ "​Captain America"​ (**cu spațiu**) în directorul "​Avengers";​ afișați fișierele din director; 
 +  * Creați fișierele "​Arya",​ "​Daenerys Targaryen"​ (**cu spațiu**), "Jon Snow" în directorul "​GameOfThrones";​ afișați fișierele din director. 
 + 
 + 
 +<note important>​ 
 +Este important de reținut: orice comandă executați, aceasta trebuie succedată de o verificare. De exemplu, la crearea unui fișier (''​%%touch%%''​) sau director (''​%%mkdir%%''​),​ executăm comanda de verificare ''​%%ls%%''​. 
 +</​note>​ 
 + 
 +==== Afișarea conținutului unui fișier ==== 
 + 
 +Afișăm rapid conținutul fișierului ''​%%Arya%%''​ din directorul ''​%%GameOfThrones%%''​ folosind comanda ''​%%cat%%'':​ 
 + 
 +<code bash> 
 +student@uso:​~$ cat GameOfThrones/​Arya 
 +student@uso:​~$ 
 +</​code>​ 
 + 
 +Comanda ''​%%cat%%''​ nu a afișat nimic pentru că fișierul ''​%%Arya%%''​ este gol. 
 + 
 +Scriem textul ''​%%A girl has no name%%''​ în fișierul ''​%%Arya%%''​ folosind comanda ''​%%echo%%'':​ 
 + 
 +<code bash> 
 +student@uso:​~$ echo "A girl has no name" > "​GameOfThrones/​Arya"​ 
 +student@uso:​~$ cat "​GameOfThrones/​Arya"​ 
 +A girl has no name 
 +</​code>​ 
 + 
 +==== Ștergerea fișierelor ==== 
 + 
 +Ștergem fișierul "​Hulk"​ din directorul "​Avengers"​ folosind utilitarul ''​%%rm%%'':​ 
 + 
 +<code bash> 
 +student@uso:​~$ ls Avengers/ 
 +Captain America ​ Hulk  Iron Man 
 +student@uso:​~$ rm Avengers/​Hulk 
 +student@uso:​~$ ls Avengers/ 
 +Captain America ​ Iron Man 
 +</​code>​ 
 +La prima comandă am afișat ce fișiere sunt în directorul ''​%%Avengers%%''​. Am folosit utiltarul ''​%%rm%%''​ pentru a șterge fișierul ''​%%Hulk%%''​ din directorul ''​%%Avengers%%''​. În final am verificat că fișierul ''​%%Hulk%%''​ nu mai există în directorul ''​%%Avengers%%''​. 
 + 
 +==== Ștergerea directoarelor ==== 
 + 
 +Directoarele se șterg folosind comanda ''​%%rmdir%%''​. Etimologia comenzii provine din engleză - //remove directory//​. 
 + 
 +Creăm directorul "​LordOfTheRings"​ folosind comanda ''​%%mkdir%%''​ după care îl ștergem folosind comanda ''​%%rmdir%%'':​ 
 + 
 +<code bash> 
 +student@uso:​~$ mkdir LordOfTheRings 
 +student@uso:​~$ ls -l 
 +total 60 
 +drwxr-xr-x 2 student student 4096 Sep 29 18:02 Avengers 
 +(...) 
 +drwxr-xr-x 2 student student 4096 Sep 29 17:44 GameOfThrones 
 +drwxr-xr-x 2 student student 4096 Sep 29 18:09 LordOfTheRings 
 +(...) 
 +student@uso:​~$ rmdir LordOfTheRings 
 +student@uso:​~$ ls -l 
 +total 56 
 +drwxr-xr-x 2 student student 4096 Sep 29 18:02 Avengers 
 +(...) 
 +drwxr-xr-x 2 student student 4096 Sep 29 17:44 GameOfThrones 
 +(...) 
 +</​code>​ 
 +Am creat un director ''​%%LordOfTheRings%%''​ folosind utilitarul ''​%%mkdir%%''​. Am verificat crearea acestuia. În final l-am șters folosind utilitarul ''​%%rmdir%%''​ și am verificat că a fost șters. 
 + 
 +<note important>​ 
 +Comanda ''​%%rmdir%%''​ pe un director care nu este gol (care conține cel puțin un alt fișier sau director) nu funcționează. 
 +</​note>​ 
 + 
 +<code bash> 
 +student@uso:​~$ rmdir Avengers/ 
 +rmdir: failed to remove '​Avengers/':​ Directory not empty 
 +</​code>​ 
 +Pentru a șterge un director care **nu** este gol, adică un director care are cel puțin un fișier sau director în el, folosim utilitarul ''​%%rm%%''​ cu opțiunea de recursivitate ''​%%-r%%'':​ ''​%%rm -r%%''​. Aceasta permite ștergerea întregii ierarhii de fișiere din director, pe scurt: ștergerea întregului director. 
 + 
 +<code bash> 
 +student@uso:​~$ ls -l 
 +total 56 
 +drwxr-xr-x 2 student student 4096 Sep 29 18:02 Avengers 
 +(...) 
 +drwxr-xr-x 2 student student 4096 Sep 29 17:44 GameOfThrones 
 +(...) 
 +student@uso:​~$ rm -r Avengers/ 
 +student@uso:​~$ ls -l 
 +total 52 
 +(...) 
 +drwxr-xr-x 2 student student 4096 Sep 29 17:44 GameOfThrones 
 +(...) 
 +</​code>​ 
 + 
 + 
 +<note important>​ 
 +După executarea comenzii, verificăm corectitudinea operației. Trebuie să verificăm și să nu presupunem că o comandă s-a executat. Lipsa unei verifică poate duce la erori și mult timp pierdut din partea noastră. 
 +</​note>​ 
 +==== Redenumirea și mutarea fișierelor și directoarelor ==== 
 + 
 +Fișierele și directoarele se redenumesc în mod similar, folosind comanda ''​%%mv%%''​ astfel: ''​%%mv nume_actual nume_nou%%''​. 
 + 
 +Redenumim fișierele si directoarele folosind comanda ''​%%mv%%'':​ 
 + 
 +<code bash> 
 +student@uso:​~$ ls 
 +GameOfThrones 
 +student@uso:​~$ mv GameOfThrones ThroneOfGames 
 +student@uso:​~$ ls 
 +ThroneOfGames 
 +</​code>​ 
 +Am redenumit fișierul ''​%%GameOfThrones%%''​ în ''​%%ThroneOfGames%%''​. 
 + 
 +Un alt rol al comenzii ''​%%mv%%''​ este de a muta fișierele și directoarele,​ în ierarhia de fișiere, dintr-un loc în altul. 
 + 
 +Mutăm directorul ''​%%GameOfThrones%%''​ (cu tot conținutul acestuia) la calea ''​%%/​tmp/​%%''​ folosind comanda ''​%%mv%%'':​ 
 + 
 +<code bash> 
 +student@uso:​~$ ls 
 +Avengers ​ GameOfThrones 
 +student@uso:​~$ mv GameOfThrones/​ /tmp/ 
 +student@uso:​~$ ls /tmp/ 
 +GameOfThrones ​ ssh-ApUMKI3HSJ 
 +student@uso:​~$ ls /tmp/ 
 +GameOfThrones ​ ssh-ApUMKI3HSJ 
 +student@uso:​~$ ls 
 +Avengers 
 +</​code>​ 
 +Acum directorul ''​%%GameOfThrones%%''​ se află în calea ''​%%/​tmp/​GameOfThrones%%''​. Am verificat folosind ''​%%ls%%''​ că nu se mai află în directorul curent și că există în directorul ''​%%/​tmp/​%%''​. 
 + 
 +Mutăm înapoi directorul ''​%%GameOfThrones%%''​ (cu tot conținutul acestuia) folosind cale relativă, pentru a indica directorul, și cale absolută, pentru a indica locul unde vrem să ajungă directorul folosind ''​%%mv%%'':​ 
 + 
 +<code bash> 
 +student@uso:​~$ mv ../​../​../​../​tmp/​GameOfThrones/​ /​home/​student/​ 
 +student@uso:​~$ ls 
 +Avengers ​ GameOfThrones 
 +</​code>​ 
 +Am verificat că directorul ''​%%GameOfThrones%%''​ se află la calea indicată (calea curentă). 
 + 
 +<​note>​ 
 +Observăm că putem folosi atât căi relative cât și căi absolute ca argumente pentru comanda ''​%%mv%%''​ de mutare / redenumire de fișiere și directoare. 
 +</​note>​ 
 + 
 +=== Exerciții - redenumire și mutare === 
 + 
 +  - Creați un director ''​%%Vikings%%''​ în directorul home al vostru. 
 +  - Creați fișierele ''​%%Ragnar%%'',​ ''​%%Rollo%%''​ în directorul ''​%%Vikings%%''​. 
 +  - Verificați că directorul și fișierele au fost create. 
 +  - Mutati directorul (împreună cu întreaga ierarhie de fișiere) la locația ''​%%/​tmp/​%%''​. 
 +  - Verificați că directorul și ierarhia de fișiere au fost mutate. 
 +  - Redenumiți directorul ''​%%GameOfThrones%%''​ în ''​%%ThronesInTheGame%%''​. 
 +  - Mutați fișierele din interiorul directorului ''​%%ThronesInTheGame%%''​ în ''​%%/​tmp%%''​. 
 +  - Verificați operațiile. 
 +  - Mutați directorul înapoi la locatia inițială folosind atât căi relative cât și căi absolute. 
 + 
 +==== Copierea fișierelor și directoarelor ==== 
 + 
 +Copiem fișierul ''​%%Captain America%%''​ în directorul ''​%%/​tmp/​%%''​ folosind ''​%%cp%%'':​ 
 + 
 +<code bash> 
 +student@uso:​~$ cp '​Avengers/​Captain America'​ /tmp/ 
 +student@uso:​~$ ls /tmp/ 
 +Thor  ssh-ApUMKI3HSJ 
 +</​code>​ 
 +Sintaxa este similară comenzii ''​%%mv%%''​. Acum fișierul ''​%%Captain America%%''​ este atât în ''​%%/​home/​student/​Avengers/​Captain America%%'',​ cât și în ''​%%/​tmp/​Captain America%%''​. 
 + 
 +<code bash> 
 +student@uso:​~$ cp Avengers/ /tmp/ 
 +cp: omitting directory '​Avengers/'​ 
 +</​code>​ 
 +Observăm că nu se poate copia un director ce conține alte fișiere sau directoare. 
 + 
 +Pentru a copia în altă parte un director care nu este gol, trebuie să folosim comanda ''​%%cp -r%%'':​ 
 + 
 +<code bash> 
 +student@uso:​~$ cp -r Avengers/ /tmp/ 
 +student@uso:​~$ ls -l /tmp/ 
 +total 8 
 +drwxr-xr-x 2 student student 4096 Sep 29 19:06 Avengers 
 +-rw-r--r-- 1 student student ​   0 Sep 29 19:04 Captain America 
 +drwx------ 2 student student 4096 Sep 29 13:45 ssh-ApUMKI3HSJ 
 +student@uso:​~$ ls -l /​tmp/​Avengers/​ 
 +total 0 
 +-rw-r--r-- 1 student student 0 Sep 29 19:06 Captain America 
 +-rw-r--r-- 1 student student 0 Sep 29 19:06 Iron Man 
 +-rw-r--r-- 1 student student 0 Sep 29 19:06 Thor 
 +</​code>​ 
 +Am copiat directorul ''​%%Avengers%%''​ și conținutul acestuia din calea curentă în directorul ''​%%/​tmp%%''​. Observăm că s-a copiat întreaga ierarhie de fișiere/​directoare de sub directorul ''​%%Avengers%%''​. Acesta se află acum în ambele locuri. 
 + 
 +==== Exerciții - ierarhii de fișiere și directoare ==== 
 + 
 +  - Afișați ierarhia de fișiere pornind de la directorul vostru home (''​%%~%%''​). 
 +  - Creați următoarea ierarhie pornind de la directorul ''​%%/​home/​student/​%%''​ (**Notă: Numele cu extensie din structura sunt __fișiere__,​ restul sunt __directoare__**):​ 
 + 
 +<code bash> 
 +student@uso:​~$ tree 
 +
 +├── prime_video 
 +├── Hulu 
 +│   ​└── Favorite.txt 
 +├── Netflix 
 +│   ​├── Filme 
 +│   ​│ ​  ​├── filme_2020.txt 
 +│   ​│ ​  ​├── filme_2019.txt 
 +│   ​│ ​  ​├── filme_vechi 
 +│   ​└── Seriale 
 +│       ​├── seriale_2020 
 +│       ​├── seriale_2019.txt 
 +│       ​└── seriale_vechi 
 +├── HBO_GO 
 +│   ​├── Modern_Family.txt 
 +│   ​└── Harry_Potter 
 +└── YouTubeTV 
 +</​code>​ 
 + 
 +  - Copiați întreaga ierarhie în calea ''​%%/​tmp%%''​. Folosiți comanda ''​%%cp%%''​. (Hint: recursivitate). 
 +  - Confirmați copierea prin afișarea directorului părinte. 
 +  - Ștergeți fișierul ''​%%Favorite.txt%%''​ din directorul ''​%%Hulu%%''​. Confirmați ștergerea prin afișarea directorului părinte. 
 +  - Ștergeți directorul ''​%%prime video%%''​. 
 +  - Confirmați ștergerea prin afișarea directorului părinte. 
 +  - Ștergeți directorul ''​%%HBO GO%%''​. 
 +  - Găsiți parametrii corespunzători ștergerii unui director care nu este gol. 
 +  - Confirmați ștergerea prin afișarea directorului părinte. 
 +  - Ștergeri ierarhia de directoare începând cu directorul ''​%%Netflix%%''​. 
 +  - Confirmați ștergerea prin afișarea directorului părinte. 
 +  - Creați ierarhia de directoare de mai jos. 
 +  - Căutați parametrul necesar pentru ''​%%mkdir%%''​ pentru a crea toată ierarhia //dintr-o singură executare a comenzii//:​ 
 + 
 +<code bash> 
 +student@uso:​~$ tree 
 +
 +└─── Cale 
 +    └─── Lungă 
 +         ​└─── De 
 +              └─── Directoare 
 +</​code>​ 
 + 
 +  - Mutați ierarhia copiată anterior în ''​%%/​tmp%%''​ în directorul ''​%%Directoare%%''​. 
 + 
 + 
 +====== Sumar - Cheatsheet ====== 
 + 
 +===== Căi în ierarhia de fișiere ===== 
 + 
 +==== Calea curentă ==== 
 + 
 +<code bash> 
 +student@uso:​~$ pwd 
 +/​home/​student 
 +</​code>​ 
 +==== Cale relativă și cale absolută ==== 
 + 
 +Cale relativă:​ 
 + 
 +<code bash> 
 +student@uso:​~$ ls -l snap/​spotify/​ 
 +total 8 
 +drwxr-xr-x 5 student student 4096 Oct  2 03:11 42 
 +drwxr-xr-x 3 student student 4096 Oct  2 03:10 common 
 +lrwxrwxrwx 1 student student ​   2 Oct  2 03:10 current -> 42 
 +</​code>​ 
 +Cale absolută:​ 
 + 
 +<code bash> 
 +student@uso:​~$ ls -l /​home/​student/​snap/​spotify 
 +total 8 
 +drwxr-xr-x 5 student student 4096 Oct  2 03:11 42 
 +drwxr-xr-x 3 student student 4096 Oct  2 03:10 common 
 +lrwxrwxrwx 1 student student ​   2 Oct  2 03:10 current -> 42 
 +</​code>​ 
 +==== Schimbarea căii curente ==== 
 + 
 +<code bash> 
 +student@uso:/​etc$ pwd 
 +/etc 
 +student@uso:/​etc$ cd /usr 
 +student@uso:/​usr$ pwd 
 +/usr 
 +</​code>​ 
 +==== Scurtături de căi ==== 
 + 
 +Caracterul ''​%%-%%'':​ 
 + 
 +<code bash> 
 +student@uso:​~$ pwd 
 +/​home/​student 
 +student@uso:​~$ cd /usr/bin/ 
 +student@uso:/​usr/​bin$ pwd 
 +/usr/bin 
 +student@uso:/​usr/​bin$ cd - 
 +/​home/​student 
 +student@uso:​~$ cd - 
 +/usr/bin 
 +student@uso:/​usr/​bin$ cd - 
 +/​home/​student 
 +student@uso:​~$ cd - 
 +/usr/bin 
 +</​code>​ 
 +Caracterul ''​%%~%%'':​ 
 + 
 +<code bash> 
 +student@uso:/​usr/​bin$ cd /tmp/ 
 +student@uso:/​tmp$ pwd 
 +/tmp 
 +student@uso:/​tmp$ cd ~ 
 +student@uso:​~$ pwd 
 +/​home/​student 
 +student@uso:​~$ cd /​usr/​bin/​X11/​ 
 +student@uso:/​usr/​bin/​X11$ pwd 
 +/​usr/​bin/​X11 
 +student@uso:/​usr/​bin/​X11$ cd ~ 
 +student@uso:​~$ pwd 
 +/​home/​student 
 +</​code>​ 
 +===== Interacțiunea cu fișiere în linia de comandă ===== 
 + 
 +==== Ierarhie de fișiere ==== 
 + 
 +<code bash> 
 +student@uso:​~$ 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>​ 
 +==== Afișarea conținutului unui director ==== 
 + 
 +<code bash> 
 +student@uso:​~/​Avengers$ ls 
 +Captain America ​ Iron Man  Thor 
 +</​code>​ 
 +<code bash> 
 +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>​ 
 +==== Crearea fișierelor ==== 
 + 
 +<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>​ 
 +==== Crearea directoarelor ==== 
 + 
 +<code bash> 
 +student@uso:​~$ mkdir GameOfThrones 
 +student@uso:​~$ mkdir Avengers 
 +student@uso:​~$ ls -l 
 +(...) 
 +drwxr-xr-x 2 student student 4096 Sep 29 17:43 Avengers 
 +(...) 
 +drwxr-xr-x 2 student student 4096 Sep 29 17:43 GameOfThrones 
 +(...) 
 +</​code>​ 
 +==== Afișarea conținutului unui fișier ==== 
 + 
 +<code bash> 
 +student@uso:​~$ cat GameOfThrones/​Arya 
 +A girl has no name 
 +</​code>​ 
 +==== Ștergerea fișierelor ==== 
 + 
 +<code bash> 
 +student@uso:​~$ ls Avengers/ 
 +Captain America ​ Hulk  Iron Man  Thor 
 +student@uso:​~$ rm Avengers/​Hulk 
 +student@uso:​~$ ls Avengers/ 
 +Captain America ​ Iron Man  Thor 
 +</​code>​ 
 +==== Ștergerea directoarelor ==== 
 + 
 +<code bash> 
 +student@uso:​~$ mkdir LordOfTheRings 
 +student@uso:​~$ ls -l 
 +total 12 
 +drwxr-xr-x 2 student student 4096 Sep 29 18:02 Avengers 
 +drwxr-xr-x 2 student student 4096 Sep 29 17:44 GameOfThrones 
 +drwxr-xr-x 2 student student 4096 Sep 29 18:09 LordOfTheRings 
 +student@uso:​~$ rmdir "​LordOfTheRings"​ 
 +student@uso:​~$ ls -l 
 +total 8 
 +drwxr-xr-x 2 student student 4096 Sep 29 18:02 Avengers 
 +drwxr-xr-x 2 student student 4096 Sep 29 17:44 GameOfThrones 
 +</​code>​ 
 +==== Redenumirea și mutarea fișierelor și directoarelor ==== 
 + 
 +<code bash> 
 +student@uso:​~$ ls 
 +GameOfThrones 
 +student@uso:​~$ mv GameOfThrones ThroneOfGames 
 +student@uso:​~$ ls 
 +ThroneOfGames 
 +</​code>​ 
 +==== Copierea fișierelor și directoarelor ==== 
 + 
 +<code bash> 
 +student@uso:​~$ cp Avengers/​Thor /tmp/ 
 +student@uso:​~$ ls /tmp/ 
 +Thor  ssh-ApUMKI3HSJ 
 +</​code>​
info1/laboratoare/02.1603181917.txt.gz · Last modified: 2020/10/20 11:18 by alexandru.vochescu
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