This is an old revision of the document!
Tutorial
apt-getHands-On
update-alternativesdpkgaptitudeReporniț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.
tar zxf ~/Downloads/lab02.tar.gz
lab02 în directorul vostru home. Dacă nu se specifică altfel, toate task-urile și căile pe disc sunt relative la directorul corespunzător arhivei laboratorului (lab02).cd lab02cd = change directory~/lab02, adică subdirectorul lab02 din home-ul vostru.ls.ls = listpwd.pwd = print working directoryman ls
/ (slash).n (next).n până ajungeți la opțiunea -l (use a long listing format).? (semnul întrebării) în loc de / (slash).q (quit).info. Pentru a ieși, folosiți aceeași tastă ca și pentru man.info ls
ls -l pentru a lista detaliat conținutul directorului.
Implicit, ls listează conținutul directorului curent. Putem specifica un alt director pe care să îl listeze dând numele lui ca parametru.
Listați conținutul directorului j_r_r_tolkien în două moduri:
lab02ls j_r_r_tolkienls fără alți parametri.Observați cum se face diferența între parametri (numele unui director) și flag-uri (care controlează comportamentul comenzii):
-) are semnificație specială
Vreți să obtineți o imagine de ansamblu a directorului lab02. Va trebui să îi listați recursiv conținutul.
ls și căutați cuvântul recursive.lab02, mutați-vă acolo.cd ...ls -R pentru a lista recursiv.Este util să listăm directorul atât recursiv, cât și în format lung.
ls -l -R pentru acest task.ls -lR. Puteți combina flag-uri scurte în acest mod.--recursive). Aceste forme se deosebesc prin prefixul de două caractere “minus” și nu pot fi combinate într-un singur “cuvânt”.
Intrați în directorul lab02/douglas_adams. Scopul este să ajungeți, folosind cd, în directorul lab02/j_r_r_tolkien/the_lord_of_the_rings. Acest lucru se poate face în două moduri:
Astfel, va trebui să specificăm, separate prin /, directorul părinte, apoi restul căii:
cd ../j_r_r_tolkien/the_lord_of_the_rings
..)? Întrebați asistentul dacă nu este clar.cd ../../douglas_adams
j_r_r_tolkien, numit the_hobbit. Folosiți pentru acest lucru o cale absolută:cd /home/student/lab02/j_r_r_tolkien/the_hobbit
cd:cd -
cd fără parametri.Până acum, ați scris niște nume de fișiere și directoare lungi. Shell-ul vă poate ajuta completând automat numele unui fișier.
lab02/j_r_r_tolkien/the_lord_of_the_rings. Urmați pașii cu atenție și observați ce și cât se completează din nume.cd la, apoi TAB. Se completează numele directorului lab02.j, apoi TAB. Se completează din nou tot directorul.t, apoi TAB. Se completează the_.l, pentru a elimina ambiguitatea, apoi TAB.
Intrați în directorul lab02. Vizualizați conținutul fișierului TODO folosind comanda cat:
cat TODO
todo, TODO sau Todo.T urmat de TAB.cat = concatenate. Comanda concatenează conținutul fișierelor date ca parametru și îl afișează pe ecran.
cat: dacă se dă un singur fișier, conținutul său este concatenat cu … nimic. Rezultatul este afișarea conținutului fișierului.
O metodă eficientă prin care puteți afla numele unei comenzi este cu ajutorul apropos.
apropos "remove files"
rmrm, rulați comanda which rm
/bin, citiți din carte capitolul
Shell-ul reține o istorie a comenzilor rulate.
history
history 10
Pentru acasă: Căutați diverse metode prin care puteți vizualiza și edita fișiere.
apropos editor. Testați câteva editoare.
Redenumiți directorul j_r_r_tolkien astfel încât să conțină numele întreg al autorului:
mv j_r_r_tolkien john_ronald_reuel_tolkien
Gandalf este un personaj care apare nu numai în Lord of the Rings, ci și în The Hobbit. Copiați fișierul corespunzător:
cp john_ronald_reuel_tolkien/the_lord_of_the_rings/gandalf john_ronald_reuel_tolkien/the_hobbit
Cineva a făcut o glumă nesărată și l-a adăugat pe Edward ca personaj în Hitchhiker's Guide to the Galaxy. Ștergeți-l din structură:
rm douglas_adams/the_hitchhikers_guide_to_the_galaxy/edward
Chiar dacă a fost omorât la finalul primei părți, Boromir este un personaj important în trilogia Lord of the Rings. Adăugați-l la lista de personaje:
touch john_ronald_reuel_tolkien/the_lord_of_the_rings/boromir
touch creează un fișier dacă nu există, dar are un alt rol. Citiți primele rânduri din pagina de manual pentru a vedea ce face.TODO și urmați instrucțiunile.j_k_rowlingmkdir j_k_rowlingharry_potter și câteva fișiere reprezentând personaje din aceste cărți.
Vizualizați întreg directorul lab02 sub formă de arbore.
tree.Multe din programele pe care le vom folosi nu vin preinstalate. Pe Windows trebuia să rulați un executabil pentru a instala un program.
Pe sistemele Ubuntu, pachetele se instalează utilizând apt-get. De exemplu, pentru a instala tree trebuie să rulăm comanda:
apt-get install tree
Nu puteți instala pachetul, trebuie să fiți root (de ce?)
sudo apt-get install tree
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.
Verificați că s-a instalat tree:
tree
Există cazuri în care un pachet depinde de alt pachet.
Pentru instalarea unui pachet trebuiesc instalate toate dependențele acestuia.
Din fericire, apt-get știe să instaleze dependențele lipsă. Testați instalând ack-grep.
Observați că se vor instala mai multe pachete decât ați dorit voi.
Folosind man, identificați ce face ack-grep.
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 tags deb-src url version type tags
unde type reprezintă versiunea sistemului Ubuntu folosită (numele de cod al versiunii, de exemplu natty pentru 11.04 Natty Narwhall)
Puteți modifica oricând acest fișier. De exemplu, în cazul în care locația repository-urilor este prea departe, pentru o instalare mai rapidă se recomandă să modificați toate URL-urile.
Schimbați URL-urile din ro…. în en… (amintiți-vă cum făceați replace pe tot fișierul din laboratorul de Vim)
echo.TODO.> TODO după parametrii lui echo.cat. Observați că vechiul conținut a fost suprascris.TODO.>> TODO pentru a nu suprascrie conținutul vechi (mod append).echo este o formă foarte limitată de a scrie în fișiere. Citiți din carte secțiunea despre editorul Vim. Îl veți folosi într-un laborator ulterior.isaac asimov. Folosiți spații în nume.mkdir două argumente, isaac și asimov. Nu este efectul urmărit.\).rmdir pentru a șterge directorul isaac.rm pentru a șterge directorul asimov.rm. Identificați-l folosind pagina de manual sau cartea de USO.rmdir și rm cu acel parametru? Folosiți, din nou, manualul.echo pentru a scrie textul Old wise man în fișierul john_ronald_reuel_tolkien/the_lord_of_the_rings/gandalf.john_ronald_reuel_tolkien/the_hobbit/gandalf. De ce nu sunt cele două fișiere identice?the_lord_of_the_rings.ln, dar trebuie să folosiți un parametru adițional pentru a specifica faptul că link-ul creat trebuie să fie simbolic.ls în format lung pentru a confirma că fișierul nou este, de fapt, un link.gandalf din cele două directoare au același conținut.
Afișați conținutul tuturor fișierelor cu extensia conf din directorul /etc.
cat.
Folosiți du pentru a afla cât spațiu pe disc ocupă întreg directorul lab02.
du = disk usage
Folosiți df pentru a afla ce partiții există, ce dimensiune au și cât spațiu este ocupat pe acestea.
Folosiți tar pentru a arhiva directorul lab02.
lab02.tar, care nu este comprimatălab02.tar.gz, comprimată cu gzipCe constatați legat de dimensiunile fișierelor rezultate, raportat la dimensiunea directorului inițial?
unrar.atool.
Uneori, unele pachete se găsesc în repository-uri private, aparținând unor dezvoltatori Ubuntu. Acestea se găsesc pe Personal Package Archives (PPA)
Instalați pachetul gmchess.
Folosiți acest tutorial ca hint.
Putem instala un pachet și având descărcat fișierul .deb asociat. Trebuie să avem toate dependențele instalate sau să le instalăm noi.
Descărcați Skype și instalați folosind fișierul .deb obținut.
În trecut, pe Linux singura metodă de a instala ceva era compilarea din surse. Acum aproape toate sistemele oferă o metodă de instalare utilizând un package manager. Cu toate acestea, există situații când veți dori să instalați din surse (dacă pachetele sunt prea vechi, nu puteți să le luați din altă parte - PPA, deb sau versiunea următoare -).
pacman și yaourt).
Instalați din surse nmap
Există situații când avem mai multe programe cu aceeași funcționalitate: Firefox și Chromium pentru browsing, vim și nano pentru editare.
Programele care au nevoie, de exemplu, de un editor, nu vor apela direct unul din aceste editoare. În schimb, vor încerca să apeleze un editor generic, numit editor. Administratorul sistemului va configura legătura între editor și editorul folosit
Folosind update-alternatives setați ca editor vim.basic. Comanda visudo ar trebui să deschidă un editor vim.
În spate, update-alternatives realizează un symlink între cele 2 executabile.
Verificați, utilizând which și ls -l care este executabilul apelat în momentul rulării comenzii vi.
Faceți astfel încât game să ruleze mahjongg (folosiți which pentru a vedea locația mahjongg).
În anumite cazuri veți dori să instalați un pachet din surse dar nu vreți ca resursele să fie instalate în directoarele standard (/usr/bin, /usr/lib de exemplu).
Pentru a putea rula executabilul instalat, puteti proceda în mai multe moduri:
* adăugați la PATH calea către noul executabil
* realizați un alias pentru executabil
* realizați un symlink pentru executabil și plasați link-ul într-un director din PATH
Primele două soluții vor fi analizate într-un laborator ulterior. Modul de aflare al directoarelor din PATH tot atunci.
Descărcați următorul program simplu. Vrem să-l rulăm ca pe o comandă oarecare. Realizați un link simbolic pentru test_ln_s în /bin. Ar trebui ca rulând comanda test_ln_s să putem rula executabilul.
Pe sistemele Debian based (Ubuntu e unul din ele) există și dpkg ca manager de pachete. Dacă avem acces la apt-get, dpkg e folosit doar pentru aflarea de informații înainte de instalarea unui pachet.
Folosiți dpkg pentru a lista toate pachetele legate de git (hint: *git*).
Cine este autorul original pentru pachetul tree?
Ce fișiere au fost instalate în sistem odată cu pachetul ack-grep?
Hint: vedeți în manual ce fac opțiunile de la dpkg-query.
gwibber 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, împreună cu toate fișierele sale de configurare.
apt-get.sudo, pentru că este vorba despre un task administrativ.Readline este o facilitate care ajută la editarea eficientă a comenzilor pe care le scriem în shell. Vom explora câteva concepte utile.
supercalifragilisticexpialidocious.
Alt-. (Alt și punct)?Alt din stânga tastaturii.mkdir folosind reverse search. Puteți citi mai multe despre acest concept aici, secțiunea Searching the command history.rm -rf /tmp. Nu apăsați enter. Alt-# (Alt și diez). cd -. Identificați o problemă a ei. Ce se întâmplă dacă o folosim de două ori consecutiv?pushd și popd. Cum putem afișa stiva de directoare, fără a o modifica?pushd și popd sunt comenzi built-in ale shell-ului. Drept urmare, nu au propria pagină de manual.bash. Folosiți pagina de manual aferentă pentru a găsi semnificația comenzilor pushd și popd.
Folosiți chroot pentru a face ca pwd în directorul
/tmp/chroot_jail să returneze /. Puteți naviga în exteriorul
directorului /tmp/chroot_jail, după ce ați făcut chroot?
Listați conținutul directorului din chroot. Faceți astfel încât listarea
să fie posibilă (pentru a ieși din jail folosiți exit)
/tmp/chroot_jail directoare pentru
executabilele bash, pwd (folosiți which pentru a afla locația
lor) și pentru bibliotecile necesare acestor programe (folosiți ldd
pentru a le afișa).
chroot pentru a crea un mediu virtual, protejat, pentru testarea unor aplicații. Tehnica este denumită sandboxing.