Hoe de cd-opdracht op Linux te gebruiken

Een afbeelding van een terminalvenster op een Linux-laptopsysteem.
Fatmawati Achmad Zaenuri / Shutterstock

Sommige Linux-commando’s zijn zo bekend dat we niet eens merken dat we ze gebruiken. De cd commando voor het wijzigen van mappen is er een van. Er zijn enkele trucs waarmee u efficiënter kunt worden cd– of je kunt het helemaal weggooien.

Een commando waar je zelden over nadenkt

Je knippert de hele dag, elke dag, maar meestal ben je je er niet van bewust. Tenzij er iets in je oog komt, denk je zelden aan die kleine, regelmatige beweging. Sommige Linux-commando’s zijn zo. Ze zweven aan de rand van je bewustzijn. Ook al gebruik je ze dagelijks, ze vallen niet op omdat ze zo klein en eenvoudig zijn.

In het eerste uur dat u een Linux-computer gebruikt, leert u hoe u het cd commando inbegrepen bij Bash en andere shells. Misschien had u eerdere ervaring met het gebruik ervan op een ander besturingssysteem en had u geen uitleg nodig. Het verandert de huidige werkdirectory, toch? Wat valt er nog meer te weten?

Nou ja, meer dan je zou denken. Hier zijn een paar hints en tips die uw efficiëntie kunnen verbeteren.

De standaard cd-bewerkingen

Laten we, om compleet te zijn, snel de standaardtoepassingen van cd.

Als we ons in de homedirectory bevinden, maar willen wijzigen naar een map op /usr/lib/firefox/browser, en dan terug te keren naar de homedirectory, kunnen we de volgende commando’s gebruiken:

cd /usr/lib/firefox/browser/
cd /home/dave

De "cd / usr / lib / firefox / browser /" en "cd / home / dave" opdrachten in een terminalvenster.

U hoeft niet het hele directorypad in te typen; u kunt automatisch aanvullen gebruiken. Voor elk deel van een pad, nadat u voldoende letters hebt getypt om de naam van de directory van de andere te onderscheiden, drukt u op Tab om de directorynaam automatisch aan te vullen.

Typ bijvoorbeeld het volgende op de opdrachtregel:

cd /usr/lib/fire

Druk nu op Tab en de shell zal de rest van de “firefox” -directory voor je invullen. Als u “/ b” aan het pad toevoegt en nogmaals op Tab drukt, wordt de map “browser” aan het commando toegevoegd.

De shell voegt een achterwaartse schuine streep toe, zodat u het proces voor het aanvullen van tabbladen kunt herhalen. Dat is ook de reden waarom er een schuine streep naar voren komt bij het eerste commando. Er is er geen op de tweede omdat die is getypt.

Je kunt de tilde (~) als een verkorte manier om snel terug te keren naar de homedirectory vanaf elke plek in het bestandssysteem; typ gewoon het volgende:

cd ~

Het "cd ~" commando in een terminalvenster.

Dit zijn voorbeelden van absolute paden, waarin u het volledige pad opgeeft van de root van het bestandssysteem naar de doelmap, naar cd.

Naar relatieve paden wordt verwezen vanuit de huidige werkdirectory. In de homedirectory is er een directory met de naam work . U kunt de tree commando om de mappenboom binnen het work directory – typ gewoon het volgende:

tree

Het "boom" -commando in een terminalvenster.

De work directory bevat een directory met de naam dev . Er is ook een directory genaamd dev in de hoofdmap van het bestandssysteem. Je kunt gebruiken ls met -d (directory) om elk van deze te bekijken. De -hl (door mensen leesbare, lange lijst) optie vertelt ls om gemakkelijk te lezen eenheden te gebruiken voor de directorygroottes en de lange opmaaklijst.

Als je typt dev, neemt de shell aan dat u de “dev” in de huidige directory bedoelt. Om het te dwingen naar de “dev” in de root-directory te kijken, voegt u gewoon een voorwaartse slash toe om de root van het bestandssysteem weer te geven, zoals hieronder getoond:

