Как да използвате командата cd в Linux

Някои команди на Linux са толкова познати, че дори не забелязваме, че ги използваме. Командата cd за смяна на директории е една от тях. Има някои трикове, които могат да ви помогнат да станете по-ефективни с CD – или можете да го зарежете напълно.

Команда, за която рядко мислите

Мигате по цял ден, всеки ден, но през повечето време не осъзнавате това. Освен ако нещо не ви попадне в очите, рядко мислите за това малко, редовно движение. Някои команди на Linux са такива. Те витаят в периферията на вашето съзнание. Въпреки че ги използвате ежедневно, те не привличат вниманието ви, защото са толкова малки и прости.

В рамките на първия час от използването на компютър с Linux, вие научавате как да използвате командата cd, включена в Bash и други черупки. Може би сте имали предишен опит да го използвате на друга операционна система и нямате нужда от обяснение. Променя текущата работна директория, нали? Какво друго има да се знае?

Е, повече, отколкото си мислите. Ето няколко съвета, които могат да подобрят ефективността ви.

Стандартните cd операции

За да бъдем завършени, нека бързо да преминем през стандартните употреби на cd.

Ако сме в домашната директория, но искаме да променим на такава, намираща се в /usr/lib/firefox/browser, и след това да се върнем към домашната директория, можем да използваме следните команди:

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

В

Не е нужно да въвеждате целия път към директорията; можете да използвате автоматично довършване. За всяка част от пътя, след като въведете достатъчно букви, за да различите името на директорията от останалите, натиснете Tab, за да попълните автоматично името на директорията.

Например, въведете следното в командния ред:

cd /usr/lib/fire

Сега натиснете Tab и обвивката ще попълни останалата част от директорията „firefox“ вместо вас. Ако добавите „/b“ към пътя и натиснете отново Tab, той добавя директорията „браузър“ към командата.

Обвивката добавя наклонена черта напред, за да можете да повторите процеса на завършване на раздела. Ето защо има и наклонена черта в края на първата команда. На втория няма такъв, защото е напечатан.

  Как да настроите софтуерен RAID на Linux

Можете да използвате тилдата (~) като съкратен начин за бързо връщане към началната директория от всяка точка на файловата система; просто напишете следното:

cd ~

В

Това са примери за абсолютни пътища, в които предоставяте целия път от корена на файловата система до целевата директория, до cd.

Относителните пътища се препращат от текущата работна директория. В домашната директория има директория, наречена работа. Можете да използвате командата дърво за вижте дървото на директориите вътре в работната директория – просто въведете следното:

tree

В

Работната директория съдържа директория, наречена dev. Също така има директория, наречена dev в основната директория на файловата система. Можете да използвате ls с -d (директория), за да разгледате всяко от тях. Опцията -hl (четим от човека, дълъг списък) казва на ls да използва лесни за четене единици за размерите на директорията и списъка с дълги формати.

Ако въведете dev, шелът предполага, че имате предвид „dev“ в текущата директория. За да го принудите да гледа „dev“ в основната директория, просто добавете водеща наклонена черта напред, която да представлява корена на файловата система, както е показано по-долу:

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

В

В това отношение командата cd се държи като ls. Ако посочите директорията като dev, както е показано по-долу, предполага се, че имате предвид директорията в работната директория:

cd dev

В

Без водеща наклонена черта се приема, че по-дълги пътища започват и от текущата работна директория, както е показано по-долу:

cd dev/mobile/android

В

Промяна на директорията с двойна точка

Идентификаторът с двойна точка представлява родителската директория на текущата работеща. Ако сте в дълбоко вложена поддиректория, можете да използвате .. с cd, за да се преместите в родителската директория на тази, в която се намирате.

Това ви премества две директории нагоре в дървото на директориите. Ако добавите още .. към командата, тя ви позволява да преместите произволен брой нива нагоре в дървото на директориите.

Въведете следното:

cd ..
cd ../..

В

Можете също така да създадете набор от псевдоними, за да извършите тези маневри вместо вас, като напишете следното:

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

Псевдонимът .2=

Можете да ги използвате по същия начин като самите команди.

  Как да възстановите изтрити файлове в Linux с Photorec

псевдоним .2=

За да направите псевдонимите последователни при рестартирането на вашия компютър, трябва да ги добавите към вашия .bashrc или .bash_aliases файл.

Лесно прескачане между две директории

