Nejvýkonnější funkcí prostředí Linux Bash je jeho schopnost obcházet soubory a efektivně přesměrovat jejich vstup a výstup. Linux používá speciální znaky nebo symboly známé jako metaznaky, které dodávají příkazu shellu zvláštní význam s ohledem na vyhledávání souborů a připojení příkazů.

Metaznaky jsou užitečné při vypisování, odstraňování a kopírování souborů v systému Linux. Funkce každého metaznaku se však liší v závislosti na příkazu, se kterým je používáte.

Tento článek poskytuje podrobného průvodce různými typy metaznaků v Linuxu. Nakonec vysvětlíme, jak tyto speciální znaky pomáhají při spojování a rozšiřování příkazů.

Linuxové prostředí vám umožňuje ukládat stisknuté klávesy při psaní příkazů pomocí metaznaků mezi názvy souborů nebo adresářů. Tyto znaky vám pomohou odkazovat na skupinu souborů nebo adresář, kde můžete seznam, přesunout nebo provést jiné činnosti.

Toto jsou některé metaznaky odpovídající souborům, které může linuxový shell interpretovat:

  • * (hvězdička): Shoduje se s jedním nebo více výskyty znaku
  • instagram viewer
  • ? (Otazník): Odpovídá jednomu znaku nebo výskytu vzoru
  • [ ] (Hranaté závorky): Shoduje se se všemi pomlčkami oddělenými čísly, symboly nebo abecedami uvedenými v hranatých závorkách

Ideálním způsobem, jak procvičit metaznaky v Linuxu, je vytvoření nové prázdné složky uvnitř /tmp adresář.

sudo mkdir /tmp/meta

Nyní přejděte do /tmp/meta pomocí adresáře příkaz cd a vytvářet nové prázdné soubory pomocí dotyku, jak následuje:

dotyk jablko.txt jablečný mošt.sh ocet.php cat.txt citron.txt šťáva.sh sumec.sh 

Pomocí následujících příkazů otestujte "*" metaznak a zobrazte výstupy:

ls c*
Výstup:
sumec.sh cat.txt cider.sh
ls c*h
Výstup:
sumec.sh cider.sh
ls *r*
Výstup:
cider.sh ocet.php
sudo rm *p*

Výše uvedený příkaz smaže všechny soubory obsahující ve svém názvu písmeno "p". Změnu můžete ověřit pomocí příkazu ls takto:

ls
Výstup:
sumec.sh cat.txt cider.sh juice.sh lemon.txt

Zde je několik příkladů "?" metaznak pro shodu vzoru:

je?*
Výstup:
apple.txt
ls c? t*
Výstup:
catfish.sh cat.txt

Poslední příkaz odpovídá libovolnému souboru, který začíná C a má t jako třetí písmeno (cat.txt, catfish.sh atd.).

Nyní použijte [av]* pomocí příkazu ls vypíšete všechny soubory, které začínají kterýmkoli z nich A nebo proti, jak následuje:

ls [av]*
Výstup:
apple.txt ocet.sh

Výše uvedený příkaz můžete upravit tak, aby vypisoval pouze soubory, které končí písmenem t:

ls [ac]*[t]
Výstup:
apple.txt catfish.txt cat.txt

Podobně můžete použít písmena oddělená pomlčkami k definování rozsahů a seznamů souborů následovně:

ls [a-j]*
Výstup:
apple.txt sumec.sh cat.txt cider.sh juice.sh

Pro lepší pochopení přesměrování v Bash má každý proces v Linuxu deskriptory souborů, známé jako standardní vstup (stdin/0), standardní výstup (stdout/1), a standardní chyba (stderr/2). Určují původ vstupu příkazu a rozhodují, kam odeslat výstup a chybové zprávy.

Metaznaky přesměrování vám pomohou upravit tyto akce přesměrováním toku I/O obsahu. Obecně platí, že Linuxový shell čte vstup příkazu z klávesnice a zapisuje výstup na obrazovku. Přesměrování vstupu umožňuje příkazu číst obsah ze souboru místo z klávesnice, zatímco přesměrování výstupu ukládá výstup příkazu do souboru.

