8 fakta, der gør Linux-bat-kommandoen bedre end cat

Indeks
  1. bat gør syntaksfremhævelse som standard
  2. bat nummererer linjer som standard
  3. bat kan fremhæve linjer eller intervaller
  4. bat fungerer godt med git
  5. bat opfører sig fornuftigt i en pipeline
  6. bat fungerer godt med man også
  7. bat har nogle virkelig nyttige konfigurationsmuligheder

Bat-programmet forbedrer filvisning med syntaksfremhævelse, linjenumre og interaktive pagere, hvilket gør det til en effektiv erstatning for cat-kommandoen i terminalen.

bat-programmet beskriver sig selv som “en katklon med vinger,” hvilket er en sjov analogi, men en smule misvisende. bat er et værktøj med to hovedformål: syntaksfremhævelse og markering af git-differencer.

For at forstå præcist, hvordan du bedst bruger bat, vil disse eksempler vise dig, hvordan kommandoen fungerer, og hvad dens forskellige muligheder giver dig mulighed for.

bat gør syntaksfremhævelse som standard

For at illustrere bats kernefunktion skal du blot køre den mod en kildekodefil på det sprog, du vælger, f.eks.:

bat tile.js

For en kort fil sender bat output og returnerer dig til dit prompt:

Hovedtingen, som bat gør i dette tilfælde, er at tilføje syntaksfremhævelse til din fil med ANSI-farver. Det kan gøre dette for mange forskellige sprog, der dækker alt fra C til HTML og Markdown:

For at liste den fulde samling af sprogsyntakser, som bat understøtter, skal du bruge --list-languages indstillingen.

Du kan bruge --theme indstillingen til at ændre de specifikke farver, bat bruger. For eksempel her er starten på den tidligere fil fremhævet med gruvbox-dark temaet:

Selvom bat beskriver sig selv som en “katklon,” er det ikke helt sandt. Du kan bruge cat-kommandoen på mange måder, men dens oprindelige hensigt var at kombinere (sammenkæde) filer. cat forbliver det bedste værktøj til det formål, men bat forbedrer brugen som filvisning.

Hvis en fil er for lang til at passe ind i dit terminal, vil bat bruge en pager til at vise en interaktiv version. Dette vil fungere præcist på samme måde som den pager, du bruger til at se man-sider, forudsat det er den samme pager. Som standard vil bat bruge less, men du har et par muligheder for at bruge et alternativ:

  • Skift PAGER-variablen eller brug BAT_PAGER, hvis du vil have bat til at bruge en anden pager end andet software.
  • Brug --pager indstillingen til at angive en kommando (eller sti til et program). Du kan gøre dette på kommandolinjen eller i bats konfigurationsfil.

Du kan finde det forvirrende eller distraherende, at bat nogle gange bruger en pager, og nogle gange ikke. Hvis det er tilfældet, kan du bruge --paging indstillingen til at ændre denne adfærd:

bat 

Der er flere forskellige måder, du kan opsætte din pager på ved hjælp af bat og --paging og --pager indstillingerne. Se bat-dokumentationen (man bat) for flere detaljer.

bat nummererer linjer som standard

Som standard viser bat også linjenumre ved siden af din fil. Jeg slog disse fra i de tidligere skærmbilleder for at holde dem enkle; her er et eksempel på den reelle standardadfærd:

Linjenumre er nyttige til at spore din placering inden for en fil. less-pageren viser ikke disse oplysninger som standard, selvom alternativer som most gør. Nummerering af linjer er især nyttigt, hvis du inspicerer kildekode og prøver at finde en fejl på en bestemt linje. Du kan bruge -p indstillingen til at slå linjenumre fra eller -n indstillingen til at vise linjenumre og ikke andet.

bat kan fremhæve linjer eller intervaller

bats linjenummerering er endnu mere effektiv, når du kombinerer den med liniefremhævelse, som du kan bruge på kun én linje eller på et sæt intervaller. --highlight-line indstillingen har et par variationer; her er et eksempel:

bat 

Dette vil fremhæve linje 7 og linjer 14-15 med en alternativ baggrundsfarve:

En lignende indstilling, --line-range, lader dig kun vise visse linjer eller intervaller:

