Den mest kraftfulde funktion ved Linux Bash-skallen er dens evne til at omgå filer og omdirigere deres input og output effektivt. Linux bruger specielle tegn eller symboler kendt som metategn, der tilføjer en speciel betydning til en shell-kommando med hensyn til filsøgning og kommandoforbindelse.

Metategnene er nyttige til at liste, fjerne og kopiere filer på Linux. Funktionen af ​​hvert metategn er dog forskellig afhængigt af den kommando, du bruger den med.

Denne artikel giver en dybdegående vejledning om forskellige typer metategn i Linux. Til sidst forklarer vi, hvordan disse specialtegn hjælper med at forbinde og udvide kommandoer.

Linux-skallen giver dig mulighed for at gemme tastetryk, mens du skriver kommandoer ved at bruge metategn mellem filer eller mappenavne. Disse tegn hjælper dig med at henvise til en gruppe filer eller en mappe, som du kan liste, flytte eller udføre andre aktiviteter på.

Dette er nogle fil-matchende metakarakterer, som Linux-skallen kan fortolke:

  • * (Asterisk): Matcher en enkelt eller flere forekomster af et tegn
  • instagram viewer
  • ? (Spørgsmålstegn): Matcher et enkelt tegn eller en mønsterforekomst
  • [ ] (firkantede parenteser): Matcher ethvert bindestreg-separeret tal, symbol eller alfabet, der er angivet inden for de firkantede parenteser

En ideel måde at øve metategn i Linux er ved at oprette en ny tom mappe inde i /tmp vejviser.

sudo mkdir /tmp/meta

Naviger nu ind i /tmp/meta bibliotek ved hjælp af cd kommandoen og oprette nye tomme filer ved hjælp af berøring, som følger:

touch apple.txt cider.sh eddike.php cat.txt citron.txt juice.sh havkat.sh 

Brug følgende kommandoer til at teste "*" metategn og vis udgangene:

ls c*
Produktion:
catfish.sh cat.txt cider.sh
ls c*h
Produktion:
havkat.sh cider.sh
ls *r*
Produktion:
cider.sh eddike.php
sudo rm *p*

Den førnævnte kommando vil slette alle filer, der indeholder bogstavet "p" i navnet. Du kan bekræfte ændringen ved at bruge ls-kommandoen som følger:

ls
Produktion:
havkat.sh cat.txt cider.sh juice.sh citron.txt

Her er nogle eksempler på "?" metategn for mønstermatchning:

er en?*
Produktion:
apple.txt
ls c? t*
Produktion:
catfish.sh cat.txt

Den sidste kommando matcher enhver fil, der begynder med c og har t som det tredje bogstav (cat.txt, catfish.sh osv.).

Brug nu [av]* mulighed med ls-kommandoen for at liste alle filer, der begynder med enten -en eller v, som følger:

ls [av]*
Produktion:
apple.txt eddike.sh

Du kan ændre kommandoen ovenfor til kun at vise filer, der ender med bogstavet t:

ls [ac]*[t]
Produktion:
apple.txt havkat.txt kat.txt

På samme måde kan du bruge bindestregadskilte bogstaver til at definere områder og listefiler som følger:

ls [a-j]*
Produktion:
apple.txt havkat.sh cat.txt cider.sh juice.sh

For en bedre forståelse af omdirigering i Bash har hver proces i Linux filbeskrivelser, kendt som standard input (stdin/0), standard output (stdout/1), og standardfejl (stderr/2). De bestemmer oprindelsen af ​​kommandoinputtet og bestemmer, hvor output- og fejlmeddelelserne skal sendes.

Omdirigeringsmetategnene hjælper dig med at ændre disse handlinger ved at omdirigere indholdets I/O-flow. Generelt læser Linux-skallen kommandoinputtet fra tastaturet og skriver outputtet til skærmen. Input-omdirigeringen tillader kommandoen at læse indholdet fra en fil i stedet for et tastatur, mens output-omdirigering gemmer kommando-outputtet til en fil.

