Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем изучать систему Linux, ранее мы познакомились с тем, что такое эмулятор терминала и командная оболочка, теперь начнем знакомиться с командами Linux. Кстати, если вы пользователь Windows и хотите начать знакомиться с Linux, то рекомендую первое знакомство осуществлять на виртуальной машине, например, VirtualBox.
В этой публикации мы рассмотрим четыре простых команды, которые используются для навигации в системе Linux, то есть для перемещения по каталогам и папкам. Эти команды помогут вам начать изучать свою систему и просматривать из чего она состоит. Но для начала мы немного поговорим про относительный и абсолютный путь в Linux, это нужно, чтобы было понимание, что мы вообще делаем. Первая команда, которую мы рассмотрим — pwd. Команда pwd используется для просмотра текущего рабочего каталога в Linux. Далее мы разберемся с командой cd. Команда cd позволяет нам перемещаться по каталогам системы. Еще мы поговорим о команде ls, которая позволяет просматривать содержимое любого каталога вашей системы. В завершение мы рассмотрим команду file. Команда file в системах Linux используется для того, чтобы определить тип объекта файловой системы, ведь самому Linux вовсе не нужно расширение, чтобы понять какой файл перед ней.
Относительный и абсолютный путь в Linux
Любая иерархия каталогов в операционных системах подобных Unix начинается с корневого каталога или корня, который обозначается таким вот образом: «/». Обратите внимание: именно слэш (/), а не обратный слэш (\). Когда мы пытаемся получить доступ к файлу или каталогу при помощи командной оболочки, нам необходимо указывать путь к тому объекту файловой системы, к которому мы ходим обратиться.
Путь к объекту может быть абсолютным, а может быть относительным. Если путь к файлу или каталогу начинается с корня, то такой путь называется полным или абсолютным, так как таким образом можно «дотянуться» до любого файла из любой точки операционной системы. Если путь к файлу начинается с той, папки, в которой вы работает, то такой путь называется относительным и работать такая конструкция будет только из той папки, в которой вы находитесь в данный момент. Путь называется относительным, поскольку он составляется относительно того или иного каталога или файла.
На рисунке ниже показана иерархия каталогов, к которой мы все привыкли, когда используем графический файловый менеджер.
Древовидная структура любой файловой системы, к которой привыкли пользователи Windows
Нас интересует каталог dir1, который находится на рабочем столе, у этого каталога есть дочерний или вложенный каталог, который называется dir2, а родительским каталогом для dir1 является «Рабочий стол». Допустим, если мы находимся в каталоге dir1, то для того, чтобы перейти в каталог «Рабочий стол», нам нужно воспользоваться конструкцией «...», это будет относительным путем, поскольку он будет выстроен относительно каталога dir1.
Если же мы хотим из каталога dir1 попасть в каталог dir2, то можем воспользоваться вот таким путем: ./dir1. Здесь символы точка-слеш означает текущий рабочий каталог, конструкцию ./ в данном случае можно не писать, bash вас поймет и без нее. Хотя как в первом, так и во втором случае, можно воспользоваться абсолютным путем. Для рабочего стола абсолютный путь в моем случае выглядит так:
[php]
/home/kirill/Рабочий стол/
[/php]
А для каталога dir2 так:
[php]
/home/kirill/Рабочий стол/dir1/dir2/
[/php]
Если мы находимся в каталоге dir1 и хотим попасть в каталог dir6, то мы можем воспользоваться относительным путем:
[php]
dir2/dir6
[/php]
Этот путь я выстроил относительно каталога dir1. Из каталога dir6 можно вернуться в каталог dir1, используя относительный путь:
[php]
.../.../
[/php]
Здесь мы сперва вернемся в каталог dir2, а затем спустимся еще на ступеньку ниже — в каталог dir1. Но из каталога dir1 можно попасть в dir6, используя абсолютный путь:
[php]
/home/kirill/Рабочий стол/dir1/dir2/dir6/
[/php]
Также можно использовать абсолютный путь, чтобы из каталога dir6 вернуться в dir1:
[php]
/home/kirill/Рабочий стол/dir1
[/php]
С относительными и абсолютными путями в Linux мы разобрались, можем приступить к изучению команд.
pwd – команда для просмотра названия текущего рабочего каталога
Понятно, что, когда мы используем командую оболочку в Linux, то в тот или иной момент времени мы модем находиться только в одном конкретном каталоге. При этом мы можем получить ценную информацию из данного каталога, которую сможем использовать для навигации и перемещения между папками.
Во-первых, мы можем узнать содержимое текущего каталога, который, кстати, называется текущим рабочим каталогом. Еще мы можем узнать название родительского каталога и какие у текущего каталога есть дочерние каталоги.
Когда мы разбирались с терминалом и командной оболочкой, то говорили, что в приглашении терминала обычно указывается название текущего рабочего каталога, но приглашение можно настроить так, чтобы название и путь до текущего каталога не показывался и, например, в таких ситуациях неплохо было бы узнать, где мы, собственно, находимся, чтобы понять куда нам идти, для этой цели и служит команда pwd (print working directory). Давайте выполним ее из каталога dir1:
[php]
kirill@AsusPC ~/Рабочий стол/dir1 $ pwd
/home/kirill/Рабочий стол/dir1
kirill@AsusPC ~/Рабочий стол/dir1 $
[/php]
Помните, что при входе в терминал мы обычно попадаем в свой домашний каталог, который для краткости в приглашении обозначается символом ~, давайте выполним команду pwd в домашнем каталоге:
[php]
kirill@AsusPC ~ $ pwd
/home/kirill
kirill@AsusPC ~ $
[/php]
В общем и целом, pwd – это самая простая команда, которую вы можете использовать для навигации при работе с командной оболочкой.
ls – команда для просмотра содержимого каталога
Для команды ls у нас будет отдельная публикация, в который мы подробнее разберемся с ее возможностями. Сейчас нам важно отметить следующее: команда ls используется для просмотра содержимого текущего каталога или любого другого каталога, к которому у вас есть права на чтение.
Работает команда ls очень просто, давайте выполним ее из своего домашнего каталога:
[php]
kirill@AsusPC ~ $ ls
Dropbox Документы Изображения Общедоступные Шаблоны
Видео Загрузки Музыка Рабочий стол
kirill@AsusPC ~ $
[/php]
Если мы хотим увидеть содержимое рабочего стола, находясь в домашнем каталоге, то команде ls можно передать путь до того каталога, который мы хотим посмотреть:
[php]
kirill@AsusPC ~ $ ls /home/kirill/"Рабочий стол"/
dir1
kirill@AsusPC ~ $
[/php]
На самом деле возможности команды ls куда шире, чем мы их сейчас описали, эта команда обладает массой всевозможных интересных параметров, которые можно комбинировать друг с другом, но об этом в другой раз. Кстати сказать: часто новички в мире Linux, когда речь заходит о командах говорят фразу: дайте список всех Linux команд. Так вот, списка всех команд Linux не существует. Дело всё в том, что каждый дистрибутив (в том числе и Linux Mint) обладает своим собственным набором команд, более того, вы можете изменить этот набор команд удалив или установи какую-нибудь программу, имя которой станет новой командой (про установку Linux Mint на виртуальную машину VirtualBox вы можете почитать здесь).
cd – команда для перемещения по каталогам и папкам
Определять свое местоположение в системе и просматривать содержимое различных каталогов мы научились, теперь давайте научимся двигаться по лабиринту каталогов Linux, для этих целей у нас есть команда cd (change directory).
Давайте для начала перейдем из домашнего каталога в dir1, который находится на рабочем столе. Сделать это можно, используя абсолютный путь cd /home/kirill/Рабочий стол/dir1:
[php]
kirill@AsusPC ~ $ cd /home/kirill/Рабочий стол/dir1
bash: cd: /home/kirill/Рабочий: Нет такого файла или каталога
kirill@AsusPC ~ $
[/php]
Обратите внимание: произошла ошибка, командная оболочка не смогла найти каталог с именем Рабочий. Дело все в том, что «пробел» в системах подобных Unix является разделительным символом. Вообще, терминал работает с тремя видами символов: обычные текстовые символа, разделительные символы и специальные символы, пробел относится к разделительным и терминал их обрабатывает по-особенному, когда встречает их. Чтобы терминал понял, что словосочетание Рабочий стол — это имя каталога (то есть, чтобы терминал проигнорировал символ пробела), его надо взять в кавычки, которые могут быть как одинарными, так и двойными:
[php]
kirill@AsusPC ~ $ cd /home/kirill/'Рабочий стол'/dir1
kirill@AsusPC ~/Рабочий стол/dir1 $
[/php]
Также из домашнего каталога можно перейти в каталог dir1, используя относительный путь:
[php]
kirill@AsusPC ~ $ cd 'Рабочий стол'/dir1
kirill@AsusPC ~/Рабочий стол/dir1 $
[/php]
А вернуться из dir1 на рабочий стол, мы можем при помощи вот такой конструкции:
[php]
kirill@AsusPC ~/Рабочий стол/dir1 $ cd ...
kirill@AsusPC ~/Рабочий стол $
[/php]
Или же можем использовать абсолютный путь:
[php]
kirill@AsusPC ~/Рабочий стол/dir1 $ cd /home/kirill/'Рабочий стол'/
kirill@AsusPC ~/Рабочий стол $
[/php]
Чтобы перейти с каталога «Рабочий стол» в каталог dir1, мы можем воспользваться такой штукой:
[php]
kirill@AsusPC ~/Рабочий стол $ cd ./dir1
kirill@AsusPC ~/Рабочий стол/dir1 $
[/php]
Хотя конструкцию ./, которая говорит терминалу о том, что это текущий каталог можно опустить, посмотрим это, перейдя из каталога dir1 в dir2:
[php]
kirill@AsusPC ~/Рабочий стол/dir1 $ cd dir2
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $
[/php]
Стоит отметить, что у команды cd есть несколько полезных сокращений, которые я рекомендовал бы запомнить:
- cd – переместит вас в домашний каталог;
- cd / — переместит вас в корень;
- cd — – переместит вас в предыдущий рабочий каталог;
- cd ~username – переместит вас в домашний каталог того пользователя, чей логин вы указали.
file – команда для определения типа файлов
Вам нужно для себя отметить две вещи: работа с операционными системами типа Unix требует от пользователя некоторой внимательности и всё сущее в Linux есть файл. Про работу с файлами в командной оболочке bash мы поговорим отдельно, сейчас давайте разберемся с тем, как определить тип файла, ведь ОС семейства Linux у файлов не обязательно должны быть расширения, а тип файла операционная система определяет по другим параметрам. То есть, если в Linux вы видите файл pict1.jpg – это не обязательно будет изображение.
Но мы смоделируем несколько другую ситуацию. На рабочем столе у меня есть каталог dir1, в котором есть каталог dir2, а в каталоге dir2 есть папки dir4 и dir6 и файл с именем dir5, это показано на рисунке ниже.
Часть содержимого каталога с именем dir2
Давайте перейдем в каталог dir2 и выполним команду ls:
Выполнив команду ls мы увидели содержимое каталога dir2 в терминале
Обратите внимание: у меня терминал настроен таким образом, что подсвечивает разными цветами разные объекты файловой системы, хотя ключевое слово здесь настроен, этого может и не быть. Тут, например, терминал подсвечивает каталоги синим цветом, мультимедийные файлы пурпурным, а обычные файлы белым, давайте проверять, но этого может и не быть, хотя терминал может подсвечивать и неправильно, давайте убедимся.
Чтобы понять что здесь есть файл, а что каталог, нам нужно воспользоваться дополнительной командой file, применим ее к объектам файловой системы dir4, dir5, dir6:
[php]
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ file dir4 dir5 dir6
dir4: directory
dir5: UTF-8 Unicode text
dir6: directory
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $
[/php]
Как видим, команда file указывает не только тип файла, но и умеет определять что объект является каталогом. А еще из примера видно, что file умеет работать сразу с несколькими аргументами, то есть ей на проверку можно отправлять сразу несколько файлов, а можно это делать и по одному. Также из примера выше видно, что dir5 — это обычный текстовый файл в кодировки UTF-8. Давайте проверим оставшиеся файлы:
[php]
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ file file5
file5: UTF-8 Unicode text
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ file file6
file6: UTF-8 Unicode text
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ file pict1.jpg
pict1.jpg: UTF-8 Unicode text
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ file pict2.jpg
pict2.jpg: cannot open `pict2.jpg' (No such file or directory)
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ file pict2.png
pict2.png: empty
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $ file vasya
vasya: PNG image data, 1920 x 1000, 8-bit/color RGB, non-interlaced
kirill@AsusPC ~/Рабочий стол/dir1/dir2 $
[/php]
Команда file умеет определять тип файла лучше, чем подсвечивает терминал. Здесь мы видим, что файлы file5 и file6 — это текстовые файлы в кодировке UTF-8. Файл pict1.jpg вовсе никакая не картинка, а текстовый файл. Файла pict2.jpg не существует и file нам об этом сообщает, файл pict2.png вообще является пустым, а вот файл с незамысловатым именем vasya на самом деле является изображением и мы даже видим некоторые характеристики этого изображения.
Итак, мы изучили несколько команд оболочки, которые помогут нам изучать систему Linux Mint и перемещаться между каталогами и папками, а также просматривать их содержимое и определять его тип, для этих целей у нас есть четыре команды: cd, ls, file, pwd. И не забывайте, что для перемещения по каталогам в Linux можно использовать как абсолютный путь, так и относительный.
В следующей публикации мы с вами познакомимся с командами Linux, которые дают нам возможность просматривать файлы.
Я хочу продолжить выпускать уроки по Linux Mint и командной оболочке bash
Если это так, то ваше желание совпадает с моим. Но мне от вас нужна небольшая помощь! Дело всё в том, что весь мой контент доступен полностью и абсолютно бесплатно в блоге и на канале YouTube. Создание контента — это работа, отнимающая много сил и энергии (благо, она мне нравится и пока я готов ей заниматься), оплату с вас за эту работу я не прошу, но прошу помочь распространить этот контент и поддержать мой канал и группу Вконтакте. Поэтому, если вы хотите, чтобы видео выходили чаще, лучше и больше, то можете мне помочь один из нескольких способов, указанных ниже, это нетрудно, но очень мотивирует и помогает:
- Оставьте ссылку на мой сайт, канал, группу в ВК, отдельное видео у себя на странице в соц. сетях или на своем сайту.
- Вступите в группу в ВК: https://vk.com/zametkinapolyah.
- Подпишитесь на мой YouTube-канал: https://www.youtube.com/user/zametkinapolyahru.
- И самое эффективное: после просмотра видео не забудьте написать отзыв в комментариях на YouTube и поставить лайк видео, опять же, на YouTube.
Замечу, что все мои видео уроки появляются сперва на YouTube, там вы их увидите быстрее всего.
Если вы считаете, что я вам помог и хотите меня отблагодарить материально, то можете воспользоваться реквизитами, указанными ниже. Все вырученные с доната деньги пойдут на улучшение качества видео, например, я возьму хороший USB микрофон, это будет как приятное дополнение к Full HD.
WMR: R288272666982
WMZ: Z293550531456
Яндекс.Деньги: 410011531129223
Выберете удобный для себя способ, чтобы оставить комментарий