Команда cd в Linux (Изменить каталог)
Команда cd («изменить каталог») используется для изменения текущего рабочего каталога в Linux и других Unix-подобных операционных системах. Это одна из самых основных и часто используемых команд при работе в терминале Linux.
Текущий рабочий каталог — это каталог (папка), в котором в данный момент работает пользователь. Каждый раз, когда вы взаимодействуете с командной строкой, вы работаете в каталоге.
В этом руководстве мы покажем вам, как использовать команду cd для навигации по дереву каталогов вашей системы.
cd Command
cd — это встроенная оболочка, и ее поведение может немного отличаться от оболочки к оболочке. Он использует переменные среды оболочки для определения необходимой информации для его выполнения.
Мы рассмотрим встроенную в Bash версию cd .
Синтаксис команды cd следующий:
Команда принимает только две опции, которые используются редко.
- −L , переходить по символическим ссылкам . По умолчанию cd ведет себя так, как если бы указана опция -L .
- −P , не переходите по символическим ссылкам. Другими словами, когда эта опция указана, и вы пытаетесь перейти к символической ссылке, которая указывает на каталог, cd перейдет в каталог.
В простейшей форме, при использовании без аргументов, cd перенесет вас в ваш домашний каталог.
При навигации по файловой системе вы можете использовать клавишу Tab для автозаполнения имен каталогов. Добавление косой черты в конце имени каталога необязательно.
Чтобы переключиться в каталог, у вас должны быть разрешения на выполнение для этого каталога.
Команда pwd позволяет узнать, в каком каталоге вы сейчас находитесь.
Абсолютные и относительные имена путей
При указании каталога для перехода вы можете использовать абсолютные или относительные пути. Абсолютный или полный путь начинается с системного корня / , а относительный путь начинается с вашего текущего каталога.
По умолчанию, когда вы входите в систему Linux, вашим текущим рабочим каталогом становится домашний каталог. Предполагая, что каталог Downloads существует в вашем домашнем каталоге, вы можете перейти к нему, используя относительный путь к каталогу:
Вы также можете перейти в тот же каталог, используя его абсолютный путь:
Короче говоря, если путь начинается с косой черты ( / ), это абсолютный путь к каталогу.
Родительский каталог
В Unix-подобных операционных системах текущий рабочий каталог представлен одной точкой ( . ). Две точки ( .. ), одна за другой, представляют родительский каталог или, другими словами, каталог, расположенный непосредственно над текущим.
Если вы наберете cd . , вы перейдете в текущий каталог или, другими словами, команда ничего не сделает.
Предположим, вы находитесь в каталоге /usr/local/share , чтобы переключиться в каталог /usr/local (на один уровень выше текущего каталога), вы должны ввести:
Чтобы переместиться на два уровня вверх в каталог /usr (родительский родитель), вы можете запустить следующее:
Другой пример. Допустим, вы находитесь в каталоге /usr/local/share и хотите перейти в каталог /usr/local/src . Вы можете сделать это, набрав:
Перейти в предыдущий каталог
Чтобы вернуться в предыдущий рабочий каталог, передайте символ тире ( — ) в качестве аргумента команды cd:
Перейдите в домашний каталог
Чтобы перейти в домашний каталог, просто введите cd . Другой способ вернуться прямо в домашний каталог — использовать символ тильды (
), как показано ниже:
Например, если вы хотите перейти в каталог Downloads , который находится внутри вашего домашнего каталога, вы должны ввести:
Вы также можете перейти в домашний каталог другого пользователя, используя следующий синтаксис:
Каталоги с пробелами в именах
Если в имени каталога, в который вы хотите перейти, есть пробелы, вы должны либо заключить путь в кавычки, либо использовать символ обратной косой черты ( ), чтобы избежать пробела:
Выводы
К настоящему времени вы должны хорошо понимать, что такое текущий рабочий каталог и как использовать команду cd для перехода в другой каталог.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Как сменить рабочую директорию в Линукс, курсы администратора Linux Варшава
Уметь работать в командной строке Линукс — важная часть подготовки любого IP-специалиста. Стоит отметить, что этот способ управления имеет множество преимуществ перед графическим интерфейсом. Однако при этом куда более требователен к уровню знаний пользователя. То есть, без точного понимания вы не сможете интуитивно пользоваться всеми функциями. Сегодня мы расскажем о том, как сменить рабочую директорию в командной строке. С этого начинаются многие курсы администратора Linux Варшава.
Команда для смены рабочей директории в Линукс, курсы администратора Linux Варшава
Прежде всего, давайте разберемся в том, какая команда предусмотрена разработчиками. Чтобы изменять директорию, в которой в данный момент работает пользователь. И эта команда крайне проста — это cd (от английского change directory). Таким образом, как учат любые курсы Linux онлайн Варшава, в командную строку нужно ввести команду cd. И через пробел добавить аргумент в виде названия новой директории.
При этом, если новый каталог является подкаталогом текущего каталога — достаточно добавить к команде его название. В командной строке вы увидите, что к имени пользователя добавится путь к этому каталогу. И все команды без дополнительных аргументов в виде пути будут применяться к содержимому нового каталога.
Допустим, что вы хотите перейти в каталог, который находится на один уровень выше текущего. И при этом не знаете его точного названия и пути к нему. Тогда в качестве аргумента команды cd просто добавьте две точки — «..». В UNIX-подобных операционных системах (а значит — и в Linux) данная комбинация означает «на один каталог выше»
Конечно же, если вы хотите перейти в директорию, путь до которой сильно отличается от пути до текущей. Не обойтись без указания пути до этой директории. Если они лежит на несколько уровней ниже в подкаталогах текущей директории — хватит относительного пути. Если же нет — тогда придется воспользоваться абсолютным путем.
При этом по умолчанию каждый пользователь начинает работу в своем рабочем каталоге. Чтобы вернуться к нему — введите команду cd и символ «
» в качестве аргумента. Также с этого символа можно начинать относительный путь к нужному подкаталогу. Для лучшего понимания работы с командой рекомендуем пройти курс обучения Linux Варшава. В рамках которого предусмотрена практика в виртуальной среде, имитирующей командную строку Ubuntu.
Как просмотреть содержимое директории в Linux
Конечно же, невозможно пользоваться командой cd вслепую, не зная, что находится в каталоге. Однако любые вводные учебные курсы Linux Варшава научат вас использовать еще одну команду — ls (англ. list). Если просто ввести ее в командную строку — вы увидите список файлов и каталогов в текущем каталоге. Если это позволяют возможности терминала — разные типы содержимого будут отличаться по цвету.
Чтобы узнать больше о содержимом — просто добавьте к команде ls опцию -l. В таком случае утилита перейдет в подробный режим отображения и будет выводить построчно информацию о содержимом каталога:
- тип содержимого (каталог, файл);
- разрешения для владельца, членов его группы пользователей и прочих пользователей (чтение, запись, исполнение);
- размер содержимого;
- владелец и группа владельцев файла;
- дата создания / изменения.
Теперь вы знаете, как ориентироваться в файловой системе Линукс. И как менять рабочую директорию, отображать ее содержимое и т.п. Хотите знать больше? Приглашаем вас учиться на платформе SEDICOMM University!
Как сменить рабочую директорию linux
Команда cd реализована в подавляющем большинстве, если не во всех командных оболочках и позволяет изменить текущую (рабочую) директорию.
сd во всех случаях является встроенной командой, так как смена текущей директории в рамках дочернего процесса не приведет ни к каким последствиям на уровне командной оболочки. Смена текущей директории в рамках дочерней командной оболочки также не влияет на текущую директорию родительской командной оболочки.
Примеры использования
Переход в произвольную директорию
Для того, чтобы перейти в интересующую вас директорию, достаточно ввести в качестве аргумента cd полный путь к ней:
Если же нужно перейти в поддиректорию текущей директории любого уровня вложенности, следует использовать символ точки. Данная команда аналогична предыдущей при условии нахождения в домашней директории (/home/alex):
Переход в родительскую директорию
Следующая команда позволяет переместиться на уровень выше в дереве директорий:
Переход в домашнюю директорию пользователя
Для перехода из текущей директории в домашнюю директорию пользователя, путь к которой хранится в переменной окружения $HOME, достаточно воспользоваться следующей командой:
Вызов cd без аргументов приводит к аналогичному результату:
Переход в последнюю посещенную директорию
Для того, чтобы вернуться в ранее посещенную директорию, путь к которой хранится в переменной окружения $OLDPWD, достаточно воспользоваться следующей командой:
Получение информации о текущей директории
Для того, чтобы узнать путь к текущей директории, следует воспользоваться командой pwd:
Переход в директорию с пробелами и специальными символами в имени
Для ссылки на директории с символом # или пробелами в именах достаточно поместить имя этой директории в скобки:
Смена директории в linux
Смените каталог легко, если вы знаете где вы находитесь в данный момент (ваш текущий каталог) и куда вы хотите отправиться. Каталог, в который вы хотите попасть, выше или ниже текущего?
Чтобы сменить каталог, выполните команду cd . Команда в таком виде перенесёт вас в ваш домашний каталог; чтобы перейти в другой каталог необходимо указать путь к нему.
Вы можете использовать абсолютные или относительные пути. Абсолютные пути указываются от верхнего каталога / (называемого корнем) до указанного каталога; относительные пути указываются от текущего каталога, где бы он не находился. Дерево, показанное ниже, приведено в качестве примера, помогающего понять команду cd .
/ directory1 directory2 directory3
Если вы находитесь в directory3 и хотите перейти в directory1 , вы должны подняться в дереве каталогов выше.
находясь в каталоге directory3 , вы получите сообщение об ошибке, сообщающее о том, что нет такого каталога. Это происходит потому что, действительно, нет каталога directory1 в каталоге directory3 .
Чтобы подняться к каталогу directory1 , вы должны ввести:
Это абсолютный путь. Он указывает Linux начать сверху и опуститься в каталог directory1 .
Запомните, абсолютные пути перенесут вас В любой каталог ИЗ любого, а относительные пути, перенесут вас в каталоги, расположенные ниже текущего.
Рисунок 10-3. Абсолютные пути указывают полный путь
Как отличить относительный путь от абсолютного? |
---|
Проверьте, где вы находитесь |
---|
Команда | Функция |
---|---|
cd | переносит вас в ваш домашний каталог |
cd | также переносит вас в ваш домашний каталог |
cd / | переносит вас в корневой каталог всей системы |
cd /root | переносит вас в домашний каталог пользователя root, или супер-пользователя, учётной записи, созданной во время установки системы |
cd /home | переносит вас в каталоге home, в котором находятся каталоги пользователей |
cd .. | переносит вас на один уровень выше |
cd otheruser | переносит вас в домашний каталог пользователя otheruser , если только пользователь otheruser дал вам соответствующие разрешения |
cd /dir1/subdirfoo | Вне зависимости от того, где вы находитесь, этот абсолютный путь перенесёт вас прямо в каталог subdirfoo , подкаталога, вложенного в dir1 |
cd ../../dir3/X11 | Этот относительный путь сначала поднимет вас на два уровня выше, затем спустит в dir3, и наконец, в каталог X11. |
Теперь когда вы начали понимать как менять каталоги, посмотрите, что произойдет, если вы перейдёте в домашний каталог пользователя root (суперпользователя). Введите:
Если вы не зарегистрированы под именем root, при обращении к этому каталогу вы получите сообщение «в доступе отказано».
Запрещая доступ к учётным записям root и других пользователей (или их домашним каталогам), ваша система Linux защищается от случайного или преднамеренного повреждения. Обратитесь к разделу Владение и разрешения
Чтобы перейти в каталог root, воспользуйтесь командой su . Введите эту последовательность команд:
[newuser@localhost newuser]$ su Password: ваш пароль root [root@localhost newuser]# cd /root [root@localhost /root]#
Как только вы введете правильный пароль root, вы заметите, что ваше приглашение изменилось и теперь в нём отмечено ваше звание суперпользователя, в начале приглашения учётной записи root отображается символ «#» (как показано на Рисунке 10-5 ).
Рисунок 10-5. Превращение в root
Теперь, если вы выполните cd для перехода к домашнему каталогу пользователя root, вы получите к нему доступ.
Завершив работу под именем root, просто введите в приглашении exit .
[root@localhost /root]# exit exit [newuser@localhost newuser]$
Смена директории в linux
Сменить рабочий каталог на другой очень легко, если известно, где вы находитесь (известен ваш текущий каталог) и где находится каталог, в который необходимо перейти.
Для смены каталога используется команда cd . Если вы введете эту команду без аргументов, вы попадете в свой домашний каталог; чтобы попасть в любой другой каталог, необходимо указать путь (pathname) к нему.
Вы можете использовать или абсолютный, или относительный путь. Абсолютный путь начинается от верха файловой системы, с корневого каталога / , также называемого просто корень (root), и продолжается до запрашиваемого каталога; относительный путь начинается от вашего текущего каталога, где бы он ни находился. Приведенное ниже дерево каталогов показывает, как работает команда cd .
Если в данный момент вы находитесь в каталоге dir3 и хотите перейти в dir1 , вам необходимо переместиться по дереву каталогов выше.
Если находясь в каталоге dir3 ввести команду
появится сообщение об отсутствии такого каталога. Это происходит потому, что каталога dir1 действительно нет в каталоге dir3 .
Чтобы подняться к каталогу dir1 , наберите:
Это пример абсолютного пути. Он дает Linux команду начать с верха дерева каталогов ( / ) и спуститься до каталога dir1 . Путь является абсолютным, если он начинается с / . В противном случае это относительный путь.
Использование абсолютного пути позволяет вам перейти в нужный каталог от корневого каталога / , но для этого надо знать и ввести полный путь до него. Использование относительных путей позволяет изменять каталог относительно текущего каталога, что бывает удобно, если вы переходите в каталог, который является подкаталогом текущего.
Команда cd .. сообщает системе о необходимости подняться на один уровень вверх относительно текущего каталога. Команда cd ../.. позволит подняться на два уровня.
Следующее упражнение поможет вам понять разницу между абсолютным и относительным путями. Находясь в своем домашнем каталоге, введите такой относительный путь:
После выполнения этой команды вы должны оказаться в каталоге X11 , который содержит конфигурационные файлы и каталоги системы X Window.
Командой cd вы дали системе указание:
Подняться из каталога, в который вы попадаете при входе в систему (скорее всего, это каталог /home ), на один уровень вверх в родительский каталог.
Затем подняться в его родительский каталог (корневой каталог root, или / ).
Затем спуститься в каталог /etc/ .
Наконец, перейти в каталог X11/ .
В данном случае использование абсолютного пути позволило бы вам попасть в каталог /etc/X11/ быстрее:
Абсолютный путь начинается от корневого каталога (/) и опускается до каталога, указанного вами.
Всегда следует знать, в каком каталоге вы находитесь, прежде чем задавать относительный путь до требуемого каталога или файла. Заметьте, что если вы указываете абсолютный путь к нужному файлу или каталогу, то знать текущий каталог совершенно необязательно. Если вы точно не знаете, где находитесь, введите команду pwd , и полный путь до текущего каталога будет выведен на экран, что поможет вам ориентироваться при задании относительного пути для перехода в другие каталоги.
Команда cd имеет множество опций, описание которых вы найдете в man-странице (наберите в командной строке man cd ). В Табл. 4.2, Примеры использования команды cd приведены примеры использования команды cd .
Таблица 4.2. Примеры использования команды cd
Теперь, когда вы знаете, как перейти из одного каталога в другой, давайте посмотрим, что произойдет, если попытаться перейти в домашний каталог пользователя root (суперпользователя). Введите:
Если вы не вошли в систему как суперпользователь, вам не удастся перейти в этот каталог.
Запрет доступа к файлам суперпользователя и других пользователей — один из способов предотвращения случайного или злонамеренного вмешательства в систему. За более подробной информацией обратитесь к Разд. 4.16, Владельцы и права доступа.
Чтобы попасть в каталог суперпользователя, используйте команду
Команда su означает подстановку пользователя и позволяет вам временно стать в системе другим пользователем. Если вы вводите просто su и затем нажимаете клавишу [Enter] , вы становитесь root’ом (еще вас можно будет назвать суперпользователем), оставаясь при этом в вашем домашнем окружении (в вашем пользовательском домашнем каталоге). А если вы вводите su — , становитесь суперпользователем и попадаете в окружение суперпользователя, как если бы вы вошли в систему, используя имя и пароль root’а.
Как только вы введете пароль суперпользователя, командная строка изменится и будет выглядеть примерно так:
Закончив выполнение задач, для которых необходимы права суперпользователя, наберите в командной строке exit — вы вернетесь к своему профилю пользователя.