This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
linux-admin:capitole:capitol-08 [2016/10/03 09:12] mihaic [Generare fișiere multiple și conținut aleator] |
linux-admin:capitole:capitol-08 [2016/10/03 10:48] (current) mihaic [Căutare cu grep] |
||
---|---|---|---|
Line 16: | Line 16: | ||
* ''grep'', ''tr'', ''cut'' | * ''grep'', ''tr'', ''cut'' | ||
* ''basename'' | * ''basename'' | ||
- | * ''dd'', ''split'' | ||
===== Exerciții ===== | ===== Exerciții ===== | ||
Line 63: | Line 62: | ||
Apoi folosiți output-ul astfel prelucrat prin comanda ''uniq'' cu opțiunea ''-c'' pentru a afișa numărul de apariții al fiecărui director. | Apoi folosiți output-ul astfel prelucrat prin comanda ''uniq'' cu opțiunea ''-c'' pentru a afișa numărul de apariții al fiecărui director. | ||
</note> | </note> | ||
- | |||
- | === Neajunsuri expandare comandă === | ||
- | |||
- | Neajunsuri ale expandării comenzii vs ''find'' cu ''-exec'' (și vs ''for'') | ||
==== Demo-uri ==== | ==== Demo-uri ==== | ||
Line 94: | Line 89: | ||
</code> | </code> | ||
- | === Demo: Creare directoare în home-urile mai multor utilizatori ==== | + | ==== Creare directoare în home-urile mai multor utilizatori ==== |
Pentru început adăugați în sistem utilizatorii ''ana'', ''bogdan'', ''corina'', ''dan'' și ''elena'' folosind utilitarul ''adduser'': | Pentru început adăugați în sistem utilizatorii ''ana'', ''bogdan'', ''corina'', ''dan'' și ''elena'' folosind utilitarul ''adduser'': | ||
Line 221: | Line 216: | ||
stat -c ... $(find ...) | sort ... | tail | stat -c ... $(find ...) | sort ... | tail | ||
</code> | </code> | ||
- | </note> | ||
- | ==== Construire fișier cu informații binare ==== | ||
- | |||
- | Creați un fișier care să conțină 2048 de octeți de zero (din ''/dev/zero'') urmați de 2048 de octeți aleatori (din ''/dev/urandom'') urmați de 2048 de octeți de zero și apoi urmați de 2048 de octeți din fișierul ''/bin/false'' de la offsetul 4096 al fișierului. | ||
- | |||
- | <note tip> | ||
- | Folosim opțiunile ''skip'' și ''seek'' ale ''dd'' pentru a putea sări peste regiuni din fișierul de la intrare și din fișierul de la ieșire. Mai multe informații mai jos. | ||
- | </note> | ||
- | |||
- | <note tip> | ||
- | Sintaxa comenzii poate fi la modul | ||
- | <code> | ||
- | dd if=/dev/zero of=myfile.out bs=512 count=4 | ||
- | </code> | ||
- | Comanda de mai sus copiază din fișierul de intrare (''if'': //input file//) ''/dev/zero'' la fișierul de ieșire (''of'': //output file//) ''myfile.out'', un număr (//count//) de ''4'' blocuri de dimensiune ''512'' (''bs'': //block size//). | ||
- | |||
- | Pentru exercițiul curent este recomandat să folosiți dimensiunea blocului de ''2048'' de octeți (''bs=2048''). | ||
- | </note> | ||
- | |||
- | <note tip> | ||
- | Ca să investigăm conținutul binar al unui fișier folosind comanda ''xxd'' într-o construcție de forma | ||
- | <code> | ||
- | xxd myfile.out | ||
- | </code> | ||
- | Output-ul este pe două zone: prima zonă (din stânga) sunt afișate datele în format hexazecimal, iar în a doua zonă (din dreapta) în format ASCII, acolo unde se poate. | ||
- | </note> | ||
- | |||
- | <note important> | ||
- | Argumentul pentru opțiunile ''skip'' și ''seek'' ale comenzii ''dd'' este dat în număr de blocuri, **nu** în număr de octeți. | ||
- | |||
- | Opțiunea ''seek'' este pentru a sări peste zone din fișierul de ieșire, iar opțiunea ''skip'' este pentru a sări peste zone din fișierul din intrare. | ||
</note> | </note> | ||
==== Căutare cu grep ==== | ==== Căutare cu grep ==== | ||
- | Folosiți ''grep'' pentru a selecta alias-urile cu destinația de forma ''nume.prenume@gmail.com'' din fișierul ''aliases'' din [[http://koala.cs.pub.ro/training/res/medium-unix/arc/cap-06-res.zip|arhiva capitolului]]. Intrările din fișierul ''aliases'' se consideră de forma ''alias: destinație''. | + | Folosiți ''grep'' pentru a selecta alias-urile cu destinația de forma ''nume.prenume@gmail.com'' din fișierul ''aliases'' din [[http://koala.cs.pub.ro/training/res/linux-admin/arc/cap-08-res.zip|arhiva capitolului]]. Intrările din fișierul ''aliases'' se consideră de forma ''alias: destinație''. |
==== Generare parole aleatoare ==== | ==== Generare parole aleatoare ==== |