Een Betere Linux Ervaring met de Fish Shell

Weg zijn de dagen van cryptische commando’s en rigide syntaxis. Waarom meer tijd besteden aan het ontcijferen van man-pagina’s dan aan het scripten of navigeren door uw systeem? Omarm de kracht en eenvoud van de fish shell, uw toegangsbewijs tot een soepelere, intuïtievere Linux-ervaring.

Leer uw Linux-reis transformeren met de fish shell, van zijn gebruiksvriendelijke interface tot zijn uitgebreide aanpassingsopties.

Zeg hallo tegen gestroomlijnde workflows en een hernieuwd vertrouwen in uw Linux-vaardigheden!

Vereisten

Voordat u begint, neem even de tijd om ervoor te zorgen dat u de volgende essentiële zaken hebt om deze tutorial te volgen:

  • Fish Shell is geïnstalleerd op uw machine – Deze tutorial maakt gebruik van fish-3.7.0, de nieuwste versie op het moment van schrijven.
  • A Linux system – This tutorial uses an Ubuntu 22.04 LTS for demonstrations, but other distributions will work.

Het verkennen van Commandovalidaties, Autocompletie en Suggesties

Met de fish shell geïnstalleerd, duik in de fish shell voor naadloze commando-uitvoeringen. De fish shell biedt realtime feedback en contextbewuste suggesties voor commando’s, bestandsnamen en argumenten.

Maar eerst moet u toegang krijgen tot de fish shell voordat u commandovalidaties, autocompletie en suggesties kunt bekijken.

Om deze functie te verkennen waarmee u fouten kunt identificeren en corrigeren voordat u ze zelfs maar uitvoert, voert u het volgende uit:

1. Open een terminal en voer de fish opdracht hieronder uit om toegang te krijgen tot de fish shell.

fish
Accessing the fish shell

2. Typ vervolgens de eerste letter van de ls opdracht om te proberen alle bestanden in uw huidige map weer te geven.

Zoals hieronder getoond, wordt de letter ‘l‘ rood weergegeven omdat de fish shell het niet herkent als een geldige opdracht. Deze directe visuele aanwijzing geeft aan dat er iets mis is met de opdracht.

Maar maak je geen zorgen! Dankzij automatisch suggestie verschijnt de letter ‘s‘ gedempt, wat wijst op de juiste opdracht.

Testing command validation

3. Druk nu op de rechterpijl of Ctrl+F toetsen om de automatisch voorgestelde ls opdracht te accepteren.

Let op dat de letter ‘l’ van rood naar blauw is veranderd omdat de fish shell nu uw opdracht als ls herkent.

Accepting the auto-suggested command

Het definiëren van Opdracht Aliassen in het Fish Configuratiebestand

Naast real-time feedback en contextbewuste suggesties, biedt fish een krachtige en flexibele manier om uw opdrachtregelomgeving aan te passen – het fish configuratiebestand. In tegenstelling tot andere shells die meerdere configuratiebestanden kunnen gebruiken, gebruikt fish voornamelijk een enkel bestand genaamd config.fish gelegen in de ~/.config/fish/ map.

Om te zien hoe configuraties de fish shell beïnvloeden, begin met het definiëren van opdracht aliassen als volgt:

1. Open het fish configuratiebestand met behulp van uw voorkeurscode- of teksteditor, zoals nano of vim, maar deze tutorial gebruikt de eerste.

nano ~/.config/fish/config.fish

Zodra geopend, zie je de initiële inhoud van het configuratiebestand van de visshell, dat standaardconfiguraties kan bevatten of relatief leeg kan zijn. Deze initiële toestand hangt af van of jijzelf of het setup-proces van je systeem eerder configuraties heeft toegevoegd.

Het bestand kan alleen opmerkingen bevatten of basisvoorwaardelijke blokken voor nieuwe installaties, zoals hieronder weergegeven.

Opening the fish configuration file

2. Voeg binnen het if-blok de volgende functie toe, sla de wijzigingen op en sluit de editor af.

