Cea mai puternică caracteristică a shell-ului Linux Bash este capacitatea sa de a rezolva fișierele și de a redirecționa eficient intrarea și ieșirea acestora. Linux folosește caractere speciale sau simboluri cunoscute ca metacaractere care adaugă o semnificație specială unei comenzi shell în ceea ce privește căutarea fișierelor și conexiunea comenzilor.
Metacaracterele sunt utile în listarea, eliminarea și copierea fișierelor pe Linux. Cu toate acestea, funcția fiecărui metacaracter diferă în funcție de comanda cu care îl utilizați.
Acest articol oferă un ghid aprofundat despre diferitele tipuri de metacaractere în Linux. În cele din urmă, explicăm modul în care aceste caractere speciale ajută la conectarea și extinderea comenzilor.
Shell-ul Linux vă permite să salvați apăsările de taste în timp ce introduceți comenzi folosind metacaractere între fișiere sau nume de director. Aceste caractere vă ajută să vă referiți la un grup de fișiere sau un director pentru a enumera, muta sau efectua alte activități.
Acestea sunt câteva metacaractere de potrivire a fișierelor pe care shell-ul Linux le poate interpreta:
- * (asterisc): Se potrivește cu o singură apariție sau mai multe apariții ale unui personaj
- ? (Semnul întrebării): Se potrivește cu un singur caracter sau cu o apariție a unui model
- [ ] (Paranteza patrata): se potrivește cu orice număr, simbol sau alfabet separat prin cratime specificate în parantezele pătrate
O modalitate ideală de a exersa metacaracterele în Linux este prin crearea unui nou folder gol în interiorul /tmp director.
sudo mkdir /tmp/meta
Acum navigați în /tmp/meta director folosind comanda cd și creați noi fișiere goale folosind atingere, după cum urmează:
atingeți mere.txt cidru.sh oțet.php cat.txt lemon.txt juice.sh somn.sh
Utilizați următoarele comenzi pentru a testa "*" metacaracter și afișați ieșirile:
ls c*
Ieșire:
somn.sh cat.txt cidru.sh
ls c*h
Ieșire:
somn.sh cidru.sh
ls *r*
Ieșire:
cidru.sh otet.php
sudo rm *p*
Comanda menționată mai sus va șterge toate fișierele care conțin litera „p” în numele său. Puteți verifica modificarea folosind comanda ls după cum urmează:
ls
Ieșire:
somn.sh cat.txt cidru.sh suc.sh lemon.txt
Iată câteva exemple de „?" metacaracter pentru potrivirea modelului:
este a?*
Ieșire:
apple.txt
e c? t*
Ieșire:
somn.sh cat.txt
Ultima comandă se potrivește cu orice fișier care începe cu c si are t ca a treia literă (cat.txt, catfish.sh etc.).
Acum folosiți [av]* opțiunea cu comanda ls pentru a lista toate fișierele care încep cu oricare A sau v, după cum urmează:
ls [av]*
Ieșire:
oțet de mere.txt.sh
Puteți modifica comanda de mai sus pentru a lista numai fișierele care se termină cu litera t:
ls [ac]*[t]
Ieșire:
apple.txt somn.txt cat.txt
În mod similar, puteți utiliza literele separate cu cratime pentru a defini intervale și a lista fișiere după cum urmează:
ls [a-j]*
Ieșire:
apple.txt somn.sh cat.txt cidru.sh suc.sh
Pentru o mai bună înțelegere a redirecționării în Bash, fiecare proces din Linux are descriptori de fișiere, cunoscuți ca intrare standard (stdin/0), ieșire standard (stdout/1), și eroare standard (stderr/2). Ei determină originea intrării comenzii și decid unde să trimită mesajele de ieșire și de eroare.
Metacaracterele de redirecționare vă ajută să modificați aceste acțiuni prin redirecționarea fluxului I/O de conținut. În general, shell-ul Linux citește intrarea comenzii de la tastatură și scrie rezultatul pe ecran. Redirecționarea de intrare permite comenzii să citească conținutul dintr-un fișier în loc de o tastatură, în timp ce redirecționarea de ieșire salvează rezultatul comenzii într-un fișier.
Cu alte cuvinte, metacaracterele de redirecționare a fișierelor Linux vă permit să redirecționați conținutul către (>) și de la (<) fișierele. Cele trei metacaractere principale de redirecționare sunt:
- <: direcționează conținutul fișierului către comandă. De exemplu, ieșirea comenzii pentru mai putin .bashrc este la fel ca mai putin < .bashrc.
- >: direcționează ieșirea comenzii către fișier. Comanda ls /etc > lists.txt salvează rezultatul în fișierul lists.txt.
- >>: Adaugă rezultatul comenzii la conținutul fișierului.
wc înseamnă numărul de cuvinte și îl puteți folosi pentru a afișa diferența dintre fișier înainte și după adăugarea acestuia la ieșire.
Legate de: Înțelegerea I/O standard pe Linux
Metacaracterul de extindere acolade vă permite să extindeți caracterele în directoare, nume de fișiere sau alte argumente de linie de comandă. De exemplu, puteți crea un director nou bretele în interiorul /tmp folder și creați un set de fișiere folosind comanda tactilă, după cum urmează:
sudo mkdir /tmp/brace; cd /tmp/brace
test de atingere{1,2,3,4,5}
Acum, puteți verifica dacă touch a creat fișierele sau nu folosind comanda ls.
ls
Ieșire:
test1 test2 test3 test4 test5
Puteți specifica mai multe liste pentru a genera nume de fișiere pe baza combinațiilor elementelor din listă. De exemplu:
atingeți {măr, cidru, oțet}.{fructe, lichid, acru}
atingeți {a, b, c}.{1,2,3}
Ultima comandă va crea următoarele fișiere în directorul curent:
Prima comandă folosește două seturi de acolade pentru a asocia numele fișierelor din fiecare set cu celălalt. De asemenea, puteți scrie ultima comandă ca atingeți {a..c}.{1..3} pentru a specifica intervalul dintre a și c și 1 și 3.
În plus față de crearea fișierelor, puteți utiliza și extinderea acolade pentru a elimina sau a copia fișiere în alte locații.
Iată un tabel cu câteva metacaractere care trebuie cunoscute pentru conexiunea și extinderea comenzilor, cu numele, descrierea și exemplele lor de exersat:
Nume | Descriere | Exemplu |
---|---|---|
țeavă (|) | Conectează ieșirea comenzii ca intrare la cealaltă comandă. | cat /etc/passwd | rădăcină grep |
punct și virgulă (;) | Permite executarea comenzilor secvențiale, una după alta. | cd /etc; ls -la; chmod +x /tmp/script.php |
Ampersand (&) | Rulează procesele sau comenzile în fundal. | găsi / -perm -u=s -tip f & |
dolar ($) | Extinde expresia aritmetică și o transmite în shell | echo „Numărul total de fișiere din acest director sunt: $(ls | wc -l)” |
Redirecționare nulă (2>) | Redirecționează mesajele de eroare standard către fișierul /dev/null | comanda dvs. 2>/dev/null |
Circumflexă (^) | Se potrivește cu orice model care începe cu expresia urmată de ^ | cd /etc/ssh; ls | grep ^s |
Metacaracterele Linux sunt, de asemenea, cunoscute ca metacaractere care adaugă o semnificație specială comenzilor și controlează comportamentul acestora. Metacaracterele optimizează performanța de lucru a unui utilizator într-un mediu productiv în timp ce lucrează în jurul fișierelor/directoarelor și conectează/extinde comenzile shell Linux.
În plus, metacaracterele sunt și elementele de bază ale expresiilor regulate. De asemenea, învățarea despre metacaractere și utilizarea lor este o abilitate importantă pe care trebuie să o aveți dacă doriți să deveniți un utilizator pro-Linux.
Doriți să vă accelerați fluxul de lucru Python cu câteva comenzi simple? Expresiile regulate sunt prietenele tale.
Citiți în continuare
- Linux
- Linux elementar
- Linux Bash Shell
Rumaisa este un scriitor independent la MUO. Ea a purtat multe pălării, de la un matematician la un pasionat de securitate a informațiilor, iar acum lucrează ca analist SOC. Interesele ei includ citirea și scrierea despre noile tehnologii, distribuțiile Linux și orice despre securitatea informațiilor.
Aboneaza-te la newsletter-ul nostru
Alăturați-vă buletinului nostru informativ pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!
Click aici pentru a te abona