lab2 USO

13
Laborator 02 Comenzi de bază. Gestiunea pachetelor Cheat sheet Comandă Descriere scurtă man afișează pagina de manual a unei comenzi which afișează calea executabilului unei comenzi apropos caută în paginile de manual history afișează ultimele comenzi rulate cd schimbă directorul curent pwd afișează directorul curent ls listează conținutul unui director cat afișează conținutul unui fișier rm șterge fișiere/directoare rmdir șterge directoare goale touch creează un fișier mkdir creează un director ln creează linkuri simbolice cp copiază fișiere/directoare mv mută/redenumește un fișier/director tar arhivare/dezarhivare apt-get managementul pachetelor Suport laborator 4.2. Tipuri de fișiere [http://books.google.com/books? id=_JFGzyRxQGcC&lpg=PA532&pg=PA74#v=onepage&q&f=false] 4.3. Operații uzuale asupra fișierelor și directoarelor [http://books.google.com/books? id=_JFGzyRxQGcC&lpg=PA532&pg=PA76#v=onepage&q&f=false] 4.4. Redirectări de comenzi [http://books.google.com/books? id=_JFGzyRxQGcC&lpg=PA532&pg=PA85#v=onepage&q&f=false] 3.2. Gestiunea pachetelor [http://books.google.ro/books? id=_JFGzyRxQGcC&lpg=PA532&pg=PA58&redir_esc=y#v=onepage&q&f=false] Puteți urmări tutorialul video făcut de IT Assistant [http://itassistant.org/diverse/utilizareasistemelordeoperare/utilizarea sistemelordeoperare1.html] despre comenzi de bază în Linux. Arhivă laborator lab02.tar.gz

description

USO din Politehnica

Transcript of lab2 USO

Page 1: lab2 USO

Laborator 02 ­ Comenzi de bază. Gestiunea pachetelor

Cheat sheet

Comandă Descriere scurtă

man afișează pagina de manual a unei comenzi

which afișează calea executabilului unei comenzi

apropos caută în paginile de manual

history afișează ultimele comenzi rulate

cd schimbă directorul curent

pwd afișează directorul curent

ls listează conținutul unui director

cat afișează conținutul unui fișier

rm șterge fișiere/directoare

rmdir șterge directoare goale

touch creează un fișier

mkdir creează un director

ln creează link­uri simbolice

cp copiază fișiere/directoare

mv mută/redenumește un fișier/director

tar arhivare/dezarhivare

apt-getmanagementul pachetelor

Suport laborator

4.2. Tipuri de fișiere [http://books.google.com/books?id=_JFGzyRxQGcC&lpg=PA532&pg=PA74#v=onepage&q&f=false]

4.3. Operații uzuale asupra fișierelor și directoarelor [http://books.google.com/books?id=_JFGzyRxQGcC&lpg=PA532&pg=PA76#v=onepage&q&f=false]

4.4. Redirectări de comenzi [http://books.google.com/books?id=_JFGzyRxQGcC&lpg=PA532&pg=PA85#v=onepage&q&f=false]

3.2. Gestiunea pachetelor [http://books.google.ro/books?id=_JFGzyRxQGcC&lpg=PA532&pg=PA58&redir_esc=y#v=onepage&q&f=false]

Puteți urmări tutorialul video făcut de IT Assistant [http://itassistant.org/diverse/utilizarea­sistemelor­de­operare/utilizarea­sistemelor­de­operare­1.html] despre comenzi de bază în Linux.

Arhivă laborator

lab02.tar.gz

Page 2: lab2 USO

Introducere

Repornirea calculatorului

Reporniți calculatorul dacă cineva a stat înaintea voastră la el. Dacă nu sunteți siguri, reporniți­l oricum, dureazădoar câteva minute. Obișnuiți­vă să faceți asta la fiecare laborator de USO înainte de a începe să lucrați.

Apăsând pe numele utilizatorului din partea din dreapta sus a ecranului apare un meniu ce are ca ultimă opțiuneSuspend. Apăsați tasta Alt din partea stângă a tastaurii pentru a vedea opțiunea Power Off…

Descărcarea arhivei laboratorului

Descărcați arhiva laboratorului de aici (lab02.tar.gz), în directorul implicit.Pentru dezarhivare folosiți comanda

tar -zxf ~/Downloads/lab02.tar.gz

La finalul laboratorului, veți înțelege ce face această comandă.

Dezarhivarea creează un director numit lab02 în directorul vostru home. Dacă nu se specifică altfel, toatetask­urile și căile pe disc sunt relative la directorul corespunzător arhivei laboratorului (lab02).

Fiecare laborator are asociată o arhivă. Trebuie să vă obișnuiți să o descărcați și dezarhivați înainte de a începelaboratorul.

Utilizare terminal

Puteți folosi următoarele scurtături în terminal:

Scurtătură Descriere

Ctrl+Shift+t pentru a deschide un nou tab

Ctrl+PageDown pentru a merge la tab­ul urmator

Ctrl+PageUp pentru a merge la tab­ul precedent

Alt+<index> pentru a sări direct la un tab

Ctrl+d pentru a închide un tab (sau comanda exit)

Pentru a naviga (scrolling) în cadrul unui terminal, mai ales atunci când o comandă afișează mult text, folosițiurmătoarele scurtături:

Scurtătură Descriere

Shift+PgDown pentru a derula în jos

Shift+PgUp pentru a derula în sus

Fișiere și directoare

Pentru a afla în ce director vă aflați, puteți folosi comanda pwd (print working directory). Trebuie să fiți tot timpulatenți în ce director vă aflați. Multe dintre exerciții se referă la crearea sau modificarea de fișiere și directoare în

Page 3: lab2 USO

locuri specifice.

Pentru a intra într­un director, trebuie folosită comanda cd (change directory).

Spre exemplu, pentru a intra în directorul asociat laboratorului se poate folosi comanda:

cd lab02

Observați că prompt­ul se modifică. Noul director este ~/lab02, adică subdirectorul lab02 din home­ulvostru.

Pentru a lista conținutul directorului curent, se poate folosi comanda ls (list).

Numele colorate în albastru sunt directoare. Cele cu alb sunt fișiere.Nu trebuie să vă bazați exclusiv pe culori. Acestea pot fi modificate folosind configurări speciale.

Pagini de manual

Pentru a afla mai multe informații despre o comandă, puteți apela la pagina acesteia de manual. Spre exemplu, pentru a accesa documentația comenzii ls:

man ls

Pentru a căuta după un cuvânt anume se folosește tasta / (slash) urmată de cuvântul căutat; apoi se apasă tastaEnter.

Puteți folosi următoarele taste:

Tastă Scurtă descriere

n (next) pentru a merge la următoarea apariție a cuvântului căutat

N (Shift + n) pentru a merge la precedenta apariție a cuvântului

q (quit) pentru a închide pagina de manual

Pentru a naviga într­o pagină de manual folosiți tastele:

Tastă Scurtă descriere

Enter pentru a derula în jos o linie

b (backward) sau Space pentru a derula în jos un ecran

f (forward) pentru a derula în sus un ecran

d (down) pentru a derula în jos jumătate de ecran

u (up) pentru a derula în sus jumătate de ecran

Listarea directoarelor

Listare în format lung

Pentru a afla mai multe informații despre un fișier, se folosește parametrul -l al comenzii ls.

Exemplu

Page 4: lab2 USO

ls -l

Listare a unui director diferit

Implicit, ls listează conținutul directorului curent. Putem specifica un alt director pe care să îl listeze dând numelelui ca parametru.

Exemplu

ls j_r_r_tolkien

Observați cum se face diferența între parametri (numele unui director) și flag­uri (care controlează comportamentulcomenzii):

un nume este interpretat ca un fișier sau director

un parametru care începe cu minus (-) are semnificație specială

Listare filtrată (globbing)

Putem folosi ls și șiruri speciale de caractere pentru a accesa anumite fișiere.

Exemplu Pentru a lista toate fișierele și directoarele din directorul /home putem folosi:

ls /home/*

Listare recursivă. Combinarea flag­urilor

Listarea recursivă oferă o imagine de ansamblu a unui director. Pentru a lista recursiv se folosește parametrul -R alcomenzii ls.

ls -R

Uneori este util să listăm directorul atât recursiv, cât și în format lung.Se poate folosi comanda:

ls -l -R

O formă echivalentă, ce combină flag­uri scurte este:

ls -lR

Majoritatea flagurilor au și o formă lungă (de exemplu --recursive). Aceste forme se deosebesc prin prefixulde două caractere “minus” și nu pot fi combinate într­un singur “cuvânt”.

Precizările de mai sus sunt valabile pentru majoritatea comenzilor.

Page 5: lab2 USO

Căi absolute și căi relative

O cale absolută începe întotdeauna cu /. O cale relativă se raportează la directorul curent.

Exemplu: Fie directorul /home/student/lab02/j_r_r_tolkien/the_lord_of_the_rings. Presupunem că directorul curent este /home/student/lab02.

Pentru a ajunge în directorul specificat se poate folosi, o cale absolută:

cd /home/student/lab02/j_r_r_tolkien/the_lord_of_the_rings

sau o cale relativă:

cd j_r_r_tolkien/the_lord_of_the_rings

Pentru a vă întoarce în directorul home, puteți folosi cd fără parametri.

. ­ directorul curent

.. ­ directorul părinte

Tab completion

Numele fișierelor și directoarelor pot fi lungi, iar uneori scrierea acestora poate deveni anevoioasă. Shell­ul vă poate ajuta completând automat numele unui fișier.

Exemplu Pornind de la exemplul anterior, presupunem că directorul curent este /home/student/lab02 și că sedorește schimbarea directorului, folosind o cale relativă:

cd j_r_r_tolkien/the_lord_of_the_rings

Comanda de mai sus ar putea fi scrisă mult mai ușor folosind facilitățile oferite de shell. Dacă s­ar tasta cd j_, apoi TAB, s­ar completa numele directorului automat la j_r_r_tolkien. Fără a apăsa Enter, dacă s­ar scrie prima literă (adică t) și apoi TAB, s­ar completa automat la the_.

Încă o apăsare a tastei TAB ar lista toate completările posibile.Apăsarea tastei l ar restricționa lista la toate fișierele/directoarele care încep cu the_l

Apăsarea tastei TAB va completa către calea completă

Laboratorul conține intentionat nume de fișiere și directoare foarte lungi, pentru a vă obișnui să folosiți tabcompletion.

Vizualizarea fișierelor

Pentru a vizualiza conținutul unui fișier se poate folosi comanda cat (concatenate). Comanda concatenează conținutul fișierelor date ca parametru și îl afișează pe ecran.

Exemplu: Pentru a vizualiza conținutul unui fișier numit TODO, se folosește comanda:

Page 6: lab2 USO

cat TODO

Linux este case­sensitive. Contează dacă scrieți todo, TODO sau Todo.

Se poate folosi tab completion pentru a scrie numele fișierelui.

Aici am folosit o situație particulară a comenzii cat: dacă se dă un singur fișier, conținutul său este concatenat cu… nimic. Rezultatul este afișarea conținutului fișierului.

Căutarea comenzilor

O metodă eficientă prin care puteți afla numele unei comenzi este cu ajutorul apropos.

Exemplu: Presupunem că vrem să aflăm numele unei comenzi care șterge fișiere. Se rulează comanda:

apropos "remove files"

Comanda de mai sus are următorul output:

git-rm (1) - Remove files from the working tree and from the indexrm (1) - remove files or directories

Comanda which poate fi folosită pentru a afla calea executabilului unei comenzi. Spre exemplu:

which rm

Afișează calea executabilului comenzii rm.

Pentru mai multe informații despre semnificația directorului /bin, citiți din carte capitolul 4.1.2 Ierarhia sistemuluide fișiere [http://books.google.ro/books?id=_JFGzyRxQGcC&lpg=PA532&pg=PA70#v=onepage&q&f=false]

Shell­ul reține o istorie a comenzilor rulate. Pentru a afișa ultimele comenzi rulate se poate folosi:

history

Operații pe fișiere și directoare

Comanda cu ajutorul căreia poate fi mutat un fișier sau un director este mv (move). Redenumirea unui fișier sau a unui director este considerată un caz special de mutare. Pentru a redenumi directorul j_r_r_tolkien în john_ronald_reuel_tolkien' se foloseștecomanda:

mv j_r_r_tolkien john_ronald_reuel_tolkien

Pentru a copia un fișier se folosește comanda cp (copy).

cp john_ronald_reuel_tolkien/the_lord_of_the_rings/gandalf john_ronald_reuel_tolkien/the_hobbit/gandalf

Page 7: lab2 USO

Nu uitați că puteți folosi tab completion.

Pentru a șterge un fișier se folosește comanda rm (remove).

rm douglas_adams/the_hitchhikers_guide_to_the_galaxy/edward

Pentru a crea un fișer se folosește comanda touch.

touch john_ronald_reuel_tolkien/the_lord_of_the_rings/boromir

Pentru a crea un director se folosește comanda mkdir.

mkdir j_k_rowling

apt­get fără dependențe

Multe din programele pe care le vom folosi nu vin preinstalate. Pe Windows trebuia să rulați un executabil pentru ainstala un program. Pe sistemele Debian­based, pachetele se instalează utilizând apt-get.

Comanda tree afișează structura de fișiere, în format arborescent. De exemplu, pentru a instala utilitarul treetrebuie să rulăm comanda:

apt-get install tree

Pentru instalare trebuie să fiti root.

sudo apt-get install tree

Vi se vor afișa operațiile care se vor executa și efectele asupra spațiului pe disk și apoi veți fi întrebați dacă vreți săcontinuați. Dintre cele 2 litere, y și n una este majusculă, semnificând opțiunea implicită: dacă nu introduceți nimicși apăsați doar pe Enter, se va considera respectiva opțiune.

Pentru a verifica că s­a instalat pachetul tree, executați comanda:

tree

apt­get cu dependențe

Există cazuri în care un pachet depinde de alt pachet. Pentru instalarea unui pachet trebuiesc instalate toatedependențele acestuia.

Din fericire, apt-get știe să instaleze dependențele lipsă. Testați instalând ack-grep. Se vor instala maimulte pachete decât ați dorit voi.

Pentru a identifica ce face comanda ack-grep se poate consulta secțiunea de manual:

man ack-grep

Package locations

Page 8: lab2 USO

Vă întrebați poate de unde se descarcă pachetele? Vizualizați conținutul fișierului/etc/apt/sources.list.

O linie specifică o posibilă sursă de pachete. Formatul este următorul:

deb url version type tagsdeb-src url version type tags

Vor exista situații în care veți dori modificarea acestui fișier, de exemplu pentru alegerea altor servere (mirror) pentrudescărcarea rapidă de pachete.

Exerciții

Următoarele exerciții se desfășoară într­un terminal. Deschideți un terminal, folosind de exemplu Activities șicăutare după “terminal”. Ultima linie din terminal, prompt­ul ar trebui să fie:

student@intel-workstation:~$

Pentru a rezolva următoarele exerciții, folosiți o copie nealterată a directorului corespunzător acestuilaborator.În cazul în care ați executat comenzi din secțiunea de Introducere, ștergeți directorul și dezarhivați din nou arhivalab02.tar.gz.

1. Scrierea în fișiere

Comanda echo poate fi folosită pentru a afișa text pe ecran.

echo "Ana are mere"

Scrieți textul “all done” în fișierul numit TODO.

Folosiți formularea comandă listă_parametri > fișier.

Vizualizați fișierul folosind cat. Observați că vechiul conținut a fost suprascris.Semnați­vă numele în fișierul numit TODO.

Folosiți formularea >> TODO pentru a nu suprascrie conținutul vechi (mod append).

Rezolvare

echo "all done" > TODOecho "Haralambie Popescu" >> TODO

2. Nume de fișiere și directoare care conțin spații

Creați directorul isaac asimov. Folosiți spații în nume.

Ce observați? Câte directoare și cu ce nume au fost create?

Shell­ul trimite comenzii mkdir două argumente, isaac și asimov. Nu este efectul urmărit.Creați directorul dorit, încadrând întreg numele prin ghilimele. Astfel, shell­ul va ști că este vorba de un

Page 9: lab2 USO

singur argument.

Un alt mod de a face acest lucru este escaparea spațiului, precedându­l cu un backslash (\).

Rezolvare

mkdir "isaac asimov"# saumkdir isaac\ asimov

3. Operații cu directoare

Acum aveți directorul dorit, dar și două în plus.

Folosiți rmdir pentru a șterge directorul isaac.Folosiți rm pentru a șterge directorul asimov.

Aveți nevoie de un parametru în plus pentru rm. Identificați­l folosind pagina de manual sau carteade USO.

Care este diferența dintre rmdir și rm cu acel parametru? Folosiți, din nou, manualul.

Rezolvare

rmdir isaacrm -r asimov

De asemenea, copiați directorul douglas_adams în același director părinte (lab02), cu numeledouglas_adams_copy

Dați parametrul potrivit comenzii cp pentru copierea recursivă de directoare

Rezolvare

cp -r douglas_adams douglas_adams_copy

4. Legături simbolice (symlinks)

Copiați fișierul gandalf din directorul j_r_r_tolkien/the_lord_of_the_rings/ în directorulj_r_r_tolkien/the_hobbit/.

RezolvareVă aflați în directorul lab03/

cd ./j_r_r_tolkien/cp ./the_lord_of_the_rings/gandalf ./the_hobbit/

Folosiți echo pentru a scrie textul Old wise man în fișierulj_r_r_tolkien/the_lord_of_the_rings/gandalf.

RezolvareVă aflați în directorul lab03/j_r_r_tolkien/

echo "Old wise man" > ./the_lord_of_the_rings/gandalf

Page 10: lab2 USO

Afișați conținutul fișierului j_r_r_tolkien/the_hobbit/gandalf. De ce nu sunt cele două fișiereidentice?

RezolvareVă aflați în directorul lab03/j_r_r_tolkien/

cat ./the_hobbit/gandalf

Veți observa că cele două fișiere sunt diferite.

Ștergeți ultimul fișier și creați în locul lui un link simbolic la fișierul din the_lord_of_the_rings.

Pentru simplitate, intrați întâi în directorul destinație, unde veți crea link­ul.Folosiți o cale relativă pentru a crea link­ul.

Comanda folosită este ln, dar trebuie să folosiți un parametru adițional pentru a specifica faptul că link­ulcreat trebuie să fie simbolic.

Folosiți ls în format lung pentru a confirma că fișierul nou este, de fapt, un link.

Afișați conținutul link­ului pentru a vă asigura că fișierele gandalf din cele două directoare au același conținut.

RezolvareVă aflați în directorul lab03/j_r_r_tolkien

cd ./the_hobbit/rm ./gandalfln -s ../the_lord_of_the_rings/gandalf .ls -l ./gandalfcat ./gandalf

5. Globbing

Afișați conținutul tuturor fișierelor cu extensia conf din directorul /etc.

Nu este nevoie să le afișați și pe cele din subdirectoare.

Folosiți o singură comandă cat.

Rezolvare

cat /etc/*.conf

Listați doar fișierele de configurare care încep cu litera a.

Rezolvare

ls /etc/a*.conf

Listați fișierele care conțin șirul de caractere nt din directorul /bin.

Rezolvare

ls /bin/*nt*

6. Utilizarea discului

Page 11: lab2 USO

Folosiți du pentru a afla cât spațiu pe disc ocupă întreg directorul lab02.

du = disk usageafișați doar totalul, nu cât ocupă fiecare fișier în parteafișați dimensiunea în format human readable

Rezolvare

du -hs lab02

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

Rezolvare

df -h

7. Arhivare

Folosiți tar pentru a arhiva directorul lab02.

Atenție: arhivați tot directorul, nu doar conținutul lui.Creați două arhive (folosind două comenzi separate):

lab02.tar, care nu este comprimatălab02.tar.gz, comprimată cu gzip

Ce constatați legat de dimensiunile fișierelor rezultate, raportat la dimensiunea directorului inițial?

Rezolvare

tar cf lab02.tar lab02tar czf lab02.tar.gz lab02

Linux oferă suport pentru majoritatea tipurilor de arhive. O particularitate este aceea că pentru arhivele RAR

va trebui să instalați de mână pachetul numit unrar.În mod normal, fiecare tip de arhivă are un program asociat. Pentru o tratare uniformă a arhivelor, puteți

folosi interfața grafică sau un pachet numit atool.

Intrați în directorul: ~/lab02/extra/. Dezarhivați arhiva secrete.zip și afișați conținutul fișierului textdin ea.

instalați pachetul zip folosind apt-getfolosiți comanda unzip

Rezolvare

cd ~/lab02/extra/sudo apt-get install zipunzip secrete.zipcat parola.txt

Page 12: lab2 USO

8. PATH

Programele pe care le pornim din linia de comandă, se găsesc în directoare stocate în PATH. Pentru a vedea listaacestor directoare, folosim:

echo $PATH

În directorul ~/lab02/extra există un fișier numit test_ln_s, care este un program executabil. Vrem să­l rulăm ca pe o comandă oarecare din terminal.

realizați un link simbolic pentru test_ln_s într­unul dintre directoarele din PATH (de exemplu, /bin)aveți grijă să folosiți calea absolută a executabilului test_ln_s

Ar trebui ca rulând comanda test_ln_s să putem rula executabilul.

Rezolvare

ln -s /home/student/lab02/extra/test_ln_s /bin

9. Instalare manuală deb­uri

Putem instala un pachet și având descărcat fișierul .deb asociat. Trebuie să avem toate dependențele instalatesau să le instalăm noi.

Descărcați Skype [http://www.skype.com/intl/en­us/get­skype/on­your­computer/linux/downloading.debian64] (pachetulDebian 6.0, pe 64 biți) și instalați folosind fișierul .deb obținut. Pentru aceasta, folosiți click dreapta și GDebiPackage Installer.

Aflați, din interfața grafică, numele maintainerului de pachet și adresa de email.

Dezinstalați, folosind tot GDebi Package Installer, pachetul skype.

10. dpkg

Pe sistemele Debian based (Ubuntu e unul din ele) există și dpkg ca manager de pachete. Dacă avem acces laapt-get, dpkg e folosit doar pentru aflarea de informații înainte de instalarea unui pachet.

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).

Rezolvare

dpkg -i "NUME_PACHET_SKYPE.deb"

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.

Rezolvare

dpkg -l "git" "tree" "ack-grep"sudo apt-get install "git" "tree" "ack-grep"

Page 13: lab2 USO

Folosiți dpkg pentru a lista toate pachetele legate de git (hint: *git*).

Rezolvare

dpkg -l "*git*"

Cine este autorul original pentru pachetul tree?

RezolvareCăutați “Original­Maintainer” în outputul comenzii:

dpkg -p "tree"

Ce fișiere au fost instalate în sistem odată cu pachetul ack-grep?

Rezolvare

dpkg -L "ack-grep"

Vedeți în manual ce fac opțiunile de la dpkg-query.

11. Dezinstalarea unui pachet

abiword este un pachet interesant pentru un utilizator obișnuit, dar nu și pentru laboratorul de USO. Dezinstalați­l.

Găsiți o metodă de a dezinstala pachetul din linie de comandă, împreună cu toate fișierele sale de configurare.

Folosiți pagina de manual a utilitarului apt-get.Nu uitați să precedați comanda cu sudo, pentru că este vorba despre un task administrativ.

Rezolvare

sudo apt-get purge "abiword"

uso/laboratoare/laborator­02.txt ∙ Last modified: 2012/10/24 11:32 by paul.vlase