tail — утилита в UNIX, выводящая несколько (по умолчанию 10) последних строк из файла. Команда tail позволяет выводить заданное количество строк с конца файла, а также выводить новые строки в интерактивном режиме.
Оглавление
Что такое команда tail?
Команда tail, как следует из названия, выводит последние части одного файла или нескольких файлов. По умолчанию команда tail выводит последние десять строк входных файлов. Команда tail также используется для чтения файлов журнала в реальном времени.
Синтаксис команды tail:
tail [options] [files]
Синтаксис команды tail
По умолчанию утилита печатает десять последних строк каждого файла стандартным способом вывода. Если указать более одного документа, то к каждому набору выходных данных будет добавлен заголовок с его именем. Если файл не указан или является одним тире (“-“), то tail читает из стандартного input.
Рассмотрим синтаксис команды:
tail [параметры] файл
Основные параметры команды tail:
- -c – показывает указанное количество байт с конца файла. Также можно использовать знак плюс после “-с” для вывода любой информации, начиная с байта. Например, -c +1 напечатает все. После числа можно использовать суффикс множителя, чтобы указать единицы измерения: b (512), kB (1000), K (1024), MB (1000*1000), M (1024*1024), GB (1000*1000*1000), G (1024*1024*1024), and so on for T (terabyte), P (petabyte), E (exabyte), Z (zettabyte), Y (yottabyte).
- -f – этот параметр приводит к тому, что tail будет зацикливаться вечно, проверяя наличие новых данных. Когда появляются новые данные, они будут напечатаны. Если вы следите более, чем за одним файлом, то будет напечатан заголовок каждого, чтобы указать, какие данные файла печатаются. Если файл уменьшается, а не увеличивается, утилита сообщит вам об этом. Если вы укажете название, то за файлом с таким заголовком будет слежка, вне зависимости от его файлового дескриптора. Если вы укажете дескриптор, то будет слежка за тем же файлом, даже если он переименован. Это поведение команды по умолчанию.
- -n – выводит последние n строк, вместо значения по умолчанию, которое составляет 10.
- –max-unchanged-stats=num. Если отслеживаете документ с аргументом -f , утилита постоянно проверяет его, чтобы увидеть, изменился ли размер. Если размер изменился, он снова открывает файл и ищет новые данные для печати. Опция –max-unchanged-stats повторно открывает файл, даже если его размер не изменился, после каждой проверки num. Эта опция полезна, если файл может быть самопроизвольно отключен или переименован, например, когда файлы журнала автоматически чередуются.
- –pid – используется с аргументов “-f”, позволяет завершить процесс.
- -q – никогда не выводить заголовки.
- –retry – продолжает пытаться открыть файл, даже если он временно недоступен;
- -s – если производить слежение посредством -f примерно num секунд между проверками файлов. С помощью –pid проверяется процессный pid не реже, чем один раз в несколько секунд.
- -v -всегда печатать заголовки.
- –help – получение информационной помощи по синтаксису.
- –version – способ узнать версию.
Примеры команды tail
Запустим утилиту без параметров, тем самым узнаем 10 последних строк в dokument.
tail dokument
Покажем на экране пять последних строк. Для этого будем использовать аргумент “-n”.
tail -n 5 dokument
Рассмотрим пример опции “-f”. Которая делает стандартный вывод в десять пунктов и следит за обновлением документа, кроме того утилита продолжает выводит все новые изменения, которые добавляются в файл.
tail -f dokument
ВАЖНО!: tail будет отслеживать файл постоянно по умолчанию. Чтобы остановить этот процесс, необходимо набрать комбинацию CTRL + C.
Откроем несколько файлов одновременно.
tail -f dokument fil
Выше были приведены примеры использования tail для выборочного мониторинга файлов журнала в режиме реального времени. Это весьма полезная функция, разобраться в которой сможет каждый специалист, чей уровень подготовки выше начального.
Использование tail
Теперь, когда вы знаете основные опции, рассмотрим приемы работы с утилитой. Самый простой пример – выводим последние десять строк файла:
tail /var/log/syslog
Если вам недостаточно 10 строк и нужно намного больше, то вы можете увеличить этот параметр с помощью опции -n:
tail -n 100 /var/log/syslog
Когда вы хотите отслеживать появление новых строк в файле, добавьте опцию -f:
tail -f /var/log/syslog
Вы можете открыть несколько файлов одновременно, просто перечислив их в параметрах:
tail /var/log/syslog /var/log/Xorg.0.log
С помощью опции -s вы можете задать частоту обновления файла. По умолчанию данные обновляются раз в секунду, но вы можете настроить, например, обновление раз в пять секунд:
tail -f -s 5 /var/log/syslog
При открытии нескольких файлов будет выводиться имя файла перед участком кода. Если вы хотите убрать этот заголовок, добавьте опцию -q:
tail -q var/log/syslog /var/log/Xorg.0.log
Если вас интересует не число строк, а именно число байт, то вы можете их указать с помощью опции -c:
tail -c 500 /var/log/syslog
Для удобства, вы можете выбирать не все строки, а отфильтровать интересующие вас:
tail -f /var/log/syslog | grep err
Особенно, это полезно при анализе логов веб сервера или поиске ошибок в реальном времени. Если файл не открывается, вы можете использовать опцию retry чтобы повторять попытки:
tail -f –retry /var/log/syslog | grep err
Как я говорил в начале статьи, по умолчанию опция -f или –follow отслеживает файл по его имени, но вы можете включить режим отслеживания по дескриптору файла, тогда даже если имя измениться, вы будете получать всю информацию:
tail –follow=descriptor /var/log/syslog | grep err
Как Ограничить Количество Выводимых Строк?
Tale предоставляет возможность посмотреть то количество срок, которое вам нужно. Для этого просто используйте опцию –n.
Самый простой способ выполнить это действие:
Tail –n* путь_к_файлу
Вместо * укажите необходимое количество строк.
Например, если мы хотим просмотреть две строки из файла, мы будем использовать следующую команду:
tail -n2 devisers.txt
2 — количество строк, devisers.txt — имя файла.
Как Посмотреть Последнее Количество Байтов Данных?
Чтобы просмотреть последнее или N-нное количество байтов очень большого файла, используйте параметр -c.
tail –c* путь_к_файлу
Замените * на количество байтов, которое необходимо вывести.
Как Отслеживать Изменения в Файле?
Чтобы проверить файл на наличие новой информации, используйте команду tail вместе с опцией -f. Эта команда будет полезна при просмотре последних десяти строк файла. Опция обычно используется для отслеживания файлов логов в реальном времени. Для нашего файла devisers.txt команда будет выглядеть так:
tail -f devisers.txt
Новые версии команд tail также позволяют пользователю просматривать несколько файлов или папок. После изменения исходного файла заголовок покажет, в какую строку кто-то внёс изменения.
Как Использовать Команду Tail с Другими Командами Linux?
Команды tail могут использоваться вместе с другими функциями командной строки Linux. Например:
Команда Tail с -r (Обратный Порядок)
Например, мы хотим просмотреть вывод команды tail в обратном порядке.
tail –n* имя_файла | sort -r
Первая часть команды такая же, как и раньше, затем мы разделяем её с помощью | для обозначения последующего действия — sort -r, которое, как следует из названия, сортирует вывод в обратном порядке.
Использование Команды Tail с ls (Самый Старый Файл или Папка)
С помощью следующего примера мы просмотрим семь файлов или папок, которые были изменены наиболее давно.
Чтобы сделать это, пропишем ls перед командой tail. Вот, как это будет выглядеть:
ls -l | tail -n8
Как уже упоминалось раньше, в tail части команды -n8 вы можете указать любое число.
5 практических примеров команды Tail в Linux
Давайте узнаем, как использовать команду tail в Linux с некоторыми практическими примерами. Мы будем использовать этот текстовый файл в этой статье:
Загадочное происшествие на Брайтон Бич Тайный Противник Убийство по ссылкам Человек в коричневом костюме Секрет дымовых труб Погода в Кацапетовке Большая четверка Странный пассажир полуночного экспресса Гарри Поттер Все на Матч Морские дьяволы Статьи о Linux Искусственный интеллект SQL для начинающих Дистрибутив Linux Убийство в восточном экспрессе Незаконченный Портрет Почему они не спросили Эванса? Три Акта Трагедии Смерть в облаках
Если вы используете команду tail без какой-либо опции, она будет печатать последние 10 строк. Это поведение по умолчанию команды tail.
tail agatha.txt Морские дьяволы Статьи о Linux Искусственный интеллект SQL для начинающих Дистрибутив Linux Убийство в восточном экспрессе Незаконченный Портрет Почему они не спросили Эванса? Три Акта Трагедии Смерть в облаках
Если файл имеет менее десяти строк, он отображает только доступные строки. Если последние несколько строк пусты, они все равно будут считаться допустимыми.
Но вам не нужно довольствоваться использованием команды tail по умолчанию. Это еще не все. Давайте рассмотрим наиболее частое использование хвостовых команд по одному.
1. Распечатайте последние N строк с помощью команды tail
Чтобы просмотреть последние N строк, вместо 10 по умолчанию вы можете использовать команду tail следующим образом:
tail -n N
Например, если вы хотите увидеть последние 5 строк с командой tail в нашем файле примера, вы можете использовать его следующим образом:
tail -n 5 agatha.txt Убийство в восточном экспрессе Незаконченный Портрет Почему они не спросили Эванса? Три Акта Трагедии Смерть в облаках
Совет
Вы также можете просто использовать tail -N вместо tail -n N для отображения последних N строк файла.
2. Распечатайте все строки, начиная с номера строки N
Если вы хотите просмотреть все строки, начинающиеся с номера строки N, вы можете использовать здесь опцию +.
tail -n +N
В нашем примерном файле, если вы хотите увидеть все строки, начиная с строки 7, вы можете использовать его следующим образом:
tail -n +7 agatha.txt Большая четверка Странный пассажир полуночного экспресса Гарри Поттер Все на Матч Морские дьяволы Статьи о Linux Искусственный интеллект SQL для начинающих Дистрибутив Linux Убийство в восточном экспрессе Незаконченный Портрет Почему они не спросили Эванса? Три Акта Трагедии Смерть в облаках
3. Использование нескольких файлов с командой tail
Команда tail позволяет вам одновременно использовать несколько файлов. Все стандартные опции команды tail применимы к нескольким файлам.
tail -n N
Результат объединяется для всех файлов, и по умолчанию имя файла отображается в строках, начинающихся с «==>».
Например, если вы хотите увидеть последние три строки файлов sherlock.txt и agatha.txt, это будет выглядеть так:
tail -n3 sherlock.txt agatha.txt ==> sherlock.txt <== Приключение благородного холостяка Приключение Берилл Коронет Приключение Алисы в стране чудес ==> agatha.txt <== Почему они не спросили Эванса? Три Акта Трагедии Смерть в облаках
Совет
Вы можете удалить имена файлов с вывода, используя тихий режим с опцией -q.
4. Мониторинг файлов в реальном времени с помощью команды tail [Очень полезно для мониторинга журналов]
Предположим, у вас есть файл, и к нему добавлен новый контент. Команда tail позволяет вам отображать все новые строки по мере их добавления в файл.
Для этого вы можете использовать опцию -f.
tail -f
Команда сначала отобразит последние 10 строк файлов, а затем обновит вывод, когда новые строки будут добавлены в файл.
Это широко используется для просмотра файлов журнала в реальном времени. Это, пожалуй, наиболее практическое использование команды tail.
СоветЕсли вы используете -F вместо опции -f, команда tail будет ждать создания входного файла (если он еще не существует), а затем отображает содержимое файла в режиме реального времени.
5. Использование команды tail с pipes
Команда tail может использоваться в сопряжении с другими командами с использованием pipes.
Например, если у вас слишком много файлов в каталоге, и вы хотите видеть только последние 3 измененных файла, вы можете использовать его следующим образом:
ls -ltr | tail -n3
В приведенной выше команде ls -lrt перечисляет все файлы в обратном хронологическом порядке. И тогда команда tail дополнительно анализирует этот вывод и отображает только последние три строки вывода команды ls, и поэтому мы получаем список из трех последних измененных файлов.
Особенность Tails
Что делает Tails безопаснее других операционных систем?
Поскольку дистрибутив изначально был разработан для обеспечения конфиденциальности и анонимности, он отличается от других операционных систем в нескольких областях:
Tails заставляет все интернет-соединения проходить через сеть Tor. Tor — это всемирная распределенная сеть, которая не позволяет людям, наблюдающим за вашим сетевым подключением, знать, какие веб-сайты вы посещаете. Кроме того, не позволяет этим сайтам узнать ваше физическое местоположение. Для получения более подробной информации о Tor в статье.
Дистрибутив подключается к оборудованию компьютера, но не использует операционную систему или дисководы. Это означает, что на вашем компьютере нет постоянной записи о вашей деятельности. После того, как вы извлечете USB-накопитель Tails или перезагрузите компьютер, вы не сможете сказать, что дистрибутив использовался там.
Tails поставляется с современной технологией шифрования. За счет чего ПО обеспечивает нам безопасность?
Во-первых, дистрибутив обеспечит вас надежной защитой от PGP и OTR для безопасной связи. Во-вторых, автоматическим использованием HTTPS при посещении веб-сайтов. В-третьих, возможностью шифровать файлы на USB-накопителе или DVD-диске. И наконец, со всеми этими функциями конфиденциальности и анонимности вы можете буквально носить его в кармане.
Вот почему фанаты конфиденциальности любят Tails.
Одна из замечательных особенностей дистрибутива заключается в том, что вы можете создать собственную USB-флешку или DVD-диск Tails. А поскольку это бесплатное программное обеспечение, вам нужно иметь в наличии USB-накопитель или DVD-диск, на который вы его установите.
Обеспечение безопасности
Обычно дистрибутив хранит данные только до тех пор, пока вы не выключитесь. Но если вы используете Tails на USB-накопителе с дополнительным доступным пространством, вы можете создать постоянное хранилище.
У создания постоянного хранилища есть свои плюсы и минусы, и команда Tails в большинстве случаев не советует делать это.
Тем не менее, если вам нужно надежно хранить данные или добавлять дополнительные приложения, это ваш лучший вариант.
Преимущества и недостатки
Преимущества
- Позволяет хранить зашифрованные данные на USB-накопителе Tails
- Вы можете установить дополнительные приложения
- Можно изменить конфигурацию приложений
- Вы можете открыть постоянное хранилище из других операционных систем
Недостатки
- Постоянный том виден всем, у кого есть доступ к USB-накопителю.
- Установка приложений не по умолчанию может нарушить безопасность
- Изменение конфигурации приложений по умолчанию может ослабить анонимность
- Доступ к постоянному хранилищу из других операционных систем может поставить под угрозу безопасность
Управление паролями
Одно из лучших применений для постоянного хранения — отслеживать все ваши пароли. Необходимо использовать разные надежные пароли для каждого веб-сайта и приложения, которые в них нуждаются. К сожалению, отслеживать их все без компьютерной помощи практически невозможно.
Для решения этой проблемы дистрибутив поставляется с KeePassX , менеджером паролей открытого качества.
Вы можете использовать его для отслеживания всех ваших паролей. После этого, нужно всего лишь запомнить один пароль, который разблокирует это приложение.
Установка Tails
Скачать образ Tails можно перейдя по данной ссылке.
Когда вы запускаете дистрибутив, вы видите экран.
После нажатия Enter появляется экран Tails. Здесь выбирайте язык, раскладку клавиатуры, время.
Кроме того, вы можете активировать набор предлагаемых параметров.
Настроив все параметры нажмите кнопку Запуск Tails.
В нашем случае, подключение к интернету произошло автоматически.
Начало работы
После загрузки с рабочей флешки нам потребуется создать постоянный (persistent) защищенный раздел, своеобразный «жесткий диск на флешке». Это делается через Application → Tails → Configure Persistence.
Перезагружаем компьютер и на загрузочном экране выбираем Use Persistence и More Options, после чего вводим пароль для нашего хранилища.
Из меню внизу экрана выбираем регион. Это важно, поскольку от региона зависят входные узлы Tor. Здесь следует поэкспериментировать. В моем случае лучшим выбором оказалась Дания.
В меню расширенных настроек задаем пароль для программ, которым нужны права администратора. Можешь поставить любой, он работает в рамках сессии и ни на что больше не влияет.
Имей в виду, что загрузка занимает некоторое время, а потом Tails еще несколько минут будет подключаться к Tor. Отслеживать процесс можно, щелкнув по иконке Onion Circuits — луковичке в верхнем правом углу экрана.
Спустя некоторое время Tails проинформирует об успешном подключении к Tor. По умолчанию сеть сконфигурирована так, что весь трафик будет проходить через него. Теперь можно скачать все, что нам нужно для работы.
Дистрибутив Tails
Tails — live-дистрибутив Linux, основанный на Debian, и созданный для конфиденциального и анонимного использования сети (шифрование, анонимизация и безопасность перехвата/прослушки трафика).
Tails содержит набор программ и утилит, которые позволяют полностью анонимно выходить в интернет и пользоваться другими сервисами и службами (почта, im-сообщения и прочее). Для достижения приватности дистрибутив использует Tor-сеть.
Интересный факт
Дистрибутив Tails использовал Эдвард Сноуден, также он призвал некоторых журналистов использовать Tails.
Среда рабочего стола Gnome
Tails использует рабочее окружение Gnome.
При запуске дистрибутива есть интересная опция — «Активировать маскировку под Windows XP». Данная опция позволяет сделать так, чтобы система выглядела очень похожей внешне на Windows XP, чтобы, например, в публичных местах никто не заподозрил вас в использовании «подозрительного» дистрибутива.
Дополнительное ПО, сохранение файлов и настроек
По умолчанию Tails не рассчитана на сохранение установленного ПО, настроек и файлов после выключения компьютера. Однако создатели предусмотрели возможность хранить некоторые данные в персистентном разделе. Настроить, что именно будет храниться, можно в разделе Settings → Persistent.
Большинство пунктов меню очевидны, поэтому я остановлюсь на последних трех. Второй и третий с конца отвечают за хранение APT-пакетов. Tails основана на Debian, поэтому большинство нужного нам ПО можно установить при помощи apt-get. И хотя сами программы при отключении компьютера не сохранятся, пакеты APT при соответствующих настройках останутся в персистентном разделе. Это позволяет развертывать все нужное ПО в процессе загрузки системы.
Последний пункт меню Dotfiles позволяет создать в персистентном разделе папку с файлами, ссылки на которые будут создаваться в домашней папке Tails при загрузке. Выглядит это следующим образом.
Вот пример структуры файлов в постоянном разделе.
/live/persistence/TailsData_unlocked/dotfiles ├── file_a ├── folder │ ├── file_b │ └── subfolder │ └── file_c └── emptyfolder
В домашней папке при таком раскладе будет следующая структура ссылок:
/home/amnesia ├── file_a → /live/persistence/TailsData_unlocked/dotfiles/file_a └── folder ├── file_b → /live/persistence/TailsData_unlocked/dotfiles/folder/file_b └── subfolder └── file_c → /live/persistence/TailsData_unlocked/dotfiles/folder/subfolder/file_c
Защищаем данные, отбрасываем хвост
Сам по себе наш персистентный раздел уже зашифрован. Однако у него есть существенный недостаток: он не обеспечивает правдоподобное отрицание наличия зашифрованных данных. Чтобы обеспечить правдоподобное отрицание, я предложу решение, которое отличается от рекомендаций создателей Tails. Как поступить тебе — решай сам.
Создатели Tails рекомендуют использовать cryptsetup, основанный на LUKS. Эта программа позволяет создавать скрытые разделы, однако такой раздел скрыт не до конца. Насколько мне известно, существует возможность обнаружить заголовок скрытого раздела, что позволяет установить его наличие.
Такой скрытый раздел лично меня не устраивает. Поэтому я решил использовать старый добрый TrueCrypt версии 7.1а. Заголовок скрытого раздела TrueCrypt неотличим от случайных данных, и, насколько мне известно, обнаружить его невозможно. Двоичный файл программы TrueCrypt лучше хранить здесь же, в персистентном разделе.
Детально описывать процесс создания двойного криптоконтейнера я не стану, отмечу лишь важный нюанс. Поскольку скрытый раздел TrueCrypt по-настоящему скрытый, о его существовании не догадывается даже сама программа, пока ты не введешь нужный пароль. Из-за этого при записи файлов в ложный раздел скрытый раздел может быть поврежден. Чтобы этого не произошло, при монтировании ложного раздела для записи на него картинок котиков нужно выбрать Mount Options → Protect hidden volume when mounting outer volume.
Подобно ящерице, которая при опасности отбрасывает свой хвост, мы теперь в случае необходимости сможем ввести пароль от фальшивого раздела и продемонстрировать всем фотографии котиков вместо конфиденциальной информации.
Общение
Теперь, когда мы обезопасили нашу информацию, можно приступить к ее передаче, то есть к общению. Начнем с Pidgin. Он отлично годится в качестве клиента IRC, а в Tails его еще и немного усилили. В состав ОС включен Pidgin с установленным плагином для протокола OTR. Именно он нам интересен больше всего. Избегая сложной математики, можно сказать, что этот протокол обеспечивает защищенную передачу данных с возможностью отречения, то есть доказать, что конкретное сообщение написано конкретным человеком, невозможно.
Прежде чем начать общаться с кем-то по протоколу OTR, нужно подключиться к серверу IRC. При этом очень важно удостовериться в использовании SSL. Tor шифрует трафик при передаче его между узлами, но, если ты не будешь использовать SSL, твой трафик будет передаваться в открытом виде до входного узла Tor и от выходного узла адресату. Некоторые узлы Tor забанены на серверах IRC, поэтому может потребоваться перезапуск Tor. Сделать это можно командой /etc/init.d/tor restart.
После того как соединение с сервером установлено, выбираем Buddies → New Instant Message.
В открывшемся окне диалога выбираем Not Private → Start Private Conversation.
Будет предложено три варианта для аутентификации: ввести ответ на секретный вопрос, который вы обсудили с собеседником заранее (в этом случае необходимо ввести один и тот же ответ, пробелы и регистр считаются); ввести общую «секретную» фразу; проверить fingerprint — это сорокасимвольная последовательность, идентифицирующая пользователя OTR.
Теперь можно переписываться по OTR. Но как насчет голосового общения? Тут, увы, не все гладко. Поскольку Tails направляет весь трафик через Tor, возникает ряд проблем для голосового общения. Во-первых, большинство VoIP-программ используют UDP, в то время как через Tor возможна передача только пакетов TCP. Во-вторых, Tor не отличается скоростью и пакеты иногда приходят с сильной задержкой. Так что возможны задержки и разрывы связи.
Тем не менее существует OnionPhone, специальный плагин для TorChat. Неплохо справляется и Mumble, хотя этот вариант и менее безопасен. Чтобы Mumble работал через Tor, необходимо запускать его командой torify mumble, а также выбрать пункт Force TCP в сетевых настройках программы.
Электронная почта
Почту в Tails можно использовать точно так же, как и в других ОС. В стандартную сборку входит почтовый клиент Icedove, его настройки и ключи можно хранить в персистентном разделе. Важный нюанс, который следует иметь в виду при отправке писем, состоит в том, что заголовки (subject) не шифруются. Это не ошибка, а особенность реализации протокола, о которой нужно просто знать. Кроме того, файлы, передаваемые по электронной почте, рекомендуется шифровать.
Выводы
В этой статье была рассмотрена команда tail linux. С помощью нее очень удобно анализировать логи различных служб, а также искать в них ошибки. Надеюсь, эта информация была полезной для вас.
[spoiler title=”Источники”]- https://andreyex.ru/linux/komandy-linux-i-komandy-shell/5-prakticheskih-primerov-komandy-tail-v-linux/
- https://www.vseprolinux.ru/linux-tail
- https://losst.ru/komanda-tail-linux
- https://www.hostinger.ru/rukovodstva/komanda-tail-v-linux/
- https://linuxvsem.ru/distributions/tails-linux
- https://xakep.ru/2016/11/01/tails-live-flash/
- https://pingvinus.ru/distribution/tails