Введение
Добро пожаловать на практическое занятие по работе с файлами в 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,
Это только первая строка файла. По умолчанию, если не указывать опцию -n, команда head выводит первые 10 строк.
Просмотр первых нескольких байт файла
Мы снова применим команду head, но на этот раз для просмотра определенного количества байт с начала файла.
- В терминале введите следующую команду и нажмите Enter:
head -c1 /tmp/hello
Опция -c1 указывает head отобразить только первый байт (символ) файла. Как и в случае с -n, вы можете изменить 1 на любое другое число.
- Вы увидите следующий результат:
H
Это самый первый символ файла. В текстовых файлах один символ обычно занимает один байт.
Вывод последних строк файла
Перейдем к команде tail. Как вы могли догадаться, tail (англ. tail — хвост) является противоположностью head — она показывает конец файла.
- В терминале введите следующую команду и нажмите Enter:
tail -n1 /tmp/hello
Как и в случае с head, опция -n1 указывает tail вывести только одну строку — в данном случае последнюю.
- Вы увидите следующий результат:
I am Labby!
Это последняя строка нашего файла. Без опции -n1 команда tail по умолчанию вывела бы последние 10 строк.
Просмотр последних нескольких байт файла
Аналогично тому, как мы делали с head, мы можем использовать tail для отображения определенного количества байт с конца файла.
- Сначала попробуем просмотреть последний байт. В терминале введите команду и нажмите Enter:
tail -c1 /tmp/hello
Возможно, вы не увидите никакого видимого вывода. Это происходит потому, что последним символом в файле, скорее всего, является символ переноса строки, который невидим.
- Давайте попробуем просмотреть последние два байта. Введите следующую команду:
tail -c2 /tmp/hello
- Теперь вы должны увидеть:
!
Опция -c2 указывает tail показать последние 2 байта (символа) файла. В данном случае отображается восклицательный знак — последний видимый символ в нашем файле.
Сравнение файлов
Теперь мы научимся использовать команду diff для сравнения двух файлов и выявления различий между ними.
- Сначала убедимся, что мы находимся в нужной директории. Введите команду и нажмите Enter:
cd ~/project
Это изменит текущую рабочую директорию на папку "project" в вашем домашнем каталоге. Символ ~ — это сокращение для пути к вашему домашнему каталогу.
- Теперь сравним два файла. Введите следующую команду:
diff file1 file2
Это заставит diff сопоставить содержимое file1 и file2.
- Вы увидите вывод, похожий на этот:
1c1
< this is file1
---
> this is file2
Давайте разберем, что это значит. Команда diff генерирует описание изменений, которые необходимы, чтобы сделать первый файл идентичным второму. Неважно, какой файл был создан раньше; diff просто сравнивает их состояние на текущий момент.
1c1: Это означает, что строка 1 в первом файле должна быть изменена (changed), чтобы соответствовать строке 1 во втором файле.< this is file1: Символ<указывает на строку из первого файла (file1).---: Это разделитель между строками из первого и второго файлов.> this is file2: Символ>указывает на строку из второго файла (file2).
Простыми словами, diff показывает нам, что содержимое первой строки в этих файлах различается. Чтобы file1 стал таким же, как file2, строку "this is file1" нужно заменить на "this is file2".
Сравнение директорий
Напоследок воспользуемся командой diff для сравнения целых папок.
- В терминале введите следующую команду и нажмите Enter:
diff -r ~/Desktop ~/Code
Опция -r (recursive) указывает 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. В процессе дальнейшей работы вы будете часто использовать их для проверки и сопоставления файлов и папок.
Помните: если вы забудете, как использовать ту или иную команду, вы всегда можете ввести man, а затем имя команды (например, man cat), чтобы открыть справочное руководство. Там вы найдете подробную информацию обо всех доступных опциях.
Продолжайте практиковаться с этими командами на разных файлах, чтобы довести навык до автоматизма. Чем чаще вы их используете, тем привычнее они становятся!



