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] 34543sbd48joq1v $ 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] bo543s4348jooq 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