ls -d dev -hl
ls -d /dev -hl

De "ls -d dev -hl" en "ls -d / dev -hl" opdrachten in een terminalvenster.

De cd commando gedraagt ​​zich als ls in dit opzicht. Als u naar de directory verwijst als dev, zoals hieronder getoond, gaat het ervan uit dat u de directory in het work directory:

cd dev

Het "cd dev" -commando in een terminalvenster.

Zonder een voorwaartse slash wordt aangenomen dat langere paden ook starten vanuit de huidige werkdirectory, zoals hieronder getoond:

cd dev/mobile/android

De opdracht "cd dev / mobile / android" in een terminalvenster.

VERWANT: 15 speciale karakters die u moet kennen voor Bash

De directory wijzigen met dubbele punt

De dubbele punt-ID vertegenwoordigt de bovenliggende map van de huidige werkende map. Als u zich in een diep geneste submap bevindt, kunt u .. met cd om naar de bovenliggende map te gaan van degene waarin u zich bevindt.

Hiermee gaat u twee mappen omhoog in de mappenboom. Als je meer toevoegt .. op het commando, het stelt je in staat om een ​​willekeurig aantal niveaus omhoog in de directorystructuur te verplaatsen.

Typ het volgende:

cd ..
cd ../..

De "cd .." en "cd ../ .." opdrachten in een terminalvenster.

U kunt ook een set aliassen maken om deze manoeuvres voor u uit te voeren, door het volgende te typen:

alias .2="cd ../.."
alias .3="cd ../../.."

De alias .2 = "cd ../ .." en alias .3 = "cd ../../ .." opdrachten in een terminalvenster.

U kunt deze op dezelfde manier gebruiken als de opdrachten zelf.

alias .2 = "cd ../ .." wordt gebruikt om de map in een terminalvenster te wijzigen

Om de aliassen consistent te maken bij het opnieuw opstarten van uw computer, moet u ze toevoegen aan uw .bashrc of .bash_aliases het dossier.

VERWANT: Aliassen en shell-functies maken op Linux

Spring gemakkelijk tussen twee mappen

Het koppelteken (-) is een ander symbool met een speciale functie. Het verandert uw directory terug naar de directory waar u zojuist vandaan kwam.

Laten we voor dit voorbeeld zeggen dat u zich in de map “c” bevindt. Je kunt gebruiken cd om naar de “vierde” map te gaan. Vervolgens kunt u cd - om heen en weer te springen tussen de twee mappen.

Om dit te doen, typt u het volgende:

cd ../forth

cd –

cd –

De "cd ../forth", "cd -" en "cd -" opdrachten in een terminalvenster.

De naam van de directory waar u naartoe gaat, wordt weergegeven voordat u erin gaat.

VERWANT: Hoe pushd en popd te gebruiken op Linux

Een ander soort familielid

De shell gebruikt de huidige werkdirectory als de “root” of basismap voor relatieve paden. U kunt de CDPATH omgevingsvariabele om een ​​andere locatie in te stellen als de basismap voor relatieve paden. Als u het grootste deel van uw tijd in een bepaald gedeelte van de bestandssysteemboom doorbrengt, kan dit u elke dag een hoop toetsaanslagen (en tijd) besparen.

Laten we het volgende typen om te maken work/dev/projects de basismap voor relatieve paden:

export CDPATH=/home/dave/work/dev/projects

Het "export CDPATH = / home / dave / work / dev / projects" commando in een terminalvenster.

Nu, elke keer dat u de dc commando, de locatie in het CDPATH omgevingsvariabele wordt eerst gecontroleerd op overeenkomende directorynamen. Als een van hen overeenkomt met het doel dat u in het cd commando, wordt u naar die map overgebracht.

Nu, ongeacht waar u zich bevindt in het bestandssysteem, wanneer u het cd commando, controleert de shell of de doeldirectory zich in de basismap bevindt. Als dat het geval is, wordt u naar die doelmap verplaatst.

