Учебно-методические материалы для студентов кафедры АСОИУ

ПР 5. Файловая система Linux

Цель работы

Изучить основные команды управления файлами и каталогами и сформировать навыки использования этих команд.

Указания к выполнению

Для выполнения заданий нужна учетная запись с функционирующим окружением, включающим созданный домашний каталог пользователя.

Для создания нового пользователя можно использовать команду вида:

sudo adduser new_username

После ввода такой команды в интерактивном режиме потребуется ввести пароль и некоторую необязательную дополнительную информацию. После успешной регистрации пользователь с указанным логином (в этом примере — new_username) будет создан и сможет войти в систему (по команде login, через новую консоль или новый сеанс графической оболочки). В практической работе №7 вопросы управления пользователями рассматриваются более подробно.

Для более эффективной работы с консолью можно использовать возможности оболочки bash: команды перенаправления вывода, параллельного выполнения, средства скриптинга, специальные мнемокоды и символы. Так, например, переменная окружения @HOME и ~ (тильда) — синонимы пути к домашнему каталогу текущего пользователя, команда | обеспечит конвейерное выполнение, а команда > направит результаты вполненния одной команды на вход другой, как в этом примере:

ls -R ~ | grep txt > list.txt

Задания

  1. Войти в систему с собственной учетной записью (если ее нет, то создать так, как описано в Указаниях к выполнению).
  2. Ознакомиться со справочной информацией о командах bash, pwd, ls, dir, vdir, cd, cat, mkdir, ln, mv, rm, rmdir.
  3. Определить имя текущего каталога.
  4. Вывести на экран список файлов текущего каталога сначала в краткой, затем в расширенной форме (включая скрытые файлы).
  5. Переместиться в корневой каталог.
  6. Вывести на экран список файлов (в расширенном формате) из каталога /usr/bin (фактически, это будет список всех установленных в системе команд, доступных пользователю). Сохранить этот список в файле $HOME/commands.lst
  7. Вернуться в домашний каталог, где создать подкаталоги source, destination, hardlinks и symlinks.
  8. Из каталога /etc в каталог source скопировать файлы os-release и astra_version.
  9. В каталоге hardlinks создать «жесткие» ссылки os-release.hard и astra_version.hard на соответствующие файлы из каталога source.
  10. В каталоге symlinks создать «мягкие» ссылки os-release.lnk и astra_version.lnk на соответствующие файлы из каталога source.
  11. Скопировать все файлы из каталога symlinks в домашний ($HOME) каталог.
  12. Выполнить команды cat source/os-release, cat hardlinks/os-release.hard, cat source/os-release.lnk и cat os-release.lnk.
  13. Вывести рекурсивно расширенную информацию об объектах файловой системы в домашнем каталоге, включающую, в т.ч., их идентификаторы (inode). (Обратите внимание на первый символ в атрибутах прав доступа и значения в поле размера файла для физических файлов и ссылок).
  14. В текущем каталоге удалить все файлы, имеющие в назвнии .lnk
  15. Создать каталог trashbox.
  16. Переместить в каталог trashbox файл commands.lst.
  17. Переместить в каталог trashbox все файлы из каталога symlinks.
  18. Переместить каталоги hardlinks и symlinks в trashbox.
  19. Рекурсивно удалить каталог trashbox.
  20. Задание-бонус. Выполнить задания 3-19 в файловом менеджере mc.
  21. Завершить все сеансы.

Контрольные вопросы

  1. Какие из команд, перечисленных в задании №2 являются встроенными в оболочку, а какие – внешними?
  2. Как определить имя текущего каталога?
  3. Как можно отобразить на экране список файлов текущего каталога в расширенной форме?
  4. Как можно сохранить список файлов из заданного каталога в текстовом файле $HOME/files.txt?
  5. Как можно скопировать все текстовые файлы (.txt) из каталога ~/source в каталог ~/destination?
  6. Что означает фраза «вывести рекурсивный список файлов каталога /etc»?
  7. Как отличаются результаты выполнения команд из задания № 12?
  8. К заданию № 13. Какими символами обозначаются каталоги, файлы, «жесткие» и символьные ссылки?
  9. К заданию № 13. Совпадают ли размеры исходных файлов с размерами соответствующих им «жестких» и символьных ссылок?
  10. Пусть имеется непустой каталог ~/test. Почему команда rmdir ~/test вызовет ошибку?

CC-BY-CA Анатольев А.Г., 08.06.2022