Тирето (-) е друг символ, който има специална функция. Той променя вашата директория обратно към тази, от която току-що сте дошли.

За този пример да приемем, че сте в директорията “c”. Можете да използвате cd, за да преминете към директорията „forth“. След това можете да използвате cd – за да прескачате напред-назад между двете директории.

За да направите това, въведете следното:

cd ../напред

CD –

CD –

В 

Името на директорията, в която се местите, се появява, преди да се преместите в нея.

Друг вид роднини

Shell използва текущата работна директория като „основна“ или основна директория за относителни пътища. Можете да използвате променливата на средата CDPATH, за да зададете друго местоположение като основна директория за относителни пътища. Ако прекарвате по-голямата част от времето си в определен раздел от дървото на файловата система, това може да ви спести много натискания на клавиши (и време) всеки ден.

Нека напишем следното, за да направим work/dev/projects основната директория за относителни пътища:

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

В

Сега, всеки път, когато използвате командата dc, местоположението в променливата на средата CDPATH се проверява първо за съвпадение на имена на директории. Ако някой от тях съответства на целта, която сте предоставили в командата cd, вие се прехвърляте в тази директория.

Сега, независимо къде се намирате във файловата система, когато използвате командата cd, шелът проверява дали целевата директория се намира в основната директория. Ако е така, вие сте преместени в тази целева директория.

Ако вашата целева директория започва с водеща наклонена черта (/), което я прави абсолютен път, тя няма да бъде засегната от променливата на средата CDPATH.

За да демонстрираме това, въвеждаме следното:

cd c
cd prolog
cd /usr
cd forth

В

Променливата на средата CDPATH е наистина път, точно като променливата на средата PATH. Когато въведете команда, обвивката търси местоположенията в PATH за съвпадение. Когато използвате CDPATH, обвивката търси местоположенията в променливата на средата CDPATH за съвпадение. Също така, както PATH, CDPATH може да съдържа множество местоположения.

  Как да играете Baldur's Gate 3 на Linux

За да накара обвивката да търси текущата директория преди други местоположения в променливата на средата CDPATH, просто добавяте точка (. ) в началото на пътя по следния начин:

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

За да направите настройките си постоянни, трябва да ги добавите към конфигурационен файл, като .bashrc.

Едно нещо, което трябва да имате предвид: Ако зададете основна директория, това също засяга промените в директорията, извършвани в рамките на скриптове. За да избегнете това, можете да използвате абсолютни пътища във вашите скриптове или тест във вашия .bashrc файл, когато посочите своя CDPATH, както е показано по-долу:

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

Това извършва тест, за да се види дали променливата на командния ред, $PS1, е зададена. Променливата на средата CDPATH ще бъде зададена само ако тестът е успешен.

Използване на shopt с cd

С shopt команда, можете да зададете определени опции за обвивката. Някои от тях могат да подобрят използването на CD. За да ги зададете, използвате опцията -s (активиране) с shopt, за да й предадете име на опция.

Опцията cdspell проверява имената на вашите директории и коригира някои често срещани грешки при въвеждане, включително транспонирани или липсващи знаци или имена с твърде много знаци. Ако открие директория, която съответства на някоя от корекциите, коригираният път се отпечатва и се изпълнява действието cd.

Като пример, ние въвеждаме следното, за да зададем опцията cdspell и неправилно изписваме „Desktop“, за да видим дали обвивката го коригира вместо нас:

shopt -s cdspell
cd Desktpo

В

Обвивката улови грешката, коригира я и се промени в директорията „Desktop“.

Друга опция за shopt, която можете да използвате с CD, е autocd. Това елиминира необходимостта да пишете cd изобщо. Всичко, което въведете, което не е команда, скрипт или друг изпълним файл (като псевдоним), се използва като целева директория. Ако можете да прехвърлите в тази директория, тя се отпечатва в прозореца на терминала и вие сте променени в тази директория.

Като пример въвеждаме следното:

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

В

Вижте! Можете да прескачате из цялата файлова система, без дори да използвате cd!

Настройките, които променяте с shopt, засягат само интерактивните обвивки, а не скриптовете.

Колекцията от дискове

Вероятно няма да приемете всичко това. Въпреки това, вероятно сте намерили нещо интересно или полезно тук. В крайна сметка всичко, което ускорява или опростява навигацията ви от командния ред, е добре!