Skip to main content

Linux Meta Tegn og deres Betydninger

Hvad er Linux og hvor kommer Linux fra? (Kan 2025)

Hvad er Linux og hvor kommer Linux fra? (Kan 2025)
Anonim

Ifølge Wikipedia er en metakarakter ethvert tegn, der har en særlig betydning, såsom et karat (^), dollar tegn ($) eller en stjerne (*).

Hvad angår Linux, er der et ret antal af disse metakarakterer, og deres betydninger varierer afhængigt af hvilken kommando eller program du kører.

Den fulde stop som en Metacharacter (.)

Det ydmyge fuldstop bruges til at donere den aktuelle position, når du kører kommandoer som cd, find eller sh, men inden for applikationer som awk, grep og sed er det brugt til at angive et hvilket som helst tegn.

Som et eksempel vil følgende kommando finde alle mp3-filer i den aktuelle mappe og nedenunder.

finde . -navn * .mp3

Hvis du kører den kommando i din nuværende arbejdskatalog (pwd), vil du sandsynligvis få resultater returneret, forudsat at du holder dine mp3-filer i en musikmappe i din hjemmemappe.

Se nu på denne kommando:

ps -ef | grep f..efox

PS-kommandoen indeholder alle de kørende processer på din computer. Grep-kommandoen tager linjer med input og søger efter et mønster.

Derfor får PS -ef kommandoen en liste over løbende processer og giver det til grep, som søger efter enhver linje i listen, der har f..fox hvor. kan betyde enhver karakter.

Hvis du har firefox løb, får du en kamp. På samme måde, hvis du har et program kaldet fonefox eller freefox kører, vil de også blive returneret.

Asterisken som en metakarakter (*)

Stjernen er en mere almindeligt kendt metakarakter og er vant til at betyde 0 eller mere, når man søger efter et mønster.

For eksempel:

finde . -navn * .mp3

* .Mp3 returnerer en kamp for ethvert filnavn, der slutter i .mp3. På samme måde kunne jeg have brugt asterisken med grep-kommandoen som følgende viser:

ps -ef | grep F * efox

Det er værd at bemærke, at dette adskiller sig lidt, fordi stjernen betyder nul eller mere så godt som at finde firefox, facefox og fonefox det kan også finde flutefox, ferretfox og endda bare fefox.

Carat som en Metacharacter (^)

Karatet (^) bruges til at angive starten på en linje eller en streng. Så hvordan bruges den?

Kommandoen ls bruges til at liste alle filer i en mappe som følger:

ls

Hvis du vil vide alle filerne i en mappe, der begynder med en bestemt streng som "gnome", kan karat bruges til at angive den pågældende streng.

For eksempel:

ls | grep ^ gnome

Bemærk, at dette kun viser filer, der starter med gnome. Hvis du vil have filer, der har en gnome i filnavnet hvor som helst, så ville du igen vende tilbage til asterisken.

I ovenstående eksempel returnerer ls en liste over filnavne og passerer den liste til grep, som bruges til mønstervalg. grep ved, at karatsymbolet betyder at finde noget, der starter med de tegn, der kommer efter det, og i dette tilfælde er det en gnome.

Dollarsymbolet som en metakarakter ($)

Dollarsymbolet kan have flere betydninger som en metakarakter inden for Linux.

Når det bruges til at matche mønstre betyder det det modsatte at karate og betegner ethvert mønster der slutter med en bestemt streng.

For eksempel:

ls | grep png $

Her vises alle filer, der slutter med png.

Dollarsymbolet bruges også til at få adgang til miljøvariabler i bash-skalen.

For eksempel:

eksporthund = mollyecho $ hund

Linjeporthunden = Molly opretter en miljøvariabel kaldet hund og indstiller dens værdi til molly. For at få adgang til miljøvariablen bruges symbolet $. Med $ -symbolet viser echo $-hundens udsagn molly, men uden det viser ekko-hundesætningen bare ordhunden.

Escaping Metacharacters

Nogle gange vil du ikke have metakarakteren at have en særlig betydning. Hvad hvis du har en fil kaldet f.refox og en fil kaldet firefox.

Se nu på følgende kommando:

ls | grep f.refox

Hvad synes du er returneret? Både f.refox og firefox returneres, fordi de begge matcher mønsteret.

For kun at returnere f.refox ville du nødt til at undslippe fuldstopet til faktisk at betyde et stop som følger:

ls | grep f . refox

Fælles Meta Tegn og deres Betydninger

Liste over Linux Metacharacters
KarakterBetyder
.Enhver karakter
*Nul eller flere tegn
^Match enhver linje eller streng, der starter med et mønster (dvs. gnome)
$Match enhver linje eller streng, der slutter med et mønster (dvs. gnome $)
Escapes den næste tegn for at fjerne dens særlige betydning
Match en af ​​en liste eller en rækkevidde (dvs. "abc", "def" eller 1..9
+Match et eller flere forudgående (dvs. grep a +)
?Match nul eller et foregående