Где теперь живёт наша заметка

В первом блоке мы с вами освоились в терминале и научились отдавать команды. Мы даже заглядывали в файл /etc/os-release, чтобы узнать, какая версия Ubuntu перед нами. Тогда это был просто удачный пример: команда cat показала содержимое, и мы убедились, что система умеет отвечать на вопросы. Теперь пришло время разобраться, что именно мы видели.

У каждого из вас наверняка есть собственные записи за пределами Ubuntu: заметки, сделанные в телефоне, документы, сохранённые в Windows или macOS, пароли, рецепты, список покупок. Всё это лежит где-то в других системах и пока никак не связано с Linux. Когда вы начнёте переносить свои записи в Ubuntu, возникнет простой вопрос: куда их положить? И как потом объяснить системе, где именно лежит нужный файл?

Чтобы ответить на этот вопрос, нужно понять, как Linux организует все файлы на диске. Пока мы работали только с одним конкретным файлом и одной командой. Теперь от этого примера можно оттолкнуться и посмотреть, какая структура стоит за ним.

Файлы и каталоги

В этом блоке нас будут интересовать файлы с данными и каталоги, в которых они находятся. Обычный файл — именованный набор данных; допустимые действия с ним зависят от предоставленного доступа. В файле может лежать текст, картинка, программа, настройки, всё что угодно. Для системы не так важно, что именно внутри, как то, что у файла есть имя и его можно найти.

Файлов, как вы понимаете, в системе очень много. Если бы все они лежали одной кучей, разобраться в них было бы невозможно. Поэтому файлы объединяют в каталоги. Каталог — это именованное место, в котором могут находиться файлы и другие каталоги. В повседневной речи каталоги часто называют папками. Это знакомое слово, и оно неплохо передаёт идею: в папку можно положить документы, а внутрь неё — ещё папки. Но в терминале и в документации обычно говорят именно «каталог», поэтому мы тоже будем использовать это слово.

Из таких вложений складывается общая картина. Каталоги могут содержать другие каталоги, те — следующие, и в результате образуется дерево. Ствол у этого дерева один, а ветви расходятся от него в стороны. У дерева каталогов есть начало — один главный каталог, из которого растёт всё остальное.

Корень всего дерева

Этот главный каталог называется корнем. Записывается он очень коротко — одной наклонной чертой /. Это и есть весь адрес корня: просто /.

Здесь легко споткнуться, поэтому давайте сразу закрепим. Слово «корень» в Linux мы будем встречать в разных значениях. Сейчас речь идёт не о пользователе root и не о каких-то правах доступа. Речь о корневом каталоге — о самой верхней точке дерева файлов. Все остальные файлы и каталоги находятся внутри него. Когда вы видите наклонную черту в начале адреса, она указывает именно на этот корневой каталог.

Теперь можно представить, как выглядит адрес в Linux. Один из способов указать адрес файла — описать путь от корня дерева до самого файла. Части пути разделяются той же наклонной чертой /. Сначала идёт корень, потом каталог, потом его подкаталог, и так до нужного файла.

Вернёмся к уже знакомому примеру. Мы с вами открывали файл командой cat /etc/os-release. Давайте прочитаем этот адрес по частям. Первая косая черта в начале — это корень дерева. Дальше идёт etc — это каталог, который лежит прямо в корне. Следующая косая черта отделяет имя этого каталога от следующей части. А os-release — это файл, который находится внутри каталога etc. Получается такой путь: от корня в каталог etc, а в нём — файл os-release.

Дом — это не чужое место

Абсолютный путь — вещь надёжная, но есть в нём один неприятный момент. Если каждый раз писать полный маршрут от корня, адреса получаются длинными. К тому же у каждого пользователя есть своё личное пространство, и к нему приходится обращаться постоянно: там хранятся свои документы, проекты, наброски. Было бы неудобно каждый раз печатать полный путь до этого места.

У нашего учебного пользователя Ubuntu есть домашний каталог. Это личная папка, в которой пользователь может хранить свои файлы и создавать собственные каталоги. Домашние каталоги обычно лежат внутри общего каталога /home. Если вашего пользователя зовут, к примеру, student, его домашний каталог будет находиться по адресу /home/student. Если же в Ubuntu используется пользователь ubuntu, тогда путь будет /home/ubuntu.

То есть в адресе /home/student мы снова читаем маршрут от корня: сначала корень /, затем каталог home внутри него, а в нём — каталог student. Это не один каталог с двойным именем и не что-то особенное. Это обычный путь от корня дерева через два вложенных каталога.

Чтобы не набирать такой путь каждый раз, в оболочке есть короткое обозначение. Символ ~ — тильда — заменяет адрес домашнего каталога текущего пользователя. Если передать ~ отдельным словом без кавычек, оболочка развернёт это в полный путь вроде /home/student. Получается, что ~ — это не самостоятельный новый адрес, а сокращение для вполне конкретного места.

Давайте свяжем это с нашей задачей. Вы хотели перенести заметку в Ubuntu, и теперь понятно, куда её логично положить. Когда вы заведёте собственные файлы, им будет уютно именно в домашнем каталоге. Это место принадлежит вам, и там вы сможете навести свой порядок. А записывать дорогу туда можно коротко — через тильду.

Аналогия с адресами

