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

Команда cd принимает адрес директории в качестве аргумента, куда планируется переход (чтобы она стала текущей). Существует два подхода к указанию адреса: абсолютная и относительная адресация.

При использовании абсолютной адресации, путь к директории начинается от корневого каталога и продолжается вниз по иерархическому дереву вплоть до нужного. Например, такие записи как: /home/pl/Desktop, /boot, /etc/vim обозначают абсолютные пути. Начальный слэш (/) символизирует корень файловой системы.

Метод относительной адресации подразумевает путь, который начинается от текущего каталога (иначе говоря, относительно него). Здесь начальный слэш не используется. Возможные начала относительных путей таковы:

  • Точка "." в начале обозначает текущий каталог, либо её отсутствие указывает на то же самое.
  • Двойная точка ".." указывает на каталог уровня выше — это родительский каталог.

Примеры относительных путей: ./Documents/images и ../test. В первом случае путь ведет к каталогу (images), размещенному в каталоге (Documents), который находится в текущем. Префикс "./" применяем для выполнения файлов. Без него Bash ищет программу в системных директориях, а не в текущей.

Адрес ../test указывает на переход на один уровень выше в иерархии, затем к каталогу test.

Относительный адрес родительского каталога

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

В экосистеме Linux есть еще один способ обращаться к директориям — адрес относительно домашней папки пользователя. Домашний каталог обозначается тильдой (~). Следовательно, адрес ~ отправляет в домашнюю папку. Адрес ~/Documents указывает на подкаталог внутри неё.

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

Переход в каталог

Как показано выше, мы с помощью относительной адресации перемещаемся в каталог bin. Примечательно, что после перехода изменяется приглашение команды. Теперь путь указывается относительно домашней папки. В каталоге bin запускаем скрипт pycharm.sh также через относительный адрес, с точкой, символизирующей текущую директорию.

Переход с абсолютным адресом

При отсутствии аргументов у команды cd, текущей становится домашняя папка. На картинке выше абсолютный путь перемещает в /opt/google. В командной строке Bash теперь указан полный адрес.

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

Переход в домашний каталог

Стоит помнить о полезной функции автозавершения при нажатии клавиши Tab. Она работает так же, как и для выполнения команд.

Вопросы для самопроверки:

  1. Какую команду следует использовать для перехода в другую директорию в Bash?
  2. В чем разница между абсолютной и относительной адресацией в Bash?
  3. Как обозначается домашний каталог пользователя в адресации?
  4. Куда приведет выполнение команды cd ../.. из домашней папки?

Программа курса:

  1. Описание курса
  2. История операционной системы Linux
  3. Основы лицензии GNU GPL и её преимущества
  4. Функции и структура ядра Linux-систем
  5. Структура и каталоги файловой системы Linux
  6. Основные типы файлов в системе Linux
  7. Интерфейс командной строки в Linux
  8. Командная оболочка Bash в Linux
  9. Использование параметров команд в Bash
  10. Использование Ctrl+C, Ctrl+D и Ctrl+Z
  11. Автодополнение и история команд в Bash
  12. Перенаправление ввода и вывода в Bash
  13. Документация Linux и Man-страницы
  14. Абсолютная и относительная адресация в Linux
  15. Команда ls - как просматривать каталоги в Linux
  16. Копирование, перемещение и удаление в Linux
  17. Жесткие и символьные ссылки в Linux
  18. Создание жестких и символических ссылок в Linux
  19. Права доступа к файлам и каталогам в Linux
  20. Изменение прав доступа к файлам с помощью chmod
  21. Использование шаблонов имен файлов в Linux
  22. Поиск файлов в Linux с помощью команды find
  23. Использование команды sudo в Linux
  24. Управление пакетами с помощью APT в Linux