Op dit punt maak je aangepaste instellingen in het configuratiebestand van de visshell, en deze functie definieert een alias (c) voor het clear-commando.

# Deze functie creëert een alias voor het commando "clear"
function c
    clear
end

? Opmerking: Elke gedefinieerde functie heeft een overeenkomstig .fish-bestand in de map ~/.config/fish/functions/ (d.w.z. c.fish).

Creating an alias for the clear command

3. Voer het volgende commando uit om het configuratiebestand (config.fish) te sourcen.

Deze opdracht geeft geen uitvoer naar de terminal, maar past de configuratiewijzigingen toe op uw huidige sessie.

? Dit fish-configuratiebestand wordt automatisch uitgevoerd telkens wanneer een nieuwe fish-sessie wordt gestart en is de perfecte plek om shell-aanpassingen te definiëren.

source ~/.config/fish/config.fish

4. Typ vervolgens c in de prompt om uw wijzigingen te controleren.

Merk op dat de letter ‘c’ blauw wordt weergegeven, aangezien de fish-shell het herkent als het clear-commando. Dit gedrag duidt op een succesvolle wijziging in de fish-configuratie.

Zie hoe de letter ‘c’ blauw wordt? Die verandering komt doordat de fish-shell weet dat de letter ‘c’ het clear-commando is. Dit gedrag geeft een succesvolle update aan in uw fish-configuratie.

Waarom stelt u niet een paar meer aliassen in voor die betrouwbare commando’s waar u telkens naar terugkeert wanneer de stemming toeslaat?

Verifying the newly created alias for the clear command works

Aanpassen van de Fish Shell-prompt

Naast het instellen van aliassen voor soepelere operaties, geeft fish u de kracht om uw prompt aan te passen, zoals het toevoegen van een persoonlijk tintje aan uw shell. In plaats van lange map-paden, geniet u van een schonere, meer georganiseerde prompt.

Om de fish shell-prompt aan te passen, voert u de volgende acties uit:

1. Open het fish-configuratiebestand (~/.config/fish/config.fish) en voeg de volgende functie toe.

Deze functie past uw fish shell-prompt aan om een dollarteken ($) gevolgd door een spatie weer te geven.

# Aanpassen van de visuele prompt
function fish_prompt
    echo '$ '
end
Customizing the fish shell prompt

2. Sla de wijzigingen op in het configuratiebestand van fish en verlaat de editor.

3. Nu, source het configuratiebestand om je wijzigingen toe te passen.

source ~/.config/fish/config.fish

Zodra dit geactiveerd is, zie je de promptveranderingen zoals in de volgende schermafbeelding.

Sourcing the fish configuration file to apply the shell prompt changes

Wijzigingen Permanent Maken Tussen Sessies

Je hebt gezien hoe je aanpassingen kunt maken in de fish shell. Maar let op: Deze instellingen zijn alleen beschikbaar in de huidige sessie.

Wat gebeurt er zodra je de huidige sessie afsluit en een nieuwe opent? Poef! Je zorgvuldig gemaakte configuraties zijn allemaal verdwenen – jammer, toch? Maar vrees niet, want er is nog hoop. Laat het funcsave commando je configuraties redden van de vergetelheid!

Om je configuraties tussen sessies te behouden, ga als volgt te werk:

1. Open het fish configuratiebestand en voeg het funcsave commando toe aan elk function samen met de functienaam, zoals dit:

Appending the funcsave command to persist functions across sessions

2. Sla je wijzigingen op, en sluit de editor en de terminal.

3. Open een nieuwe terminalsessie en voer het fish commando hieronder uit om toegang te krijgen tot de fish shell

fish

Als de funcsave opdrachten die je hebt toegevoegd werken om je configuraties te behouden, zul je berichten zien zoals hieronder.

Accessing the fish shell to verify the configurations persist across sessions

Het instellen en behouden van omgevingsvariabelen

