User Tools

Site Tools


medium-unix:capitole:capitol-02

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
medium-unix:capitole:capitol-02 [2016/05/16 11:19]
razvan
medium-unix:capitole:capitol-02 [2016/05/16 20:19] (current)
razvan [Resurse utile]
Line 20: Line 20:
   * TODO   * TODO
  
 +==== Slide-uri ====
 +
 +[[http://​koala.cs.pub.ro/​training/​res/​medium-unix/​slides/​cap-02.pdf|Slide-uri capitol 2]]
 +
 +<​html>​
 +  <​center>​
 +    <iframe src="​http://​docs.google.com/​viewer?​url=http://​koala.cs.pub.ro/​training/​res/​medium-unix/​slides/​cap-02.pdf&​embedded=true"​ width="​600"​ height="​470" ​  ​style="​border:​ none;"></​iframe>​
 +  </​center>​
 +</​html>​
 ===== Exerciții ===== ===== Exerciții =====
  
Line 28: Line 37:
 TODO TODO
  
-==== Exerciții ====+==== Exerciții ​de încălzire ​====
  
 Scrieți la prompt, fără să rulați, comanda<​code bash> Scrieți la prompt, fără să rulați, comanda<​code bash>
 cd /h cd /h
-</​code>​ și apoi folosiți tasta {{{TAB}}} pentru autocompletare.+</​code>​ și apoi folosiți tasta {{{TAB}}} pentru autocompletare. Se completează la ''​cd /​home''​.
  
-Pentru listarea tuturor comenzilor ce încep cu {{{ap}}}, scrieți acest prefix în terminal și folosiți de două ori consecutiv tasta {{{TAB}}}.+Pentru listarea tuturor comenzilor ce încep cu {{{ap}}}, scrieți acest prefix în terminal și folosiți de două ori consecutiv tasta {{{TAB}}}. ​Se completează la lista de comenzi care încep cu ''​ap''​
  
-Folosiți combinația de taste {{{Ctrl + a}}} pentru a vă deplasa la începutul comenzii. Similar, folosiți {{{Ctrl + e}}} pentru a vă deplasa înapoi la finalul comenzii. +Scieți comanda ''​apt-get install nmap'',​ fără să o executați. ​Folosiți combinația de taste {{{Ctrl + a}}} pentru a vă deplasa la începutul comenzii. Similar, folosiți {{{Ctrl + e}}} pentru a vă deplasa înapoi la finalul comenzii. Folosind săgețile, plasați cursorul după cuvântul {{{get}}}. După aceea, folosiți combinația {{{Ctrl + k}}}. Observați efectul.
- +
-Folosind săgețile, plasați cursorul după cuvântul {{{get}}}. După aceea, folosiți combinația {{{Ctrl + k}}}. Observați efectul.+
  
 După ce comanda este din nou completă, din aceeași poziție a cursorului, folosiți {{{Ctrl + w}}} și observați ce efect are. După ce comanda este din nou completă, din aceeași poziție a cursorului, folosiți {{{Ctrl + w}}} și observați ce efect are.
Line 46: Line 53:
 </​code>​ </​code>​
  
-După aceea, folosiți combinația de taste {{{Alt + .}}} (adică țineți apăsat tasta ''​Alt''​ și apoi apăsați tasta ''​.''​ (punct)). Observați efectul acesteia.+După aceea, folosiți combinația de taste {{{Alt + .}}} (adică țineți apăsat tasta ''​Alt''​ și apoi apăsați tasta ''​.''​ (punct)). Observați efectul acesteia: completează ultimul argument al ultimei comenzi.
  
-Folosiți de mai multe ori {{{Alt + .}}}. Care este rezultatul?+Folosiți de mai multe ori {{{Alt + .}}}. Rezultatul ​este parcurgerea ultimului argument al ultimelor comenzi la fiecare apăsare
  
 Ștergeți ce s-a afișat la punctul anterior. Rulați comanda: <code bash> Ștergeți ce s-a afișat la punctul anterior. Rulați comanda: <code bash>
 echo $_ echo $_
-</​code> ​Care este diferența față de {{{Alt + .}}}?+</​code> ​Diferența față de ''​Alt + .''​ este că este neinteractiv și că nu afișează expandarea acelui argument.
  
 În același terminal în care ați tastat comenzile de mai sus, rulați comanda: <code bash> În același terminal în care ați tastat comenzile de mai sus, rulați comanda: <code bash>
Line 67: Line 74:
 cd - cd -
 pwd pwd
-</​code>​ Observați ce efect are.+</​code>​ Observați ce efect are: schimbă directorul în directorul anterior.
  
 Rulați comanda {{{ls /​var/​cache/​apt/​archives/​}}} (utilizând cât mai mult command completion). Ce comandă vă permite schimbarea cât mai eficientă în directorul {{{/​var/​cache/​apt/​archives/​}}} ? Rulați comanda {{{ls /​var/​cache/​apt/​archives/​}}} (utilizând cât mai mult command completion). Ce comandă vă permite schimbarea cât mai eficientă în directorul {{{/​var/​cache/​apt/​archives/​}}} ?
Line 126: Line 133:
  
 Comanda ''​unzip''​ dezarhivează o arhivă ''​.zip''​ dar are și o opțiunea de listare a conținutului acelei arhive fără a o dezarhiva însă. Identificați acea opțiune. Comanda ''​unzip''​ dezarhivează o arhivă ''​.zip''​ dar are și o opțiunea de listare a conținutului acelei arhive fără a o dezarhiva însă. Identificați acea opțiune.
 +
 +==== Alte exerciții ====
 +
 +=== Terminale ===
 +
 +În **mașina virtuală**,​ după ce vă autentificați,​ din meniul ''​Applications Menu -> Terminal Emulator''​deschideți un nou **terminal**.
 +
 +Puteți folosi quick run, cu ajutorul scurtăturii **Alt-F2** și rulând aplicatia **xfce4-terminal**.
 +
 +<​note>​
 +Pentru exercițiile viitoare, folosiți astfel de terminale.
 +</​note>​
 +
 +=== Prompt-ul și comenzi simple ===
 +
 +Rulați comanda ''​whoami''​. Observați **prompt-ul** și determinați utilizatorul curent și care este numele mașinii.
 +
 +Rulați comanda ''​hostname''​ și observați ce afișează.
 +
 +Rulați comanda ''​sudo su''​ și observați schimbările prompt-ului. Verificați din nou utilizatorul curent cu comanda ''​whoami''​.
 +
 +=== Comenzi cu argumente ===
 +
 +Aflați informații despre Linux-ul instalat folosind comanda ''​uname''​ cu opțiunea ''​-a''​ sau {{{--all}}}. Folosiți o opțiune adecvată pentru a afișa doar versiunea arhitecturii sistemului de calcul.
 +
 +Rulați comanda ''​zip''​ fără argumente și observați că nu funcționează fără argumente.
 +
 +Creați două fișiere (''​file1''​ și ''​file2''​) cu comanda ''​touch''​. ''​touch''​ primește ca argumente (număr variabil de argumente) numele fișierelor.
 +
 +Arhivați fișierele //file1// și //file2// într-o arhivă //​files.zip//​ folosind comanda
 +<​code>​
 +zip files.zip file1 file2
 +</​code>​
 +
 +Rulati comanda ''​zip''​ fără parametri și determinați opțiunea de "quiet operation"​.
 +Rulați comanda ''​zip''​ cu acea opțiune pentru a **adăuga** și un fișier //file3// la arhivă.
 +
 +<note tip>
 +Pentru a verifica faptul că avem un conținut adecvat al arhivei folosim comanda
 +<​code>​
 +unzip -l <​nume-arhiva>​.zip
 +</​code>​
 +unde ''<​nume-arhiva>''​ este numele arhivei.
 +</​note>​
 +
 +=== Documentație ===
 +
 +Aflați ce face comanda ''​who''​ folosind utilitarul ''​whatis'':​ ''​whatis who''​. Folosiți help-ul intern al comenzii: {{{who --help}}} pentru a vedea ce opțiuni poate primi comanda ''​who''​.
 +
 +Similar, aflați ce face comanda ''​last''​. 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.
 +
 +==== Folosire eficientă a liniei de comandă ====
 +
 +Pentru a deschide un tab nou de terminal folosiți scurtătura ''​Ctrl+Shift+t''​. Închideți tab-urile nou deschise folosind scurtătura ''​Ctrl+d''​.
 +
 +Vreți să afișați discurile sistemului.Rulați comanda<​code bash>
 +fdisk -l
 +</​code>​ În cazul în care sistemul are disc cu suport de GPT, folosiți comanda <code bash>
 +gdisk -l /dev/sda
 +</​code>​
 +Vă dați seama că trebuie să rulați sub ''​sudo''​. Ce faceți? (gândiți-vă la eficiență)
 +
 +Vreți să aflați informații despre executabilul aferent comenzii ''​md5sum''​. Întâi aflați care este calea către executabilul aferent comenzii. Pentru aceasta rulați comanda<​code bash>
 +which md5sum
 +</​code>​
 +Pentru a afla din ce pachet face parte executabilul trebuie să folosiți comanda<​code bash>
 +dpkg -S /​cale/​catre/​executabil
 +</​code>​
 +Contrucția ''​$(comanda)''​ vă întoarce rezutaltul comenzii ''​comanda''​.Ce faceți? (gândiți-vă la eficiență)
 +
 +Rulați comenzile de mai jos pentru a crea un director nou și pentru a face o copie a fișierului ''/​etc/​passwd'':<​code bash>
 +mkdir -p ~/​store/​system/​
 +cp /etc/passwd ~/​store/​system/​passwd-copy
 +</​code>​
 +Folosiți comanda ''​less''​ pentru a vizualiza conținutul fișierului astfel copiat. ​
 +
 +<note tip>
 +Fiți eficienți, folosiți combinația ''​Alt+.''​ pentru obținerea ultimului argument al ultimei comenzi.
 +</​note>​
 +
 +Rulați încă o dată comanda care afișa din ce pachet face parte utilitarul ''​md5sum''​. Fiți eficienți, căutați în istoricul de comenzi.
 +
 +==== Find the secret messages ====
 +
 +Folosiți fișierul de la link-ul http://​swarm.cs.pub.ro/​~razvan/​r și aflați mesajele secrete.
 +
 +<note tip>
 +Pentru a descărca fișierul de link-ul de mai sus folosiți comanda<​code>​
 +wget http://​swarm.cs.pub.ro/​~razvan/​r
 +</​code>​
 +</​note>​
 +
 +<note tip>
 +Este un joc de tipul păpușă rusească (matroshka) în care aveți arhivă în arhivă în arhivă etc. La final veți ajunge la un fișier text cu un mesaj dat.
 +</​note>​
 +
 +<note tip>
 +Folosiți-vă de comanda ''​file''​ urmată de numele unui fișier pentru a afla informații despre acel fișier.
 +</​note>​
 +
 +<note tip>
 +Pentru fișiere comprimate LZOP instalați programul ''​lzop''​ folosind comanda:<​code>​
 +sudo apt-get install lzop
 +</​code>​
 +</​note>​
 +
 +<note tip>
 +Pentru fișiere comprimate XZ sau LZMA instalați programul ''​xz-utils''​ folosind comanda:<​code>​
 +sudo apt-get install xz-utils
 +</​code>​
 +
 +Pentru fișierele comrimate XZ sau LZMA trebuie să modificați numele fișierelor pentru a avea extensia ''​.xz''​ respectiv ''​.lzma''​.
 +</​note>​
 +
 +==== Generare și folosire imagine ISO ====
 +
 +Vrem să creăm o imagina ISO pentru toate fișierele dn ierarhia ''/​etc''​.
 +
 +Creați un fișier ''​etc.iso''​ folosind comanda ''​genisoimage''​ care să conțină fișierele din ierarhia ''/​etc''​.
 +
 +Apoi montați imaginea ISO pentru a valida structura corectă a fișierului ''​.iso''​. Folosiți indicațiile de [[http://​askubuntu.com/​a/​193632|aici]].
 +
 +==== Comunicare în rețea folosind netcat ====
 +
 +Folosiți ''​netcat''​ pentru a porni, pe un tab de terminal, un server și pe alt tab de 
 +terminal un client conectat la acel server, pe ''​localhost''​ (''​127.0.0.1''​).
 +
 +<​note>​
 +''​netcat''​ este un utilitar care permite deschiderea de clienți și servere de comunicare în rețea.
 +</​note>​
 +
 +<note tip>
 +Urmăriți sintaxa clientul și a serverului în primele linii ale paginii de manual.
 +</​note>​
 +
 +=== Folosire UDP ===
 +
 +Rulați ''​netcat''​ pentru a permite comunicarea peste UDP.
 +
 +<note tip>
 +Căutați în pagina de manual după șirul ''​UDP''​ și folosiți opțiunea corespunzătoare.
 +</​note>​
 +
 +==== Verificare lățime de bandă folosind iperf ====
 +
 +Folosiți utilitarul ''​iperf''​ pentru a porni un client și un server și pentru a verifica lățimea de bandă pe ''​localhost''​.
 +
 +<note tip>
 +Urmăriți sintaxa comenzii din pagina de manual pentru a afla cum se pornește un client, respectiv un server.
 +</​note>​
 +
 +Porniți întâi serverul.
 +
 +Ca argument pentru client (pentru conectare la server) folosiți ''​localhost''​ (stația locală). Durează circa ''​10''​ secunde de comunicare între client și server pentru stabilirea lățimii de bandă.
  
medium-unix/capitole/capitol-02.1463386765.txt.gz · Last modified: 2016/05/16 11:19 by razvan