Shell-utvidelse og globbing
Forstå hvordan shell utvider kommandoer, blant annet med klammeparentesutvidelse, tildeutvidelse og globbingmønstre for filnavn.
Shell-utvidelse og globbing er en gratis leksjon i DevOps-bootcamp på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i DevOps-bootcamp, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.
Hva er shell-ekspansjon?
I Linux fungerer shell omtrent som en oversetter mellom Dem og operativsystemet. Før shell kjører kommandoen Deres, utfører den ofte litt «magi» som kalles ekspansjon.
Shell-ekspansjon betyr at shell ser etter spesialtegn eller mønstre i kommandoen Deres og erstatter dem med noe annet. Dette skjer før kommandoen faktisk kjøres, noe som sparer Dem for skriving og gjør kommandoene kraftigere!
Hjemmekatalogen med tilde `~`
Tilde-ekspansjon (~) er en svært praktisk snarvei. Den utvides automatisk til hjemmekatalogen til den gjeldende brukeren.
I stedet for å skrive /home/yourusername kan De bare bruke ~. Dette er spesielt nyttig når De navigerer til eller refererer til filer i hjemmekatalogen Deres.
echo ~
echo ~/DocumentsTilde for andre brukere
Tilde er ikke bare til bruk med Deres egen hjemmekatalog! De kan også bruke den til å referere til hjemmekatalogen til en annen bruker.
Ved å skrive ~username utvider shell dette til hjemmekatalogen til den angitte «username». Dette er nyttig når De skal få tilgang til delte filer eller konfigurasjoner.
~rootutvides til/root~guestutvides til/home/guest
Klammerekspansjon `{}`
Klammerekspansjon lar Dem generere vilkårlige tekststrenger. Det er en rask måte å opprette flere elementer fra ett enkelt mønster på, uten å måtte skrive inn alt.
Shell utvider innholdet i klammeparentesene {} til en liste med separate ord. Dette er svært nyttig når De skal opprette filer eller kataloger med lignende navn, eller kjøre kommandoer på flere elementer.
echo {apple,banana,cherry}Områder i klammerekspansjon
De kan også bruke klammerekspansjon til å generere sekvenser med tall eller bokstaver. Dette gjøres ved å bruke to elementer atskilt av .. i klammeparentesene.
Shell genererer alle elementene i sekvensen. Dermed blir det enkelt å opprette nummererte filer eller kataloger, eller gå gjennom et sett med verdier.
echo file_{1..3}.txt
echo {a..c}_report.logIntroduksjon til globbing
Globbing er shell sin måte å finne samsvarende filnavn og banenavn på ved hjelp av spesielle jokertegn. Det kan sammenlignes med å bruke et «søkemønster» for å finne filer.
Når De skriver en kommando som ls *.txt, sender ikke shell *.txt til ls. I stedet utvider den *.txt til en liste over alle samsvarende filer i den gjeldende katalogen, og sender deretter listen til ls.
Finn alle med `*`
Stjernen (*) er det vanligste jokertegnet. Den samsvarer med null eller flere tegn i et filnavn.
De kan bruke den til å finne enhver tegnsekvens, noe som gjør den svært fleksibel når De skal velge filer basert på deler av navnene deres.
mkdir -p glob_test
touch glob_test/report.txt glob_test/image.jpg glob_test/document.pdf
echo "Files ending in .txt:"
ls glob_test/*.txt
rm -rf glob_testFinn ett tegn med `?`
Jokertegnet spørsmålstegn (?) samsvarer med nøyaktig ett tegn.
Dette er nyttig når De kjenner den nøyaktige lengden på delen av filnavnet De vil finne, men ikke selve tegnet.
mkdir -p glob_test
touch glob_test/file1.log glob_test/file2.log glob_test/fileA.log
echo "Files matching file?.log:"
ls glob_test/file?.log
rm -rf glob_testSpesifikke tegn `[]`
De kan bruke hakeparenteser ([]) til å finne ethvert enkelttegn i et angitt sett med tegn.
Dette gir mer presis matching enn ?. De kan liste opp enkelttegn eller angi et område (for eksempel [a-z] for enhver liten bokstav eller [0-9] for ethvert siffer).
mkdir -p glob_test
touch glob_test/photoA.png glob_test/photoB.png glob_test/photoC.png glob_test/photoD.png
echo "Files matching photo[A-C].png:"
ls glob_test/photo[A-C].png
rm -rf glob_testKombinasjoner av globbing
De kan kombinere ulike globbing-mønstre og til og med klammerekspansjon for å velge filer på kraftfulle måter.
Shell behandler disse ekspansjonene fra venstre mot høyre og oppretter komplekse mønstre som samsvarer nøyaktig med det De trenger.
mkdir -p glob_test
touch glob_test/data_01.csv glob_test/data_02.txt glob_test/data_a.log glob_test/info_01.txt
echo "Files matching data_[0-9]*.{txt,csv}:"
ls glob_test/data_[0-9]*.{txt,csv}
rm -rf glob_testRask kontroll
Hvilken av følgende kommandoer viser filer med navnene report1.doc, report2.doc og report3.doc, men IKKE reportA.doc?
Oppsummering og neste trinn
Godt jobbet! De har lært hvordan shell utvider kommandoer før de kjøres. Denne «magien» gjør arbeidet på kommandolinjen langt mer effektivt.
- Tilde-ekspansjon (
~): En snarvei til hjemmekataloger. - Klammerekspansjon (
{}): Genererer tilpassede tekststrenger eller sekvenser. - Globbing (
*,?,[]): Finner samsvarende filnavn ved hjelp av jokertegn for kraftig mønsterbasert utvelging.
Det er viktig å forstå disse ekspansjonene for å kunne skrive effektive og konsise kommandoer. Fortsett å øve på dem!
Lær deg DevOps-bootcamp med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 142
- Leksjoner
- 568
Ofte stilte spørsmål
Er leksjonen «Shell-utvidelse og globbing» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien DevOps-bootcamp, inkludert «Shell-utvidelse og globbing», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.
Hva lærer jeg i «Shell-utvidelse og globbing»?
Forstå hvordan shell utvider kommandoer, blant annet med klammeparentesutvidelse, tildeutvidelse og globbingmønstre for filnavn. Du øver på DevOps-bootcamp med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med DevOps-bootcamp?
Ingen tidligere erfaring er nødvendig. DevOps-bootcamp på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Shell-utvidelse og globbing»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne DevOps-bootcamp-leksjonen?
Ja. Alle DevOps-bootcamp-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Jobbkontroll (bg, fg, jobs)
- Shell-utvidelse og globbing
- Aliaser og egendefinerte ledetekster
- Shell-funksjoner og gjenbrukbare kodebiter