Лаб. работа “Управление файловой системой в Shell”
Лабораторная работа по теме “Управление файловой системой в Shell”
Цель работы
Приобретение практических навыков работы с командным интерпретатором bash в среде ОС Linux. Изучение и освоение основных команд для навигации по файловой системе, создания, удаления, копирования и перемещения файлов и каталогов.
Теоретические сведения
Файловая система в Linux представляет собой иерархическую структуру, начинающуюся с корневого каталога /.
- Абсолютный путь: Путь к файлу или каталогу от корневого каталога
/. Например:/home/user/documents/report.txt. - Относительный путь: Путь к файлу или каталогу относительно текущего рабочего каталога. Например, если текущий каталог
/home/user, то относительный путь к тому же файлу будетdocuments/report.txt.
Специальные обозначения:
~— домашний каталог текущего пользователя (например,/home/user)..— текущий каталог...— родительский каталог (каталог на уровень выше).
Синтаксис команды:
Основные команды для работы с файловой системой:
| Команда | Описание | Пример |
|---|---|---|
pwd |
Показать текущий рабочий каталог (Print Working Directory). | pwd |
ls |
Показать содержимое каталога (List). | ls -la |
cd |
Сменить текущий каталог (Change Directory). | cd /var/log |
mkdir |
Создать новый каталог (Make Directory). | mkdir my_project |
touch |
Создать пустой файл или обновить время его модификации. | touch main.c |
cp |
Копировать файлы или каталоги (Copy). | cp file1.txt file2.txt |
mv |
Переместить или переименовать файлы/каталоги (Move). | mv old_name.txt new_name.txt |
rm |
Удалить файлы (Remove). | rm temp_file.txt |
rmdir |
Удалить пустые каталоги. | rmdir old_dir |
cat |
Вывести содержимое файла в стандартный вывод. | cat config.ini |
less |
Постраничный просмотр содержимого файла. | less large_log_file.log |
man |
Показать справочную страницу для команды (Manual). | man ls |
Методические указания к выполнению
- Для выполнения работы необходим доступ к терминалу ОС Linux (например, Ubuntu, CentOS) или эмулированной среде (WSL в Windows, iTerm/Terminal в macOS).
- Все команды следует выполнять последовательно.
- После выполнения каждой команды анализируйте её вывод. Используйте команду
ls -lдля проверки изменений в файловой системе. - При возникновении трудностей используйте команду
man <имя_команды>для получения подробной справки.
Порядок выполнения работы
1. Определение текущего положения и осмотр
Откройте терминал.
Определите ваш домашний каталог. Обычно приглашение командной строки содержит символ
~.Выполните команду для отображения полного пути к текущему каталогу.
Просмотрите содержимое вашего домашнего каталога.
Просмотрите содержимое с детальной информацией (права доступа, владелец, размер, дата) и отображением скрытых файлов (начинаются с точки).
2. Создание структуры каталогов проекта
Создайте каталог для вашего учебного проекта с именем
lab1_project.Перейдите в созданный каталог.
Убедитесь, что вы находитесь в правильном каталоге, выполнив
pwd.Внутри
lab1_projectсоздайте следующую структуру каталогов, имитирующую реальный проект:src— для исходных кодов.docs— для документации.build— для скомпилированных файлов.assets— для ресурсов (изображения, шрифты).
Проверьте результат командой
ls.
3. Создание и наполнение файлов
Перейдите в каталог
src.Создайте пустые файлы для исходного кода.
Перейдите в каталог
docs. Для этого можно использовать относительный путь.Создайте файл
README.mdи добавьте в него описание проекта с помощью перенаправления вывода командыecho.Добавьте в этот же файл информацию об авторе, используя оператор добавления в конец файла
>>. ЗаменитеИванов И.И.на ваши данные.Просмотрите содержимое файла
README.md, чтобы убедиться, что обе строки были добавлены.
4. Копирование и перемещение файлов
Создайте резервную копию файла
README.mdв том же каталоге с именемREADME.bak.Перейдите в корневой каталог проекта
lab1_project.Переместите (переименуйте) каталог
buildвdist(сокращение от “distribution”).Скопируйте файл
README.mdиз каталогаdocsв корневой каталог проекта.Примечание:
.в данном контексте означает “в текущий каталог”.Проверьте содержимое текущего каталога (
lab1_project) с помощьюls -l.
5. Удаление файлов и каталогов
Перейдите в каталог
docs.Удалите файл
README.bak.Вернитесь в корневой каталог проекта.
Попробуйте удалить каталог
assetsкомандойrmdir.Если каталог не пуст, команда выдаст ошибку. Для удаления каталогов с содержимым используется команда
rmс опцией-r(рекурсивно).ВНИМАНИЕ! Команда
rm -rудаляет файлы и каталоги безвозвратно. Будьте предельно осторожны.Убедитесь, что каталог
assetsбыл удален.
Задания для самостоятельной работы
Выполните одно из заданий в соответствии с вашим вариантом.
Вариант 1
- Внутри вашего домашнего каталога создайте структуру для веб-проекта:
my_webapp. - Внутри
my_webappсоздайте каталоги:html,css,js,img. - В каталоге
htmlсоздайте файлindex.html. - В каталоге
cssсоздайте файлstyle.css. - Скопируйте
index.htmlвhtml/about.html. - Переименуйте каталог
imgвimages. - Создайте пустой каталог
temp. - Удалите каталог
temp. - Выведите на экран дерево каталогов
my_webappс помощью командыls -R.
Вариант 2
- Внутри вашего домашнего каталога создайте структуру для проекта по анализу данных:
data_science_project. - Внутри него создайте каталоги:
data,notebooks,scripts,reports. - В каталоге
dataсоздайте пустые файлыraw_data.csvиprocessed_data.csv. - В каталоге
notebooksсоздайте файлanalysis.ipynb. - Переместите
processed_data.csvизdataвnotebooks. - Создайте копию каталога
scriptsс именемscripts_backup. - Удалите файл
processed_data.csvизnotebooks. - Рекурсивно удалите каталог
scripts_backup. - Выведите на экран дерево каталогов
data_science_projectс помощью командыls -R.
Контрольные вопросы
- В чем разница между абсолютным и относительным путем? Приведите примеры.
- Что делают опции
-lи-aу командыls? - Как удалить каталог
mydir, если он содержит файлы? - Каково назначение специальных символов
~,.,..? - В чем различие между операторами перенаправления вывода
>и>>? - Как посмотреть документацию по команде
cp?