Differences

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

Link to this comparison view

uso:laboratoare:laborator-06:improve-cli-summary [2022/11/07 12:26]
iustina.caramida
uso:laboratoare:laborator-06:improve-cli-summary [2023/11/07 20:09] (current)
maria_irina.gherman [Sumar: O înțelegere mai bună a shellului]
Line 3: Line 3:
 ===== Sumar: Scurtături în terminal ===== ===== Sumar: Scurtături în terminal =====
  
-  *     * **Funcția de auto-complete este extrem de utilă și îmbunătățește în mod dramatic viteza cu care realizăm acțiuni în terminal.**       * Funcția de auto-complete nu ne face doar mai rapizi, dar putem folosi tasta ''​%%Tab%%''​ și pt a confirma că comanda ​este validă. +  *      **Funcția de auto-complete este extrem de utilă și îmbunătățește în mod dramatic viteza cu care realizăm acțiuni în terminal.** Funcția de auto-complete nu ne face doar mai rapizi, dar putem folosi tasta ''​%%Tab%%''​ și pt a confirma că respectiva comandă ​este validă. 
-  *     * **Consultăm istoricul comenzilor folosind comanda ''​%%history%%''​.** ​      ​* Navigăm prin istoricul comenzilor folosind ''​%%Arrow Keys%%'',​ ''​%%Ctrl+r%%'',​ expandarea comenzilor anterioare sau chiar expandarea argumentelor comenzii anterioare. +  *      **Consultăm istoricul comenzilor folosind comanda ''​%%history%%''​.** 
-      * Navigăm ​în interiorul unei comenzi (''​%%Ctrl+a%%'',​ ''​%%Ctrl+e%%'',​ ''​%%Alt+f%%'',​ ''​%%Alt+b%%''​),​ putem efectua modificări (''​%%Ctrl+k%%'',​ ''​%%Ctrl+u%%'',​ ''​%%Alt+d%%''​) și putem insera textul șters (''​%%Ctrl+y%%''​).+      ​* Navigăm prin istoricul comenzilor folosind ''​%%Arrow Keys%%'',​ ''​%%Ctrl+r%%'',​ expandarea comenzilor anterioare sau chiar expandarea argumentelor comenzii anterioare. 
 +      * Navigând ​în interiorul unei comenzi (''​%%Ctrl+a%%'',​ ''​%%Ctrl+e%%'',​ ''​%%Alt+f%%'',​ ''​%%Alt+b%%''​),​ putem efectua modificări (''​%%Ctrl+k%%'',​ ''​%%Ctrl+u%%'',​ ''​%%Alt+d%%''​) și putem insera textul șters (''​%%Ctrl+y%%''​).
  
-====== Sumar: Inspectarea sistemului de fișiere ​======+===== Sumar: Inspectarea sistemului de fișiere =====
  
-===== Inspectarea paginilor de manual ​=====+==== Inspectarea paginilor de manual ====
  
   * Navigarea prin paginile manualului:   * Navigarea prin paginile manualului:
Line 20: Line 21:
   * Prezentarea pachetului ''​%%tldr%%''​ - poate fi util pentru cazurile uzuale, dar nu trebuie să ne fie frică să căutăm în ''​%%man%%''​ pentru detalii   * Prezentarea pachetului ''​%%tldr%%''​ - poate fi util pentru cazurile uzuale, dar nu trebuie să ne fie frică să căutăm în ''​%%man%%''​ pentru detalii
  
-===== Selectarea multiplor fișiere folosind globbing ​=====+==== Selectarea multiplor fișiere folosind globbing ====
  
 Folosim //​globbing//​ pentru a selecta mai multe fișiere al căror nume corespunde unui tipar: Folosim //​globbing//​ pentru a selecta mai multe fișiere al căror nume corespunde unui tipar:
Line 30: Line 31:
   * Scăpăm de semnificația specială a unei expresii încadrând-o între ''​%%"​%%''​ (ghilimele).   * Scăpăm de semnificația specială a unei expresii încadrând-o între ''​%%"​%%''​ (ghilimele).
  
-===== Căutarea unui fișier în sistem ​=====+==== Căutarea unui fișier în sistem ====
  
-==== Utilitarul locate ==== +=== Utilitarul find ===
- +
-Folosim utilitarul ''​%%locate%%''​ pentru a căuta un fișier în întreg sistemul de fișiere. +
- +
-Are avantajul că este foarte rapid, deoarece folosește o bază de date pentru a indexa fișierele. +
- +
-  * **Are două dezavantaje:​** ​    - Baza de date trebuie reconstruită periodic. Dacă vrem să reconstruim manual baza de date, avem nevoie de drepturi privilegiate pentru a rula comanda ''​%%updatedb%%''​. +
-    - Utilitarul caută în tot sistemul de fișiere: nu putem să specificăm un punct de start pentru căutare. Este necesar să filtrăm rezultatul căutării cu punctul de start dorit, așa cum am făcut în exemplul de mai sus: ''​%%| grep workspace/​C%%''​. +
- +
-==== Utilitarul find ====+
  
 Folosim ''​%%find%%''​ pentru a căuta după criterii mai complexe decât numele fișierului,​ cum ar fi tipul fișierului,​ data ultimei modificări,​ etc. Folosim ''​%%find%%''​ pentru a căuta după criterii mai complexe decât numele fișierului,​ cum ar fi tipul fișierului,​ data ultimei modificări,​ etc.
