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

Некоторые команды Linux настолько знакомы, что мы даже не замечаем, что используем их. Команда 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, к команде будет добавлен каталог «браузер».

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

  Как использовать bash для создания каталогов в Linux [Guide]

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

cd ~

В

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

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

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: atime, mtime и ctime

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

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

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

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

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

Для этого вы набираете следующее:

cd ../forth

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 может содержать несколько местоположений.

  Как транслировать онлайн-видео в Linux с помощью VLC

Чтобы оболочка выполняла поиск в текущем каталоге перед другими местоположениями в переменной среды 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, вы можете установить определенные параметры для оболочки. Некоторые из них могут улучшить ваше использование компакт-дисков. Чтобы установить их, вы используете опцию -s (enable) вместе с shopt, чтобы передать ей имя опции.

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

В качестве примера мы набираем следующее, чтобы установить опцию cdspell и неправильно писать «Рабочий стол», чтобы увидеть, исправляет ли оболочка это за нас:

shopt -s cdspell
cd Desktpo

В

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

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

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

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

В

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

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

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

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