Terwijl behoudsfuncties geweldig zijn, tilt het beheren van wereldwijd toegankelijke waarden het shell-scripten naar een hoger niveau – het instellen van omgevingsvariabelen. In tegenstelling tot traditionele shells die vertrouwen op export, gebruikt fish set met opties om de variabelenbereik en exportgedrag te regelen.

Maar er is een addertje onder het gras, weet je? Ah, je hebt het goed geraden! Een variabele die via de set opdracht op de terminal is ingesteld, is alleen toegankelijk in de huidige sessie.

Om omgevingsvariabelen in te stellen en te behouden, komt de -gx vlag goed van pas, zoals hieronder wordt weergegeven:

1. Voeg de volgende opdracht toe om de MY_VARIABLE variabele in het fish configuratiebestand wereldwijd in te stellen. Hieronder wordt uitgelegd hoe de -gx vlag werkt:

  • -g – Maakt de variabele wereldwijd, toegankelijk vanuit elk bereik binnen dezelfde gebruikersomgeving.
  • -x – Exporteert de variabele, waardoor deze beschikbaar is voor externe opdrachten of programma’s die worden gestart vanuit fish.
# Stel MY_VARIABLE wereldwijd in en exporteer het
set -gx MY_VARIABLE HelloWorld
Setting an environment variable in the fish configuration file

2. Bewaar de configuratiewijzigingen, sluit vervolgens de editor en de terminal.

3. Open een nieuwe terminalsessie, open de fish-shell en voer de volgende opdracht uit om de wijzigingen te bevestigen.

echo $MY_VARIABLE

De uitvoer hieronder bevestigt dat de wijzigingen van kracht zijn geworden over sessies.

Verifying variable persistence

4. Zodra bevestigd, voeg het volgende set-commando toe aan het vis-configuratiebestand, sla de wijzigingen op en sluit de editor.

Dit commando maakt de MY_UNIVERSAL_VARIABLE-variabele globaal over alle sessies, zelfs na herstarts.

# Stel MY_UNIVERSAL_VARIABLE universeel in en exporteer het
set -Ux MY_UNIVERSAL_VARIABLE universal

Zie hieronder hoe de -Ux-vlag werkt:

  • -U – Maakt de MY_UNIVERSAL_VARIABLE-variabele universeel, zodat deze wordt gedeeld over alle huidige en toekomstige terminalsessies, inclusief die van verschillende gebruikers.
  • -x – De variabele wordt geëxporteerd naar kindprocessen, waardoor deze toegankelijk is voor eventuele commando’s of scripts die worden opgeroepen vanuit de huidige sessie.
Setting a universal environment variable in the fish configuration file

5. Open een nieuwe terminalsessie, ga naar de vis-shell en voer het echo-commando hieronder uit om de wijzigingen te verifiëren.

echo $MY_UNIVERSAL_VARIABLE

Als alles goed gaat, krijg je de volgende uitvoer, wat aangeeft dat de wijzigingen van kracht zijn geworden over sessies.

Verifying universal variable persistence

? Naast het vis-configuratiebestand, maak gebruik van fish_configin de terminal voor snelle en automatisch toegepaste aanpassingen. Dit commando start een webinterface in je browser, waarmee promptaanpassingen, instellingstweaks en functie- en variabelebeheer mogelijk zijn in een gebruiksvriendelijke setup.

Het beheren van Fish-plugins met de Fisher Package Manager

De fish-shell op zichzelf is al indrukwekkend, toch? Maar weet je wat? Wanneer je plugins begint te integreren, wordt het nog krachtiger. Deze plugins breiden de mogelijkheden van de fish-shell uit, brengen nieuwe commando’s, hulpprogramma’s en integraties om je commandoregelervaring aanzienlijk te verbeteren.

Één goed voorbeeld is Fisher, een pakketbeheerder ontworpen voor de fish-shell. Deze plugin is gebouwd met prestaties en eenvoud in gedachten, en is lichtgewicht.

