====== 2. Folosirea eficientă a liniei de comandă ====== TODO ===== Subiecte abordate ===== * TODO * TODO * TODO ==== Utilitare folosite ==== * TODO * TODO * TODO ===== Resurse utile ===== * TODO * TODO ==== Slide-uri ==== [[http://koala.cs.pub.ro/training/res/medium-unix/slides/cap-02.pdf|Slide-uri capitol 2]]
cd /h
ș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}}}. Se completează la lista de comenzi care încep cu ''ap''
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.
După ce comanda este din nou completă, din aceeași poziție a cursorului, folosiți {{{Ctrl + w}}} și observați ce efect are.
Rulați următoarea comandă:
ping -c 1 google.com > result.out
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 + .}}}. 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:
echo $_
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:
ping -c 1 8.8.8.8
Apăsați {{{Ctrl + r}}} și în noul prompt apărut tastați {{{ping}}}. Mai apăsați o dată {{{Ctrl + r}}}. Observați ce se afișează. Folosiți tasta {{{ENTER}}}. Apoi repeteți primul pas și folosiți {{{ESC}}}. Observați diferența dintre cele două utilizări.
Rulați comanda de schimbare a directorului:
cd /etc
După aceea, folosiți:
cd -
pwd
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/}}} ?
Folosiți uname pentru a afișa doar versiunea nucleului și a arhitecturii sistemului. (Hint: {{{man uname}}})
==== Lucrul cu documentația ====
Fiecare comandă din Linux este însoțită de pagini de manual. Pentru a accesa manualul editorului {{{vim}}}, folosiți comanda:
man vim
Navigați prin manual folosind {{{PageUp}}} și {{{PageDown}}}.
Pentru a căuta prin manual după cuvântul {{{fork}}}, folosiți:
/fork
Deplasați-vă între aparițiile cuvântului folosind {{{n}}} și {{{N}}}.
Pentru a obține o scurtă descriere referitoare la o comandă, cât și secțiunea din manual în care se află, tastați comanda:
whatis make
După aceea, folosiți comanda:
apropos make
Observați diferența dintre ce returnează fiecare comandă.
Manualele sunt grupate pe secțiuni. Pentru a vedea ce conține fiecare secțiune, consultați manualul utilitarului {{{man}}}:
man man
și consultați tabelul aflat în paragraful {{{Description}}}.
Rulați comanda:
man printf
În ce secțiune se află pagina?
Pentru a afla informații despre funcția de bibliotecă {{{printf}}}, rulați comanda:
man 3 printf
Pentru a determina calea completă către comanda {{{ls}}}, folosiți:
which ls
De cele mai multe ori, comenzile builtin ale shell-ului nu au pagină de manual. Tastați comanda:
type source
Se observă că {{{source}}} este o comandă internă. Folosiți utilitarul {{{help}}} pentru a afla informații despre ea:
help source
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}}}. **Hint**: ''apropos''
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**.
zip files.zip file1 file2
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ă.
unzip -l .zip
unde ''
fdisk -l
În cazul în care sistemul are disc cu suport de GPT, folosiți comanda
gdisk -l /dev/sda
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
which md5sum
Pentru a afla din ce pachet face parte executabilul trebuie să folosiți comanda
dpkg -S /cale/catre/executabil
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'':
mkdir -p ~/store/system/
cp /etc/passwd ~/store/system/passwd-copy
Folosiți comanda ''less'' pentru a vizualiza conținutul fișierului astfel copiat.
wget http://swarm.cs.pub.ro/~razvan/r
sudo apt-get install lzop
sudo apt-get install xz-utils
Pentru fișierele comrimate XZ sau LZMA trebuie să modificați numele fișierelor pentru a avea extensia ''.xz'' respectiv ''.lzma''.