ПР 5. Файловая система Linux
Цель работы
Изучить основные команды управления файлами и каталогами и сформировать навыки использования этих команд.
Указания к выполнению
Для выполнения заданий нужна учетная запись с функционирующим окружением, включающим созданный домашний каталог пользователя.
Для создания нового пользователя можно использовать команду вида:
sudo adduser new_username
После ввода такой команды в интерактивном режиме потребуется ввести пароль и некоторую необязательную дополнительную информацию. После успешной регистрации пользователь с указанным логином (в этом примере — new_username) будет создан и сможет войти в систему (по команде login, через новую консоль или новый сеанс графической оболочки). В практической работе №7 вопросы управления пользователями рассматриваются более подробно.
Для более эффективной работы с консолью можно использовать возможности оболочки bash: команды перенаправления вывода, параллельного выполнения, средства скриптинга, специальные мнемокоды и символы. Так, например, переменная окружения @HOME и ~ (тильда) — синонимы пути к домашнему каталогу текущего пользователя, команда | обеспечит конвейерное выполнение, а команда > направит результаты вполненния одной команды на вход другой, как в этом примере:
ls -R ~ | grep txt > list.txt
Задания
- Войти в систему с собственной учетной записью (если ее нет, то создать так, как описано в Указаниях к выполнению).
- Ознакомиться со справочной информацией о командах bash, pwd, ls, dir, vdir, cd, cat, mkdir, ln, mv, rm, rmdir.
- Определить имя текущего каталога.
- Вывести на экран список файлов текущего каталога сначала в краткой, затем в расширенной форме (включая скрытые файлы).
- Переместиться в корневой каталог.
- Вывести на экран список файлов (в расширенном формате) из каталога /usr/bin (фактически, это будет список всех установленных в системе команд, доступных пользователю). Сохранить этот список в файле $HOME/commands.lst
- Вернуться в домашний каталог, где создать подкаталоги source, destination, hardlinks и symlinks.
- Из каталога /etc в каталог source скопировать файлы os-release и astra_version.
- В каталоге hardlinks создать «жесткие» ссылки os-release.hard и astra_version.hard на соответствующие файлы из каталога source.
- В каталоге symlinks создать «мягкие» ссылки os-release.lnk и astra_version.lnk на соответствующие файлы из каталога source.
- Скопировать все файлы из каталога symlinks в домашний ($HOME) каталог.
- Выполнить команды cat source/os-release, cat hardlinks/os-release.hard, cat source/os-release.lnk и cat os-release.lnk.
- Вывести рекурсивно расширенную информацию об объектах файловой системы в домашнем каталоге, включающую, в т.ч., их идентификаторы (inode). (Обратите внимание на первый символ в атрибутах прав доступа и значения в поле размера файла для физических файлов и ссылок).
- В текущем каталоге удалить все файлы, имеющие в назвнии .lnk
- Создать каталог trashbox.
- Переместить в каталог trashbox файл commands.lst.
- Переместить в каталог trashbox все файлы из каталога symlinks.
- Переместить каталоги hardlinks и symlinks в trashbox.
- Рекурсивно удалить каталог trashbox.
- Задание-бонус. Выполнить задания 3-19 в файловом менеджере mc.
- Завершить все сеансы.
Контрольные вопросы
- Какие из команд, перечисленных в задании №2 являются встроенными в оболочку, а какие – внешними?
- Как определить имя текущего каталога?
- Как можно отобразить на экране список файлов текущего каталога в расширенной форме?
- Как можно сохранить список файлов из заданного каталога в текстовом файле $HOME/files.txt?
- Как можно скопировать все текстовые файлы (.txt) из каталога ~/source в каталог ~/destination?
- Что означает фраза «вывести рекурсивный список файлов каталога /etc»?
- Как отличаются результаты выполнения команд из задания № 12?
- К заданию № 13. Какими символами обозначаются каталоги, файлы, «жесткие» и символьные ссылки?
- К заданию № 13. Совпадают ли размеры исходных файлов с размерами соответствующих им «жестких» и символьных ссылок?
- Пусть имеется непустой каталог ~/test. Почему команда rmdir ~/test вызовет ошибку?
CC-BY-CA Анатольев А.Г., 08.06.2022