A Linux Bash shell legerősebb tulajdonsága, hogy képes megkerülni a fájlokat, és hatékonyan átirányítani a be- és kimenetüket. A Linux speciális karaktereket vagy metakarakterekként ismert szimbólumokat használ, amelyek különleges jelentést adnak a shell-parancsoknak a fájlkeresés és a parancsok kapcsolata szempontjából.

A metakarakterek segítséget nyújtanak a fájlok listázásához, eltávolításához és másolásához Linuxon. Az egyes metakarakterek funkciója azonban eltér attól függően, hogy milyen parancsot használunk.

Ez a cikk részletes útmutatót nyújt a Linux különböző típusú metakaraktereiről. Végül elmagyarázzuk, hogyan segítenek ezek a speciális karakterek a parancsok összekapcsolásában és bővítésében.

A Linux shell lehetővé teszi a billentyűleütések mentését parancsok beírása közben a fájlok vagy könyvtárnevek közötti metakarakterek használatával. Ezek a karakterek segítenek fájlok csoportjára vagy könyvtárra hivatkozni, ahol listázhat, áthelyezhet vagy más tevékenységeket végezhet.

Íme néhány fájlillesztő metakarakter, amelyeket a Linux shell képes értelmezni:

instagram viewer
  • * (Csillag): Egy karakter egyszeri vagy többszöri előfordulására egyezik
  • ? (Kérdőjel): Egyetlen karakterre vagy minta előfordulására egyezik
  • [ ] (Szögletes zárójelek): Megfelel a szögletes zárójelben megadott kötőjellel elválasztott számoknak, szimbólumoknak vagy ábécéknek

A metakarakterek gyakorlásának ideális módja a Linuxban egy új üres mappa létrehozása a mappán belül /tmp Könyvtár.

sudo mkdir /tmp/meta

Most navigáljon a /tmp/meta könyvtárat használva a cd parancsot és új üres fájlokat hozhat létre az érintéssel, alábbiak szerint:

érintse alma.txt alma.sh ecet.php cat.txt citrom.txt juice.sh harcsa.sh 

Használja a következő parancsokat a "*" metakarakter, és jelenítse meg a kimeneteket:

ls c*
Kimenet:
harcsa.sh cat.txt cider.sh
ls c*h
Kimenet:
harcsa.sh almabor.sh
ls *r*
Kimenet:
almabor.sh ecet.php
sudo rm *p*

A fent említett parancs törli az összes fájlt, amelyek nevében a "p" betű szerepel. A módosítást az ls paranccsal ellenőrizheti az alábbiak szerint:

ls
Kimenet:
harcsa.sh cat.txt almabor.sh juice.sh citrom.txt

Íme néhány példa a "?" metakarakter a mintaillesztéshez:

egy?*
Kimenet:
apple.txt
ls c? t*
Kimenet:
harcsa.sh cat.txt

Az utolsó parancs minden olyan fájlra illeszkedik, amely ezzel kezdődik c és van t harmadik betűként (cat.txt, harcsa.sh stb.).

Most használja a [av]* opciót az ls paranccsal az összes fájl listázásához, amelyek bármelyikével kezdődnek a vagy v, alábbiak szerint:

ls [av]*
Kimenet:
alma.txt ecet.sh

Módosíthatja a fenti parancsot, hogy csak a betűvel végződő fájlokat listázza ki t:

ls [ac]*[t]
Kimenet:
alma.txt harcsa.txt macska.txt

Hasonlóképpen, a kötőjellel elválasztott betűket használhatja a tartományok meghatározására és a fájlok listázására az alábbiak szerint:

ls [a-j]*
Kimenet:
alma.txt harcsa.sh cat.txt almabor.sh juice.sh

A Bash átirányításának jobb megértése érdekében a Linuxban minden folyamat rendelkezik fájlleírókkal, amelyeket szabványos bemenetnek neveznek (stdin/0), szabványos kimenet (stdout/1), és standard hiba (stderr/2). Meghatározzák a parancsbemenet eredetét, és eldöntik, hova küldjék a kimenetet és a hibaüzeneteket.

Az átirányítási metakarakterek segítenek módosítani ezeket a műveleteket a tartalom I/O folyamatának átirányításával. Általában a Linux shell beolvassa a parancsbevitelt a billentyűzetről, és a kimenetet a képernyőre írja. A bemeneti átirányítás lehetővé teszi, hogy a parancs a tartalmat egy fájlból olvassa be a billentyűzet helyett, míg a kimeneti átirányítás a parancs kimenetét fájlba menti.

