Введение
Добро пожаловать в мир просмотра файлов в Linux. В предыдущем модуле вы научились организовывать файлы. Теперь пришло время открывать их и читать содержимое.
В этой лабораторной работе вы изучите три основных способа просмотра содержимого файла:
cat: читает весь файл целиком. Лучше всего подходит для небольших заметок.head: читает только начало файла — его «заголовок». Удобен для быстрой проверки назначения файла.tail: читает только конец файла. Особенно полезен для просмотра последних обновлений в файле журнала.
Вы также научитесь отслеживать обновления файла в реальном времени.
Это важный шаг в освоении Linux. В предыдущих модулях вы узнали, как организованы файлы. Теперь вы начинаете работать с их содержимым. В реальных системах значительная часть администрирования сводится к умению прочитать нужный текстовый файл правильным способом.
Просмотр файла целиком (cat)
Команда cat — стандартный способ сказать: «Покажите мне всё содержимое этого файла».
Она лучше всего подходит для небольших файлов. Если применить её к огромному файлу, текст будет слишком быстро прокручиваться по экрану, и вы не успеете его прочитать.
Название cat — сокращение от concatenate («объединять»), поскольку изначально команда предназначалась для объединения и вывода содержимого файлов. Многие начинающие используют её прежде всего для просмотра файлов, но исторически она была частью более широкого подхода к обработке текста.
Мы подготовили небольшой файл с именем sample.txt.
Сначала перейдите в папку проекта:
cd ~/project
Теперь выведите содержимое файла на экран:
cat sample.txt
Вы сразу увидите весь текст файла:
Line 1: This is a sample file.
Line 2: It is used to demonstrate the cat command.
Line 3: The cat command displays the full content.
Line 4: This file is short enough to read easily.
Line 5: End of the sample file.
Для больших файлов понадобятся более подходящие инструменты.
Просмотр начала файла (head)
Иногда нужно проверить только заголовок или первые несколько строк. В таких случаях используется head. Эта команда показывает «голову» файла, то есть его начало.
По умолчанию head выводит первые 10 строк.
Такое значение удобно, потому что в начале файла часто находится контекст: заголовок, комментарии, названия столбцов или первые записи. Иными словами, head позволяет быстро ознакомиться с содержимым файла.
Посмотрим файл /etc/passwd. Это большой системный файл, содержащий сведения о пользователях.
head /etc/passwd
На экране должны появиться только первые 10 строк.
Настройка области просмотра
Что делать, если нужны только первые 5 строк? С помощью параметра -n (number, «количество») можно указать head, сколько строк вывести.
head -n 5 /etc/passwd
Это удобный способ быстро ознакомиться с файлом, не читая его целиком.
Просмотр конца файла (tail)
Если head показывает начало файла, то tail показывает его конец. Команда tail выводит последние строки файла.
В Linux записи в журналы добавляются последовательно. Самая новая запись всегда находится внизу. Поэтому, если проблема возникла прямо сейчас, сообщение об ошибке, скорее всего, будет в конце файла.
Именно поэтому tail так тесно связан с эксплуатацией систем. Журналы часто растут за счёт добавления новых строк, поэтому конец файла с наибольшей вероятностью содержит сведения о текущей проблеме.
Проверим системный журнал /var/log/syslog.
tail /var/log/syslog
Вы увидите последние 10 записей.
Как и в случае с head, можно ограничить количество выводимых строк. Чтобы увидеть последние 5 событий, выполните:
tail -n 5 /var/log/syslog
Это одна из основных команд системного администратора. Когда сервер выходит из строя, первой обычно вводят именно tail.
Мониторинг журналов в реальном времени (tail -f)
Статические файлы могут показаться скучными, а наблюдать за данными в реальном времени гораздо интереснее. У команды tail есть параметр -f, который означает follow — «отслеживать».
При использовании -f команда tail ожидает новые данные. Если программа записывает в файл новую строку, tail сразу перехватывает её и выводит на экран. Это похоже на просмотр бегущей строки новостей.
Здесь терминал впервые начинает ощущаться не как статичное окно, а как интерактивный инструмент. Вместо чтения готового файла вы наблюдаете, как события появляются по мере работы программы.
Выполним это упражнение в двух терминалах.
Терминал 1 (наблюдатель)
Начните отслеживать файл журнала:
tail -f ~/project/app.log
Курсор перестанет возвращаться к приглашению оболочки. Может показаться, что терминал «завис», но на самом деле он ожидает новые записи.
Терминал 2 (источник событий)
Откройте второй терминал: нажмите кнопку + рядом с вкладками. В этот журнал мы добавим новую запись:
echo "New log entry at $(date)" >> ~/project/app.log
Быстро вернитесь в Терминал 1. Вы увидите появившееся сообщение.
Перейдите обратно в Терминал 2 и добавьте ещё несколько событий:
echo "Another event happened" >> ~/project/app.log
echo "System is running smoothly" >> ~/project/app.log
Сразу после нажатия Enter в Терминале 2 текст появится в Терминале 1. Так инженеры наблюдают за работой серверов в реальном времени.
Завершив упражнение, вернитесь в Терминал 1. Нажмите Ctrl+C, чтобы остановить отслеживание и вернуться к приглашению оболочки.
Итоги
Поздравляем! Теперь у вас есть базовый набор команд для просмотра файлов в Linux.
cat: читает весь файл целиком. Подходит для небольших файлов.head: читает начало файла. Подходит для быстрой проверки.tail: читает конец файла. Особенно полезна для журналов.tail -f: отслеживает файл в реальном времени.
С помощью этих команд вы можете ответить на вопрос: «Что находится внутри этого файла?»



