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