====== 4. Folosirea documentației ====== În folosirea Linux, în special a liniei de comandă, documentația este esențială. Există opțiunea căutării pe Google, dar aceasta riscă să returneze foarte multe rezultate. În multe situații consultarea documentației locale (paginile de manual) poate fi o soluție mult mai adecvată. ===== Subiecte abordate ===== * Comenzi de ajutor în linia de comandă * Folosirea paginilor de manual: căutare ==== Utilitare folosite ==== * ''whatis'', ''apropos'' * ''%%--help%%'' * ''man'' ===== Resurse utile ===== * TODO * TODO ===== Exerciții ===== ==== Demo-uri ==== Rolul comenzilor ''apropos'' și ''whatis''. Opțiunea ''%%--help%%'' e folosită foarte rar pentru că de obicei folosim paginile de manual care sunt ușor accesibile. Deschiderea unei pagini de manual, structura paginilor de manual, căutarea în pagini de manual. Match-ul anterior, match-ul precedent în pagina de manual. Secțiuni de pagini de manual man printf man 3 printf man read man 2 read man write man 2 write man man # see the table listing sections ==== 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 ==== Pentru a crea un fișier cu 1024 de date aleatoare folosim comanda dd if=/dev/urandom of=file bs=1024 count=1 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. 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. Sintaxa comenzii poate fi la modul dd if=/dev/zero of=myfile.out bs=512 count=4 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''). Ca să investigăm conținutul binar al unui fișier folosind comanda ''xxd'' într-o construcție de forma xxd myfile.out 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. **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''. 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. ==== 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. Dacă nu puteți instala pachetul folosind comanda sudo apt-get install sysstat atunci descărcați fișierul arhivă de [[|aici]], decomprimați-l și apoi, în subdirectorul ''packages/'' rulați comanda sudo dpkg -i * 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.