К основному контенту

Используем абсолютные и относительные пути в консоли

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

Давайте для начала рассмотрим самые известные для всех, пути к нашим файлам и директориям, а именно абсолютные пути. Откройте терминал и выведите команду которая выводит полный путь к вашей домашней директории. Я о этой команде рассказывал недавно, вот здесь. Вводим pwd:

:~$ pwd
/home/dante

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

Относительные пути в консоли, отсчитывают категории относительно той категории в которой вы находитесь. Их возможно использовать при помощи ".." двух точек, указанных перед папкой в которую мы хотим перейти. Давайте перейдём куда-нибудь в нашей операционной системе. Например в папку usr и осмотрим её содержимое командой ls.

dante@dante-1001PXD:~$ cd /usr
dante@dante-1001PXD:/usr$ ls
bin games include lib local sbin share src
dante@dante-1001PXD:/usr$ 

Вот мы видим список доступных директорий. Давайте теперь перейдём в директорию «share».

dante@dante-1001PXD:~$ cd /usr/share
dante@dante-1001PXD:/usr/share$

Так, сейчас мы находимся в категории /usr/share как мы видим. Давайте сейчас перейдём в категорию которая находится на одном уровне с той категорией, в которой мы находимся. Например в категорию «local». Это можно сделать при помощи абсолютного пути вот так.

dante@dante-1001PXD:~$ cd /usr/local
dante@dante-1001PXD:/usr/local$
 

Но сейчас давайте будем использовать не абсолютный путь, а относительный к нашей директории, путь относительно категории в которую мы перешли. То есть относительно категории «share», итак мы находимся вот здесь.

dante@dante-1001PXD:/usr/share$ pwd
/usr/share
dante@dante-1001PXD:/usr/share$

Как видите я вывел для вас в консоли, полный путь к тому месту где вы находитесь. Мы знаем что директория «local» находится на одном уровне с директорией «share» и мы можем использовать команду, вот такого вида.

dante@dante-1001PXD:/usr/share$ cd ../local
dante@dante-1001PXD:/usr/local$

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

Для того чтобы перейти в следующую директорию, достаточно в консоли ввести команду относительно Вашей рабочей директории. Для этих целей используйте вместо ".." двух точек, "." одну точку и Вы будете двигаться относительно той директории в консоли, в которой находитесь на данный момент. Давайте вернёмся в директорию /usr и осмотрим ещё раз что там находится.

dante@dante-1001PXD:/usr/local$ cd /usr
dante@dante-1001PXD:/usr$ ls
bin games include lib local sbin share src
dante@dante-1001PXD:/usr$ 

Давайте теперь перейдём в директорию «share» относительно той директории в которой мы сейчас находимся. Для этого введите в консоли

dante@dante-1001PXD:/usr$ cd ./local
dante@dante-1001PXD:/usr/local$ 

Как видите использование относительных путей, способно сильно сократить команды которые Вы вводите в консоли Линукс.

Комментарии

Популярные сообщения из этого блога

Перезагрузка Linux в чем разница reboot и shutdown -r now

Брат сегодня спросил, а в чем разница между командами в терминале reboot и shutdown -r now ? Ведь обе эти команды делают кажется одно и тоже. Перезагружают операционную систему. Для чего вводить shutdown -r now , если данная команда заметно длиннее??? На первый взгляд он конечно прав, обе команды действительно делают лишь то, что перезагружают операционную систему Linux. Разница состоит в том как эти команды выполняют перезагрузку. Команда shutdown -r now указывает операционной системе Linux перезагрузить систему сейчас, на что указывает конец данной команды, а именно now . Но на саму перезагрузку это конечно не влияет. Все дело в том что команда shutdown -r выполняет корректное завершение процесса работы. То есть ждёт необходимое для завершения работы программы время, а это может занять достаточно долгое время. Если же система вдруг по каким либо причинам подвисла, время это может растянутся на десятки минут или дольше что не всегда удобно. Команда же reboot просто посылает ком

Настройка bash терминала под себя

Сегодня, в очередной раз разбираясь с работой в консоли Линукс я решил, для удобства немного подредактировать свой файл .bashrc Данный фаил отвечает за то что выводится на экран во время нашей работы в bash . Вообще настроек в bash существует достаточно много и я ещё не со всеми разобрался, да и не все пока разбирал. Например я пока не разбирал цветную настройку консоли. А знаю что консоль можно разукрасить практически как новогоднюю Ёлку. Но всему своё время. Изменений в файле " .bashrc " на сегодня я хоть и сделал не так и много, но это уже позволяет значительно упростить мою работу и обучение работе с консолью. Файл " .bashrc " находится в нашей домашней директории вот здесь ~/.bashrc , как видите знак тильды указывает на то что фаил находится в Вашей домашней директории, как я это уже говорил ранее в статье, когда описывал команды для передвижения по директориям в системе Линукс, в консоли. Точка с которой начинается название файла говорит нам о том чт

Скачиваем deb-пакеты с зависимостями для offline-установки

Сегодня вот задумался над тем что же делать если доступа в интернет не будет, а понадобится установить какую-либо программу. Ведь программы в Linux Ubuntu устанавливаются из интернет-репозиториев. Кстати это работает и в Kubuntu, Lubuntu. Остальные не проверял. А как взять необходимые для установки deb-пакеты? Если на компьютере ещё нет интернета, хотя бы программу для подключения к интернету, например ту же программу wvdial. Чтобы можно было подключить например мой модем в консоли. Хоть я и разобрался как подключать 3g USB-модем при помощи pppd . Но а вдруг понадобится. Для того чтобы получить список интернет адресов где находятся наши deb-пакеты я использую программу apt-get , в виде команды apt-get --print-uris --yes здесь --print-uris возвращает URL адреса на экран. Для вывода данной команды права суперпользователя ненужны, так что sudo вводить Вам не понадобится. apt-get --print-uris --yes install wvdial Но чтобы отсеить результаты и оставить одни URL-адреса. Я использую