Поиск по сайту:

Как использовать команду cd в Linux


Некоторые команды Linux настолько знакомы, что мы даже не замечаем, что используем их. Команда cd для смены каталогов — одна из них. Есть несколько приемов, которые могут помочь вам повысить эффективность работы с cd или вообще отказаться от него.

Команда, о которой вы редко думаете

Вы моргаете весь день, каждый день, но большую часть времени не замечаете этого. Если что-то не попадает вам в глаза, вы редко думаете об этом маленьком регулярном движении. Некоторые команды Linux похожи на это. Они парят на периферии вашего сознания. Даже если вы используете их ежедневно, они не привлекают вашего внимания, потому что они такие маленькие и простые.

В течение первого часа использования компьютера с Linux вы узнаете, как использовать команду cd , входящую в состав Bash и других оболочек. Возможно, вы уже использовали его в другой операционной системе и не нуждались в объяснении. Он изменяет текущий рабочий каталог, верно? Что еще нужно знать?

Ну, больше, чем вы думаете. Вот несколько советов и советов, которые могут повысить вашу эффективность.

Стандартные операции с компакт-дисками

Для полноты картины давайте быстро пробежимся по стандартным вариантам использования cd.

Если мы находимся в домашнем каталоге, но хотим перейти в каталог, расположенный в /usr/lib/firefox/browser, а затем вернуться в домашний каталог, мы можем использовать следующие команды:

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

Вам не нужно вводить весь путь к каталогу; вы можете использовать автозаполнение. Для каждой части пути после того, как вы наберете достаточное количество букв, чтобы отличить имя каталога от других, нажмите клавишу Tab, чтобы автоматически заполнить имя каталога.

Например, введите в командной строке следующее:

cd /usr/lib/fire

Теперь нажмите Tab, и оболочка заполнит оставшуюся часть каталога «firefox» за вас. Если вы добавите «/b» к пути и снова нажмете Tab, он добавит каталог «browser» в команду.

Оболочка добавляет косую черту в конце, чтобы вы могли повторить процесс завершения табуляции. Вот почему перед первой командой стоит косая черта. На втором его нет, потому что тот был напечатан.

Вы можете использовать тильду (~) для быстрого возврата в домашний каталог из любой точки файловой системы; просто введите следующее:

компакт-диск ~

Это примеры абсолютных путей, в которых вы указываете полный путь от корня файловой системы до целевого каталога до cd.

Относительные пути указываются из текущего рабочего каталога. В домашнем каталоге есть каталог с именем work. Вы можете использовать команду tree, чтобы просмотреть дерево каталогов внутри каталога work — просто введите следующее:

tree

Каталог work содержит каталог с именем dev. Также есть каталог с именем dev в корневом каталоге файловой системы. Вы можете использовать ls с -d (каталог), чтобы просмотреть каждый из них. Параметр -hl (удобочитаемый, длинный список) указывает ls использовать удобочитаемые единицы для размеров каталогов и список в длинном формате.

Если вы набираете dev, оболочка предполагает, что вы имеете в виду «dev» в текущем каталоге. Чтобы заставить его смотреть на «dev» в корневом каталоге, просто добавьте косую черту в начале, чтобы обозначить корень файловой системы, как показано ниже:

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

В этом отношении команда cd ведет себя как ls. Если вы ссылаетесь на каталог как dev, как показано ниже, предполагается, что вы имеете в виду каталог в work каталоге:

cd dev

Предполагается, что без ведущей косой черты более длинные пути также начинаются с текущего рабочего каталога, как показано ниже:

cd dev/mobile/android

Изменение каталога с помощью двойной точки

Идентификатор с двойной точкой представляет собой родительский каталог текущего рабочего каталога. Если вы находитесь в глубоко вложенном подкаталоге, вы можете использовать ..  с cd , чтобы перейти в родительский каталог того, в котором вы находитесь.

Это переместит вас на два каталога вверх в дереве каталогов. Если вы добавите в команду еще .., это позволит вам переместиться на произвольное количество уровней вверх по дереву каталогов.

Введите следующее:

cd ..
cd ../..

Вы также можете создать набор псевдонимов для выполнения этих маневров, набрав следующее:

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

Вы можете использовать их так же, как и сами команды.

Чтобы сделать псевдонимы одинаковыми при перезагрузке компьютера, вы должны добавить их в файл .bashrc или .bash_aliases.

Легко переключаться между двумя каталогами

Дефис (-) — еще один символ, выполняющий особую функцию. Он меняет ваш каталог обратно на тот, из которого вы только что пришли.

Для этого примера предположим, что вы находитесь в каталоге «c». Вы можете использовать cd для перехода в «четвертый» каталог. Затем вы можете использовать cd - для переключения между двумя каталогами.

Для этого введите следующее:

компакт-диск ../вперед

CD -

CD -

Имя каталога, в который вы перемещаетесь, появляется до того, как вы перейдете в него.

Другой вид родственника

Оболочка использует текущий рабочий каталог в качестве «корневого» или базового каталога для относительных путей. Вы можете использовать переменную среды 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 может содержать несколько местоположений.

Чтобы оболочка выполняла поиск в текущем каталоге перед другими местоположениями в переменной среды 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 с компакт-диском

С помощью команды shop вы можете установить определенные параметры оболочки. Некоторые из них могут улучшить использование cd. Чтобы установить их, вы используете параметр -s (enable) с shop , чтобы передать ему имя параметра.

Параметр cdspell проверяет имена ваших каталогов и исправляет некоторые распространенные опечатки, в том числе переставленные или отсутствующие символы, а также имена со слишком большим количеством символов. Если он находит каталог, соответствующий любому из исправлений, печатается исправленный путь и выполняется действие cd.

Например, мы набираем следующее, чтобы установить параметр cdspell, и вводим слово «Desktop» с ошибкой, чтобы увидеть, исправит ли его оболочка:

shopt -s cdspell
cd Desktpo

Оболочка поймала ошибку, исправила ее и перешла в каталог «Рабочий стол».

Другой параметр shopt, который вы можете использовать с cd, — это autocd. Вам вообще не нужно набирать cd. Все, что вы вводите, кроме команды, сценария или другого исполняемого файла (например, псевдонима), используется в качестве целевого каталога. Если вы можете перейти в этот каталог, он будет напечатан в окне терминала, и вы перейдете в этот каталог.

В качестве примера набираем следующее:

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

Видеть! Вы можете прыгать по всей файловой системе, даже не используя cd!

Настройки, которые вы изменяете с помощью shop , влияют только на интерактивные оболочки, но не на скрипты.

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

Вы, вероятно, не примете все это. Однако вполне вероятно, что вы нашли здесь что-то интересное или полезное. В конце концов, все, что ускоряет или упрощает навигацию в командной строке, — это хорошо!

RELATED: Best Linux Laptops for Developers and Enthusiasts