Введение
Добро пожаловать в практическую лабораторную работу по работе с файлами в Linux! Если вы недавно начали знакомиться с Linux, не волнуйтесь — мы подробно разберём каждый шаг. В этой лабораторной работе вы научитесь просматривать содержимое файлов, отдельные части файлов и сравнивать файлы. Это базовые навыки, которые помогут вам работать с файловой системой Linux и понимать её структуру.
Вывод содержимого файла
Сначала откройте терминал на рабочем столе или перейдите на вкладку терминала в среде лабораторной работы.

После открытия терминала вы увидите приглашение командной строки, обычно заканчивающееся символом $. Здесь мы будем вводить команды.
Используйте команду cat, чтобы вывести содержимое файла:
- Введите в терминале следующую команду и нажмите Enter:
cat /tmp/hello
Здесь /tmp/hello — путь к файлу, который нужно просмотреть. /tmp — каталог (папка) в вашей системе, а hello — имя файла в этом каталоге.
- После нажатия Enter вы должны увидеть содержимое файла:
Hi,
I am Labby!
Это всё содержимое файла /tmp/hello. Команда cat вывела его в терминале.
Вывод содержимого файла с номерами строк
Теперь снова используйте команду cat, но добавьте к выводу номера строк.
- Введите в терминале следующую команду и нажмите Enter:
cat -n /tmp/hello
-n — это опция, или флаг. Она указывает cat нумеровать все строки вывода.
- Теперь вы должны увидеть содержимое файла с номерами строк:
1 Hi,
2 I am Labby!
Это особенно полезно при работе с большими файлами, когда нужно ссылаться на определённые строки.
Вывод первых строк файла
Далее используйте команду head. Как следует из её названия, head позволяет просматривать начало, или «голову», файла.
- Введите в терминале следующую команду и нажмите Enter:
head -n1 /tmp/hello
Опция -n1 указывает head вывести только первую строку. Число 1 можно заменить любым другим числом, чтобы вывести соответствующее количество строк.
- Вы должны увидеть следующий вывод:
Hi,
Это только первая строка файла. По умолчанию, без опции -n1, команда head выводит первые 10 строк файла.
Просмотр первых байтов файла
Теперь снова используйте команду head, но на этот раз просмотрите заданное количество байтов с начала файла.
- Введите в терминале следующую команду и нажмите Enter:
head -c1 /tmp/hello
Опция -c1 указывает head вывести только первый байт (символ) файла. Как и в случае с -n, число 1 можно заменить любым другим числом, чтобы вывести соответствующее количество байтов.
- Вы должны увидеть следующий вывод:
H
Это только первый символ файла. В текстовых файлах каждый символ обычно занимает один байт.
Вывод последних строк файла
Теперь перейдите к команде tail. Как можно догадаться, tail противоположна head — она показывает конец файла.
- Введите в терминале следующую команду и нажмите Enter:
tail -n1 /tmp/hello
Как и в случае с head, опция -n1 указывает tail вывести только одну строку — в данном случае последнюю строку файла.
- Вы должны увидеть следующий вывод:
I am Labby!
Это последняя строка нашего файла. Без опции -n1 команда tail по умолчанию выводит последние 10 строк.
Просмотр последних байтов файла
Как и head, команду tail можно использовать для вывода заданного количества байтов с конца файла.
- Сначала попробуйте просмотреть последний байт. Введите в терминале следующую команду и нажмите Enter:
tail -c1 /tmp/hello
Вы можете не увидеть никакого вывода. Это происходит потому, что последним символом, скорее всего, является символ новой строки, который невидим.
- Теперь попробуйте просмотреть вместо этого последние два байта. Введите следующую команду и нажмите Enter:
tail -c2 /tmp/hello
- Теперь вы должны увидеть:
!
Опция -c2 указывает tail вывести последние 2 байта (символа) файла. В данном случае выводится восклицательный знак — последний видимый символ в нашем файле.
Сравнение файлов
Теперь научитесь использовать команду diff, чтобы сравнивать два файла и находить различия между ними.
- Сначала убедитесь, что вы находитесь в нужном каталоге (папке). Введите следующую команду и нажмите Enter:
cd ~/project
Эта команда меняет текущий каталог на папку project в вашем домашнем каталоге. Символ ~ — это сокращённое обозначение домашнего каталога.
- Теперь сравните два файла. Введите следующую команду и нажмите Enter:
diff file1 file2
Команда diff сравнивает содержимое file1 и file2.
- Вы должны увидеть вывод, похожий на этот:
1c1
< this is file1
---
> this is file2
Разберём, что означает этот вывод. Команда diff показывает, какие изменения нужны, чтобы сделать первый файл идентичным второму. Не имеет значения, какой файл был создан или изменён раньше: diff сравнивает только их содержимое на момент запуска команды.
1c1: это означает, что строку 1 в первом файле нужно change (изменить), чтобы она совпадала со строкой 1 во втором файле.< this is file1: символ<обозначает строку из первого файла (file1).---: это разделитель между строками изfile1иfile2.> this is file2: символ>обозначает строку из второго файла (file2).
Проще говоря, diff показывает, что содержимое строки 1 в двух файлах различается. Чтобы содержимое file1 совпало с file2, строку this is file1 нужно заменить на this is file2.
Сравнение каталогов
В завершение используйте команду diff, чтобы сравнить целые каталоги.
- Введите в терминале следующую команду и нажмите Enter:
diff -r ~/Desktop ~/Code
Опция -r указывает diff рекурсивно сравнивать также подкаталоги. ~/Desktop и ~/Code — пути к двум сравниваемым каталогам.
- Вы можете увидеть вывод, похожий на этот:
Only in /home/labex/Desktop: code.desktop
Only in /home/labex/Desktop: gedit.desktop
Only in /home/labex/Desktop: gvim.desktop
Only in /home/labex/Desktop: xfce4-terminal.desktop
Этот вывод показывает, что каталог Desktop содержит четыре файла, которых нет в каталоге Code.
Итоги
Поздравляем! Вы завершили лабораторную работу «Содержимое файлов и сравнение». Повторим изученное:
- Вы использовали
cat, чтобы просмотреть всё содержимое файла. - Вы научились использовать
cat -nдля просмотра содержимого файла с номерами строк. - Вы использовали
head, чтобы просматривать начало файла по строкам и по байтам. - Вы использовали
tail, чтобы просматривать конец файла по строкам и по байтам. - Вы научились использовать
diffдля сравнения содержимого файлов. - Наконец, вы использовали
diff -rдля сравнения целых каталогов.
Эти команды — базовые инструменты Linux. По мере дальнейшей работы с Linux вы будете часто использовать их для просмотра и сравнения файлов и каталогов.
Если вы забудете, как пользоваться командой, введите man, а затем имя команды, например man cat, чтобы открыть man-страницу этой команды. В ней содержится подробная информация обо всех доступных опциях.
Продолжайте практиковаться с этими командами на разных файлах и каталогах. Чем чаще вы будете их использовать, тем привычнее станет их применение!