Más szavakkal, a Linux fájl átirányítási metakarakterei lehetővé teszik a tartalom átirányítását ide: (>) és innen (<) a fájlok. A három elsődleges átirányítási metakarakter a következő:

  1. <: A fájl tartalmát a parancshoz irányítja. Például a következő parancs kimenete kevesebb .bashrc ugyanaz mint kevesebb < .bashrc.
  2. >: A parancs kimenetét a fájlra irányítja. A parancs ls /etc > lists.txt a kimenetet a lists.txt fájlba menti.
  3. >>: Hozzáfűzi a parancs kimenetét a fájl tartalmához.

A wc a szószám rövidítése, és ezzel megjelenítheti a fájl közötti különbséget a kimenethez való hozzáfűzés előtt és után.

Összefüggő: Standard I/O megértése Linuxon

A kapcsos zárójel bővítő metakarakter lehetővé teszi a karakterek kibontását könyvtárak, fájlnevek vagy más parancssori argumentumok között. Például létrehozhat egy új könyvtárat merevítő benne /tmp mappát, és hozzon létre egy fájlkészletet a touch paranccsal az alábbiak szerint:

sudo mkdir /tmp/brace; cd /tmp/brace
érintési teszt{1,2,3,4,5}

Most az ls paranccsal ellenőrizheti, hogy a touch létrehozta-e a fájlokat, vagy sem.

ls
Kimenet:
teszt1 teszt2 teszt3 teszt4 teszt5

Több listát is megadhat a fájlnevek generálásához a lista elemeinek kombinációi alapján. Például:

érintse meg {alma, almabor, ecet}.{gyümölcs, folyékony, savanyú}
érintse meg az {a, b, c} gombot.{1,2,3}

Az utolsó parancs a következő fájlokat hozza létre az aktuális könyvtárban:

Az első parancs két kapcsos zárójelkészletet használ, hogy az egyes készletekben lévő fájlneveket a másikhoz társítsa. Az utolsó parancsot úgy is írhatja, hogy érintse meg az {a..c} gombot.{1..3} az a és c, valamint az 1 és 3 közötti tartomány megadásához.

A fájlok létrehozása mellett a kapcsos zárójelek kiterjesztését is használhatja fájlok eltávolítására vagy más helyekre másolására.

Íme egy táblázat néhány, a parancskapcsolathoz és -bővítéshez szükséges ismert metakarakterről nevükkel, leírásukkal és gyakorlati példákkal:

Név Leírás Példa
Cső (|) A parancskimenetet bemenetként csatlakoztatja a másik parancshoz. cat /etc/passwd | grep gyökér
Pontosvessző (;) Lehetővé teszi a szekvenciális parancsok egymás utáni végrehajtását. cd /etc; ls -la; chmod +x /tmp/script.php
"és" (&) Futtatja a folyamatokat vagy parancsokat a háttérben. find / -perm -u=s -type f &
dollár ($) Kibontja az aritmetikai kifejezést, és átadja a héjnak echo "A könyvtárban található összes fájl: $(ls | wc -l)"
Null átirányítás (2>) A szabványos hibaüzeneteket a /dev/null fájlba irányítja your_command 2>/dev/null
Circumflex (^) Megfelel minden olyan mintának, amely a ^ jellel kezdődő kifejezéssel kezdődik cd /etc/ssh; ls | grep ^s

A Linux metakaraktereit helyettesítő karaktereknek is nevezik, amelyek különleges jelentést adnak a parancsoknak, és szabályozzák azok viselkedését. A metakarakterek optimalizálják a felhasználó munkateljesítményét produktív környezetben, miközben megkerülik a fájlokat/könyvtárakat, és csatlakoztatják/kibővítik a Linux shell parancsait.

Emellett a metakarakterek a reguláris kifejezések építőkövei is. Ezenkívül a metakarakterek és használatuk megismerése fontos készség, amellyel rendelkeznie kell, ha Linux-barát felhasználó szeretne lenni.

Útmutató kezdőknek a reguláris kifejezésekhez Python használatával

Szeretné felgyorsítani Python-munkafolyamatát néhány egyszerű paranccsal? A reguláris kifejezések a barátok.

Olvassa el a következőt

RészvényCsipogEmail
Kapcsolódó témák
  • Linux
  • Linux Elementary
  • Linux Bash Shell
A szerzőről
Rumaisa Niazi (5 cikk megjelent)

Rumaisa a MUO szabadúszó írója. Sok kalapot viselt, a matematikustól az információbiztonság-rajongóig, és most SOC elemzőként dolgozik. Érdeklődési köre az új technológiákról, Linux disztribúciókról és az információbiztonsággal kapcsolatos bármiről való olvasás és írás.

Továbbiak Rumaisa Niazitól

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz műszaki tippekért, ismertetőkért, ingyenes e-könyvekért és exkluzív ajánlatokért!

Kattintson ide az előfizetéshez