Documente noi - cercetari, esee, comentariu, compunere, document
Documente categorii

Linix - Metacaracterele (Wildcards)

Linix - Metacaracterele (Wildcards)


Metacaracterele sunt caractere de la tastatura cu intelesuri speciale pentru shell. Ele reprezinta o caracteristica puternica a oricarui shell. O definitie generala a metacaracterului este: orice caracter de la tastatura care nu este alfanumeric. Metacaracterele sunt utilizate cu multe comenzi Linux pentru a avea mai multa flexibilitate. Unele dintre acestea folosite in Linux au functii similare cu cele din DOS. Asterisk-ul (*) si semnul intrebarii (?), de exemplu, sunt metacaractere, cunoscute si ca wildcard-uri, si sunt utilizate pentru a lucra mai eficient cu un grup de fisiere.

Este foarte important sa nu se foloseasca metacaractere atunci cand sunt numite fisierele sau directoarele. Punctul (.) si linia (_) sunt singurele caractere non-alfanumerice care nu sunt metacaractere. De aceea ele pot fi folosite in numele fisierelor. O linie de legatura(-), chiar daca este un metacaracter (utilizat pentru a delimita optiunile intr-o linie de comanda), poate fi si el utilizat la denumirea fisierelor.

Completarea automata

Shell-ul poate completa o comanda folosind [Tab], aceasta caracteristica este utila atunci cand avem fisiere cu nume lungi.


$ touch microprocessor[Enter]

$ touch microscopic[Enter]

$ touch supersonic[Enter]

$ ls sup[Tab]

$ ls sup[Tab]ersonic[Enter]

$ ls mic[Tab]ro

$ ls mic[Tab]rop[Tab]rocessor[Enter]

Substituirea cu metacaractere

Aceasta este o modalitate alternativa pentru a completa o comanda; shell-ul este acela care schimba simbolurile cu informatiile corespunzatoare.


Asterisk

Acest simbol poate fi inlocuit cu o secventa de simboluri, de la zero la infinit.

$ ls [Enter]

$ ls * [Enter]


Comanda a doua este dferita, shell-ul inlocuieste * cu lista fisierelor si a subdirectoarelor din directorul current. Aceasta inseamna ca daca exista vre-un subdirector, continutul sau va fi afisat.


$ ls micro* [Enter]

microprocessor microscopic


poate fi inlocuit cu un sir nul:


$ touch millimicro [Enter]

$ ls *micro* [Enter]

microprocessor microscopic millimicro


Semnul intrebarii ?

Semnul intrebarii ? poate fi inlocuit doar cu un simbol.

Sa cream niste fisiere.


$ touch xy123j4 [Enter]

$ touch xy456j5 [Enter]

$ touch xy789j111 [Enter]

$ touch xy78j67 [Enter]

$ ls [Enter]

xy123j4

xy456j5

xy789j111

xy78j67

$ ls ?????j? [Enter]

xy123j4

xy456j5


Vom avea un rezultat diferit utilizand  *


$ ls *j* [Enter]

xy123j4 xy456j5 xy789j111 xy78j67


Parantezele patrate [ ]

Parantezele patrate sunt utilizate pentru a dispune de o categorie de simboluri din care sa alegem simbolurile substituente. Doar un simbol din cele listate este folosit.


$ ls xy????[4567]* [Enter]

xy123j4 xy456j5

$ ls xy????[4-7]* [Enter]



Redirectionarea intrarilor/iesirilor si pipeline

Shell-ul permite redirectionarea rezultatelor comenzilor de la monitor (dispozitivul de iesire standard). Acelasi lucru se intampla cu introducerea datelor (aici este vorba de tastatura). Pentru redirectionari se folosesc semnele > sau >> sau < .

Redirectionarea

$ ls -l > mylist [Enter]

$ cat mylist [Enter]


Pentru intrare .. in locul utilizarii intrarii standard (tastaura).

$ cat < mylist [Enter]


Adaugarea la un fisier.

$ ls -l /tmp >> mylist[Enter]

$ cat mylist[Enter]


Pipeline

Pipeline (|) este o modalitate de a redirectiona rezultatul sau intrarea unei comenzi.


$ cat mylist | sort [Enter]

$ cat < mylist | sort [Enter]


Mai usor fara pipeline.

$ sort < mylist[Enter]


Semnul ;


Semnul ; permite introducerea mai multor comenzi pe o singura linie de comanda.


$ touch xy123j4 ; cat mylist