Het `cd`-commando, een afkorting van "change directory" (directory wijzigen), is een van de meest fundamentele commando's in Linux. Het is de manier waarop je door de Linux-terminal navigeert en tussen verschillende werkmappen wisselt. `cd` is echter een ouderwetse manier om door het Linux-bestandssysteem te navigeren , en er zijn inmiddels diverse moderne alternatieven die het proces sneller en gemakkelijker maken. Hier is een moderne vervanging voor `cd` waarmee je met minder typwerk en minder giswerk door je bestandssysteem kunt navigeren.
Natuurlijk zou ik tab-aanvulling kunnen gebruiken in plaats van het hele pad uit te typen, maar hoe dan ook, ik moet nog steeds voldoende weten over de locatie van de bestemming in het bestandssysteem om ernaartoe te kunnen navigeren. Als ik vergeet hoe een specifieke map is genest, zou ik cd samen met andere commando's, zoals ls en tree, moeten gebruiken om erachter te komen waar die zich bevindt.
Zo navigeren we al tientallen jaren door de Linux-terminal, maar bedenk eens hoe omslachtig die hele workflow eigenlijk is. Als je een map wilt openen, denk je meestal aan welke map je wilt, niet aan het volledige pad ernaartoe.
Stel je een wereld voor waarin je simpelweg 'cd articles' kunt typen en de terminal intelligent genoeg is om te achterhalen welke map je bedoelt en je daarheen te brengen. Nou, dat is daadwerkelijk mogelijk, lees even verder door.
Bijvoorbeeld, in plaats van het volgende in te voeren:
cd "/home/dibs/Documents/How To Geek/Articles"
Je kunt eenvoudigweg het volgende gebruiken:
z articles
Let op : niet hoofdlettergevoelig
De manier waarop dit werkt is eigenlijk heel interessant. Na installatie houdt Zoxide een database bij van de mappen die je hebt bezocht en rangschikt deze op basis van frequentie – een combinatie van frequentie en recentheid. Dus elke keer dat je een map bezoekt, wordt dit geregistreerd in de Zoxide-database en stijgt de ranglijst naarmate je de map vaker bezoekt. Hierdoor kan Zoxide de mappen die je daadwerkelijk het vaakst gebruikt, bevoordelen in plaats van simpelweg het eerste overeenkomende pad te kiezen.
En wat als je 2 mappen met dezelfde naam hebt ?
Stel je voor dat ik twee verschillende mappen met de naam 'Artikelen' heb:
~/Documents/"How to Geek"/Articles
~/Documents/Forbes/Articles
Als ik nu vaker in de subdirectory How to Geek werk, zal het commando z articles verwijzen naar ~/Documents/"How to Geek"/Articles in plaats van naar de Forbes- map.
Desondanks kan ik de Forbes-directory gemakkelijk vinden door de zoekopdracht te verfijnen:
z forbes articles
Hier zoekt zoxide naar beide termen in de verzameling opgeslagen paden en kiest de term met de hoogste frequentiescore. De volgorde van de termen is echter belangrijk, omdat zoxide verwacht dat de overeenkomende termen in dezelfde volgorde in het pad voorkomen. Dus als ik bijvoorbeeld 'z articles forbes' invoer , wordt de map 'Forbes' niet gevonden, tenzij 'articles' vóór 'forbes' in het overeenkomende pad staat.
En kan ik ook zelf beslissen, dus handmatig kiezen ?
Installeer hiervoor fzf (zie verder) en voer het volgende commando in:
zi articles
Hiermee wordt een interactief selectievakje geopend met alle opgeslagen zoxide-mappen waarvan het pad ergens "articles" bevat.
* sudo pacman -S zoxide # for users on Arch and its derivatives
* sudo apt install zoxide # for users on Ubuntu, Debian, and their derivatives
* sudo dnf install zoxide # for users on Fedora and its derivatives
Na de installatie moet je Zoxide ook initialiseren. Als je de Bash-shell gebruikt , voer dan de volgende opdrachten achter elkaar in:
1. echo 'eval "(zoxide init bash)"' >> ~/.bashrc # adds eval "(zoxide init bash)" to your ~/.bashrc file
2. source ~/.bashrc # reloads the Bash configuration
Hoe best overstappen ?
Het zoxide-commando is niet direct bruikbaar na de installatie. Het moet eerst leren welke mappen je bezoekt om een database op te bouwen, en dat kost tijd. Je kunt dit proces echter versnellen door de mappen die je vaak bezoekt direct toe te voegen met het zoxide add- commando:
Voorbeelden : zoxide add ~/Documents/"How to Geek"/Articles
zoxide add ~/Documents/Forbes/Articles
zoxide add ~/Projects ~/Documents ~/Downloads # add multiple directories
Als je moeite hebt om te onthouden welke mappen je vaak bezoekt, kun je je Bash-geschiedenis raadplegen met dit commando:
history | grep -E '(^|[[:space:]])cd[[:space:]]'
Dit toont je de mappen die je onlangs hebt bezocht met het commando `cd`, die je vervolgens kunt toevoegen aan de database van zoxide.
Je kunt zelfs een beginscore toekennen met de optie --score, waardoor je met name belangrijke mappen een voorsprong kunt geven:
zoxide add --score 100 ~/Documents/"How to Geek"
Als alternatief kunt u de opdracht `zoxide edit` gebruiken . Deze opent een terminalinterface (TUI) waarin alle mappen in de zoxide-database worden weergegeven. Vanuit hier kunt u ongewenste mapvermeldingen verwijderen of hun prioriteit verhogen of verlagen.
Het navigeren door je bestandssysteem zou niet hoeven te betekenen uit je hoofd leren.
Het `cd`-commando is geen zoekfunctie . Het zoekt niet naar de specifieke map die je in gedachten hebt. In plaats daarvan verwacht het dat je een absoluut of relatief pad opgeeft naar de map waarnaar je wilt navigeren.Natuurlijk zou ik tab-aanvulling kunnen gebruiken in plaats van het hele pad uit te typen, maar hoe dan ook, ik moet nog steeds voldoende weten over de locatie van de bestemming in het bestandssysteem om ernaartoe te kunnen navigeren. Als ik vergeet hoe een specifieke map is genest, zou ik cd samen met andere commando's, zoals ls en tree, moeten gebruiken om erachter te komen waar die zich bevindt.
Zo navigeren we al tientallen jaren door de Linux-terminal, maar bedenk eens hoe omslachtig die hele workflow eigenlijk is. Als je een map wilt openen, denk je meestal aan welke map je wilt, niet aan het volledige pad ernaartoe.
Stel je een wereld voor waarin je simpelweg 'cd articles' kunt typen en de terminal intelligent genoeg is om te achterhalen welke map je bedoelt en je daarheen te brengen. Nou, dat is daadwerkelijk mogelijk, lees even verder door.
Hoe dit moderne commando dit probleem oplost : Voer gewoon de bestemming in.
Het betreffende moderne Linux-commando is zoxide — een op Rust gebaseerd alternatief voor het cd-commando dat bijhoudt welke mappen je bezoekt en die informatie gebruikt om je er later weer naartoe te laten navigeren. Op deze manier hoef je niet het volledige pad van een map te onthouden, maar hoef je alleen de bestemmingsmap in te voeren en zoxide brengt je erheen.Bijvoorbeeld, in plaats van het volgende in te voeren:
cd "/home/dibs/Documents/How To Geek/Articles"
Je kunt eenvoudigweg het volgende gebruiken:
z articles
Let op : niet hoofdlettergevoelig
De manier waarop dit werkt is eigenlijk heel interessant. Na installatie houdt Zoxide een database bij van de mappen die je hebt bezocht en rangschikt deze op basis van frequentie – een combinatie van frequentie en recentheid. Dus elke keer dat je een map bezoekt, wordt dit geregistreerd in de Zoxide-database en stijgt de ranglijst naarmate je de map vaker bezoekt. Hierdoor kan Zoxide de mappen die je daadwerkelijk het vaakst gebruikt, bevoordelen in plaats van simpelweg het eerste overeenkomende pad te kiezen.
En wat als je 2 mappen met dezelfde naam hebt ?
Stel je voor dat ik twee verschillende mappen met de naam 'Artikelen' heb:
~/Documents/"How to Geek"/Articles
~/Documents/Forbes/Articles
Als ik nu vaker in de subdirectory How to Geek werk, zal het commando z articles verwijzen naar ~/Documents/"How to Geek"/Articles in plaats van naar de Forbes- map.
Desondanks kan ik de Forbes-directory gemakkelijk vinden door de zoekopdracht te verfijnen:
z forbes articles
Hier zoekt zoxide naar beide termen in de verzameling opgeslagen paden en kiest de term met de hoogste frequentiescore. De volgorde van de termen is echter belangrijk, omdat zoxide verwacht dat de overeenkomende termen in dezelfde volgorde in het pad voorkomen. Dus als ik bijvoorbeeld 'z articles forbes' invoer , wordt de map 'Forbes' niet gevonden, tenzij 'articles' vóór 'forbes' in het overeenkomende pad staat.
En kan ik ook zelf beslissen, dus handmatig kiezen ?
Installeer hiervoor fzf (zie verder) en voer het volgende commando in:
zi articles
Hiermee wordt een interactief selectievakje geopend met alle opgeslagen zoxide-mappen waarvan het pad ergens "articles" bevat.
Hoe installeer en configureer je Zoxide?
Het zou niet langer dan twee minuten moeten duren.
Alle grote Linux-distributies hebben Zoxide in hun officiële repositories, en je kunt het met één commando installeren:* sudo pacman -S zoxide # for users on Arch and its derivatives
* sudo apt install zoxide # for users on Ubuntu, Debian, and their derivatives
* sudo dnf install zoxide # for users on Fedora and its derivatives
Na de installatie moet je Zoxide ook initialiseren. Als je de Bash-shell gebruikt , voer dan de volgende opdrachten achter elkaar in:
1. echo 'eval "(zoxide init bash)"' >> ~/.bashrc # adds eval "(zoxide init bash)" to your ~/.bashrc file
2. source ~/.bashrc # reloads the Bash configuration
Hoe best overstappen ?
Het zoxide-commando is niet direct bruikbaar na de installatie. Het moet eerst leren welke mappen je bezoekt om een database op te bouwen, en dat kost tijd. Je kunt dit proces echter versnellen door de mappen die je vaak bezoekt direct toe te voegen met het zoxide add- commando:
Voorbeelden : zoxide add ~/Documents/"How to Geek"/Articles
zoxide add ~/Documents/Forbes/Articles
zoxide add ~/Projects ~/Documents ~/Downloads # add multiple directories
Als je moeite hebt om te onthouden welke mappen je vaak bezoekt, kun je je Bash-geschiedenis raadplegen met dit commando:
history | grep -E '(^|[[:space:]])cd[[:space:]]'
Dit toont je de mappen die je onlangs hebt bezocht met het commando `cd`, die je vervolgens kunt toevoegen aan de database van zoxide.
Je kunt zelfs een beginscore toekennen met de optie --score, waardoor je met name belangrijke mappen een voorsprong kunt geven:
zoxide add --score 100 ~/Documents/"How to Geek"
Als alternatief kunt u de opdracht `zoxide edit` gebruiken . Deze opent een terminalinterface (TUI) waarin alle mappen in de zoxide-database worden weergegeven. Vanuit hier kunt u ongewenste mapvermeldingen verwijderen of hun prioriteit verhogen of verlagen.