? Fisher is lichtgewicht in het beheren van fish-shell plugins en is niet direct vergelijkbaar met pakketbeheerders op systeemniveau. Dit onderscheid is duidelijk wat betreft de omvang en complexiteit van de pakketten die het beheert.

Om fish-plugins te beheren, moet je eerst Fisher installeren met de beschreven stappen:

Open je terminal, ga naar de fish-shell en voer de volgende opdracht uit om Fisher te downloaden en te installeren. Deze opdracht haalt het Fisher-installatiescript op en leidt het naar source, dat het script uitvoert binnen de huidige fish-shell-sessie via curl.

curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher

Eenmaal geïnstalleerd, zie je de volgende uitvoer.

Installing the Fisher package manager

Voer nu de onderstaande fisher-opdracht uit om de installatie te bevestigen door de momenteel geïnstalleerde --versie van Fisher op je systeem te bekijken.

fisher --version
Confirming the installed Fisher version

De GitNow-plugin installeren

Nu je Fisher draaiende hebt, wat is het volgende? Wat dacht je ervan om je fish shell te versterken met een aantal coole plugins? GitNow, bijvoorbeeld, is een toolkit die je Git workflow binnen de fish shell een boost geeft – verleidelijk.

GitNow biedt gestroomlijnde commando’s voor routineuze Git taken, waardoor productiviteit wordt verbeterd en je Git commandoroutine wordt vereenvoudigd.

Om GitNow te installeren met behulp van de Fisher package manager, volg deze stappen:

1. Voer in je fish shell het volgende fisher commando uit om de GitNow plugin (joseluisq/gitnow) te installeren.

Dit commando vertelt Fisher om GitNow op te halen en te integreren in je fish configuratie, waardoor zijn scala aan Git snelkoppelingen direct beschikbaar wordt.

fisher install joseluisq/gitnow
Installing the GitNow plugin

2. Nadat het is geïnstalleerd, voer het gitnow commando hieronder uit om te bevestigen dat GitNow correct is geïnstalleerd.

Dit commando toont de momenteel geïnstalleerde versie van GitNow, maar alleen als GitNow commando’s worden herkend in je shell.

gitnow --version
Verifying the GitNow installation

3. Ten slotte, voer dit fisher commando uit om alle plugins te lijsten die Fisher beheert, inclusief GitNow.

fisher list

Hieronder zie je de GitNow plugin en de Fisher plugin zelf.

Viewing all plugins managed by Fisher

Verwijderen van Fish Shell Plugins

Verdrinkt je fish shell in plugins? Alsof je achterblijft met het sorteren van de rommel om te vinden wat je nodig hebt? Ruim je fish shell omgeving op door onnodige plugins te verwijderen.

Om een door Fisher beheerde plug-in te verwijderen in je fish shell, volg deze stappen:

1. Voer het volgende commando uit om alle momenteel geïnstalleerde plug-ins op te lijsten.

fisher list

Kies een uit de lijst die je wilt verwijderen.

Viewing all installed plugins

2. Voer vervolgens het fisher verwijderen commando hieronder uit, gevolgd door de naam van de plug-in (joseluisq/gitnow) om te verwijderen.

fisher remove joseluisq/gitnow

Dit commando vertelt Fisher om de GitNow plug-in te deïnstalleren uit je fish shell omgeving.

Removing the GitNow plugin

3. Voer nu hetzelfde fisher lijst commando uit om te bevestigen dat de GitNow plug-in succesvol is verwijderd.

fisher list

De GitNow plug-in zou niet langer moeten verschijnen in de lijst met geïnstalleerde plug-ins.

Verifying the GitNow plugin removal

Verwijderen van de Fisher Pakketbeheerder

Zoals je hebt gezien, is de Fisher pakketbeheerder echt handig. Maar het verwijderen ervan kan de beste keuze zijn als je merkt dat je ontevreden bent of problemen hebt met Fisher.

Om Fisher volledig te verwijderen uit je fish shell, volg het volgende:

Voer het commando hieronder uit om lijst en verwijder fisher en alle geïnstalleerde plug-ins via Fisher.

fisher list | fisher remove
Listing and removing all plugins

Als alternatief, voer het volgende commando uit om alleen fisher zelf te verwijderen.

fisher remove jorgebucaran/fisher
Removing Fisher only

Verkennen van de Oh My Fish Pakketbeheerder

Wanneer je al aan het cruisen bent met Fisher, waarom dan Oh My Fish overwegen? Je hebt de kracht van fish shell-plugins ervaren met Fisher. Maar hier is het addertje onder het gras: dit framework opent een nieuwe wereld van aanpassingsmogelijkheden voor de fish shell, met een uitgebreide verzameling thema’s en plugins.

Om te zien wat Oh My Fish voor jou in petto heeft, installeer je eerst deze package manager met het volgende commando:

Voer het volgende curl-commando uit om het installatiescript van Oh My Fish (https://get.oh-my.fish) binnen de fish-shell te downloaden en uit te voeren.

curl -L https://get.oh-my.fish | fish

Als het succesvol is, krijg je een uitvoer die vergelijkbaar is met het volgende.

Installing the Oh My Fish package manager

Zodra het geïnstalleerd is, voer je het volgende omf-commando uit om de geïnstalleerde versie van Oh My Fish te controleren.

omf --version

A successful response, as shown below, indicates that Oh My Fish is ready and waiting to transform your fish shell experience.

Verifying the Oh My Fish installation

Aanpassen van de omgeving met Oh My Fish-thema’s

Ben je de saaie uitstraling van de fish shell zat? Waarom voeg je geen vleugje persoonlijkheid toe? Geef je fish shell-omgeving een make-over met frisse, gepersonaliseerde thema’s van Oh My Fish.

Om je fish shell-omgeving aan te passen, moet je thema’s installeren met de volgende stappen:

1. Open het fish configuratiebestand en verwijder de fish_prompt-functie die bepaalt hoe je prompt wordt weergegeven. Hiermee zorg je ervoor dat je aangepaste prompt niet in conflict komt met of de thema’s van Oh My Fish overschrijft.

? Thema’s worden geleverd met unieke prompts die cruciaal zijn voor hun uiterlijk en functie. Het uitschakelen van uw aangepaste prompt (fish_prompt) zorgt ervoor dat uw gekozen Oh My Fish-thema volledig integreert met het ontwerp en de functies van uw fish shell.

2. Verwijder vervolgens (rm) het bestand ~/.config/fish/functions/fish_prompt.fish. Deze opdracht geeft geen uitvoer, maar het verwijderen van dit bestand zorgt ervoor dat de fish shell terugkeert naar de standaardprompt.

rm ~/.config/fish/functions/fish_prompt.fish

3. Voer deze source-opdracht uit zodat de wijzigingen in het fish-configuratiebestand van kracht worden.

source ~/.config/fish/config.fish
Sourcing the fish configuration file

4. Voer nu de volgende omf-opdracht uit om het perfecte thema voor uw fish shell te ontdekken.

omf theme

Kies één thema dat u wilt integreren in de fish shell (bijv. cbjohnson).

? Bezoek de officiële GitHub-opslagplaats voor Oh My Shell-thema’s om te zien hoe elk thema eruitziet voordat u ze installeert.

Listing available Oh My Fish themes

? Verbeter uw fish shell met plugins door de volgende opdracht uit te voeren om plugins te installeren. Bezoek de OMF GitHub-opslagplaats voor een lijst met te installeren plugins. omf install <plugin_name>

5. Voer vervolgens de onderstaande opdracht uit om het gekozen thema in stap vier (cbjohnson) te installeren.

omf install cbjohnson

Eenmaal geïnstalleerd, verandert uw prompt onmiddellijk, zoals hieronder weergegeven.

Installing an Oh My Fish theme (cbjohnson)

? TIP: Schakel snel tussen thema’s wanneer je er twee of meer hebt door het volgende commando uit te voeren. omf theme <themanaam>

Oh My Fish Deïnstalleren

Oh My Fish is een pareltje om je shell vibe op te fleuren. Maar als je ooit een verandering van omgeving wilt of iets nieuws wilt proberen, geeft het deïnstalleren van Oh My Fish je fish shell een frisse start.

Om Oh My Fish te deïnstalleren, volg de onderstaande stappen:

1. Voer de volgende rm commando’s uit om alle Oh My Fish-gerelateerde bestanden te verwijderen.

rm -rf ~/.local/share/omf
rm -rf ~/.config/omf

Zodra verwijderd, zal je oorspronkelijk geïnstalleerde thema verdwijnen.

Deleting Oh My Fish-related files

2. Voer vervolgens elk van de onderstaande commando’s uit om meer Oh My Fish-gerelateerde bestanden te verwijderen.

Deze commando’s hebben geen uitvoer, maar het verwijderen van deze bestanden zorgt ervoor dat alle restanten van Oh My Fish van je systeem worden verwijderd.

rm -rf ~/.local/share/omf/pkg/omf/functions/omf.fish
rm ~/.config/fish/conf.d/omf.*

3. Voer nu het onderstaande omf commando uit om de verwijdering te verifiëren.

omf --version

Je zult een foutmelding zien zoals hieronder, waarin staat dat het omf commando niet gevonden is en dat Oh My Fish volledig is verwijderd.

Verifying the Oh My Fish deletion

Fish Instellen als Standaard Shell

Als je hebt genoten van de rit met de fish shell die je Linux-ervaring verbetert, waarom zou je hem dan niet instellen als je standaard shell? Op die manier bespaar je jezelf de moeite van het schakelen telkens wanneer je een nieuwe terminal opent.

Om fish in te stellen als je standaard shell, volg de onderstaande stappen:

1. Voer de onderstaande opdracht uit om het pad te vinden waar de fish-shell zich bevindt.

which fish

Kopieer het pad naar het klembord, want je hebt het nodig in de volgende stappen.

Finding the path to the fish shell

2. Voer vervolgens de volgende opdracht uit om fish toe te voegen aan de lijst van acceptabele shells in /etc/shells.

echo "/usr/bin/fish" | sudo tee -a /etc/shells
Adding fish to the list of acceptable shells

3. Ten slotte, voer de chsh-opdracht hieronder uit om je standaardshell te wijzigen naar fish (/usr/bin/fish).

chsh -s /usr/bin/fish

Wanneer je je machine opnieuw opstart, heb je fish als standaardshell.

Changing the default shell to fish

? Tip: Schakel terug van fish naar een andere shell zoals Bash als standaard door alle stappen in deze sectie te herhalen. Zorg ervoor dat je het pad naar Bash specificeert in stappen twee en drie, en start vervolgens je machine opnieuw op om de wijzigingen toe te passen..

Conclusie

Gedurende deze handleiding ben je diep ingegaan op de essentie van de fish-shell, waarbij je zijn krachtige functies en aanpasbare opties hebt ontdekt. Van het definiëren van aliassen tot het aanpassen van prompts en het persistent maken van omgevingsvariabelen tot het beheren van plug-ins, fish shell is je betrouwbare metgezel geweest.

Je hebt inzicht gekregen in het transformeren van je Linux-ervaring met de Oh My Fish-pakketbeheerder. Bovendien heb je geleerd hoe je moeiteloos nieuwe plug-ins en thema’s kunt ontdekken en installeren, waardoor de functionaliteit en esthetiek van je fish shell-omgeving worden uitgebreid.

Nu je de basis van de fish shell hebt verkend, duik dieper en ontgrendel zijn volledige potentieel. Waarom experimenteer je niet met aangepaste prompts zoals Powerline of Starship om je shell een persoonlijk tintje te geven?

Source:
https://adamtheautomator.com/fish-shell/