Med andre ord giver Linux-filomdirigeringsmetategnene dig mulighed for at omdirigere indholdet til (>) og fra (<) filerne. De tre primære omdirigeringsmetakarakterer er:

  1. <: Leder filindholdet til kommandoen. For eksempel kommandoen output for mindre .bashrc er det samme som mindre < .bashrc.
  2. >: Leder kommandooutputtet til filen. Kommandoen ls /etc > lists.txt gemmer outputtet til lists.txt-filen.
  3. >>: Føjer kommandooutputtet til filindholdet.

wc står for ordantal, og du kan bruge det til at vise forskellen mellem filen før og efter tilføjelse af den med outputtet.

Relaterede: Forstå standard I/O på Linux

Metakarakteren til udvidelse af klammer giver dig mulighed for at udvide tegnene på tværs af mapper, filnavne eller andre kommandolinjeargumenter. For eksempel kan du lave en ny mappe bøjle inde i /tmp mappe og opret et sæt filer ved at bruge berøringskommandoen som følger:

sudo mkdir /tmp/brace; cd /tmp/brace
berøringstest{1,2,3,4,5}

Nu kan du kontrollere, om touch oprettede filerne eller ikke ved at bruge ls-kommandoen.

ls
Produktion:
test1 test2 test3 test4 test5

Du kan angive flere lister for at generere filnavne baseret på kombinationerne af elementerne på listen. For eksempel:

rør ved {æble, cider, eddike}.{frugt, flydende, sur}
tryk på {a, b, c}.{1,2,3}

Den sidste kommando vil oprette følgende filer i den aktuelle mappe:

Den første kommando bruger to sæt klammer til at knytte filnavne i hvert sæt til det andet. Du kan også skrive den sidste kommando som tryk på {a..c}.{1..3} for at angive området mellem a og c og 1 og 3.

Ud over at oprette filer kan du også bruge udvidelse af klammer til at fjerne eller kopiere filer til andre placeringer.

Her er en tabel over nogle metakarakterer, der skal kendes til kommandoforbindelse og udvidelse med deres navne, beskrivelse og eksempler til praksis:

Navn Beskrivelse Eksempel
Rør (|) Forbinder kommandoudgang som input til den anden kommando. kat /etc/passwd | grep root
Semikolon (;) Tillader udførelse af sekventielle kommandoer, den ene efter den anden. cd /etc; ls -la; chmod +x /tmp/script.php
Ampersand (&) Kører processerne eller kommandoerne i baggrunden. find / -perm -u=s -type f &
Dollar ($) Udvider det aritmetiske udtryk og sender det til skallen echo "samlede filer i denne mappe er: $(ls | wc -l)"
Nul omdirigering (2>) Sender standard fejlmeddelelser til filen /dev/null din_kommando 2>/dev/null
Circumflex (^) Matcher ethvert mønster, der begynder med udtrykket efterfulgt af ^ cd /etc/ssh; ls | grep ^s

Linux-metategn er også kendt som jokertegn, der tilføjer en særlig betydning til kommandoerne og styrer deres adfærd. Metategn optimerer en brugers arbejdsydeevne i et produktivt miljø, mens de arbejder omkring filer/mapper og forbinder/udvider Linux-shell-kommandoer.

Desuden er metategn også byggestenene i regulære udtryk. Også at lære om metakarakterer og deres brug er en vigtig færdighed at have, hvis du ønsker at blive en pro-Linux-bruger.

Begyndervejledningen til regulære udtryk med Python

Vil du fremskynde din Python-arbejdsgang med et par enkle kommandoer? Regelmæssige udtryk er din ven.

Læs Næste

DelTweetE-mail
Relaterede emner
  • Linux
  • Elementær Linux
  • Linux Bash Shell
Om forfatteren
Rumaisa Niazi (5 artikler udgivet)

Rumaisa er freelanceskribent på MUO. Hun har båret mange hatte, fra en matematiker til en informationssikkerhedsentusiast, og arbejder nu som SOC-analytiker. Hendes interesser inkluderer at læse og skrive om nye teknologier, Linux-distributioner og alt omkring informationssikkerhed.

Mere fra Rumaisa Niazi

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!

Klik her for at abonnere