Чтобы собранная картина не рассыпалась на отдельные куски, представим себе городской дом.

Каталоги в Linux устроены как здание с этажами и комнатами. Сам дом стоит на фундаменте, и все помещения находятся над ним. Корень дерева — это что-то вроде входной двери дома, общей точки, от которой мы всегда начинаем путь. Абсолютный путь тогда — это маршрут от двери до нужной комнаты: зашёл, прошёл холл, поднялся на этаж, нашёл кабинет. В таком адресе не бывает пропусков: если вы пишете полный маршрут, вы указываете все двери по порядку.

Домашний каталог в этой аналогии — ваша собственная квартира. Дом общий, и в нём много других помещений, но квартира принадлежит вам. Чтобы войти в неё, вы всё равно идёте от входной двери, но в разговоре с домочадцами можете сказать просто «пойдём ко мне» — и все поймут, о какой квартире речь. Тильда ~ — это как раз такое «ко мне»: короткое указание, которое понятно в текущей ситуации и разворачивается в полный адрес, если нужно.

Теперь вернёмся от здания к реальному пути. Абсолютный путь /etc/os-release — это маршрут от входной двери дома: вошёл, дошёл до служебного кабинета etc и нашёл там карточку с описанием операционной системы. А когда вы будете сохранять свою заметку, вы пойдёте в свою квартиру и положите её в собственном каталоге. Оба места находятся в одном и том же доме, просто маршруты к ним разные.

Что в каталогах важно, а что нет

Осталось уточнить пару деталей, которые часто путают новички. Первая — про имена файлов. Вы наверняка привыкли, что имя файла заканчивается точкой и расширением: .txt, .jpg, .docx. В Linux точка в имени — это обычный символ, и она не создаёт обязательного правила. Система не определяет тип файла только по его расширению.

Это не значит, что расширения бесполезны. Люди всё равно используют их для собственного удобства: файл заметка.txt с самого имени понятно, что внутри текст, хотя система не запрещает положить в него что-то другое. Но если файл называется os-release без расширения, это совершенно нормально для Linux, и мы уже видели такой пример. Главное — не то, что написано после точки, а то, что файл — это именованные данные, а каталог — это именованное место, которое может содержать другие объекты.

Вторая деталь — про слово «файловая система». Мы сегодня говорили о файловой системе как о способе организации файлов: дерево каталогов, корень, пути. Это первое и главное значение для нас сейчас. У этого же термина есть другое, более техническое значение, связанное с конкретным устройством хранения и тем, как данные записаны на диске. Эти подробности нам пока не нужны. Когда мы говорим «файловая система Linux», мы имеем в виду именно общую картину: дерево, корень, каталоги, адреса.

Немного имён вокруг

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

/home — это каталог, в котором обычно находятся домашние каталоги пользователей. Он не является вашим личным каталогом сам по себе, это общий коридор, из которого двери ведут в квартиры. /etc — каталог с настройками системы и её программ. Именно там лежит os-release, который рассказывает о версии Ubuntu. А /tmp — каталог для временных файлов, которые нужны на короткое время. Туда программы могут складывать промежуточные данные, и не стоит хранить там ничего важного.

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

В этом уроке мы выяснили, что все файлы в Linux образуют единое дерево с одним корневым каталогом /. Путь к файлу складывается из названий каталогов, разделённых наклонной чертой. Абсолютный путь всегда начинается от корня и поэтому начинается с /. Мы разобрали уже знакомый пример /etc/os-release: это файл os-release в каталоге etc, который лежит прямо в корне.

У нашего пользователя есть свой домашний каталог, например /home/student или /home/ubuntu, где можно хранить собственные файлы. Короткое обозначение ~ заменяет этот путь в командах. Важно не путать корневой каталог / с пользователем root и не считать расширение файла строгим указанием на его тип. В следующих уроках мы научимся перемещаться по этому дереву.

Читаем адреса и раскладываем файлы по местам

Вы переносите заметки в Ubuntu и решаете, куда их положить. Прежде чем создавать что-то своё, нужно уверенно читать пути и понимать, где заканчивается каждый адрес. В этих заданиях вы разберёте маршруты от корня и свяжете их с ролью файлов.

Куда ведёт путь

Представьте, что вы ищете место для своей заметки о прочитанных книгах и попутно проверяете, как устроены уже знакомые системные файлы. В этой учебной системе домашний каталог пользователя student — /home/student.

12

Что находится по адресу /home/student?

22

Вы переносите в Ubuntu список покупок. Какой путь логичнее всего выбрать для этого файла?

Адреса и их роль

Вы хотите быстро объяснить коллеге, где что лежит в Linux, не перечисляя весь список каталогов.

Сопоставьте путь с тем, что по нему находится. Все адреса вы уже встречали в уроке.

/etc/os-release
/home
/tmp
~
Каталог, в котором обычно находятся домашние каталоги пользователей
Сокращение для домашнего каталога текущего пользователя
Каталог для временных файлов
Файл с информацией о версии Ubuntu внутри каталога настроек

Обсуждение урока

0
Комментарии видны всем. Чтобы участвовать в обсуждении, войдите или зарегистрируйтесь.
Модерация сообщества

Пожаловаться на комментарий

Расскажите модераторам, что именно требует внимания.