Jinými slovy, metaznaky přesměrování souborů Linux vám umožňují přesměrovat obsah na (>) a od (<) soubory. Tři primární metaznaky přesměrování jsou:

  1. <: Přesměruje obsah souboru na příkaz. Například výstup příkazu pro méně .bashrc je stejné jako méně < .bashrc.
  2. >: Přesměruje výstup příkazu do souboru. Příkaz ls /etc > listy.txt uloží výstup do souboru listů.txt.
  3. >>: Připojí výstup příkazu k obsahu souboru.

wc znamená počet slov a můžete jej použít k zobrazení rozdílu mezi souborem před a po jeho připojení k výstupu.

Příbuzný: Pochopení standardních I/O v Linuxu

Metaznak rozšíření složené závorky umožňuje rozšířit znaky napříč adresáři, názvy souborů nebo jinými argumenty příkazového řádku. Můžete například vytvořit nový adresář rovnátka uvnitř /tmp složku a vytvořte sadu souborů pomocí příkazu touch takto:

sudo mkdir /tmp/brace; cd /tmp/brace
dotykový test{1,2,3,4,5}

Nyní můžete pomocí příkazu ls zkontrolovat, zda touch vytvořil soubory nebo ne.

ls
Výstup:
test1 test2 test3 test4 test5

Můžete zadat více seznamů a generovat názvy souborů na základě kombinací prvků v seznamu. Například:

dotkněte se {jablko, jablečný mošt, ocet}.{ovoce, tekuté, kyselé}
klepněte na {a, b, c}.{1,2,3}

Poslední příkaz vytvoří v aktuálním adresáři následující soubory:

První příkaz používá dvě sady složených závorek k přiřazení názvů souborů v každé sadě k té druhé. Poslední příkaz můžete také napsat jako dotkněte se {a..c}.{1..3} k určení rozsahu mezi a a c a 1 a 3.

Kromě vytváření souborů můžete také použít rozšíření složených závorek k odstranění nebo kopírování souborů do jiných umístění.

Zde je tabulka některých nezbytných známých metaznaků pro připojení a rozšíření příkazů s jejich názvy, popisem a příklady k procvičení:

název Popis Příklad
Trubka (|) Připojuje výstup příkazu jako vstup k jinému příkazu. cat /etc/passwd | kořen grep
středník (;) Umožňuje provádět sekvenční příkazy, jeden po druhém. cd /etc; ls -la; chmod +x /tmp/script.php
Ampersand (&) Spouští procesy nebo příkazy na pozadí. najít / -perm -u=s -type f &
dolar ($) Rozbalí aritmetický výraz a předá jej shellu echo "celkový počet souborů v tomto adresáři je: $(ls | wc -l)"
Nulové přesměrování (2>) Přesměruje standardní chybové zprávy do souboru /dev/null your_command 2>/dev/null
Circumflex (^) Odpovídá libovolnému vzoru, který začíná výrazem následovaným ^ cd /etc/ssh; ls | grep ^s

Metaznaky Linuxu jsou také známé jako zástupné znaky, které dodávají příkazům zvláštní význam a řídí jejich chování. Metaznaky optimalizují pracovní výkon uživatele v produktivním prostředí při práci se soubory/adresáři a připojováním/rozšiřováním příkazů prostředí Linux.

Kromě toho jsou metaznaky také stavebními kameny regulárních výrazů. Také učení o metaznakech a jejich použití je důležitou dovedností, kterou musíte mít, pokud se chcete stát pro-Linuxovým uživatelem.

Průvodce pro začátečníky regulárními výrazy v Pythonu

Chcete urychlit svůj pracovní postup v Pythonu pomocí několika jednoduchých příkazů? Regulární výrazy jsou váš přítel.

Přečtěte si další

PodíltweetE-mailem
Související témata
  • Linux
  • Základní Linux
  • Linux Bash Shell
O autorovi
Rumaisa Niazi (Publikováno 5 článků)

Rumaisa je spisovatelkou na volné noze v MUO. Nosila mnoho klobouků, od matematičky po nadšence pro informační bezpečnost, a nyní pracuje jako analytička SOC. Mezi její zájmy patří čtení a psaní o nových technologiích, linuxových distribucích a všem kolem Information Security.

Více od Rumaisa Niazi

Přihlaste se k odběru našeho newsletteru

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné e-knihy a exkluzivní nabídky!

Chcete-li se přihlásit k odběru, klikněte sem