Введение
В рамках этой практической работы мы изучим команду mkdir в Linux — фундаментальный инструмент для создания и организации директорий. Мы смоделируем процесс настройки «цифрового сада» (персональной системы управления знаниями), чтобы научиться эффективно использовать mkdir в различных сценариях. Этот практический опыт поможет вам понять принципы создания папок, построения вложенных структур и настройки прав доступа в Linux, даже если вы совсем новичок в работе с командной строкой.
Создание корня вашего цифрового сада
Начнем с создания корневой директории для вашего цифрового сада.
Сначала откройте терминал. Вы увидите приглашение ко вводу, которое выглядит примерно так:
labex:project/$
Это означает, что вы находитесь в директории /home/labex/project, которая идеально подходит для нашей работы.
Теперь создадим директорию с именем digital_garden:
mkdir digital_garden
Здесь mkdir расшифровывается как «make directory» (создать директорию). Эта команда создает новую папку с именем digital_garden в вашем текущем местоположении.
Чтобы убедиться, что директория создана, воспользуемся командой ls, которая выводит список содержимого папки:
ls
В выводе вы должны увидеть digital_garden. Если вы её не видите, не волнуйтесь! Просто попробуйте выполнить команду mkdir еще раз.
Добавление основных разделов
В цифровом саду удобно распределять мысли по основным категориям. Давайте создадим папки для разных типов контента.
Мы создадим три директории внутри digital_garden: «notes» (заметки), «projects» (проекты) и «resources» (ресурсы). Это можно сделать тремя отдельными командами:
mkdir ~/project/digital_garden/notes
mkdir ~/project/digital_garden/projects
mkdir ~/project/digital_garden/resources
Здесь ~/project/digital_garden/ — это полный путь к нашему цифровому саду. Символ ~ является сокращением для домашней директории пользователя.
Чтобы увидеть новую структуру, используйте команду ls с указанием пути к вашему цифровому саду:
ls ~/project/digital_garden
Вы должны увидеть список из трех новых папок: notes, projects и resources.
Если вам интересно, для чего могут понадобиться эти папки:
notesможет хранить быстрые мысли или ежедневные размышления.projectsможет содержать долгосрочные рабочие задачи или учебные материалы.resourcesпригодится для хранения справочных материалов.
Создание вложенных директорий
Часто возникает необходимость создавать папки внутри других папок, выстраивая иерархическую структуру. Опция -p позволяет автоматически создавать родительские директории, если они еще не существуют, что очень удобно для глубоких структур.
Давайте создадим вложенную структуру для гипотетического проекта веб-приложения:
mkdir -p ~/project/digital_garden/projects/web_app/src/components
Эта команда делает сразу несколько вещей:
- Создает папку
web_appвнутриprojects. - Внутри
web_appсоздает папкуsrc. - И, наконец, внутри
srcсоздает папкуcomponents.
Опция -p (сокращение от «parents» — родители) указывает mkdir создавать любые недостающие промежуточные папки в указанном пути. Без -p вы бы получили ошибку, если бы какая-то часть пути еще не существовала.
Чтобы просмотреть эту структуру, используйте команду ls с опцией -R, которая показывает содержимое рекурсивно:
ls -R ~/project/digital_garden/projects/web_app
Вы увидите отображение всей иерархии вложенных папок.
Настройка прав доступа к директории
При создании директорий вы можете сразу задать определенные права доступа. Это полезно для контроля того, кто может просматривать, изменять или запускать файлы внутри папки.
Давайте создадим директорию с именем «private» с ограниченным доступом:
mkdir -m 700 ~/project/digital_garden/private
Вот что делает эта команда:
mkdirсоздает директорию.-m 700устанавливает права доступа (mode).- 7: Чтение, запись и выполнение для владельца.
- 0: Нет прав для группы.
- 0: Нет прав для всех остальных.
Другими словами, только вы (владелец) сможете получить доступ к этой папке.
Чтобы проверить права доступа, используйте:
ls -ld ~/project/digital_garden/private
Вывод должен выглядеть примерно так:
drwx------ 2 labex labex 6 Aug 7 18:40 /home/labex/project/digital_garden/private
Здесь drwx------ означает:
d: Это директория (directory).rwx: У вас (владельца) есть права на чтение (read), запись (write) и выполнение (execute).------: Ни у вашей группы, ни у других пользователей прав нет.
Использование подробного режима
Подробный режим (verbose mode) полезен при создании нескольких директорий, так как он выводит отчет о каждом выполненном действии. Это особенно удобно, когда вы создаете много папок разом и хотите убедиться, что все они созданы корректно.
Создадим несколько директорий в подробном режиме:
mkdir -v ~/project/digital_garden/resources/books ~/project/digital_garden/resources/articles ~/project/digital_garden/resources/videos
Опция -v означает «verbose». Она заставляет mkdir выводить сообщение для каждой созданной папки.
Вы должны увидеть вывод, похожий на этот:
mkdir: created directory '/home/labex/project/digital_garden/resources/books'
mkdir: created directory '/home/labex/project/digital_garden/resources/articles'
mkdir: created directory '/home/labex/project/digital_garden/resources/videos'
Такая обратная связь очень помогает в сложных скриптах или при поиске ошибок.
Комбинирование опций
Вы можете комбинировать несколько опций в одной команде mkdir. Это позволяет создавать сложные структуры с заданными правами доступа и подробным выводом за один раз.
Давайте создадим вложенную структуру для гипотетического исследовательского проекта с ограниченными правами доступа:
mkdir -pvm 750 ~/project/digital_garden/projects/research_paper/drafts ~/project/digital_garden/projects/research_paper/references
Разберем команду по частям:
-p: Создать родительские директории при необходимости.-v: Подробный режим, вывод сообщения о каждой созданной папке.-m 750: Установка прав доступа (владелец: полный доступ, группа: чтение и выполнение, остальные: доступа нет).
Эта команда создает две папки (drafts и references) внутри research_paper, которая сама будет создана внутри projects, если её еще нет.
Чтобы проверить структуру и права:
ls -lR ~/project/digital_garden/projects/research_paper
Вы увидите вложенные директории с указанными правами доступа (drwxr-x---).
Визуализация цифрового сада с помощью команды tree
Теперь, когда мы создали структуру нашего цифрового сада, воспользуемся командой tree для её визуализации. Команда tree отображает структуру директорий в виде дерева, что наглядно и информативно.
Запустим tree, чтобы посмотреть на наш результат:
tree ~/project/digital_garden
Вы должны увидеть нечто подобное:
/home/labex/project/digital_garden
|-- notes
|-- private
|-- projects
| |-- research_paper
| | |-- drafts
| | `-- references
| `-- web_app
| `-- src
| `-- components
`-- resources
|-- articles
|-- books
`-- videos
13 directories, 0 files
Эта древовидная структура дает четкое представление о нашем цифровом саде. Мы видим все созданные папки, включая вложенные.
Если вы хотите увидеть больше деталей, включая настроенные нами права доступа, можно добавить опцию -p к команде tree:
tree -p ~/project/digital_garden
Это покажет права доступа для каждой папки:
[drwxrwxr-x] /home/labex/project/digital_garden
|-- [drwxrwxr-x] notes
|-- [drwx------] private
|-- [drwxrwxr-x] projects
| |-- [drwxrwxr-x] research_paper
| | |-- [drwxr-x---] drafts
| | `-- [drwxr-x---] references
| `-- [drwxrwxr-x] web_app
| `-- [drwxrwxr-x] src
| `-- [drwxrwxr-x] components
`-- [drwxrwxr-x] resources
|-- [drwxrwxr-x] articles
|-- [drwxrwxr-x] books
`-- [drwxrwxr-x] videos
13 directories, 0 files
Такое визуальное представление — отличный способ убедиться, что мы создали всё именно так, как планировали, с правильной иерархией и доступом.
Этот шаг подводит итог нашей работе, позволяя увидеть всю выстроенную систему целиком. Команда tree полезна не только для этого упражнения, но и является ценным инструментом для навигации и понимания структур папок в вашей дальнейшей работе с Linux.
Резюме
В ходе этой практической работы мы изучили универсальность команды mkdir в Linux на примере создания цифрового сада. Мы научились:
- Создавать одиночные директории.
- Создавать несколько директорий одной командой.
- Строить вложенные структуры папок с помощью опции
-p. - Устанавливать специфические права доступа при создании папок с помощью опции
-m. - Использовать подробный режим
-vдля получения отчетов о действиях.
Мы также увидели, как эти опции можно комбинировать для выполнения сложных задач.
Хотя мы не рассматривали это в упражнениях, у mkdir есть еще несколько параметров, которые могут пригодиться в специфических ситуациях:
-Z: Установить контекст безопасности SELinux для каждой создаваемой директории по умолчанию.--context[=CTX]: Аналогично -Z, но позволяет вручную указать контекст безопасности SELinux или SMACK.--help: Показать справку и выйти.--version: Вывести информацию о версии и выйти.
Эти навыки являются базовыми для эффективной организации файловой системы в среде Linux. Помните, что хотя мы тренировались на примере «цифрового сада», эти методы применимы в любой ситуации, когда вам нужно создавать и управлять структурами папок. По мере освоения Linux вы обнаружите, что mkdir — незаменимый инструмент для организации ваших файлов и проектов.



