+ All Categories
Home > Documents > InfoAcademy-Linux_03 - Lucrul Cu Sistemul de Fisiere Rev.10[ENC].Unlocked

InfoAcademy-Linux_03 - Lucrul Cu Sistemul de Fisiere Rev.10[ENC].Unlocked

Date post: 02-Jun-2018
Category:
Upload: eddie-flores
View: 240 times
Download: 2 times
Share this document with a friend

of 14

Transcript
  • 8/10/2019 InfoAcademy-Linux_03 - Lucrul Cu Sistemul de Fisiere Rev.10[ENC].Unlocked

    1/14

    Ionut Cristian Morar 2008

    InfoAcademyCisco Networking Academy

    www.infoacademy.net

    Studentul poate utiliza prezentul material si informatiile continute in el exclusiv in scopul asimilarii cunostintelor pe care le include, fara a afecta dreptulde proprietate intelectuala detinut de InfoAcademy.

    1

    3. LUCRUL CU SISTEMUL DE FISIERE LINUX

    3.1. Cai in sistemul de fisiere ..................................................................................................... 2 3.2. Navigare .............................................................................................................................. 2

    3.3. Dimensiuni si spatiu liber.................................................................................................... 3 3.4. Listare directoare................................................................................................................. 4 3.5. Metacaractere in linia de comanda...................................................................................... 5 3.6. Creare fisiere/directoare ...................................................................................................... 6 3.7. Stergere fisiere/directoare ................................................................................................... 7 3.8. Copiere fisiere/directoare.................................................................................................... 7 3.9. Mutare/redenumire.............................................................................................................. 8 3.10. Vizualizarea completa sau partiala a continutului unui fisier ........................................ 8

    3.10.1. cat .............................................................................................................................. 8

    3.10.2. less............................................................................................................................. 9 3.10.3. head si tail ................................................................................................................. 9 3.11. Analiza continut fisier.................................................................................................... 10

    3.11.1. file ........................................................................................................................... 10 3.11.2. wc............................................................................................................................ 10

    3.12. Link-uri .......................................................................................................................... 11 3.12.1. Notiunea de inode ................................................................................................... 11 3.12.2. Hard link-uri si symbolic link-uri ........................................................................... 11

    3.13. Cautarea fisierelor.......................................................................................................... 12 3.13.1. Abordari .................................................................................................................. 12 3.13.2. Comanda find.......................................................................................................... 12 3.13.3. Comanda slocate ..................................................................................................... 13

    3.14. Filtrare si validare de text. Expresii model.................................................................... 13 3.14.1. Concepte ................................................................................................................. 13 3.14.2. Utilizarea comenzilor grep si egrep ........................................................................ 14

  • 8/10/2019 InfoAcademy-Linux_03 - Lucrul Cu Sistemul de Fisiere Rev.10[ENC].Unlocked

    2/14

    Ionut Cristian Morar 2008

    InfoAcademyCisco Networking Academy

    www.infoacademy.net

    Studentul poate utiliza prezentul material si informatiile continute in el exclusiv in scopul asimilarii cunostintelor pe care le include, fara a afecta dreptulde proprietate intelectuala detinut de InfoAcademy.

    2

    3.1. Cai in sistemul de fisiere

    O cale in sistemul de fisiere reprezinta "adresa" in arborele de fisiere a unui anumit fisier (oricare ar fi tipul lui).Ea este formata dintr-o succesiune de nume de fisiere (majoritatea fiind de tip director) separate de asemeneaprin /.

    Caile pot fi de doua feluri: absolute au ca referinta radacina sistemului de

    fisiere. O cale absoluta incepe cu simbolul pentruradacina sistemului de fisiere (/).

    Nota: in Windows o cale absoluta era obligata sa contina si identificatorul partitiei (c:, d:) si abia apoisimbolul pentru radacina sistemului de fisiere (\). In Linux arborele de fisiere este unic, de aceea caileabsolute incep direct cu /.

    relative au ca referinta directorul curent. Pentru a construi o cale relativa la acest director, pot fi folositesimboluri precum:

    o . desemneaza directorul curent. Exemplu: comanda ./configure executa fisierul configure dindirectorul curent

    o .. desemneaza directorul parinte al directorului curent. Exemplu: ../f1 se refera la un fisier aflatpe acelasi nivel din arborele de fisiere cu directorul curent

    Directorul curent este un artificiu creat pentru ca utilizatorul sa poata scrie cai mai scurte. Atunci cand "neaflam intr-un director", acest lucru nu inseamna decat ca undeva in memorie este stocata calea catre aceldirector, ea fiind folosita apoi pe post de prefix pentru caile care nu incep cu caracterul /. Exemplu: dacadirectorul curent este /var/www, iar noi aplicam o comanda fisierului localhost/index.html, atunci caleacompleta catre fisierul dorit este /var/www/localhost/index.html.

    In afara de . si .. exista si un alt simbol ce scurteaza caile scrise in linia de comanda: ~ (tilda), care este automatinlocuita cu calea catre directorul personal al utilizatorului curent. Daca un utilizator este logat in sistem cucontul student, atunci: ~ reprezinta /home/student ~/poze se refera la /home/student/poze ~info se refera la directorul personal al utilizatorului info ~info/comenzi.txt se refera la fisierul /home/info/comenzi.txt

    3.2. Navigare

    Comenzi introduse: cd, pwd

    Comanda pwd ("print working directory") afiseaza calea catre directorul curent. Existenta ei se justifica prinfaptul ca nu intotdeauna directorul curent este afisat in linia de comanda; shell-ul prezinta utilizatorului, instanga cursorului, asa-numitul "prompt string", care este insa configurabil, putand contine sau nu directorulcurent.

    prompt string

    student@server1 $student@server1 $student@server1 $student@server1 $ pwd/var/www

    Element Windows LinuxArbori de fisiere mai multi unulRadacina sistem(e) de fisiere c:\, d:\, /Separator elemente cale \ /Exemplu cale absoluta c:\temp\test.txt /tmp/test.txtExemplu cale relati a ..\d!\f! ../d!/f!

  • 8/10/2019 InfoAcademy-Linux_03 - Lucrul Cu Sistemul de Fisiere Rev.10[ENC].Unlocked

    3/14

    Ionut Cristian Morar 2008

    InfoAcademyCisco Networking Academy

    www.infoacademy.net

    Studentul poate utiliza prezentul material si informatiile continute in el exclusiv in scopul asimilarii cunostintelor pe care le include, fara a afecta dreptulde proprietate intelectuala detinut de InfoAcademy.

    3

    In acest caz, shell-ul a fost configurat ca prompt string-ul sa contina username-ul (student) si numele statiei(server1), insa nu si calea catre directorul curent.

    Nota: modalitatea de configurare a diferitelor aspecte ale shell-ului inclusiv prompt string va fi abordataintr-o lectie viitoare.

    Comanda cd ("change directory") este folosita pentru schimbarea directorului curent. Din momentul schimbarii,toate caile relative vor avea ca punct de pornire noul director curent.

    Argumente particulare: comanda cd rulata fara argumente este echivalenta cu cd ~ - noul director curent va fi directorul personal al

    utilizatorului logat argumentul (minus) pasat lui cd va determina schimbarea directorului curent cu cel imediat anterior (o

    modalitate echivalenta cu "back" din Windows Explorer)

    student@server1 $student@server1 $student@server1 $student@server1 $ cd /var/www

    student@server1 $student@server1 $student@server1 $student@server1 $ pwd/var/wwwstudent@server1 $student@server1 $student@server1 $student@server1 $ cd ..student@server1 $student@server1 $student@server1 $student@server1 $ pwd/varstudent@server1 $student@server1 $student@server1 $student@server1 $ cd logstudent@server1 $student@server1 $student@server1 $student@server1 $ pwd/var/logstudent@server1 $student@server1 $student@server1 $student@server1 $ cd -student@server1 $student@server1 $student@server1 $student@server1 $ pwd/varstudent@server1 $student@server1 $student@server1 $student@server1 $ cdstudent@server1 $student@server1 $student@server1 $student@server1 $ pwd/home/student

    3.3. Dimensiuni si spatiu liber

    Comenzi introduse: du, df

    Comanda df ("disk free") prezinta spatiul ocupat/disponibil pentru toate sistemele de fisiere montate. Estefolosita de obicei in combinatie cu optiunea h ("human-readable"), care afiseaza toate dimensiunile inKB/MB/GB (fara h, ele ar fi afisate in kocteti):

    student@server1 $student@server1 $student@server1 $student@server1 $ df

    Filesystem 1K-blocks sed !vailable se" #ounted on/dev/hda1 %&1'& 1%()' * %('*1 (+" //dev/hda, %'('1+) )&1* ** ,),(%+) )," /usr/local/dev/hda( ,+,,)'( )%11*)* %)))&( +)" /homestudent@server1 $student@server1 $student@server1 $student@server1 $ df hFilesystem i e sed !vail se" #ounted on/dev/hda1 .+0 1.%0 %),# (+" //dev/hda, %.)0 ). 0 ,.&0 )," /usr/local/dev/hda( ,.(0 ).'0 % +)" /home

    Comanda du ("disk usage") afiseaza dimensiunea directorului primit ca argument si a tuturor subdirectoarelordirecte. Exista si aici optiunea h, cu acelasi efect ca in cazul comenzii df. In plus, optiunea s (sum) vadetermina afisarea doar a dimensiunii argumentului:

  • 8/10/2019 InfoAcademy-Linux_03 - Lucrul Cu Sistemul de Fisiere Rev.10[ENC].Unlocked

    4/14

    Ionut Cristian Morar 2008

    InfoAcademyCisco Networking Academy

    www.infoacademy.net

    Studentul poate utiliza prezentul material si informatiile continute in el exclusiv in scopul asimilarii cunostintelor pe care le include, fara a afecta dreptulde proprietate intelectuala detinut de InfoAcademy.

    4

    student@server1 $student@server1 $student@server1 $student@server1 $ du -h /var/log/1(%K /var/log/cups,1 /var/log/samba(.1# /var/log/packages1.,# /var/log/scripts,1 /var/log/iptraf'1# /var/logstudent@server1 $student@server1 $student@server1 $student@server1 $ du hs /var/log'1# /var/log

    3.4. Listare directoare

    Comanda introdusa: ls

    Comanda ls este folosita pentru a lista in diferite moduri continutul directoarelor si detaliile despre fisierelecontinute (dimensiune, permisiuni, data crearii/modificarii etc).

    Folosita fara argumente, comanda prezinta o lista a fisierelor din directorul curent. ls poate primi ca argumentuna sau mai multe cai, comanda aplicandu-se pe rand fiecaruia dintre argumente.

    student@server1 $student@server1 $student@server1 $student@server1 $ pwd/home/student/ esktopstudent@server1 $student@server1 $student@server1 $student@server1 $ lspo e referat.pdf todo.t2tstudent@server1 $student@server1 $student@server1 $student@server1 $ ls po eprietena1.3pg prietena .3pgstudent@server1 $student@server1 $student@server1 $student@server1 $ ls . po e.4po e referat.pdf todo.t2t

    po e4prietena1.3pg prietena .3pg

    Iata cateva optiuni uzuale ale comenzii ls: -a (all) folosit pentru a afisa si fisierele "ascunse" cele ar caror nume incepe cu punct (ex: .ssh, .xinit).

    Proprietatea unui fisier de a fi ascuns nu este o setare de securitate masura a fost luata pentru a nu poluaoutput-ul comenzii ls cu fisiere de configurare. Un exemplu clasic este directorul personal al unui utilizator,unde multe aplicatii isi stocheaza setari sub forma unor fisiere si directoare ascunse.

    student@server1 $student@server1 $student@server1 $student@server1 $ ls po esotie.3pgstudent@server1 $student@server1 $student@server1 $student@server1 $ ls a po e. .. .amanta1.3pg .amanta .3pg sotie.3pg

    -R (recursiv) efectueaza listarea in profunzime a directoarelor pe care ls le primeste ca argument (fiecaresubdirector intalnit este listat la randul sau)

    student@server1 $student@server1 $student@server1 $student@server1 $ ls /home/student/ esktop5ome 6rash/student@server1 $student@server1 $student@server1 $student@server1 $ ls -7 /home/student/ esktop/home/student/ esktop/45ome 6rash/

    /home/student/ esktop/6rash4manea1.mp& manea .mp&

  • 8/10/2019 InfoAcademy-Linux_03 - Lucrul Cu Sistemul de Fisiere Rev.10[ENC].Unlocked

    5/14

    Ionut Cristian Morar 2008

    InfoAcademyCisco Networking Academy

    www.infoacademy.net

    Studentul poate utiliza prezentul material si informatiile continute in el exclusiv in scopul asimilarii cunostintelor pe care le include, fara a afecta dreptulde proprietate intelectuala detinut de InfoAcademy.

    5

    Nota: o alta solutie pentru listarea recursiva este comanda tree .

    -l (long listing) efectueaza o listare detaliata. Pentru fiecare fisier va fi afisata o linie asemanatoare cuurmatoarea:

    -rw-r--r-- catalin users +*& 8un **+ pic1.3pg

    Semnificatia elementelor este urmatoarea:o - (primul caracter de pe linie) indica tipul fisierului: - pentru fisiere obisnuite, d pentru

    directoare, l pentru symlink-uri etco rw-r--r-- reprezinta permisiunile pe fisier (lucrul cu sistemul de permisiuni va fi discutat pe larg

    intr-o lectie viitoare)o 2 reprezinta numarul de hard link-uri (cate nume are per total acel fisier). In Linux exista

    posibilitatea ca continutul aceluiasu fisier sa fie vizibil in mai multe puncte din arborele defisiere, sub diverse nume

    o catalin este owner-ul (proprietarul) fisierului. In general owner-ul unui fisier este cel care l-a

    creat, insa pot exista si exceptii (de exemplu, root poate schimba proprietarul fisierelor)o users este grupul proprietar. In Linux, fiecare fisier are un user si un grup proprietar.o 80 este dimensiunea in octeti a fisierului. Daca se doreste exprimarea ei in KB/MB/GB se poate

    folosi optiunea h a comenzii ls

    Atentie! In cazul unui director, aceasta nu este dimensiunea cumulata a fisierelor continute, cidoar marimea fisierului de tip director! Daca se intentioneaza obtinerea dimensiunii cumulate,se va folosi comanda du.

    o Jun 2 2008 reprezinta data ultimei modificari. Aceasta este numai una dintre cele 3 dateexistente pentru un fisier: data crearii, data ultimei modificari si data ultimei accesari

    o pic1.jpg numele fisierului

    -d (director) atunci cand unul dintre argumentele lui ls este un director, in loc sa se afiseze continutulacestuia va fi afisat chiar directorul. Optiunea este foarte utila in tandem cu l, permitand astfel vizualizareaproprietatilor unui director:

    student@server1 $student@server1 $student@server1 $student@server1 $ ls l po e-rw-r--r-- 1 catalin users ,(+,) 8un **+ pic1.3pg-rw-r--r-- 1 catalin users ('+%% 8un & **+ pic .3pgstudent@server1 $student@server1 $student@server1 $student@server1 $ ls ld po edrw2r-2r-2 catalin users %( 8un 1 **+ po e/

    3.5. Metacaractere in linia de comanda

    Deseori apare nevoia de a ne referi, din linia de comanda, la un intreg gup de fisiere sau directoare ceimpartasesc o caracteristica comuna. De exemplu, dorim sa stergem toate fisierele cu extensia mp3 dintr-undirector, vrem sa listam numai fisierele al caror nume incepe cu pic si se continua cu doua cifre etc. In acestscop exista mici constructii ce permit utilizatorului descrierea formatului numelui de fisier in locul numeluiexact.

    Constructiile amintite sunt create folosind tot caracterele obisnuite, afisabile pe ecran; in acest scop, unoradintre caractere li se confera semnificatii speciale, astfel incat interpretorul de comenzi sa recunoasca, pe bazaacestor caractere distinctive, intentia utilizatorului de a descrie formatul numelui unui fisier. Caracterele deacest fel poarta denumirea de metacaractere .

  • 8/10/2019 InfoAcademy-Linux_03 - Lucrul Cu Sistemul de Fisiere Rev.10[ENC].Unlocked

    6/14

    Ionut Cristian Morar 2008

    InfoAcademyCisco Networking Academy

    www.infoacademy.net

    Studentul poate utiliza prezentul material si informatiile continute in el exclusiv in scopul asimilarii cunostintelor pe care le include, fara a afecta dreptulde proprietate intelectuala detinut de InfoAcademy.

    6

    Iata in continuare cateva metacaractere si constructiile ce se pot realiza cu ajutorul lor:

    * - inlocuieste 0 sau mai multe caractere

    ls "d /mu#ica/a$ listea#a toate fisierele din /mu#ica al caror nume incepe cu a si are cel putin ! caracterls "l /%ome/$/&es'top listea#a detaliat continutul des'top urilor tuturor utili#atorilor din sistemls "ld /$ listarea detaliata a tuturor fisierelor/directoarelor din radacina

    ? inlocuieste un singur caracter.

    ls $. listea#a toate fisierele din directorul curent care au extensie de * caracterels d / r afisea#a fisierele din radacina al caror nume are * caractere si se termina cu r (usr si ar)

    [ - indica debutul unei constructii de tipul [], ce specifica un set de caractere permise. Constructia []inlocuieste un singur caracter, insa numai unul dintre cele cuprinse intre parantezele drepte:

    ls "l f+! -.txt afisea#a detaliile fisierelor f!.txt si f .txt din directorul curentls "l /po#e/po#a!+!* -. pg afisea#a detaliile fisierelor po#a!!. pg, po#a!*. pg si po#a! . pg din directorul /po#e

    Inauntrul parantezelor drepte pot fi folosite de asemenea:o intervale de caractere atunci cand se doreste specificarea unei succesiuni de caractere permise.

    Exemplu: [bcd] se poate scrie [b-d]o negari - caracterele ! sau ^, daca apar imediat dupa paranteza dreapta deschisa, au semnificatie

    de interzicere. Exemplu: [^a-d] sau [!a-d] inseamna "orice alt caracter decat a,b,c sau d".

    Atentie! "Orice alt caracter" inseamna nu doar celelalte litere, ci si cifre, semne de punctuatie

    etc.!

    o clase de caractere sunt de forma [ :nume_clasa: ] si descriu seturi de caractere uzuale. Iatacateva exemple:

    [[:alpha:]] litere ale alfabetului [[:alnum:]] caractere alfanumerice [[:digit:]] cifre [[:blank:]] SPACE sau TAB

    ls "l /de /+%s-da+! 0- afisea#a detaliile fisierelor corespun#atoare partitiilor primarels "l /po#e/po#a+1 2-. pg

    ls "l /po#e/po#a++:digit:--. pg

    listea#a toate fisierele din directorul /poze al caror nume este poza urmat de o cifra si care au

    extensia pgls "l ++:alp%a:--++:digit:-- toate fisierele al caror nume are 0 caractere, primele doua fiind o litera si o cifra

    Nota: metacaracterele descrise mai sus sunt repezinta o facilitate generala a shell-ului si pot fi folosite nu doar pentru ls, ci in cazul oricarei comenzi ce primeste ca argument o cale in sistemul de fisiere.

    3.6. Creare fisiere/directoare

    Comenzi introduse: touch, mkdir

    Comanda touch este folosita pentru crearea de fisiere. Ea accepta unul sau mai multe argumente; pentru fiecaredintre ele, comanda are doua efecte posibile: daca fisierul nu exista, este creat un fisier gol cu numele specificat

  • 8/10/2019 InfoAcademy-Linux_03 - Lucrul Cu Sistemul de Fisiere Rev.10[ENC].Unlocked

    7/14

    Ionut Cristian Morar 2008

    InfoAcademyCisco Networking Academy

    www.infoacademy.net

    Studentul poate utiliza prezentul material si informatiile continute in el exclusiv in scopul asimilarii cunostintelor pe care le include, fara a afecta dreptulde proprietate intelectuala detinut de InfoAcademy.

    7

    daca fisierul exista, este modificata doar data ultimei sale accesari

    touc% file! creea#a fisierul file! in directorul curenttouc% ../file creea#a fisierul file in directorul parintetouc% /tmp/file* creea#a fisierul file* in directorul /tmptouc% file! ../file /tmp/file* creea#a dintr o singura comanda toate cele * fisiere de mai sus

    Comanda mkdir este folosita pentru crearea de directoare. La fel ca si touch, poate accepta mai multeargumente.

    m'dir dir! creea#a subdirectorul dir! in directorul curentm'dir dir ../dir* creea#a subdirectorul dir in directorul curent si subdirectorul dir* in directorul parinte

    Atunci cand se incearca crearea unui director intr-o locatie inexistenta (ex: mkdir /dir1/dir2/dir3, iar dir1 si dir2nu exista), mkdir va afisa o eroare. Pentru a forta crearea tuturor directoarelor componente ale caii se folosesteoptiunea p ("parent"):

    mkdir p /dir1/dir /dir&

    3.7. Stergere fisiere/directoare

    Comanda introdusa: rm

    Comanda rm este folosita pentru stergerea oricarui tip de fisier (inclusiv directoare); in cazul directoarelor insaeste necesara folosirea optiunii r (recursiv). Atunci cand utilizatorul nu are drept de scriere pe un fisier, rmprezinta o cerere de confirmare, care poate fi inhibata cu optiunea f.

    Nota: in Linux, posibilitatea de a sterge un fisier rezulta nu din permisiunile pe acel fisier, ci din permisiunile pe directorul parinte. De aceea, este posibil ca utiliatorul, desi nu are drept de scriere pe un fisier, sa-l poatatotusi sterge.

    rm f! sterge fisierul f! din directorul curentrm /tmp/f+ *- sterge fisierele f si f* din directorul /tmprm "r /tmp/dir sterge directorul dir aflat in /tmp si intregul sau continut

    Optiuni de interes: -r (recursiv) folosita pentru stergerea recursiva a directoarelor -f (force) pentru a forta stergerea fisierelor fara afisare de avertizari sau mesaje de confirmare. A se folosi

    cu precautie! -i (interactiv) determina cererea unei confirmari de la utilizator inaintea fiecarei stergeri

    3.8. Copiere fisiere/directoare

    Comanda introdusa: cp

    Comanda cp este folosita pentru copierea fisierelor si directoarelor. Sintaxa sa generala este:

    cp optiuni fisier9e:;sursa destinatie

    unde sursa si destinatia pot fi fisiere sau directoare. Distingem urmatoarele cazuri:

  • 8/10/2019 InfoAcademy-Linux_03 - Lucrul Cu Sistemul de Fisiere Rev.10[ENC].Unlocked

    8/14

    Ionut Cristian Morar 2008

    InfoAcademyCisco Networking Academy

    www.infoacademy.net

    Studentul poate utiliza prezentul material si informatiile continute in el exclusiv in scopul asimilarii cunostintelor pe care le include, fara a afecta dreptulde proprietate intelectuala detinut de InfoAcademy.

    8

    sursa si destinatia sunt fisiere. In acest caz, cp creeaza o copie a fisierului sursa, ale carei locatie si numesunt cele specificate in cel de-al doilea argument. Atunci cand destinatia exista deja, ea va fi suprascrisa.

    cp f1.t2t f .t2tcp po a1.3pg /po e/po a).3pg

    sursa este formata dintr-unul sau mai multe fisiere iar destinatia este un director. In acest caz, cp va copiafisierele dedesubtul directorului tinta:

    cp po a1.3pg po a .3pg po a&.3pg /po e

    sursa este un director. In acest caz, pentru a copia directorul impreuna cu intregul sau continut, este necesarafolosirea optiunii r (recursiv):

    cp r /media/cdrom/

  • 8/10/2019 InfoAcademy-Linux_03 - Lucrul Cu Sistemul de Fisiere Rev.10[ENC].Unlocked

    9/14

    Ionut Cristian Morar 2008

    InfoAcademyCisco Networking Academy

    www.infoacademy.net

    Studentul poate utiliza prezentul material si informatiile continute in el exclusiv in scopul asimilarii cunostintelor pe care le include, fara a afecta dreptulde proprietate intelectuala detinut de InfoAcademy.

    9

    3.10.2. less

    Comanda less se foloseste in scopul afisarii controlate a unui continut prea extins pentru a incapea pe ecran. Oprima forma a sa este:

    less /etc/services

    Comanda less permite parcurgerea continutului in orice directiedorita, cautare de text etc. Cateva taste utile: sagetile sus-jos pot fi folosite pentru a parcurge linie cu

    linie continutul afisat SPACE afiseaza ecranul urmator /sir deplaseaza pozitia curenta la prima aparitie a sirului de

    caractere specificat. Daca se doreste gasirea urmatoareiaparitii se poate folosi n (next)

    q este folosit pentru a parasi less ("quit")

    O a doua forma de folosire a lui less (poate mai frecventa decat prima) este in capatul unui pipe ce produce unoutput prea bogat pentru a putea fi afisat pe ecran:

    ls -l /etc = less

    In acest exemplu, comanda ls l /etc produce o lista lunga de fisiere si directoare, care, in loc sa fie afisata peecran, va fi folosita ca input de catre comanda less, utilizatorul putand astfel parcurge lista dupa voie.

    3.10.3. head si tail

    Comenzile head si tail sunt folosite pentru a extrage in mod controlat primele, respectiv ultimele linii ale unuifisier sau output de comanda. Ca si less, pot fi folosite in doua forme: una in care se aplica direct unui fisier, sialta in care sunt folosite ca parte a unui pipe.

    Sintaxa pentru operarea pe continutul unui fisier:

    head optiuni fisiertail optiuni fisier

    Sintaxa pentru citirea din standard input:

    comanda1 = comanda = head optiuni = comanda & =>comanda1 = comanda = tail optiuni = comanda & =>

    In cea de-a doua forma, head preia output-ul comenzii 2, pastreaza doar primele nr_linii linii si le paseazacomenzii 3 ca input.

    Optiuni de interes pentru head: -n NR afiseaza primele NR linii din fisier sau output-ul comenzii anterioare

    Optiuni de interes pentru tail: -n NR afiseaza ultimele NR linii din fisier sau output-ul comenzii anterioare -n +NR afiseaza ultimele linii din fisier/input incepand cu linia NR

  • 8/10/2019 InfoAcademy-Linux_03 - Lucrul Cu Sistemul de Fisiere Rev.10[ENC].Unlocked

    10/14

    Ionut Cristian Morar 2008

    InfoAcademyCisco Networking Academy

    www.infoacademy.net

    Studentul poate utiliza prezentul material si informatiile continute in el exclusiv in scopul asimilarii cunostintelor pe care le include, fara a afecta dreptulde proprietate intelectuala detinut de InfoAcademy.

    10

    -f nu se opreste cand atinge sfarsitul fisierului, ci ramane conectat la acesta, afisand noile linii adaugate intimp real. Optiune utila pentru urmarirea fisierelor log (jurnal)

    Exemple:

    student@server1 $student@server1 $student@server1 $student@server1 $ cat nume#ihai?lena!ndrei

    oana0eorgestudent@server1 $student@server1 $student@server1 $student@server1 $ head n nume#ihai?lenastudent@server1 $student@server1 $student@server1 $student@server1 $ tail n 1 nume0eorgestudent@server1 $student@server1 $student@server1 $student@server1 $ tail A& nume = head -!ndrei

    oana

    3.11. Analiza continut fisier

    Comenzi introduse: file, wc

    3.11.1. file

    Comanda type determina cat mai multe informatii despre un fisier, incepand cu tipul acestuia (fisier obisnuit,director, fisier special etc) si continuand cu tipul de continut.

    student@server1 $student@server1 $student@server1 $student@server1 $ file /etc/etc4 directorystudent@server1 $student@server1 $student@server1 $student@server1 $ file /etc/hosts/etc/hosts4 ! B ?nglish te2tstudent@server1 $student@server1 $student@server1 $student@server1 $ file /bin/ls/bin/ls4 ?CF & -bit C D e2ecutableE ntel +*&+(E version 1 9 G:E dynamicallylinked 9uses shared libs:E strippedstudent@server1 $student@server1 $student@server1 $student@server1 $ file /usr/share/pi2maps/gnome-gimp.png/usr/share/pi2maps/gnome-gimp.png4

  • 8/10/2019 InfoAcademy-Linux_03 - Lucrul Cu Sistemul de Fisiere Rev.10[ENC].Unlocked

    11/14

    Ionut Cristian Morar 2008

    InfoAcademyCisco Networking Academy

    www.infoacademy.net

    Studentul poate utiliza prezentul material si informatiile continute in el exclusiv in scopul asimilarii cunostintelor pe care le include, fara a afecta dreptulde proprietate intelectuala detinut de InfoAcademy.

    11

    Exemple:

    3c "m /etc/termcap afisea#a numarul de caractere al fisierului /etc/termcapls /etc 4 3c l afisea#a numarul de fisiere din /etccat nume! nume 4 3c l afisea#a numarul total de linii din fisierele nume! si nume

    3.12. Link-uri

    3.12.1. Notiunea de inode

    Un fisier nu inseamna numai informatia continuta (text, imagine, sunet etc); sistemul de fisiere trebuie samemoreze, pe langa datele efective, detalii esentiale despre fisier, cum ar fi:

    tipul fisierului normal, director, special caracter sau bloc, link hard sau simbolic, named pipe owner-ul su userID-ul proprietarului fisierului grupID-ul asociat cu fisierul drepturile de citire/scriere/executie asociate owner-ului, grupului si restului lumii numarul de hard-link-uri catre fisier lungimea sa data creerii data ultimei modificari data ultimei accesari lungimea fisierului (numarul de octeti)

    Structura care memoreaza aceste informatii se numeste index node (pe scurt i-node ). Un inode memoreazatoate detaliile unui fisier in afara de numele acestuia. Pe langa lista de mai sus, inode-ul dispune si de o listaa blocurilor de date de pe hard-disk in care este stocat continutul fisierului. Fiecare inode este identificat printr-un numar.

    In figura alaturata este prezentatastructura bloc a sistemului de fisiere aflatpe o partitie Linux. Elementele ceintervin in figura sunt:

    Boot Block zona in care se afla bootloader-ul (programul raspunzator cu incarcarea sistemului deoperare)

    Super Block contine informatii despre sistemul de fisiere in ansamblul sau (numarul de blocuri de datesi dimensiunea acestora, mount point-ul, validitatea sistemului de fisiere etc)

    Inode List lista inode-urilor din sistemul de fisiere. Contine un numar limitat de structuri de tip inode Data Blocks zona in care este stocat continutul fisierelor. Fiecare inode face referire la unul sau mai

    multe blocuri de date din aceasta zona

    3.12.2. Hard link-uri si sym olic link-uri

    Prin intermediul link-urilor putem face ca un fisier sa fie vizibil simultan in mai multe directoare, fara insa aduplica continutul sau informational pe hard-disk.In Linux exista doua tipuri de link-uri:

    hard link - o asociere intre un nume de fisier si un inode. Numele fisierului nu este memorat in inode, ci indirectorul din care face parte. Un fisier de tip director este de fapt o lista de asocieri nume-inode.

    soft link (symbolic link) o asociere intre un nume de fisier si un alt fisier: o redirectionare, pe principiulshortcut-urilor din Windows, dar cu functionalitate extinsa

  • 8/10/2019 InfoAcademy-Linux_03 - Lucrul Cu Sistemul de Fisiere Rev.10[ENC].Unlocked

    12/14

    Ionut Cristian Morar 2008

    InfoAcademyCisco Networking Academy

    www.infoacademy.net

    Studentul poate utiliza prezentul material si informatiile continute in el exclusiv in scopul asimilarii cunostintelor pe care le include, fara a afecta dreptulde proprietate intelectuala detinut de InfoAcademy.

    12

    A crea un hard link inseamna de fapt a realiza o noua asociere intre un nume si un inode. Daca acel inode aveadeja numele fisier1 , hard link-ul va crea un al doilea nume pentru acelasi inode (si implicit pentru acelasicontinut de date).

    Comanda folosita pentru crearea unui hard link este ln :

    ln fisier_deja_existent nume_nou Exemplu: ln /etc/init.d/httpd /etc/rc.d/rc1.d/K30httpd

    In urma acestei operatiuni rezulta doua nume diferite care insa sunt complet echivalente; nici nu mai conteazacare a existat primul, deoarece amandoua se refera la acelasi inode si deci la aceleasi date. Numarul de hard-linkuri ale unui fisier poate fi evidentiat cu ajutorul comenzii ls l.

    Un soft link (numit si symbolic link , pe scurt symlink ) este un fisier care pointeaza catre altul; el ocupa un inodepropriu, si realizeaza o redirectionare catre fisierul tinta. Este o versiune imbunatatita a shortcut-urilor dinWindows. Se creaza cu aceeasi comanda dar cu optiunea s:

    ln s fisier_deja_existent fisier_shortcut Exemplu: ln s /usr/local/apache/bin/apachectl /bin/apachectl

    3.13. Cautarea fisierelor

    3.13.1. ! ordari

    Exista doua abordari ale cautarii fisierelor in sistemele de operare moderne: Cautarea efectuata direct in sistemul de fisiere. Are avantajul acuratetii maxime, insa poate consuma mult

    timp in cazul cautarii intr-un director foarte bogat in informatie. In Linux, aceasta abordare este folosita decomanda find

    Mentinerea unei baze de date (actualizata periodic) cu resursele continute in sistemul de fisiere. Cautarea seefectueaza in aceasta baza de date, avand avantajul unei viteze sporite, insa neoferind acuratete maxima(spre exemplu, nu vor fi gasite fisierele create dupa ultima actualizare a bazei de date). Aceasta abordareeste cea oferita de comenzile Linux locate sau slocate

    3.13.2. "omanda find

    Comanda find cauta direct in sistemul de fisiere, in toata adancimea directorului primit ca argument (cautarerecursiva). Ea permite specificarea unuia sau mai multor criterii de cautare sub forma unei expresii. Setul decriterii posibile este foarte bogat. Sintaxa comenzii este:

    sinta2a4 find findfindfind cale e2presie

    Iata cateva exemple de criterii elementare: -name nume permite filtrarea rezultatelor dupa numele fisierului. Se admit si wildcard-uri (ex: -name

    *jpg) -type tip cautare dupa tipul de fisier. Tip poate fi f pentru fisier obisnuit, d pentru director, l pentru

    symlink etc. -size dimensiune filtrare dupa marimea fisierului. Dimensiunea poate fi exprimata in octeti sau in multipli

    (ex: 10M, 5G). Daca se doreste o dimensiune mai mare decat un anumit prag, marimea fisierului va fiprecedata de caracterul +; pentru o dimensiune mai mica, se va folosi (exemplu: +3M, -200K)

  • 8/10/2019 InfoAcademy-Linux_03 - Lucrul Cu Sistemul de Fisiere Rev.10[ENC].Unlocked

    13/14

    Ionut Cristian Morar 2008

    InfoAcademyCisco Networking Academy

    www.infoacademy.net

    Studentul poate utiliza prezentul material si informatiile continute in el exclusiv in scopul asimilarii cunostintelor pe care le include, fara a afecta dreptulde proprietate intelectuala detinut de InfoAcademy.

    13

    -user user cautare dupa proprietarul fisierului (owner)

    Criteriile pot fi asociate folosind SI logic (a - implicit) si SAU logic (o), putandu-se astfel forma astfelexpresii complexe pentru filtrarea rezultatelor produse de find.

    Exemple:I cautarea tuturor fisierelor obisnuite mai mari decat 1* #Dfind / -type f si e A1*#

    I cautarea fisierelor mp& din /# J B! care il au ca owner pe andreifind /# J B! type f name Lmp&M user andrei

    3.13.3. "omanda slocate

    Comanda slocate are urmatoarele caracteristici: indexeaza sistemul de fisiere si creaza o baza de date cu continutul acestuia comparatie cu find

    o cautarea este mult mai rapida (cautarea se face in baza de date, nu in sistemul de fisiere)o setul de criterii este mult redus (compromis intre viteza si flexibilitate)

    cautare sigurao baza de date e criptata incremental (format binar)o in ea sunt memorate si permisiuni/ownership a.i. userii sa nu poata gasi fisiere la care nu ar avea

    acces constructia/updatarea bazei de date

    o baza de date este actualizata periodic (perioada default este de o zi)o locatie: /var/lib/slocate/slocate.dbo slocate u SAU updatedb (manual)o guvernata de fisierul /etc/updatedb.conf care specifica directoarele si tipurile de sisteme de

    fisiere ce trebuie excluse de la indexare

    3.14. Filtrare si validare de text. Expresii model

    3.1#.1. "once$te

    Deseori suntem pusi in situatia de a cauta intr-un text (fie el provenit dintr-un fisier sau din output-ul alteicomenzi) un sir de caractere pe care nu il cunoastem in intregime, ci caruia mai degraba ii cunoastem formatul.Aceasta necesitate apare atat in comenzile sistemelor de operare *nix cat si in fisierele de configurare ale

    diverselor servere, in limbaje de programare etc, iar solutia unanim acceptata o reprezinta expresiile-model(prescurtate in continuare EM).

    La fel cum, in cazul comenzii find, o expresie de cautare era formata dintr-un ansamblu de criterii elementare,si in cazul EM o astfel de expresie este constituita din expresii atomice, corespunzatoare unui singur caracter,dupa cum urmeaza: un caracter obisnuit, altul decat metacaracterele ^.[$()|*+?{\ , selecteaza chiar caracterul in cauza (altfel

    spus, cautand sirurile corespunzatoare expresiei Infoacademy vom gasi chiar acest sir de caractere) . corespunde oricarui caracter (folosind expresia an.a vom selecta in particular si sirurile anca si anda) caracterul \ joaca rolul de escape character ; pus in fata unui meta-caracter el ii elimina acestuia semnificatia

    speciala. Exemplu: expresia 30\.15\$ va selecta sirul 30.15$

  • 8/10/2019 InfoAcademy-Linux_03 - Lucrul Cu Sistemul de Fisiere Rev.10[ENC].Unlocked

    14/14

    Ionut Cristian Morar 2008

    InfoAcademyCisco Networking Academy

    www.infoacademy.net

    Studentul poate utiliza prezentul material si informatiile continute in el exclusiv in scopul asimilarii cunostintelor pe care le include, fara a afecta dreptulde proprietate intelectuala detinut de InfoAcademy.

    14

    un sir nevid de caractere inclus in paranteze drepte ([ ]) reprezinta o EM elementara care selecteazaoricare din caracterele din sirul respectiv (ex: [bf]an selecteaza oricare din sirurile ban si fan).o Caracterul - (minus) poate fi folosit aici pentru a indica un interval de caractere (ex: [b-d]ar selecteaza

    sirurile bar, car, dar).o Caracterul ^ se selecteaza pe el insusi, cu exceptia cazului cand se gaseste imediat dupa [ si are

    semnificatia de negare (ex: [^ab] inseamna orice caracter in afara de a si b)o Pot fi folosite clase de caractere (vezi manpage) folosind constructia [:nume_clasa:]; exemplu: expresia[[:upper:]][[:lower:]]+ selecteaza cuvintele care incep cu majuscula si au cel putin 2 litere

    Scrierea unei expresii model complexe se face prin combinarea urmatoarelor procedee: alaturarea de EM elementare. Ex: expresia [Aa]n[cd]a selecteaza sirurile anca,anda,Anca si Anda specificarea unui numar de repetitii pentru o portiune a expresiei

    Cu sintaxa EM{m,M}, unde m si M reprezinta numarul minim, respectiv maxim de repetitii. Exista sivariatiuni ale sintaxei: Expresia [A-Z][a-z]{2,5} selecteaza cuvintele care incep cu majuscula si au intre 3 si 6 litere. Expresia [A-Z][a-z]{2,} selecteaza cuvintele care incep cu majuscula si au cel putin 3 litere Expresia [A-Z][a-z]{2} selecteaza cuvintele care incep cu majuscula si au exact 3 litere

    Cu una dintre sintaxele simplificate: EM* semnifica repetarea de 0 sau mai multe ori a sirului selectat de catre EM EM+ semnifica repetarea de 1 sau mai multe ori a sirului selectat de catre EM EM? semnifica 0 sau 1 aparitii ale sirului selectat de catre EM

    gruparea unei portiuni a expresiei folosind paranteze, in scopul tratarii sale ca o singura entitate. Exemplu:expresia Mwa(ha){2,} va selecta sirul Mwahahaha

    ancorarea expresiei la inceput sau sfarsit de linie: ^EM sirul selectat de EM trebuie sa se gaseasca la inceput de linie EM$ - sirul selectat de EM trebuie sa se gaseasca la sfarsit de linie

    definirea mai multor expresii alternative, separate prin '|', care este un fel de echivalent al lui SAU logic.Exemplu: EM1|EM2|EM3 selecteaza un sir de caractere care corespunde oricareia din cele 3 expresii

    3.1#.2. %tili&area comen&ilor 're$ si e're$

    Comanda e grep cauta un sir de caractere in cadrul fisierelor din calea specificata si afiseaza liniile complete pecare este gasit sirul specificat. Specificarea sirului cautat se face folosind regex-uri. Sintaxa comenzii este:

    egrep [optiuni] EM

    Atunci cand fisierul(ele) lipsesc din linia de comanda, grep citeste din standard input. Cel mai adesea comandaegrep este utilizata cu piping pentru restrangerea output-ului altor comenzi sau pentru a gasi anumite siruri inacel output.

    Iata cateva optiuni utile ale comenzii egrep:

    -i determina o comparare case-insensitive a continutului fisierului cu modelul-n fiecare linie afisata este precedata de numarul sau din fisier (prima linie este 1)-v inversiune; sunt afisate doar liniile care NU corespund modelului-w cauta expresia ca pe un cuvant (ca si cum ar fi incadrata de \< si \>)

    Nota: spre deosebire de egrep, comanda grep incearca sa interpreteze din oficiu regex-ul primit ca pe un Basic Regular Expression si, in consecinta, caracterele *+?| nu vor functiona ca metacaractere, iar parantezele/acoladele vor trebui precedate de caracterul escape \.


Recommended