Введение
В этой лабораторной работе вы получите практический опыт управления файловыми системами Linux в системе Red Hat Enterprise Linux (RHEL). Вы научитесь идентифицировать файловые системы и блочные устройства, анализировать использование дискового пространства с помощью команд df и du, а также практиковаться в ручном монтировании и размонтировании файловых систем.
Кроме того, эта лабораторная работа проведет вас через эффективный поиск файлов с использованием таких команд, как locate и find, что позволит вам искать файлы на основе различных критериев, таких как имя, владелец, разрешения, размер, время и тип файла.
Идентификация файловых систем и блочных устройств
На этом шаге вы узнаете, как идентифицировать файловые системы и блочные устройства в системе Red Hat Enterprise Linux. Понимание организации хранилища имеет основополагающее значение для администрирования системы. Мы рассмотрим различные команды для вывода списка и изучения блочных устройств и связанных с ними файловых систем.
Сначала давайте разберемся с некоторыми основными понятиями:
- Блочное устройство (Block Device): Блочное устройство — это файл, который обеспечивает низкоуровневый доступ к устройствам хранения. Примеры включают жесткие диски, SSD и USB-накопители. В Linux они обычно находятся в каталоге
/dev. - Раздел (Partition): Раздел — это логическое деление физического устройства хранения. Один жесткий диск может иметь несколько разделов, каждый из которых отформатирован с использованием другой файловой системы или используется для разных целей.
- Файловая система (File System): Файловая система — это метод и структура данных, которые операционная система использует для управления хранением и извлечением данных. Она организует данные в файлы и каталоги. Распространенные файловые системы Linux включают XFS и ext4.
- Точка монтирования (Mount Point): Точка монтирования — это пустой каталог в иерархии файловой системы, к которому прикрепляется или «монтируется» файловая система, чтобы сделать ее содержимое доступным.
Давайте начнем с вывода списка блочных устройств, доступных в вашей системе, с помощью команды lsblk. Эта команда предоставляет древовидный обзор всех блочных устройств и их разделов.
lsblk
Вы должны увидеть вывод, аналогичный этому, показывающий такие устройства, как vda, vdb и т. д., которые представляют виртуальные дисковые устройства в вашей контейнерной среде:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 253:0 0 40G 0 disk
├─vda1 253:1 0 1M 0 part
├─vda2 253:2 0 100M 0 part /boot/efi
└─vda3 253:3 0 39.9G 0 part /
vdb 253:16 0 40G 0 disk
В выводе:
NAME: Имя блочного устройства (например,vda,vdb) или раздела (например,vda1,vda2).MAJ:MIN: Основной и дополнительный номера устройств.RM: Съемное устройство (1, если съемное, 0, если нет).SIZE: Размер устройства или раздела.RO: Только для чтения (1, если только для чтения, 0, если нет).TYPE: Тип устройства (например,disk,partдля раздела).MOUNTPOINTS: Где устройство или раздел в данный момент смонтирован.
Далее давайте рассмотрим файловые системы и их использование с помощью команды df. Команда df сообщает об использовании дискового пространства файловой системой.
df
Вывод покажет различные файловые системы, их общий размер, использованное пространство, доступное пространство и точки монтирования:
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 4096 0 4096 0% /dev
tmpfs 1822216 0 1822216 0% /dev/shm
tmpfs 728888 616 728272 1% /run
efivarfs 256 9 243 4% /sys/firmware/efi/efivars
/dev/vda3 41773036 3628732 38144304 9% /
/dev/vda2 102156 7198 94958 8% /boot/efi
tmpfs 364440 0 364440 0% /run/user/1000
Чтобы сделать вывод более читаемым, особенно для размеров, вы можете использовать опцию -h для формата, читаемого человеком (например, M для MiB, G для GiB).
df -h
Вы увидите размеры в более понятном формате:
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs 712M 616K 712M 1% /run
efivarfs 256K 8.5K 243K 4% /sys/firmware/efi/efivars
/dev/vda3 40G 3.5G 37G 9% /
/dev/vda2 100M 7.1M 93M 8% /boot/efi
tmpfs 356M 0 356M 0% /run/user/1000
Наконец, давайте используем команду lsblk -fp, чтобы вывести полный путь к устройствам, их UUID (Universally Unique Identifiers) и типы файловых систем. UUID — это стабильные идентификаторы, которые остаются неизменными, даже если имена устройств меняются, что делает их полезными для последовательного монтирования.
lsblk -fp
Вывод будет включать UUID и типы файловых систем:
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
/dev/vda
├─/dev/vda1
├─/dev/vda2 vfat FAT16 E52E-0564 92.7M 7% /boot/efi
└─/dev/vda3 xfs root 4c234c8b-4f67-4d65-abb5-06753b1ec236 36.4G 9% /
/dev/vdb
Обратите внимание на столбец UUID, который предоставляет уникальный идентификатор для каждой файловой системы. Это имеет решающее значение для надежного монтирования файловых систем, особенно в файлах конфигурации, таких как /etc/fstab.
Анализ использования файловой системы с помощью df и du
На этом шаге вы глубже изучите анализ использования файловой системы с помощью команд df и du. В то время как df предоставляет обзор использования дискового пространства для смонтированных файловых систем, du (disk usage — использование диска) используется для оценки использования дискового пространства для конкретных файлов или каталогов. Понимание разницы и того, когда использовать каждую команду, имеет решающее значение для эффективного управления дисковым пространством.
Давайте начнем с повторного рассмотрения команды df с ее опцией, читаемой человеком. Эта команда отлично подходит для получения краткой сводки о том, сколько места используется и доступно во всех смонтированных файловых системах.
df -h
Вывод покажет использование диска в удобном для чтения формате (например, G для гигабайт, M для мегабайт):
Filesystem Size Used Avail Use% Mounted on
devtmpfs 892M 0 892M 0% /dev
tmpfs 915M 0 915M 0% /dev/shm
tmpfs 915M 17M 899M 2% /run
tmpfs 915M 0 915M 0% /sys/fs/cgroup
/dev/vda4 8.0G 1.4G 6.7G 17% /
/dev/vda3 1014M 166M 849M 17% /boot
tmpfs 183M 0 183M 0% /run/user/1000
Теперь давайте рассмотрим команду du. В отличие от df, du вычисляет дисковое пространство, используемое файлами и каталогами в указанном пути. Это особенно полезно, когда вы хотите узнать, какие каталоги или файлы потребляют больше всего места.
Чтобы увидеть использование диска в вашем текущем каталоге (~/project), используйте du без каких-либо аргументов. Это выведет список размеров каждого файла и подкаталога в ~/project.
du
Вывод может быть обширным, показывая размеры по умолчанию в килобайтах:
4 ./.config/xfce4/xfconf/xfce-perchannel-xml
8 ./.config/xfce4/xfconf
12 ./.config/xfce4
16 ./.config
4 ./.local/share/nano
8 ./.local/share
12 ./.local
28 .
Чтобы сделать вывод более читаемым, аналогично df -h, вы можете использовать опцию -h с du.
du -h
Это отобразит размеры в удобочитаемых единицах:
4.0K ./.config/xfce4/xfconf/xfce-perchannel-xml
8.0K ./.config/xfce4/xfconf
12K ./.config/xfce4
16K ./.config
4.0K ./.local/share/nano
8.0K ./.local/share
12K ./.local
28K .
Часто вас интересует общий размер каталога, а не размер каждого отдельного файла и подкаталога. Для этого вы можете использовать опцию -s (summary — сводка) вместе с -h. Давайте проверим общий размер вашего домашнего каталога (~).
du -sh ~
Эта команда выведет общий размер вашего домашнего каталога:
48K /home/labex
Давайте создадим несколько файлов, чтобы увидеть, как du сообщает об их размерах. Мы создадим каталог с именем test_data, а затем создадим несколько файлов внутри него.
Сначала создайте каталог:
mkdir ~/project/test_data
Теперь перейдите в каталог test_data:
cd ~/project/test_data
Далее создайте несколько файлов с некоторым содержимым. Мы будем использовать команду head для создания файлов определенных размеров.
head -c 1K < /dev/urandom > file1.txt
head -c 5K < /dev/urandom > file2.txt
head -c 10K < /dev/urandom > file3.txt
Теперь используйте du -h, чтобы увидеть размеры этих новых файлов и каталога test_data.
du -h
Вы должны увидеть вывод, аналогичный этому:
1.0K ./file1.txt
5.0K ./file2.txt
10K ./file3.txt
24K .
Последняя строка (24K .) показывает общий размер текущего каталога (., который является ~/project/test_data).
Наконец, давайте вернемся в ваш каталог ~/project и проверим общий размер test_data с помощью du -sh.
cd ~/project
du -sh test_data
Это покажет сводный размер каталога test_data:
24K test_data
Это демонстрирует, как du можно использовать для определения потребления дискового пространства в определенных каталогах, помогая вам эффективно управлять хранилищем.
Ручное монтирование и размонтирование файловых систем
На этом шаге вы узнаете, как вручную монтировать и размонтировать файловые системы. Монтирование файловой системы делает ее содержимое доступным через определенный каталог (точку монтирования) в иерархии файловой системы. Размонтирование отсоединяет файловую систему от ее точки монтирования, делая ее содержимое недоступным до тех пор, пока она не будет смонтирована снова. Это критический навык для управления съемными носителями, временным хранилищем или новыми разделами диска.
Для этого упражнения мы будем использовать одно из несмонтированных блочных устройств, доступных в вашей среде виртуальной машины LabEx. Из предыдущего шага вы должны были увидеть устройство /dev/vdb, которое в настоящее время не смонтировано. Мы будем использовать /dev/vdb для этого шага.
Сначала давайте подтвердим доступные несмонтированные блочные устройства, используя lsblk.
lsblk
Вы должны увидеть /dev/vdb в списке без каких-либо точек монтирования.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 253:0 0 40G 0 disk
├─vda1 253:1 0 1M 0 part
├─vda2 253:2 0 100M 0 part /boot/efi
└─vda3 253:3 0 39.9G 0 part /
vdb 253:16 0 40G 0 disk
Прежде чем вы сможете смонтировать файловую систему, вам понадобится точка монтирования, которая представляет собой пустой каталог. Обычно для временного монтирования используется /mnt или создается подкаталог в нем. Давайте создадим новый каталог с именем mydata внутри вашего каталога ~/project, чтобы он служил нашей точкой монтирования.
mkdir ~/project/mydata
Теперь нам нужно отформатировать устройство /dev/vdb с помощью файловой системы. Мы будем использовать файловую систему XFS, которая является стандартной для Red Hat Enterprise Linux. Будьте осторожны с этой командой, так как она сотрет все данные на указанном устройстве.
sudo mkfs.xfs /dev/vdb
Вы увидите вывод, указывающий на создание файловой системы XFS:
meta-data=/dev/vdb isize=512 agcount=4, agsize=2621440 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=1 inobtcount=1 nrext64=0
data = bsize=4096 blocks=10485760, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=16384, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Теперь, когда /dev/vdb имеет файловую систему XFS, вы можете смонтировать ее в вашу точку монтирования ~/project/mydata. Команда mount требует привилегий sudo.
sudo mount /dev/vdb ~/project/mydata
Чтобы убедиться, что файловая система успешно смонтирована, снова используйте команду df -h. Вы должны увидеть /dev/vdb в списке с /home/labex/project/mydata в качестве точки монтирования.
df -h
Найдите /dev/vdb в выводе:
Filesystem Size Used Avail Use% Mounted on
...
/dev/vdb 40G 318M 40G 1% /home/labex/project/mydata
Теперь вы можете создавать файлы и каталоги внутри ~/project/mydata, и они будут храниться на устройстве /dev/vdb. Давайте создадим тестовый файл:
sudo touch ~/project/mydata/testfile.txt
Вы можете вывести список содержимого ~/project/mydata, чтобы подтвердить создание файла:
ls -l ~/project/mydata
Вы должны увидеть testfile.txt в списке:
total 0
-rw-r--r--. 1 root root 0 Jun 16 11:09 testfile.txt
Когда вы закончите использование смонтированной файловой системы, важно размонтировать ее, чтобы предотвратить повреждение данных, особенно перед извлечением физического устройства. Используйте команду umount, чтобы размонтировать файловую систему.
sudo umount ~/project/mydata
Если команда размонтирования завершается с ошибкой "target is busy" (цель занята), это означает, что какой-то процесс все еще обращается к точке монтирования. Это часто происходит, если ваш текущий рабочий каталог находится внутри смонтированной файловой системы. Чтобы решить эту проблему, измените свой текущий каталог на местоположение за пределами точки монтирования, например, ваш домашний каталог (~).
cd ~
Затем попробуйте размонтировать еще раз:
sudo umount ~/project/mydata
После размонтирования убедитесь, что /dev/vdb больше не смонтирован, снова проверив df -h.
df -h
Вы больше не должны видеть /dev/vdb, смонтированный на /home/labex/project/mydata.
Filesystem Size Used Avail Use% Mounted on
...
## /dev/vdb should not be listed here anymore
Это завершает процесс ручного монтирования и размонтирования файловой системы.
Поиск файлов по имени с помощью locate и find
На этом шаге вы узнаете, как находить файлы в вашей системе, используя две мощные команды: locate и find. Обе команды помогают вам искать файлы, но они работают по-разному и подходят для разных сценариев.
Использование команды locate
Команда locate работает очень быстро, потому что она ищет в предварительно построенной базе данных имен и путей к файлам. Однако это означает, что она может не найти файлы, которые были созданы или удалены после последнего обновления базы данных. База данных обычно обновляется ежедневно заданием cron, но вы можете принудительно обновить ее.
Сначала давайте убедимся, что пакет mlocate, который предоставляет команду locate, установлен.
sudo dnf install -y mlocate
Во время установки вы увидите вывод, похожий на этот:
Last metadata expiration check: 0:00:01 ago on Mon 15 May 2023 08:00:00 AM UTC.
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
mlocate x86_64 0.26-28.el9 rhel-9-for-x86_64-appstream-rpms 100 k
Transaction Summary
================================================================================
Install 1 Package
Total download size: 100 k
Installed size: 230 k
Downloading Packages:
mlocate-0.26-28.el9.x86_64.rpm 100 kB/s | 100 kB 00:01
--------------------------------------------------------------------------------
Total 100 kB/s | 100 kB 00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : mlocate-0.26-28.el9.x86_64 1/1
Running scriptlet: mlocate-0.26-28.el9.x86_64 1/1
Verifying : mlocate-0.26-28.el9.x86_64 1/1
Installed:
mlocate-0.26-28.el9.x86_64
Complete!
После установки вам необходимо обновить базу данных locate. Эта команда требует привилегий sudo.
sudo updatedb
Эта команда будет выполняться без вывода и может занять несколько мгновений в зависимости от размера вашей файловой системы.
Теперь давайте поищем общий системный файл, например, passwd.
locate passwd
Вы увидите список путей, содержащих "passwd":
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/usr/share/man/man1/passwd.1.gz
/usr/share/man/man5/passwd.5.gz
...output omitted...
Чтобы выполнить поиск без учета регистра, используйте опцию -i. Давайте поищем файлы, содержащие "messages", не беспокоясь о регистре.
locate -i messages
Вы увидите результаты, подобные:
/usr/share/locale/zza/LC_MESSAGES
/usr/share/makedumpfile/eppic_scripts/ap_messages_3_10_to_4_8.c
/usr/share/vim/vim82/ftplugin/msmessages.vim
...output omitted...
Вы также можете ограничить количество результатов, используя опцию -n. Давайте найдем первые 5 вхождений "passwd".
locate -n 5 passwd
Это покажет только первые 5 совпадений:
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/usr/share/man/man1/passwd.1.gz
/usr/share/man/man5/passwd.5.gz
Использование команды find
Команда find ищет в файловой системе в режиме реального времени, что делает ее медленнее, чем locate, но гарантирует, что она найдет все файлы, соответствующие вашим критериям, включая те, которые были созданы совсем недавно. Она также предлагает гораздо более мощные параметры поиска.
Основной синтаксис для find — find [path] [expression]. Если путь не указан, он ищет в текущем каталоге.
Давайте поищем файл sshd_config, начиная с корневого каталога (/).
find / -name sshd_config
Вы должны увидеть путь к файлу конфигурации:
/etc/ssh/sshd_config
При поиске частичных имен или использовании подстановочных знаков важно заключить шаблон имени файла в кавычки, чтобы предотвратить преждевременное расширение оболочкой. Давайте найдем все файлы, заканчивающиеся на .txt, в вашем каталоге ~/project.
find ~/project -name '*.txt'
Если вы создали file1.txt, file2.txt и file3.txt на предыдущем шаге, вы должны увидеть их в списке:
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt
Чтобы выполнить поиск без учета регистра с помощью find, используйте опцию -iname. Давайте поищем файлы, содержащие "README" (без учета регистра) в каталоге /usr/share/doc.
find /usr/share/doc -iname '*readme*'
Вы увидите много результатов, например:
/usr/share/doc/libselinux/README
/usr/share/doc/libsepol/README
/usr/share/doc/libsemanage/README
...output omitted...
Команда find очень универсальна и может быть объединена с другими критериями, которые вы изучите на следующих шагах.
Поиск файлов по владельцу, разрешениям, размеру и времени
На этом шаге вы узнаете, как использовать мощную команду find для поиска файлов на основе различных критериев, помимо простого имени. Это включает в себя поиск по владельцу, разрешениям, размеру и времени изменения. Эти расширенные возможности поиска необходимы для задач администрирования системы, таких как аудит, очистка и устранение неполадок.
Поиск файлов по владельцу
Вы можете искать файлы, принадлежащие определенному пользователю или группе, используя опции -user и -group соответственно. Вы можете указать имя пользователя/группы или их числовой идентификатор.
Давайте найдем все файлы в вашем домашнем каталоге (~), принадлежащие пользователю labex.
find ~ -user labex
Это выведет список многих файлов, включая ваши файлы конфигурации:
/home/labex
/home/labex/.bash_logout
/home/labex/.bash_profile
/home/labex/.bashrc
/home/labex/.config
/home/labex/.config/xfce4
/home/labex/.config/xfce4/xfconf
/home/labex/.config/xfce4/xfconf/xfce-perchannel-xml
/home/labex/.local
/home/labex/.local/share
/home/labex/.local/share/nano
/home/labex/project
/home/labex/project/test_data
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt
...output omitted...
Аналогично, чтобы найти файлы, принадлежащие группе labex:
find ~ -group labex
Вывод будет аналогичным, так как labex обычно является основной группой для пользователя labex.
Вы также можете искать по идентификатору пользователя (UID) или идентификатору группы (GID). Пользователь labex обычно имеет UID и GID 1000.
find ~ -uid 1000
find ~ -gid 1000
Поиск файлов по разрешениям
Опция -perm команды find позволяет искать файлы с определенными разрешениями. Разрешения могут быть указаны в восьмеричном (например, 755) или символьном (например, u=rwx,g=rx,o=rx) режиме.
Давайте создадим тестовый файл в вашем каталоге ~/project с определенными разрешениями.
touch ~/project/permission_test.txt
chmod 644 ~/project/permission_test.txt
Теперь давайте найдем файлы в ~/project, которые имеют ровно разрешения 644.
find ~/project -perm 644
Вы должны увидеть permission_test.txt в списке:
/home/labex/project/permission_test.txt
Вы также можете использовать ведущий / или - с восьмеричными разрешениями:
/: Соответствует, если любой из указанных битов разрешения установлен.-: Соответствует, если все из указанных битов разрешения установлены.
Давайте найдем файлы в ~/project, где другие имеют хотя бы разрешение на чтение (o=r или 004).
find ~/project -perm -004
Это выведет список permission_test.txt и других файлов, которые предоставляют доступ на чтение другим.
/home/labex/project/permission_test.txt
...output omitted...
Поиск файлов по размеру
Опция -size позволяет искать файлы по их размеру. Вы можете указать размер с единицами измерения (например, k для килобайт, M для мегабайт, G для гигабайт). Вы также можете использовать + для "больше чем" и - для "меньше чем".
Давайте найдем файлы в вашем каталоге ~/project/test_data, размер которых ровно 1 килобайт.
find ~/project/test_data -size 1k
Вы должны увидеть file1.txt:
/home/labex/project/test_data/file1.txt
Теперь найдите файлы размером более 5 килобайт.
find ~/project/test_data -size +5k
Это должно вывести список file3.txt:
/home/labex/project/test_data/file3.txt
И файлы размером менее 10 килобайт.
find ~/project/test_data -size -10k
Это должно вывести список file1.txt и file2.txt:
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
Поиск файлов по времени изменения
Вы можете искать файлы по времени их изменения, используя такие опции, как -mmin (изменено минут назад) или -mtime (изменено дней назад).
Давайте найдем файлы в вашем каталоге ~/project, которые были изменены за последние 60 минут.
find ~/project -mmin -60
Это, вероятно, включит permission_test.txt и файлы в test_data, если вы создали их недавно:
/home/labex/project
/home/labex/project/permission_test.txt
/home/labex/project/test_data
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt
Чтобы найти файлы, измененные более 1 дня назад (24 часа), вы можете использовать +1 с -mtime.
find ~/project -mtime +1
Эта команда может не вернуть никаких файлов, если все ваши файлы ~/project были созданы или изменены недавно.
Эти опции можно комбинировать для создания очень специфических поисковых запросов, что позволяет вам эффективно управлять файлами в вашей системе.
Поиск файлов по типу (file type)
На этом заключительном шаге вы узнаете, как использовать команду find для поиска файлов на основе их типа. Это особенно полезно, когда вам нужно найти все каталоги, обычные файлы, символические ссылки или файлы устройств в определенном пути.
Команда find использует опцию -type, за которой следует один символ, чтобы указать тип файла. Вот некоторые распространенные типы файлов, которые вы можете искать:
f: Обычный файл (regular file)d: Каталог (directory)l: Символическая ссылка (symlink)b: Блочное устройство (block device)c: Символьное устройство (character device)p: Именованный канал (FIFO)s: Сокет (socket)
Давайте начнем с поиска всех каталогов в вашем каталоге ~/project.
find ~/project -type d
Вы должны увидеть вывод, подобный этому, со списком всех каталогов и подкаталогов:
/home/labex/project
/home/labex/project/test_data
Далее давайте поищем все обычные файлы в вашем каталоге ~/project.
find ~/project -type f
Это выведет список файлов, таких как file1.txt, file2.txt и file3.txt, которые вы создали ранее:
/home/labex/project/test_data/file1.txt
/home/labex/project/test_data/file2.txt
/home/labex/project/test_data/file3.txt
Теперь давайте создадим символическую ссылку, чтобы продемонстрировать поиск симлинков. Мы создадим симлинк на file1.txt в вашем каталоге ~/project.
ln -s ~/project/test_data/file1.txt ~/project/link_to_file1.txt
Проверьте, что симлинк был создан, используя ls -l:
ls -l ~/project/link_to_file1.txt
Вы должны увидеть вывод, указывающий, что это символическая ссылка:
lrwxrwxrwx. 1 labex labex 32 May 15 08:00 /home/labex/project/link_to_file1.txt -> /home/labex/project/test_data/file1.txt
Теперь найдите все символические ссылки в вашем каталоге ~/project.
find ~/project -type l
Вы должны увидеть вашу недавно созданную символическую ссылку:
/home/labex/project/link_to_file1.txt
Наконец, давайте поищем блочные устройства. Блочные устройства обычно находятся в каталоге /dev.
find /dev -type b
Это выведет список блочных устройств, таких как vda, vda1, vda2 и т. д.:
/dev/vda1
/dev/vda2
/dev/vda3
/dev/vda
/dev/vdb
Вы можете комбинировать опцию -type с другими опциями find, которые вы изучили на предыдущих шагах. Например, чтобы найти все каталоги в /etc, принадлежащие пользователю root:
find /etc -type d -user root
Это выдаст длинный список каталогов:
/etc
/etc/selinux
/etc/selinux/targeted
/etc/selinux/targeted/active
/etc/selinux/targeted/active/modules
...output omitted...
На этом завершается лабораторная работа по доступу к файловым системам Linux и поиску файлов. Вы узнали, как идентифицировать устройства, изучать использование диска, вручную монтировать и размонтировать файловые системы, а также использовать locate и find с различными критериями.
Резюме
В этой лабораторной работе мы получили практический опыт управления файловыми системами Linux в системе Red Hat Enterprise Linux. Мы начали с изучения идентификации файловых систем и блочных устройств с помощью таких команд, как lsblk, понимая основные концепции, такие как блочные устройства, разделы, файловые системы и точки монтирования. Затем мы изучили, как проверять использование файловой системы с помощью df и du, различая их функциональность для отчетности о дисковом пространстве. Лабораторная работа также охватывала важный навык ручного монтирования и размонтирования файловых систем, демонстрируя, как сделать содержимое файловой системы доступным, а затем отсоединить его.
Кроме того, мы углубились в эффективный поиск файлов с использованием различных критериев. Мы научились находить файлы по имени с помощью locate и find, понимая различия и соответствующие варианты использования для каждого из них. Лабораторная работа расширила это, обучая тому, как искать файлы на основе атрибутов владельца, разрешений, размера и времени, предоставляя мощные инструменты для администрирования системы и устранения неполадок. Наконец, мы попрактиковались в поиске файлов на основе их конкретных типов файлов, завершив всесторонний обзор управления файловой системой и методов поиска файлов.



