Sådan tilpasser du Bash Shell med shopt

Hvis du finjusterer din Bash-shells opførsel med shopt, kan du kontrollere over 50 indstillinger. Vi viser dig, hvordan du kan skræddersy dit Linux-system, præcis som du kan lide det.

Butikken Indbygget

Den indbyggede shopt er en del af alle versioner af Bash shell, så der er ingen grund til at installere noget. Antallet af tilgængelige muligheder i shopt er steget støt gennem årene. Så jo ældre version af Bash du har, jo kortere vil listen over shopt-muligheder være.

Hvis noget ikke ser ud til at virke på din maskine, skal du tjekke man-sideindgangen for Bash og kontrollere, at muligheden er tilgængelig i din version af shopt.

Vi dækker alle shopt muligheder nedenfor. Vi beskriver også, hvordan du bruger det og deler nogle eksempler. Derfra kan du tjekke Bash-man-siden eller GNU Bash Referencemanual for at se, om nogen af ​​disse muligheder lyder nyttige eller tiltalende.

Nogle shopt-muligheder er aktiveret som standard og er en del af Bashs standardadfærd. Du kan aktivere en shopt-mulighed som en kortvarig ændring til Bash. Det vil derefter vende tilbage til standardadfærden, når du lukker skallen.

Men hvis du ønsker, at en ændret adfærd skal være tilgængelig, når du starter en Bash-shell, kan du gøre ændringerne permanente.

Butikkens muligheder

Der er 53 shopt muligheder. Hvis du bruger shopt-kommandoen uden nogen muligheder, viser den disse. Hvis vi piper output gennem wc-kommandoen, vil det tæl linjer, ord og tegn for os. Fordi hver shopt-option er på sin egen linje, er antallet af linjer antallet af muligheder.

Vi skriver følgende:

shopt | wc

For at se alle mulighederne kan vi sende output gennem kolonnekommandoen for at vise valgmulighedernes navne i kolonnereller vi kunne røre det ind i mindre.

  Sådan indstiller du et rums stemning med smart belysning

Vi skriver følgende:

shopt | column

Find shopt i Linux-manualen

Afsnittet, der diskuterer shopt og dets muligheder, er i Bash-afsnittet i Linux-manualen. Bash-sektionen er over 6.000 linjer lang. Du kan finde beskrivelsen af ​​shopt med meget rulning, eller du kan bare søge efter den i manualen.

For at gøre det skal du åbne manualen i Bash-sektionen:

man bash

I manualen skal du trykke på / for at starte en søgning. Skriv følgende, og tryk derefter på Enter:

assoc_expand_once

Starten af ​​shoptoption-sektionen vises i man-vinduet.

Indstilling og frakobling af indstillinger

Brug følgende kommandoer for at indstille og deaktivere shopt-indstillinger:

-s: Indstil eller aktiver.
-u: Deaktiver eller deaktiver.

Fordi nogle indstillinger er aktiveret som standard, er det også praktisk at kontrollere, hvilke indstillinger der er aktiveret. Du kan gøre det med valgmulighederne -s og -u uden at bruge et indstillingsnavn. Dette får shopt til at liste de muligheder, der er til og fra.

Indtast følgende:

shopt -s

shopt -u | column

Du kan bruge en shopt-indstilling uden kommandoerne -s eller -u for at se til- eller fratilstanden for hver mulighed.

For eksempel kan vi skrive følgende for at kontrollere indstillingen af ​​histverify-indstillingen:

shopt histverify

Vi kan skrive følgende for at aktivere det:

shopt -s histverify

Derefter kan vi skrive følgende for at kontrollere det igen:

shopt histverify

Histverify-indstillingen ændrer, hvordan et aspekt af historiekommandoen fungerer. Normalt, hvis du beder historikken om at gentage en kommando ved at referere den efter nummer, f.eks. !245, hentes kommandoen fra kommandohistorikken og udføres med det samme.

Hvis du foretrækker at gennemgå en kommando for at sikre dig, at det er den, du forventede, og redigere den, hvis det er nødvendigt, skal du skrive følgende for at slå shopt histverify-indstillingen til:

!245

Kommandoen hentes og præsenteres på kommandolinjen. Du kan enten slette, redigere eller udføre det ved at trykke på Enter.

  Sådan finder du hele ord i MS Word i stedet for tekststrenge

Autocd-indstillingen

Med autocd-indstillingen slået til, hvis du skriver navnet på en mappe på kommandolinjen og trykker på Enter, vil det blive behandlet, som om du har skrevet cd foran den.

