Najvýkonnejšou vlastnosťou prostredia Linux Bash je jeho schopnosť efektívne obchádzať súbory a presmerovať ich vstup a výstup. Linux používa špeciálne znaky alebo symboly známe ako metaznaky, ktoré dodávajú príkazu shell špeciálny význam s ohľadom na vyhľadávanie súborov a pripojenie príkazov.
Metaznaky sú užitočné pri vypisovaní, odstraňovaní a kopírovaní súborov v systéme Linux. Funkcia každého metaznaku sa však líši v závislosti od príkazu, s ktorým ho používate.
Tento článok poskytuje podrobného sprievodcu rôznymi typmi metaznakov v systéme Linux. Nakoniec vysvetlíme, ako tieto špeciálne znaky pomáhajú pri spájaní a rozširovaní príkazov.
Linuxový shell vám umožňuje ukladať stlačenia klávesov pri písaní príkazov pomocou metaznakov medzi súbormi alebo názvami adresárov. Tieto znaky vám pomôžu odkazovať na skupinu súborov alebo adresár, na ktorom môžete vypísať, presunúť alebo vykonať iné činnosti.
Toto sú niektoré metaznaky zhodné so súbormi, ktoré môže shell Linuxu interpretovať:
- * (hviezdička): Zhoduje sa s jedným alebo viacerými výskytmi znaku
- ? (Otáznik): Zhoduje sa s výskytom jedného znaku alebo vzoru
- [ ] (Hranaté zátvorky): Zhoduje sa so všetkými číslami, symbolmi alebo abecedami oddelenými pomlčkou zadanými v hranatých zátvorkách
Ideálnym spôsobom, ako si precvičiť metaznaky v Linuxe, je vytvorenie nového prázdneho priečinka vo vnútri /tmp adresár.
sudo mkdir /tmp/meta
Teraz prejdite do /tmp/meta pomocou adresára príkaz cd a vytvárať nové prázdne súbory pomocou dotyku, nasledovne:
dotyk jablko.txt mušt.sh ocot.php cat.txt citrón.txt šťava.sh sumec.sh
Pomocou nasledujúcich príkazov otestujte "*" metaznak a zobrazte výstupy:
ls c*
Výkon:
sumec.sh cat.txt cider.sh
ls c*h
Výkon:
sumec.sh cider.sh
ls *r*
Výkon:
cider.sh ocot.php
sudo rm *p*
Vyššie uvedený príkaz vymaže všetky súbory, ktoré vo svojom názve obsahujú písmeno „p“. Zmenu môžete overiť pomocou príkazu ls takto:
ls
Výkon:
sumec.sh cat.txt jablčný mušt.sh džús.sh citrón.txt
Tu je niekoľko príkladov „?" metaznak na porovnávanie vzorov:
je?*
Výkon:
apple.txt
ls c? t*
Výkon:
catfish.sh cat.txt
Posledný príkaz sa zhoduje so súborom, ktorý začína c a má t ako tretie písmeno (cat.txt, catfish.sh atď.).
Teraz použite [av]* pomocou príkazu ls zobrazíte zoznam všetkých súborov, ktoré začínajú jedným a alebo v, nasledovne:
ls [av]*
Výkon:
jablko.txt ocot.sh
Vyššie uvedený príkaz môžete upraviť tak, aby uvádzal iba súbory, ktoré končia písmenom t:
ls [ac]*[t]
Výkon:
apple.txt catfish.txt cat.txt
Podobne môžete použiť písmená oddelené pomlčkou na definovanie rozsahov a zoznam súborov nasledovne:
ls [a-j]*
Výkon:
apple.txt sumec.sh cat.txt jablčný mušt.sh džús.sh
Pre lepšie pochopenie presmerovania v Bash má každý proces v Linuxe deskriptory súborov, známe ako štandardný vstup (stdin/0), štandardný výstup (stdout/1) a štandardná chyba (stderr/2). Určujú pôvod príkazového vstupu a rozhodujú o tom, kam poslať výstup a chybové hlásenia.
Metaznaky presmerovania vám pomôžu upraviť tieto akcie presmerovaním toku I/O obsahu. Vo všeobecnosti Linuxový shell číta vstup príkazu z klávesnice a zapisuje výstup na obrazovku. Presmerovanie vstupu umožňuje príkazu čítať obsah zo súboru namiesto klávesnice, zatiaľ čo presmerovanie výstupu ukladá výstup príkazu do súboru.
Inými slovami, metaznaky presmerovania súborov Linux vám umožňujú presmerovať obsah na (>) a od (<) súbory. Tri primárne metaznaky presmerovania sú:
- <: Nasmeruje obsah súboru na príkaz. Napríklad výstup príkazu pre menej .bashrc je to isté ako menej < .bashrc.
- >: Nasmeruje výstup príkazu do súboru. Príkaz ls /etc > zoznamy.txt uloží výstup do súboru lists.txt.
- >>: Pripojí výstup príkazu k obsahu súboru.
wc znamená počet slov a môžete ho použiť na zobrazenie rozdielu medzi súborom pred a po jeho pridaní k výstupu.
Súvisiace: Pochopenie štandardných I/O v systéme Linux
Metaznak rozšírenia zloženej zátvorky vám umožňuje rozšíriť znaky cez adresáre, názvy súborov alebo iné argumenty príkazového riadka. Môžete si napríklad vytvoriť nový adresár ortéza vnútri /tmp priečinok a vytvorte sadu súborov pomocou dotykového príkazu takto:
sudo mkdir /tmp/brace; cd /tmp/brace
dotykový test{1,2,3,4,5}
Teraz môžete pomocou príkazu ls skontrolovať, či dotyk vytvoril súbory alebo nie.
ls
Výkon:
test1 test2 test3 test4 test5
Môžete zadať viacero zoznamov na generovanie názvov súborov na základe kombinácií prvkov v zozname. Napríklad:
dotkni sa {jablko, mušt, ocot}.{ovocie, tekuté, kyslé}
dotknite sa {a, b, c}.{1,2,3}
Posledný príkaz vytvorí v aktuálnom adresári nasledujúce súbory:
Prvý príkaz používa dve sady zložených zátvoriek na priradenie názvov súborov v každej sade k tej druhej. Posledný príkaz môžete napísať aj ako dotknite sa {a..c}.{1..3} na určenie rozsahu medzi a a c a 1 a 3.
Okrem vytvárania súborov môžete použiť aj rozšírenie zložených zátvoriek na odstránenie alebo kopírovanie súborov do iných umiestnení.
Tu je tabuľka niektorých nevyhnutných známych metaznakov na pripojenie a rozšírenie príkazov s ich názvami, popisom a príkladmi na precvičenie:
názov | Popis | Príklad |
---|---|---|
Pipe (|) | Pripája výstup príkazu ako vstup k inému príkazu. | cat /etc/passwd | koreň grepu |
bodkočiarka (;) | Umožňuje vykonávať sekvenčné príkazy, jeden po druhom. | cd / atď; ls -la; chmod +x /tmp/script.php |
Ampersand (&) | Spúšťa procesy alebo príkazy na pozadí. | nájsť / -perm -u=s -type f & |
dolár ($) | Rozšíri aritmetický výraz a odovzdá ho shellu | echo "celkový počet súborov v tomto adresári je: $(ls | wc -l)" |
Nulové presmerovanie (2>) | Smeruje štandardné chybové hlásenia do súboru /dev/null | your_command 2>/dev/null |
Circumflex (^) | Zhoduje sa s akýmkoľvek vzorom, ktorý začína výrazom, za ktorým nasleduje ^ | cd /etc/ssh; ls | grep ^s |
Metaznaky Linuxu sú známe aj ako zástupné znaky, ktoré dodávajú príkazom špeciálny význam a riadia ich správanie. Metaznaky optimalizujú pracovný výkon používateľa v produktívnom prostredí pri práci so súbormi/adresármi a pripájaním/rozširovaním príkazov shellu Linux.
Okrem toho sú metaznaky aj stavebnými kameňmi regulárnych výrazov. Tiež učenie sa o metaznakoch a ich použití je dôležitá zručnosť, ktorú musíte mať, ak sa chcete stať pro-Linuxovým používateľom.
Chcete zrýchliť svoj pracovný postup v Pythone pomocou niekoľkých jednoduchých príkazov? Regulárne výrazy sú vaším priateľom.
Prečítajte si ďalej
- Linux
- Linux Elementary
- Linux Bash Shell
Rumaisa je spisovateľkou na voľnej nohe v MUO. Nosila veľa klobúkov, od matematičky až po nadšenca informačnej bezpečnosti, a teraz pracuje ako analytička SOC. Medzi jej záujmy patrí čítanie a písanie o nových technológiách, distribúciách Linuxu a všetkom okolo informačnej bezpečnosti.
prihlásiť sa ku odberu noviniek
Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné e-knihy a exkluzívne ponuky!
Kliknutím sem sa prihlásite na odber