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-get | managementul pachetelor |
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.
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
).
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ți următoarele scurtături:
Scurtătură | Descriere |
---|---|
Shift+PgDown | pentru a derula în jos |
Shift+PgUp | pentru a derula în sus |
Pentru a afla în ce director vă aflați, puteți folosi comanda pwd
(print working directory). Trebuie să fiți tot timpul atenț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 într-un director, trebuie folosită comanda cd
(change directory).
cd lab02
~/lab02
, adică subdirectorul lab02
din home-ul vostru.
Pentru a lista conținutul directorului curent, se poate folosi comanda ls
(list).
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ă tasta Enter
.
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 |
Pentru a afla mai multe informații despre un fișier, se folosește parametrul -l
al comenzii ls
.
Exemplu
ls -l
Implicit, ls
listează conținutul directorului curent. Putem specifica un alt director pe care să îl listeze dând numele lui ca parametru.
Exemplu
ls j_r_r_tolkien
-
) are semnificație specială
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/*
Listarea recursivă oferă o imagine de ansamblu a unui director. Pentru a lista recursiv se folosește parametrul -R
al comenzii 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 prefixul de două caractere “minus” și nu pot fi combinate într-un singur “cuvânt”.
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
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ă se doreș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_
.
TAB
ar lista toate completările posibile.l
ar restricționa lista la toate fișierele/directoarele care încep cu the_l
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
todo
, TODO
sau Todo
.
Se poate folosi tab completion pentru a scrie numele fișierelui.
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
.
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 index rm (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
.
/bin
, citiți din carte capitolul 4.1.2 Ierarhia sistemului de fișiere
Shell-ul reține o istorie a comenzilor rulate.
Pentru a afișa ultimele comenzi rulate se poate folosi:
history
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ște comanda:
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
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
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 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 tree
trebuie 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
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
. Se vor instala mai multe 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
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
Vor exista situații în care veți dori modificarea acestui fișier, de exemplu pentru alegerea altor servere (mirror) pentru descărcarea rapidă de pachete.
student@intel-workstation:~$
copie nealterată
a directorului corespunzător acestui laborator.lab02.tar.gz
.
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
.
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
.
>> TODO
pentru a nu suprascrie conținutul vechi (mod append).echo "all done" > TODO echo "Haralambie Popescu" >> TODO
Creați directorul isaac asimov
. Folosiți spații în nume.
mkdir
două argumente, isaac
și asimov
. Nu este efectul urmărit.\
).mkdir "isaac asimov" # sau mkdir isaac\ asimov
Acum aveți directorul dorit, dar și două în plus.
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.rmdir isaac rm -r asimov
De asemenea, copiați directorul douglas_adams
în același director părinte (lab02
), cu numele douglas_adams_copy
cp
pentru copierea recursivă de directoarecp -r douglas_adams douglas_adams_copy
Copiați fișierul gandalf
din directorul j_r_r_tolkien/the_lord_of_the_rings/
în directorul j_r_r_tolkien/the_hobbit/
.
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șierul j_r_r_tolkien/the_lord_of_the_rings/gandalf
.
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șiere identice?
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
.
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.
Afișați conținutul link-ului pentru a vă asigura că fișierele gandalf
din cele două directoare au același conținut.
cd ./the_hobbit/ rm ./gandalf ln -s ../the_lord_of_the_rings/gandalf . ls -l ./gandalf cat ./gandalf
Afișați conținutul tuturor fișierelor cu extensia conf
din directorul /etc
.
cat
.cat /etc/*.conf
Listați doar fișierele de configurare care încep cu litera a.
ls /etc/a*.conf
Listați fișierele care conțin șirul de caractere nt din directorul /bin
.
ls /bin/*nt*
Folosiți du
pentru a afla cât spațiu pe disc ocupă întreg directorul lab02
.
du
= disk usagedu -hs lab02
Folosiți df
pentru a afla ce partiții există, ce dimensiune au și cât spațiu este ocupat pe acestea.
df -h
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?
tar cf lab02.tar lab02 tar czf lab02.tar.gz lab02
unrar
.atool
.
Intrați în directorul: ~/lab02/extra/
. Dezarhivați arhiva secrete.zip
și afișați conținutul fișierului text din ea.
zip
folosind apt-get
unzip
cd ~/lab02/extra/ sudo apt-get install zip unzip secrete.zip cat parola.txt
Programele pe care le pornim din linia de comandă, se găsesc în directoare stocate în PATH. Pentru a vedea lista acestor 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.
test_ln_s
într-unul dintre directoarele din PATH (de exemplu, /bin
)test_ln_s
Ar trebui ca rulând comanda test_ln_s
să putem rula executabilul.
ln -s /home/student/lab02/extra/test_ln_s /bin
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 (pachetul Debian 6.0, pe 64 biți) și instalați folosind fișierul .deb
obținut. Pentru aceasta, folosiți click dreapta și GDebi Package Installer.
Aflați, din interfața grafică, numele maintainerului de pachet și adresa de email.
Dezinstalați, folosind tot GDebi Package Installer, pachetul skype
.
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.
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).
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
.
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*
).
dpkg -l "*git*"
Cine este autorul original pentru pachetul tree
?
dpkg -p "tree"
Ce fișiere au fost instalate în sistem odată cu pachetul ack-grep
?
dpkg -L "ack-grep"
dpkg-query
.
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.
apt-get
.sudo
, pentru că este vorba despre un task administrativ.sudo apt-get purge "abiword"