This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
basic-unix:capitole:capitol-04 [2016/05/23 21:15] razvan [Utilitare folosite] |
basic-unix:capitole:capitol-04 [2016/05/24 09:27] (current) rdobrescu [Acțiuni care necesită consultarea paginii de manual] |
||
---|---|---|---|
Line 24: | Line 24: | ||
==== Demo-uri ==== | ==== Demo-uri ==== | ||
- | TODO | + | Rolul comenzilor ''apropos'' și ''whatis''. |
- | TODO | + | Opțiunea ''%%--help%%'' e folosită foarte rar pentru că de obicei folosim paginile de manual care sunt ușor accesibile. |
- | ==== TODO 2 ==== | + | Deschiderea unei pagini de manual, structura paginilor de manual, căutarea în pagini de manual. |
- | TODO | + | Match-ul anterior, match-ul precedent în pagina de manual. |
- | ==== TODO 2 ==== | + | Secțiuni de pagini de manual |
+ | <code> | ||
+ | man printf | ||
+ | man 3 printf | ||
+ | man read | ||
+ | man 2 read | ||
+ | man write | ||
+ | man 2 write | ||
+ | man man # see the table listing sections | ||
+ | </code> | ||
- | TODO | + | ==== Căutare în pagini de manual ==== |
+ | Căutați în pagina de manual (rulați {{{man last}}}) după cuvântul cheie "full" (tastați "/full") pentru a afla flag-ul care afișeaza data și ora în format complet. Rulați comanda ''last'' cu parametrul aflat. | ||
+ | |||
+ | Folosiți un extra-argument al comenzii ''ls'' pentru a avea dimensiunile în format ''human-readable''. Căutați în pagina de manual a comenzii ''ls''. | ||
+ | |||
+ | Determinați **doar** dimensiunea directorului ''/etc'' (nu și a subdirectoarelor) în format human readable. Căutați în pagina de manual a comenzii ''du'' după cuvântul cheie ''summarize'' și identificați opțiunea (argumentul) comenzii ''du'' care vă afișează dimensiunea directorului în format sumarizat. | ||
+ | |||
+ | Căutați în pagina de manual a comenzii {{{find}}} **exemplul** de comandă care căută în {{{/sbin}}} și {{{/usr/sbin}}} fișierele cu drept de execuție dar fără drept de citire. | ||
+ | |||
+ | Ce conține secțiunea 5 a paginilor de manual? Aflați informații despre fișierul {{{/etc/passwd}}}. | ||
+ | |||
+ | Determinați comenzile folosite pentru a lucra cu fișiere {{{.zip}}}. Folosiți comanda ''apropos'' pentru aceasta. | ||
+ | |||
+ | ==== Acțiuni care necesită consultarea paginii de manual ==== | ||
+ | |||
+ | Descărcați pagina de la link-ul http://koala.cs.pub.ro/training/wiki/basic-unix/home?do=export_pdf într-un fișier cu numele ''training-start.pdf''. Folosiți comanda ''wget''. Căutați după șirul ''output'', citiți cu atenție informațiile și nu vă grăbiți: ce găsiți prima oară nu este ceea ce căutați. | ||
+ | |||
+ | Adăugați un utilizator în sistem, în mod neinteractiv, folosind comanda ''useradd''. Numele utilizatorului să fie ''hector'' să aibă directorul home în ''/home/heroes/hector'', să aibă ca shell de login ''/bin/bash''. | ||
+ | |||
+ | Apoi folosiți comanda ''chpasswd'' ca să schimbați în mod neinteractiv parola utilizatorului. | ||
+ | |||
+ | ==== Construire fișier cu informații binare ==== | ||
+ | |||
+ | <note tip> | ||
+ | Pentru a crea un fișier cu 1024 de date aleatoare folosim comanda | ||
+ | <code> | ||
+ | dd if=/dev/urandom of=file bs=1024 count=1 | ||
+ | </code> | ||
+ | </note> | ||
+ | |||
+ | 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. | ||
+ | |||
+ | Folosiți mai multe comenzi ''dd'' pentru a face acest lucru. | ||
+ | |||
+ | <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> | ||
+ | |||
+ | **Bonus**: Folosiți comanda ''xxd'' pentru a afișa pe rând, primii 32 de octeți de la offset-ul ''0'', apoi offset-ul ''2048'', apoi ''4096'' și apoi ''6144''. | ||
+ | |||
+ | <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> | ||
+ | |||
+ | ==== Folosire top în mod neinteractiv ==== | ||
+ | |||
+ | Comanda top este folosită pentru monitorizarea proceselor. Căutați în manual după modul ''batch'' și faceți ca top să ruleze în modul neinteractiv (batch) și să afișeze de 5 ori lista de procese. | ||
+ | |||
+ | ==== Monitorizare cu sar ==== | ||
+ | |||
+ | Dacă nu aveți instalat pachetul ''sysstat'' instalați-l. | ||
+ | |||
+ | <note tip> | ||
+ | Dacă nu puteți instala pachetul folosind comanda | ||
+ | <code> | ||
+ | sudo apt-get install sysstat | ||
+ | </code> | ||
+ | atunci descărcați fișierul arhivă de [[|aici]], decomprimați-l și apoi, în subdirectorul ''packages/'' rulați comanda | ||
+ | <code> | ||
+ | sudo dpkg -i * | ||
+ | </code> | ||
+ | </note> | ||
+ | |||
+ | Folosiți utilitarele ''iostat'', ''pidstat'' și ''mpstat'' pentru a monitoriza informații despre sistem. Realizați rulări care: | ||
+ | - Afișează informațiile aferente **o singură dată**. | ||
+ | - Afișează informațiile aferente la fiecare 5 secunde. | ||
+ | - Afișați, acolo unde se poate, informații doar pentru procesul shell curent (PID-ul său este indicat de construcția ''$$''). | ||
+ | |||
+ | ==== Formatare fișiere ==== | ||
+ | |||
+ | Copiați conținut de lorem ipsum de [[http://loripsum.net/|aici]] într-un fișier. Apoi faceți formatare la 40 de caractere linie folosind comanda ''fold''. | ||
+ | |||
+ | Formatați conținutul fișierului ''/etc/passwd'' pe coloane folosind comanda ''column''. Parcurgeți pagina de manual a comenzii ''column'' pentru opțiunile aferente. | ||
+ | |||
+ | Folosiți comanda ''split'' pentru a împărți conținutul fișierului ''/etc/passwd'' în mai multe fișiere, fiecare fișier cuprinzând câte 4 linii. |