Selvfølgelig kan du kombinere de to for at vise en del af en fil og fremhæve specifikke linjer på samme tid:

bat fungerer godt med git

Hvis du bruger bat til at se kildekode, vil du være glad for at vide, at det har god support for git. bat vil vise ændringer i en fil, hvis den registrerer, at den er i et git-repositorium:

bat vil vise velkendte symboler i venstre margen af hver ændret linje for at indikere, om den er ny (+), blevet fjernet (-), eller blevet ændret (~). Du kan bruge --diff (-d) flaget til at fortælle bat kun at vise linjer med ændringer, plus nogle kontekstlinjer omkring dem. Dette er en fantastisk funktion til at gennemgå kodeændringer eller til at få dig selv op i hastigheden på et projekt, du vender tilbage til.

bat opfører sig fornuftigt i en pipeline

Vi har allerede set, hvordan bat bruger sund fornuft til at beslutte, om den skal bruge en pager, men værktøjet har nogle andre intelligente funktioner. Især er det mest nyttigt, at det kan registrere, hvilken slags output der er mest.

bat gør dette ved at tjekke, om dens output sendes til et ikke-interaktivt terminalvindue: hvis det eksempelvis bliver sendt videre til en anden proces eller til en fil. I sådanne tilfælde ønsker du sandsynligvis ikke bats syntaksfarvning, så den vil undertrykke de specielle farvekoder, den normalt outputter. I denne tilstand fungerer den stort set som cat, og slår alle dekorationer fra, inklusive linjenumre og områdefremhævelser.

Du kan stadig tvinge bat til at producere formateret output, selvom det er i en pipeline. Dette er nyttigt, hvis du ved, at den kommando, du sender output til, kan håndtere ANSI farvekoder, som de fleste pagere, eksempelvis:

bat -f README.md | most

Indstillingen --force-colorization (-f) beder bat om at bevare al farvning og dekorationer, så det er det modsatte af --plain (-p).

bat fungerer godt med man også

Fordi du kan konfigurere den pager, som man bruger til at vise hjælp på Linux-kommandoer, kan du også indstille den til at bruge bat for et pænere output:

For at gøre dette, kør man og sæt MANPAGER således:

MANPAGER="sh -c 'col -bx | bat -l man -p'" man ls

Denne kommando kræver en smule forklaring, da den gør en del. Først sætter den MANPAGER-variablen, og derefter kører den "man ls" til allersidst. Denne syntaks (“NAVN=VÆRDI kommando”) er en praktisk måde at sætte en miljøvariabel for den specifikke kommando, der følger.

Værdien af MANPAGER er et kald til sh (din standard shell) med -c for at køre en kommando. Denne kommando kører to programmer, col og bat, hvor output fra den første sendes til input på den anden. Col-programmet hjælper med at rydde op i visse formateringskarakterer, og bat køres med -l man mulighed for at bruge man syntaks til farvning. -p bruger almindelig stil, som passer til man-sider.

bat har nogle virkelig nyttige konfigurationsmuligheder

Indtil nu har du måske bemærket, at bat er meget konfigurerbar. Nogle af dens muligheder er informative, som --list-languages. Du kan bruge --config-file til at udskrive placeringen af din bat konfigurationsfil, for eksempel.

Hvis du søger efter et andet farveskema (vi har alle vores favoritter), så tjek --list-themes indstillingerne. Interesant nok bruger dette output dekorationer og farvning, og du kan slå dem fra ved hjælp af de standardmuligheder:

Værktøjet understøtter også et par enkle muligheder for at kontrollere specifikke formateringsdetaljer, så du kan styre dets output præcist. Brug “--tabs n” for at sætte tabulatorbredde i mellemrum, --chop-long-lines for at forkorte alle linjer længere end skærmbredden, og --squeeze-blank for at komprimere løb af tomme linjer til en enkelt linje.

bat er et af et voksende antal Linux kommandolinjeværktøjer skrevet i Rust. Dette økosystem opmuntrer en generation af visuelt rige, interaktive TUI-apps, der konkurrerer med etablerede kommandoer, og bat er en fin tilføjelse til dit Linux værktøjssæt.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

Go up