Line 47: Line 39:
 De cele mai multe ori vom folosi ''​%%find%%''​ în conjuncție cu opțiunea ''​%%-exec%%''​ pentru a rula o comandă asupra fișierelor găsite. De cele mai multe ori vom folosi ''​%%find%%''​ în conjuncție cu opțiunea ''​%%-exec%%''​ pentru a rula o comandă asupra fișierelor găsite.
  
-Utilitarul ''​%%find%%''​ este mai lent decât ''​%%locate%%'',​ dar nu necesită o bază de date care trebuie actualizată periodic. ''​%%locate%%''​ este probabil suficient pentru majoritatea cazurilor când suntem interesați de căutarea unui fișier. j+===== Sumar: Inspectarea ​fișierelor =====
  
-====== Sumar: Inspectarea fișierelor ====== +==== Inspectarea ​rapidă ​a conținutului fișierelor ​====
- +
-=== Inspectarea ​rapida ​a conținutului fișierelor ===+
  
 Pentru a vedea rapid conținutul unui fișier folosim utlitarul ''​%%less%%''​. În cadrul unei sesiuni ''​%%less%%''​ putem folosi aceeleași taste ca în cadrul sesiunii interactive ''​%%man%%''​ pentru navigarea în pagină: Pentru a vedea rapid conținutul unui fișier folosim utlitarul ''​%%less%%''​. În cadrul unei sesiuni ''​%%less%%''​ putem folosi aceeleași taste ca în cadrul sesiunii interactive ''​%%man%%''​ pentru navigarea în pagină:
Line 66: Line 56:
 Pentru a afișa parțial conținutul unui fișier sau a extrage rezultatul unei comenzi folosim utilitarele ''​%%head%%''​ și ''​%%tail%%''​. Pentru a afișa parțial conținutul unui fișier sau a extrage rezultatul unei comenzi folosim utilitarele ''​%%head%%''​ și ''​%%tail%%''​.
  
-=== Căutarea în fișiere ===+==== Căutarea în fișiere ​====
  
 Folosim comanda ''​%%grep%%''​ pentru a căuta un //pattern// într-un fișier sau în rezultatul unei comenzi (cum ar fi ''​%%cat%%''​). Modul de folosire este ''​%%grep PATTERN cale/​către/​fișier%%''​ sau ''​%%cmd | grep PATTERN%%''​. Folosim comanda ''​%%grep%%''​ pentru a căuta un //pattern// într-un fișier sau în rezultatul unei comenzi (cum ar fi ''​%%cat%%''​). Modul de folosire este ''​%%grep PATTERN cale/​către/​fișier%%''​ sau ''​%%cmd | grep PATTERN%%''​.
  
-===== Opțiuni uzuale ale grep =====+Putem folosi funcția de căutare în sesiunea interactivă ''​%%less%%''​ pentru a găsi linia și fișierul care ne interesează. 
 + 
 +==== Opțiuni uzuale ale grep ====
  
 Folosim opțiunea ''​%%-n%%''​ pentru a afișa și numărul liniei care conține patternul căutat. Folosim opțiunea ''​%%-n%%''​ pentru a afișa și numărul liniei care conține patternul căutat.
Line 80: Line 72:
 Pentru a efectua o căutare recursivă folosim opțiunea ''​%%-r%%''​. Pentru a efectua o căutare recursivă folosim opțiunea ''​%%-r%%''​.
  
-De cele mai multe ori vom folosi opțiunile ''​%%-n%%'',​ ''​%%-i%%''​ și ''​%%-r%%''​ în aceelași timp. Astfel avem o căutare cât mai cuprinzătoare și putem folosi funcția de căutare în sesiunea interactivă ''​%%less%%''​ pentru a găsi linia și fișierul care ne interesează.+De cele mai multe ori vom folosi opțiunile ''​%%-n%%'',​ ''​%%-i%%''​ și ''​%%-r%%''​ în același timp. 
  
-Extra: Dacă dorim să căutăm cuvântul **search** folosim opțiunea ''​%%-w%%''​ (word) pentru a trata patternul ca un cuvânt, ca în exemplul următor: ''​%%grep -nri -w "​search"​ workspace/​C/​ | less%%''​.+**Extra:** Dacă dorim să căutăm cuvântul **search** folosim opțiunea ''​%%-w%%''​ (word) pentru a trata patternul ca un cuvânt, ca în exemplul următor: ''​%%grep -nri -w "​search"​ workspace/​C/​ | less%%''​.
  
-=== Compararea fișierelor ​===+===== Sumar: O înțelegere mai bună a shellului =====
  
