Differences

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

Link to this comparison view

info1:laboratoare:02 [2020/10/07 14:05]
127.0.0.1 external edit
info1:laboratoare:02 [2020/10/20 11:32] (current)
alexandru.vochescu
Line 1: Line 1:
-===== Laboratorul 02. =====+====== Laboratorul 02. Lucrul cu fișiere ​ ======
  
  
 +{{page>​uso:​laboratoare:​ac:​laborator-01:​paths&​nofooter&​noeditbutoon}}
 +
 +====== Interacțiunea cu fișiere î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.
 +
 +Î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.1602068742.txt.gz · Last modified: 2020/10/20 11:15 (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