Vi skriver følgende for at aktivere autocd-indstillingen:

shopt -s autocd

Derefter skriver vi navnet på en mappe:

Documents

Indstillingen cdspell

Når cdspell-indstillingen er slået til, vil Bash automatisk rette simple stavefejl og tastefejl i mappenavne.

Vi skriver følgende for at indstille cdspell-indstillingen:

shopt -s cdspell

For at prøve at skifte til en mappe med små bogstaver, der skal have et stort begyndelsesbogstav, skriver vi følgende:

cd documents

Derefter kan vi skrive følgende for at prøve et mappenavn med et ekstra “t” i navnet:

cd ../Picttures

Bash skifter til hver mappe, uanset stavefejlene.

Indstillingen xpg_echo

Når xpg_echo-indstillingen er slået til, vil ekko-kommandoen adlyde escapede tegn, såsom n for ny linje og t for vandret tabulator.

Først skriver vi følgende for at sikre, at indstillingen er indstillet:

shopt -s xpg_echo

Vi inkluderer derefter n i en streng, vi vil sende til ekko:

echo "This is line onenThis is line two"

Den undslupne ny-linje karakter fremtvinger et linjeskift i outputtet.

Dette producerer den samme adfærd som -e (muliggør escape-tolkning) echo option, men xpg_echo tillader det at være standardhandlingen.

Dotglob-muligheden

Dotglob-indstillingen skal behandles med en smule forsigtighed. Det tillader filer og mapper, der starter med et punktum (.), at blive inkluderet i navneudvidelser eller “globing”. Disse kaldes “punktfiler” eller “punktmapper”, og de er normalt skjulte. Dotglob-indstillingen ignorerer prikken i starten af ​​deres navne.

Først vil vi lave en søgning efter filer eller mapper, der ender på “nørd” ved at skrive følgende:

ls *geek

En fil er fundet og listet. Derefter slår vi dotglob-indstillingen til ved at skrive følgende:

shopt -s dotglob

Vi udsteder den samme ls-kommando for at lede efter filer og mapper, der ender på “nørd”:

ls *geek

Denne gang er to filer fundet og listet, hvoraf den ene er en prikfil. Du skal være forsigtig med rm og mv, når du har sat indstillingen for dotglob til.

  Sådan stopper du din Mac fra overophedning

Nocaseglob-muligheden

Nocaseglob-indstillingen minder om dotglob-indstillingen, bortset fra at nocaseglob forårsager, at forskelle i store og små bogstaver i filnavne og mapper ignoreres i navneudvidelser.

Vi skriver følgende for at lede efter filer eller mapper, der starter med “hvordan”:

ls how*

En fil er fundet og listet. Vi skriver følgende for at aktivere nocaseglob-indstillingen:

shopt -s nocaseglob

Derefter gentager vi ls-kommandoen:

ls how*

To filer er fundet, hvoraf den ene indeholder store bogstaver.

Gøre ændringer permanent

De ændringer, vi har foretaget, vil kun vare, indtil vi lukker den nuværende Bash-shell. For at gøre dem permanente på tværs af forskellige shell-sessioner, skal vi tilføje dem til vores “.bashrc”-fil.

I dit hjemmebibliotek skal du skrive følgende kommando for at åbne “.bashrc”-filen i den grafiske Gedit-teksteditor (eller ændre den i overensstemmelse hermed for at bruge den editor, du foretrækker):

gedit .bashrc

Gedit-editoren åbnes med “.bashrc”-filen indlæst. Du vil se, at nogle butiksposter allerede er i den.

Du kan også tilføje dine egne shopt-muligheder her. Når du har tilføjet dem, skal du gemme dine ændringer og lukke editoren. Nu, når du åbner en ny Bash-shell, vil dine muligheder blive indstillet for dig.

Muligheder så langt øjet rækker

Det er rigtigt, at shopt-kommandoen har mange muligheder, men du behøver ikke at tage fat i dem alle på én gang, hvis nogensinde. Da der er så mange, er der sandsynligvis nogle, der ikke vil være interessante for dig.

For eksempel er der en flok, der tvinger Bash til at fungere på måder, der er kompatible med specifikke, ældre versioner. Det kan være nyttigt for nogen, men det er en ret nichesag.

Du kan gennemgå Bash man-side eller GNU Bash Referencemanual. Beslut dig for, hvilke muligheder der vil gøre en forskel for dig, og eksperimenter derefter med dem. Bare vær forsigtig med muligheder, der påvirker den måde, fil- og mappenavne udvides. Prøv dem med en godartet kommando, som ls, indtil du er fortrolig med dem.