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:
- * (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ő:
- <: A fájl tartalmát a parancshoz irányítja. Például a következő parancs kimenete kevesebb .bashrc ugyanaz mint kevesebb < .bashrc.
- >: A parancs kimenetét a fájlra irányítja. A parancs ls /etc > lists.txt a kimenetet a lists.txt fájlba menti.
- >>: 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.
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
- Linux
- Linux Elementary
- Linux Bash Shell
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.
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