lab2 USO
-
Upload
mihai-stanescu -
Category
Documents
-
view
10 -
download
2
description
Transcript of 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ă linkuri 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/utilizareasistemelordeoperare/utilizareasistemelordeoperare1.html] despre comenzi de bază în Linux.
Arhivă laborator
lab02.tar.gz
Introducere
Repornirea calculatorului
Reporniți calculatorul dacă cineva a stat înaintea voastră la el. Dacă nu sunteți siguri, repornițil oricum, dureazădoar câteva minute. Obișnuițivă 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, toatetaskurile ș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 tabul urmator
Ctrl+PageUp pentru a merge la tabul 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
locuri specifice.
Pentru a intra întrun 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ă promptul se modifică. Noul director este ~/lab02, adică subdirectorul lab02 din homeulvostru.
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 întro 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
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 flaguri (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 flagurilor
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ă flaguri 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 întrun singur “cuvânt”.
Precizările de mai sus sunt valabile pentru majoritatea comenzilor.
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ă. Shellul 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ă sar tasta cd j_, apoi TAB, sar completa numele directorului automat la j_r_r_tolkien. Fără a apăsa Enter, dacă sar scrie prima literă (adică t) și apoi TAB, sar 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:
cat TODO
Linux este casesensitive. 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]
Shellul 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
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
aptget 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 Debianbased, 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ă sa instalat pachetul tree, executați comanda:
tree
aptget 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
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ă întrun terminal. Deschideți un terminal, folosind de exemplu Activities șicăutare după “terminal”. Ultima linie din terminal, promptul 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țivă 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?
Shellul trimite comenzii mkdir două argumente, isaac și asimov. Nu este efectul urmărit.Creați directorul dorit, încadrând întreg numele prin ghilimele. Astfel, shellul va ști că este vorba de un
singur argument.
Un alt mod de a face acest lucru este escaparea spațiului, precedândul 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țil 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
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 linkul.Folosiți o cale relativă pentru a crea linkul.
Comanda folosită este ln, dar trebuie să folosiți un parametru adițional pentru a specifica faptul că linkulcreat 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 linkului 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
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
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 întrunul 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ă deburi
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/enus/getskype/onyourcomputer/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 frontend grafic pentru utilitarul dpkg. După ce ați dezinstalat Skypeul,reinstalațil î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"
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 “OriginalMaintainer” î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țil.
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/laborator02.txt ∙ Last modified: 2012/10/24 11:32 by paul.vlase