-Comparăm două fișiere, octet cu octet, folosind utilitarul ''​%%cmp%%''​. +==== Configurarea shellului bash ====
- +
-Comparăm textual două fișiere folosind utilitarul ''​%%diff%%''​. +
- +
-====== Sumar: O înțelegere mai bună a shellului ====== +
- +
-=== Configurarea shellului bash ===+
  
 Fișierul de configurare al shellului **BASH** este ''​%%~/​.bashrc%%''​. Atunci când un utilizator pornește un shell bash, conținutul fișierului ''​%%~/​.bashrc%%''​ este citit și sunt aplicate configurările specifice utilizatorului. Fișierul de configurare al shellului **BASH** este ''​%%~/​.bashrc%%''​. Atunci când un utilizator pornește un shell bash, conținutul fișierului ''​%%~/​.bashrc%%''​ este citit și sunt aplicate configurările specifice utilizatorului.
- 
-Valorile variabilelor ''​%%HISTSIZE%%''​ și ''​%%HISTFILESIZE%%''​ limitează numărul maxim de comenzi, respectiv linii, din fișierul ''​%%~/​.bash_history%%''​. 
  
 Un alias este un nume (//​placeholder//​) care înlocuiește un șir de caractere. Pentru o organizare mai bună, este recomandat ca utilizatorul să-și definească aliasurile în fișierul ''​%%~/​.bash_aliases%%''​. Un alias este un nume (//​placeholder//​) care înlocuiește un șir de caractere. Pentru o organizare mai bună, este recomandat ca utilizatorul să-și definească aliasurile în fișierul ''​%%~/​.bash_aliases%%''​.
  
-=== Execuția comenzilor === +==== Înlănțuirea comenzilor ====
- +
-===== Înlănțuirea comenzilor ​=====+
  
 Atunci când își încheie execuția, orice proces întoarce un cod de eroare, care este un număr: valoarea ''​%%0%%''​ semnifică că acesta și-a încheiat execuția cu succes, iar orice ală valoare indică o eroare. Atunci când își încheie execuția, orice proces întoarce un cod de eroare, care este un număr: valoarea ''​%%0%%''​ semnifică că acesta și-a încheiat execuția cu succes, iar orice ală valoare indică o eroare.
Line 114: Line 96:
 Atunci când folosim operatorul ''​%%|%%''​ preluăm rezultatul comenzii din stânga operatorului și îl oferim ca intrare comenzii aflate în dreapta operatorului. Operatorul ''​%%|%%''​ ne permite să prelucrăm datele de interes, trecându-le prin mai multe utilitare, fiecare cu un scop bine definit. Atunci când folosim operatorul ''​%%|%%''​ preluăm rezultatul comenzii din stânga operatorului și îl oferim ca intrare comenzii aflate în dreapta operatorului. Operatorul ''​%%|%%''​ ne permite să prelucrăm datele de interes, trecându-le prin mai multe utilitare, fiecare cu un scop bine definit.
  
-===== Redirectări ​=====+==== Redirectări ====
  
 Folosim operatorul ''​%%>​%%''​ pentru a redirecta **STDOUT** sau **STDERR** într-un fișier. Pentru a redirecta ieșirea standard folosim sintaxa ''​%%cmd > nume-fișier%%''​. Pentru a redirecta ieșirea standard a erorilor folosim sintaxa ''​%%cmd 2> nume-fișier%%''​. Folosim operatorul ''​%%>​%%''​ pentru a redirecta **STDOUT** sau **STDERR** într-un fișier. Pentru a redirecta ieșirea standard folosim sintaxa ''​%%cmd > nume-fișier%%''​. Pentru a redirecta ieșirea standard a erorilor folosim sintaxa ''​%%cmd 2> nume-fișier%%''​.
  
-Implicit, ​operatoru ​''​%%>​%%''​ șterge (trunchează) conținutul fișierului destinație. Dacă vrem să păstrăm conținutul fișierului și să adăugăm rezultatul redirectării în continuarea acestuia, folosim operatorul ''​%%>>​%%''​.+Implicit, ​operatorul ​''​%%>​%%''​ șterge (trunchează) conținutul fișierului destinație. Dacă vrem să păstrăm conținutul fișierului și să adăugăm rezultatul redirectării în continuarea acestuia, folosim operatorul ''​%%>>​%%''​.
  
 Folosim sintaxa ''​%%&>​ cale/​către/​nume-fișier%%''​ pentru a redirecta atât STDERR, cât și STDOUT, în fișierul primit ca argument. Folosim sintaxa ''​%%&>​ cale/​către/​nume-fișier%%''​ pentru a redirecta atât STDERR, cât și STDOUT, în fișierul primit ca argument.
  
-==== Fișiere speciale ​====+=== Fișiere speciale ===
  
   * Fișierul ''​%%/​dev/​null%%''​ este un fișier care ignoră orice este scris în el.   * Fișierul ''​%%/​dev/​null%%''​ este un fișier care ignoră orice este scris în el.
uso/laboratoare/laborator-06/improve-cli-summary.1667816778.txt.gz · Last modified: 2022/11/07 12:26 by iustina.caramida
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