This shows you the differences between two versions of the page.
so-etti:laboratoare:lab2 [2013/03/08 06:45] alexandru.radovici |
so-etti:laboratoare:lab2 [2013/03/11 21:35] (current) alexandru.radovici |
||
---|---|---|---|
Line 390: | Line 390: | ||
* Folosiți formularea **''%%>>%% TODO''** pentru a nu suprascrie conținutul vechi (mod //append//). | * Folosiți formularea **''%%>>%% TODO''** pentru a nu suprascrie conținutul vechi (mod //append//). | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
echo "all done" > TODO | echo "all done" > TODO | ||
echo "Haralambie Popescu" >> TODO | echo "Haralambie Popescu" >> TODO | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
Line 406: | Line 406: | ||
* Un alt mod de a face acest lucru este //escaparea// spațiului, precedându-l cu un backslash (**''\''**). | * Un alt mod de a face acest lucru este //escaparea// spațiului, precedându-l cu un backslash (**''\''**). | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
mkdir "isaac asimov" | mkdir "isaac asimov" | ||
Line 412: | Line 412: | ||
mkdir isaac\ asimov | mkdir isaac\ asimov | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
Line 423: | Line 423: | ||
* Care este diferența dintre **''rmdir''** și **''rm''** cu acel parametru? Folosiți, din nou, manualul. | * Care este diferența dintre **''rmdir''** și **''rm''** cu acel parametru? Folosiți, din nou, manualul. | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
rmdir isaac | rmdir isaac | ||
rm -r asimov | rm -r asimov | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
De asemenea, copiați directorul **''douglas_adams''** în același director părinte (**''lab02''**), cu numele **''douglas_adams_copy''** | De asemenea, copiați directorul **''douglas_adams''** în același director părinte (**''lab02''**), cu numele **''douglas_adams_copy''** | ||
* Dați parametrul potrivit comenzii ''cp'' pentru copierea recursivă de directoare | * Dați parametrul potrivit comenzii ''cp'' pentru copierea recursivă de directoare | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
cp -r douglas_adams douglas_adams_copy | cp -r douglas_adams douglas_adams_copy | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
Line 451: | Line 451: | ||
Copiați fișierul **''gandalf''** din directorul **''j_r_r_tolkien/the_lord_of_the_rings/''** în directorul **''j_r_r_tolkien/the_hobbit/''**. | Copiați fișierul **''gandalf''** din directorul **''j_r_r_tolkien/the_lord_of_the_rings/''** în directorul **''j_r_r_tolkien/the_hobbit/''**. | ||
- | <hidden> | + | <solution> |
Vă aflați în directorul lab03/ | Vă aflați în directorul lab03/ | ||
<code bash> | <code bash> | ||
Line 457: | Line 457: | ||
cp ./the_lord_of_the_rings/gandalf ./the_hobbit/ | cp ./the_lord_of_the_rings/gandalf ./the_hobbit/ | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
Folosiți **''echo''** pentru a scrie textul **''Old wise man''** în fișierul **''j_r_r_tolkien/the_lord_of_the_rings/gandalf''**. | Folosiți **''echo''** pentru a scrie textul **''Old wise man''** în fișierul **''j_r_r_tolkien/the_lord_of_the_rings/gandalf''**. | ||
- | <hidden> | + | <solution> |
Vă aflați în directorul lab03/j_r_r_tolkien/ | Vă aflați în directorul lab03/j_r_r_tolkien/ | ||
<code bash> | <code bash> | ||
echo "Old wise man" > ./the_lord_of_the_rings/gandalf | echo "Old wise man" > ./the_lord_of_the_rings/gandalf | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
Afișați conținutul fișierului **''j_r_r_tolkien/the_hobbit/gandalf''**. De ce nu sunt cele două fișiere identice? | Afișați conținutul fișierului **''j_r_r_tolkien/the_hobbit/gandalf''**. De ce nu sunt cele două fișiere identice? | ||
- | <hidden> | + | <solution> |
Vă aflați în directorul lab03/j_r_r_tolkien/ | Vă aflați în directorul lab03/j_r_r_tolkien/ | ||
<code bash> | <code bash> | ||
Line 476: | Line 476: | ||
</code> | </code> | ||
Veți observa că cele două fișiere sunt diferite. | Veți observa că cele două fișiere sunt diferite. | ||
- | </hidden> | + | </solution> |
Ștergeți ultimul fișier și creați în locul lui un link simbolic la fișierul din **''the_lord_of_the_rings''**. | Ștergeți ultimul fișier și creați în locul lui un link simbolic la fișierul din **''the_lord_of_the_rings''**. | ||
Line 485: | Line 485: | ||
Afișați conținutul link-ului pentru a vă asigura că fișierele **''gandalf''** din cele două directoare au același conținut. | Afișați conținutul link-ului pentru a vă asigura că fișierele **''gandalf''** din cele două directoare au același conținut. | ||
- | <hidden> | + | <solution> |
Vă aflați în directorul lab03/j_r_r_tolkien | Vă aflați în directorul lab03/j_r_r_tolkien | ||
<code bash> | <code bash> | ||
Line 494: | Line 494: | ||
cat ./gandalf | cat ./gandalf | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
===== 5. Globbing ===== | ===== 5. Globbing ===== | ||
Line 501: | Line 501: | ||
* Folosiți o singură comandă **''cat''**. | * Folosiți o singură comandă **''cat''**. | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
cat /etc/*.conf | cat /etc/*.conf | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
Listați doar fișierele de configurare care încep cu litera //a//. | Listați doar fișierele de configurare care încep cu litera //a//. | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
ls /etc/a*.conf | ls /etc/a*.conf | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
Listați fișierele care conțin șirul de caractere //nt// din directorul **''/bin''**. | Listați fișierele care conțin șirul de caractere //nt// din directorul **''/bin''**. | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
ls /bin/*nt* | ls /bin/*nt* | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
Line 529: | Line 529: | ||
* afișați dimensiunea în format //human readable// | * afișați dimensiunea în format //human readable// | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
du -hs lab02 | du -hs lab02 | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
Folosiți **''df''** pentru a afla ce partiții există, ce dimensiune au și cât spațiu este ocupat pe acestea. | Folosiți **''df''** pentru a afla ce partiții există, ce dimensiune au și cât spațiu este ocupat pe acestea. | ||
* afișați dimensiunile în format //human readable// | * afișați dimensiunile în format //human readable// | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
df -h | df -h | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
===== 7. Arhivare ===== | ===== 7. Arhivare ===== | ||
- | <hidden> | + | <solution> |
* Diferența dintre arhivare și comprimare | * Diferența dintre arhivare și comprimare | ||
* Relația dintre tar și gzip; de ce nu folosim direct gzip | * Relația dintre tar și gzip; de ce nu folosim direct gzip | ||
* Diferența dintre a arhiva un director și a arhiva doar conținutul lui. | * Diferența dintre a arhiva un director și a arhiva doar conținutul lui. | ||
- | </hidden> | + | </solution> |
Folosiți **''tar''** pentru a arhiva directorul **''lab02''**. | Folosiți **''tar''** pentru a arhiva directorul **''lab02''**. | ||
Line 561: | Line 561: | ||
Ce constatați legat de dimensiunile fișierelor rezultate, raportat la dimensiunea directorului inițial? | Ce constatați legat de dimensiunile fișierelor rezultate, raportat la dimensiunea directorului inițial? | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
tar cf lab02.tar lab02 | tar cf lab02.tar lab02 | ||
tar czf lab02.tar.gz lab02 | tar czf lab02.tar.gz lab02 | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
<note tip> | <note tip> | ||
Line 577: | Line 577: | ||
* folosiți comanda ''unzip'' | * folosiți comanda ''unzip'' | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
cd ~/lab02/extra/ | cd ~/lab02/extra/ | ||
Line 584: | Line 584: | ||
cat parola.txt | cat parola.txt | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
===== 8. PATH ===== | ===== 8. PATH ===== | ||
Line 599: | Line 599: | ||
Ar trebui ca rulând comanda **''test_ln_s''** să putem rula executabilul. | Ar trebui ca rulând comanda **''test_ln_s''** să putem rula executabilul. | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
ln -s /home/student/lab02/extra/test_ln_s /bin | ln -s /home/student/lab02/extra/test_ln_s /bin | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
===== 9. Instalare manuală deb-uri ===== | ===== 9. Instalare manuală deb-uri ===== | ||
Line 621: | Line 621: | ||
GDebi Package Installer este doar un front-end grafic pentru utilitarul dpkg. După ce ați dezinstalat //Skype//-ul, reinstalați-l înapoi, doar că de data asta folosiți **''dpkg''** (hint: căutați în **''man''** optiunea pentru instalare). | GDebi Package Installer este doar un front-end grafic pentru utilitarul dpkg. După ce ați dezinstalat //Skype//-ul, reinstalați-l înapoi, doar că de data asta folosiți **''dpkg''** (hint: căutați în **''man''** optiunea pentru instalare). | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
dpkg -i "NUME_PACHET_SKYPE.deb" | dpkg -i "NUME_PACHET_SKYPE.deb" | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
Dacă nu aveți deja instalate pachetele **''git''**, **''tree''** și **''ack-grep''**, instalațiile cu ajutorul lui **''apt-get''**. \\ | Dacă nu aveți deja instalate pachetele **''git''**, **''tree''** și **''ack-grep''**, instalațiile cu ajutorul lui **''apt-get''**. \\ | ||
Pentru a verifica dacă un pachet este instalat sau nu, __listați__ pachetul cu ajutorul lui **''dpkg''**. | Pentru a verifica dacă un pachet este instalat sau nu, __listați__ pachetul cu ajutorul lui **''dpkg''**. | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
dpkg -l "git" "tree" "ack-grep" | dpkg -l "git" "tree" "ack-grep" | ||
sudo apt-get install "git" "tree" "ack-grep" | sudo apt-get install "git" "tree" "ack-grep" | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
Folosiți **''dpkg''** pentru a lista toate pachetele legate de **''git''** (hint: **''*git*''**). | Folosiți **''dpkg''** pentru a lista toate pachetele legate de **''git''** (hint: **''*git*''**). | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
dpkg -l "*git*" | dpkg -l "*git*" | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
Cine este autorul original pentru pachetul **''tree''**? | Cine este autorul original pentru pachetul **''tree''**? | ||
- | <hidden> | + | <solution> |
Căutați "Original-Maintainer" în outputul comenzii: | Căutați "Original-Maintainer" în outputul comenzii: | ||
<code bash> | <code bash> | ||
dpkg -p "tree" | dpkg -p "tree" | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
Ce fișiere au fost instalate în sistem odată cu pachetul **''ack-grep''**? | Ce fișiere au fost instalate în sistem odată cu pachetul **''ack-grep''**? | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
dpkg -L "ack-grep" | dpkg -L "ack-grep" | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |
<note tip>Vedeți în manual ce fac opțiunile de la **''dpkg-query''**. </note> | <note tip>Vedeți în manual ce fac opțiunile de la **''dpkg-query''**. </note> | ||
Line 673: | Line 673: | ||
* Nu uitați să precedați comanda cu **''sudo''**, pentru că este vorba despre un task administrativ. | * Nu uitați să precedați comanda cu **''sudo''**, pentru că este vorba despre un task administrativ. | ||
- | <hidden> | + | <solution> |
<code bash> | <code bash> | ||
sudo apt-get purge "abiword" | sudo apt-get purge "abiword" | ||
</code> | </code> | ||
- | </hidden> | + | </solution> |