Als uw doeldirectory begint met een voorwaartse slash (/), waardoor het een absoluut pad is, wordt het niet beïnvloed door de CDPATH omgevingsvariabele.

Om dit te demonstreren typen we het volgende:

cd c
cd prolog
cd /usr
cd forth

De "cd c", "cd prolog", "cd / usr" en "cd voort" opdrachten in een terminalvenster.

De CDPATH omgevingsvariabele is echt een pad, net als de PATH omgevingsvariabele. Wanneer u een commando typt, zoekt de shell de locaties in het PATH voor een wedstrijd. Wanneer u CDPATH, zoekt de shell de locaties in het CDPATH omgevingsvariabele voor een overeenkomst. Ook hetzelfde als PATH, CDPATH kan meerdere locaties bevatten.

VERWANT: Werken met variabelen in Bash

Om de shell in de huidige directory te laten zoeken vóór andere locaties in het CDPATH omgevingsvariabele, je voegt gewoon een punt toe ( . ) aan het begin van het pad als volgt:

export CDPATH=.:/home/dave/work/dev/projects

Om uw instellingen permanent te maken, moet u ze toevoegen aan een configuratiebestand, zoals .bashrc.

Een ding om op te letten: als u een basismap instelt, heeft dit ook invloed op mapwijzigingen die binnen scripts worden uitgevoerd. Om dit te voorkomen, kunt u absolute paden in uw scripts gebruiken of een test in uw .bashrc bestand wanneer u uw CDPATH, zoals hieronder weergegeven:

if test “${PS1+set}”; then CDPATH=.:/home/dave/work/dev/projects; fi

Dit voert een test uit om te zien of de opdrachtregelpromptvariabele, $PS1 , werd ingesteld. De CDPATH omgevingsvariabele wordt alleen ingesteld als de test slaagt.

VERWANT: Hoe u een directory aan uw $ PATH in Linux kunt toevoegen

Shopt gebruiken met cd

Met de shopt commando, kunt u bepaalde opties voor de shell instellen. Sommige hiervan kunnen uw gebruik van cd. Om ze in te stellen, gebruik je de -s (inschakelen) optie met shopt om er een optienaam aan door te geven.

De cdspell optie controleert uw directorynamen en corrigeert enkele veelvoorkomende typefouten, inclusief getransponeerde of ontbrekende tekens, of namen met te veel tekens. Als het een directory vindt die overeenkomt met een van de correcties, wordt het gecorrigeerde pad afgedrukt en de cd er vindt actie plaats.

Als voorbeeld typen we het volgende om de cdspell optie en “Desktop” verkeerd spellen om te zien of de shell het voor ons corrigeert:

shopt -s cdspell
cd Desktpo

Het "shopt -s cdspell" commando in een terminalvenster.

De shell ving de fout op, corrigeerde deze en veranderde naar de “Desktop” -directory.

Een ander shopt optie waarmee u kunt gebruiken cd is autocd. U hoeft niet meer te typen cd helemaal. Alles wat u typt en dat geen commando, script of ander uitvoerbaar bestand is (zoals een alias), wordt gebruikt als een doelmap. Als u naar die map kunt overbrengen, wordt het afgedrukt in het terminalvenster en wordt u naar die map gewijzigd.

Als voorbeeld typen we het volgende:

shopt -s autocd
/usr/local/games
/etc
~

De "shopt -s autcd", "/ usr / local / games", "" / etc "en" ~ "commando

Zien! Je kunt over het hele bestandssysteem springen zonder cd!

De instellingen waarmee u wijzigt shopt hebben alleen betrekking op interactieve shells, niet op scripts.

De cd-collectie

U zult deze waarschijnlijk niet allemaal overnemen. Het is echter waarschijnlijk dat u hier iets interessants of voordelen heeft gevonden. Alles wat uw opdrachtregelnavigatie versnelt of vereenvoudigt, is tenslotte allemaal goed!

Nieuwste artikelen

Gerelateerde artikelen