Denne Linux-skallet gir deg terminalfunksjonene som Bash glemte å legge til
Å sette opp et Linux-terminal for en moderne arbeidsflyt kan være skremmende. Likevel forblir det en viktig oppgave siden standard Bash-skallet ikke har utviklet seg i samme tempo som moderne skrivebordsmiljøer. Terminalen bør gjøre mer enn bare å kjøre automatiseringsskript; den bør også muliggjøre smidig interaksjon med Git, Docker, pakkebehandlere og SSH-økter.
Interessant nok er fish-skjellen en skjult oppgradering du kan få rett fra pakkehåndtereren din, og den forandret alt for meg. Fish ser på moderne Linux-funksjoner som standard, og det er en av de beste og enkleste anbefalingene jeg kan gi til hvem som helst.
Fish begynner å hjelpe før du engang er ferdig med å skrive
Skallet føles mindre reaktivt og mer bevisst på hva du prøver å gjøre
Fish får rett og slett terminalen til å føles som om den følger med. Dette er en stor kontrast til Bash, hvor kommandolinjen føles utformet for å være reaktiv. Mens Bash vanligvis krever at du skriver, kjører og deretter finner ut om det fungerer, gir Fish forslag mens du skriver basert på historikken din, og ved å trykke på piltasten kan du gjøre disse forslagene om til faktiske kommandoer.
Det er én liten endring som blir veldig viktig for alle som bruker terminalen uke etter uke. Når jeg skriver Docker Compose, foreslår Fish automatisk kommandoer jeg har kjørt tidligere, inkludert de faktiske flaggene, container-navnene og volumstiene. Dette gjorde bruken av kommandolinjen sømløs. Det reduserer behovet for å åpne historikk, søke og skrive på nytt, friksjonspunkter jeg hadde vænnet meg til å akseptere.
Fish gir syntaksutheving som bruker forskjellige farger for gyldige kommandoer, stier og strenger, og gjør alle ugyldige kommandoer røde mens du skriver dem. Dette er en stor forbedring over Bash, som venter med å vise tilbakemelding om ugyldig kommando til du har kjørt kommandoen.
Å trykke på tab sluttet å føles som et spill
Fisk forstår verktøyene dine godt nok til å veilede deg gjennom dem
Jeg brukte tab fullføring med Bash; men som standard stopper den ved kommandonavnet eller en filsti. Fish gjør mer, og forskjellen er spesielt tydelig med vanlige utviklerverktøy.
Når jeg skriver git checkout og trykker Tab, viser fish tags og nylige commits sammen med de oppførte grenene. Jeg kan få de eksakte endrede filene som er relatert til en spesifikk underkommando ved å skrive git restore og trykke Tab.
Det endret til og med hvordan jeg forholder meg til Docker. For eksempel viser kommandoen docker run - mulige flagg samt beskrivelser av flaggene. Dette fjernet behovet for å søke i dokumentasjonen for å skille --rm fra --restart=unless-stopped, noe som effektivt gjorde ukjente kommandoer mindre fremmede. Selv om det ikke har erstattet dokumentasjonen, fjerner det mange av avbruddene som oppstår ved å konsultere dokumenter.
Du kan oppnå noe lignende med Bash eller til og med ved å bruke Zsh, men dette innebærer vanligvis å installere fullføringspakker separat. Opplevelsen på fish er helhetlig fra starten siden den leveres med mange av disse som standard.
Jeg sluttet å behandle shell-konfigurasjonen min som en andre hobby
Fisk fjerner en overraskende mengde terminalvedlikehold
Etter min erfaring kan vedlikehold av skall være ganske tidkrevende. Du går gjennom prosessen med å installere flere plugins, sannsynligvis én for autosuggestsjoner, én for utheving, og kanskje en siste for tabfullføring. I tillegg kan det være at du trenger et rammeverk som binder dem sammen, og kanskje et prompt-tema. Etter å ha brukt dette en stund, kan det føles som en egen vedlikeholdsbyrde. Den mer slitsomme delen er at du sannsynligvis må gjøre dette hvis du bytter distribusjon eller setter opp en ny maskin. Dette er en overhead som fish hjelper deg å unngå, siden de fleste av disse funksjonene allerede er inkludert i skallet.
Når jeg kjører kommandoen fish_config, åpner det et nettleserbasert grensesnitt som lar meg unngå å interagere med en konfigurasjonsfil bare for å forhåndsvise promptstiler og bytte fargetemaer i sanntid. Uten å erstatte konfigurasjonsfilen helt, kan du enkelt unngå noe av prøving og feiling som legger til byrden ved skalltilpasning.
Forkortelser har blitt en uvurderlig funksjon, og de er ganske forskjellige fra Bash-aliaser. gc er min forkortelse for git commit. Å trykke Tab etter å ha skrevet gc i fish utvider forkortelsen før utførelse og lagrer hele kommandoen i historikken, noe som gjør den søkbar og lesbar. Selv om dette kan føles som et lite poeng, viser det hvor lite fish prøver å abstrahere hvordan terminalen fungerer.
Fish er mer flytende enn den typiske Bash-tilnærmingen:
Terminaloppsettoppgave | Typisk Bash-tilnærming | fisks standardadferd |
|---|---|---|
Får autosuggestions |
Installer og konfigurer en plugin | Fungerer umiddelbart etter installasjon |
Syntaksutheving | Installer og konfigurer en plugin | Fungerer umiddelbart etter installasjon |
Rikere fanefullføringer | Installer ekstra pakker per verktøy | Integrert på tvers av Git, Docker og systemverktøy |
Forhåndsvisning av prompt-endringer | Rediger konfigurasjon, last inn på nytt, gjenta | Direkte forhåndsvisning i fish_config-nettlesergrensesnittet |
Fish endret hvordan terminalen passet inn i min daglige arbeidsflyt
Etter å ha brukt Fish en stund, tenkte jeg ikke på dens individuelle funksjoner, men nøt bare hvor få avbrudd jeg hadde, spesielt siden jeg trengte nettleseren mindre. Jeg rekonstruerte ikke Docker-kommandoer fra bunnen av, og tab-autofullføring i Git var hjelpsom nok til å redusere antallet pauser jeg hadde bare for å dobbeltsjekke konteksten.
Linux ble ikke plutselig et enklere verktøy, men å bruke datamaskinen min føltes mindre forstyrrende. For første gang føles Bash som et verktøy som har hoppet over ti års forbedringer i brukervennlighet.







