Linux cat последние строки

Команда tail Linux

Все знают о команде cat, которая используется для просмотра содержимого файлов. Но в некоторых случаях вам не нужно смотреть весь файл, иногда достаточно посмотреть только то, что находится в конце файла. Например, когда вы хотите посмотреть содержимое лог файла, то вам не нужно то, с чего он начинается, вам будет достаточно последних сообщений об ошибках.

Для этого можно использовать команду tail, она позволяет выводить заданное количество строк с конца файла, а также выводить новые строки в интерактивном режиме. В этой статье будет рассмотрена команда tail Linux.

Команда tail в Linux

Перед тем как мы будем рассматривать примеры tail linux, давайте разберем ее синтаксис и опции. А синтаксис очень прост:

$ tail опции файл

По умолчанию утилита выводит десять последних строк из файла, но ее поведение можно настроить с помощью опций:

  • -c — выводить указанное количество байт с конца файла;
  • -f — обновлять информацию по мере появления новых строк в файле;
  • -n — выводить указанное количество строк из конца файла;
  • —pid — используется с опцией -f, позволяет завершить работу утилиты, когда завершится указанный процесс;
  • -q — не выводить имена файлов;
  • —retry — повторять попытки открыть файл, если он недоступен;
  • -v — выводить подробную информацию о файле;

В качестве значения параметра -c можно использовать число с приставкой b, kB, K, MB, M, GB, G T, P, E, Z, Y. Еще есть одно замечание по поводу имен файлов. По умолчанию утилита не отслеживает изменение имен, но вы можете указать что нужно отслеживать файл по дескриптору, подробнее в примерах.

Использование tail

Теперь, когда вы знаете основные опции, рассмотрим приемы работы с утилитой. Самый простой пример — выводим последние десять строк файла:

Если вам недостаточно 10 строк и нужно намного больше, то вы можете увеличить этот параметр с помощью опции -n:

Когда вы хотите отслеживать появление новых строк в файле, добавьте опцию -f:

Вы можете открыть несколько файлов одновременно, просто перечислив их в параметрах:

tail /var/log/syslog /var/log/Xorg.0.log

С помощью опции -s вы можете задать частоту обновления файла. По умолчанию данные обновляются раз в секунду, но вы можете настроить, например, обновление раз в пять секунд:

Читайте также:  Kali linux полная анонимность

При открытии нескольких файлов будет выводиться имя файла перед участком кода. Если вы хотите убрать этот заголовок, добавьте опцию -q:

tail -q var/log/syslog /var/log/Xorg.0.log

Если вас интересует не число строк, а именно число байт, то вы можете их указать с помощью опции -c:

Для удобства, вы можете выбирать не все строки, а отфильтровать интересующие вас:

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

Выводы

В этой статье была рассмотрена команда tail linux. С помощью нее очень удобно анализировать логи различных служб, а также искать в них ошибки. Надеюсь, эта информация была полезной для вас.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Эффективное управление файлами с помощью команд head, tail и cat в Linux

Linux предоставляет несколько команд и программ для просмотра содержимого файла. Работа с файлами является одной из самых сложных задач, которую выполняет большинство пользователей компьютеров, будь то новичок, обычный пользователь, опытный пользователь, разработчик, администратор и т. д. Работать с файлами эффективно и результативно — это искусство.

Сегодня в этой статье мы обсудим самые популярные команды под названием head, tail и cat, большинство из нас уже знают о таких командах, но очень немногие из нас реализуют его, когда это необходимо.

1. Головная команда

Команда head читает первые десять строк любого заданного имени файла. Основной синтаксис команды head:

Например, следующая команда отобразит первые десять строк файла с именем «/etc/passwd».

# head /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh

Если задано более одного файла, head покажет первые десять строк каждого файла отдельно. Например, следующая команда покажет десять строк каждого файла.

# head /etc/passwd /etc/shadow ==> /etc/passwd /etc/shadow 

Если требуется получить большее количество строк, чем десять по умолчанию, используется параметр «-n» вместе с целым числом, указывающим количество строк, которые необходимо получить. Например, следующая команда отобразит первые 5 строк из файла «/var/log/yum.log».

# head -n5 /var/log/yum.log Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el6_5.4.i686 Jan 10 00:06:56 Updated: openssl-devel-1.0.1e-16.el6_5.4.i686 Jan 10 00:11:42 Installed: perl-Net-SSLeay-1.35-9.el6.i686 Jan 13 22:13:31 Installed: python-configobj-4.6.0-3.el6.noarch Jan 13 22:13:36 Installed: terminator-0.95-3.el6.rf.noarch

На самом деле нет необходимости использовать опцию «-n». Просто дефис и укажите целое число без пробелов, чтобы получить тот же результат, что и в приведенной выше команде.

# head -5 /var/log/yum.log Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el6_5.4.i686 Jan 10 00:06:56 Updated: openssl-devel-1.0.1e-16.el6_5.4.i686 Jan 10 00:11:42 Installed: perl-Net-SSLeay-1.35-9.el6.i686 Jan 13 22:13:31 Installed: python-configobj-4.6.0-3.el6.noarch Jan 13 22:13:36 Installed: terminator-0.95-3.el6.rf.noarch

Команда head также может отображать любое желаемое количество байтов, используя параметр «-c», за которым следует количество отображаемых байтов. Например, следующая команда отобразит первые 45 байт данного файла.

# head -c45 /var/log/yum.log Jan 10 00:06:49 Updated: openssl-1.0.1e-16.el

2. хвостовая команда

Команда tail позволяет отображать последние десять строк любого текстового файла. Как и команда head, описанная выше, команда tail также поддерживает параметры «n» количество строк и «n» количество символов.

Основной синтаксис команды tail:

# tail [options] [filenames]

Например, следующая команда напечатает последние десять строк файла с именем «access.log».

# tail access.log 1390288226.042 0 172.16.18.71 TCP_DENIED/407 1771 GET http://download.newnext.me/spark.bin? - NONE/- text/html 1390288226.198 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html 1390288226.210 1182 172.16.20.44 TCP_MISS/200 70872 GET http://mahavat.gov.in/Mahavat/index.jsp pg DIRECT/61.16.223.197 text/html 1390288226.284 70 172.16.20.44 TCP_MISS/304 269 GET http://mahavat.gov.in/Mahavat/i/i-19.gif pg DIRECT/61.16.223.197 - 1390288226.362 570 172.16.176.139 TCP_MISS/200 694 GET http://p4-gayr4vyqxh7oa-3ekrqzjikvrczq44-if-v6exp3-v4.metric.gstatic.com/v6exp3/redir.html pg 1390288226.402 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html 1390288226.437 145 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html 1390288226.445 0 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html 1390288226.605 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html 1390288226.808 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html

Если предоставлено более одного файла, tail напечатает последние десять строк каждого файла, как показано ниже.

# tail access.log error.log ==> access.log error_log 

Точно так же вы также можете напечатать последние несколько строк, используя параметр «-n», как показано ниже.

# tail -5 access.log 1390288226.402 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html 1390288226.437 145 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html 1390288226.445 0 172.16.18.53 TCP_DENIED/407 1723 OPTIONS http://172.16.25.252/ - NONE/- text/html 1390288226.605 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html 1390288226.808 0 172.16.16.55 TCP_DENIED/407 1753 CONNECT ent-shasta-rrs.symantec.com:443 - NONE/- text/html

Вы также можете напечатать количество символов, используя аргумент ‘-c’, как показано ниже.

# tail -c5 access.log ymantec.com:443 - NONE/- text/html

3. Кошка Команда

Команда «cat» является наиболее широко используемым универсальным инструментом. Он копирует стандартный ввод в стандартный вывод. Команда поддерживает прокрутку, если текстовый файл не помещается на текущем экране.

Основной синтаксис команды cat:

# cat [options] [filenames] [-] [filenames]

Чаще всего cat используется для чтения содержимого файлов. Все, что требуется, чтобы открыть файл для чтения, — это ввести cat, затем пробел и имя файла.

# cat /etc/passwd root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh …

Команда cat также используется для объединения нескольких файлов.

# echo 'Hi Tecmint-Team' > 1 # echo 'Keep connected' > 2 # echo 'Share your thought' > 3 # echo 'connect us ' > 4
# cat 5 Hi Tecmint-Team Keep connected Share your thought connect us

Его также можно использовать для создания файлов. Это достигается выполнением команды cat, за которой следует оператор перенаправления вывода и имя создаваемого файла.

# cat > tecmint.txt Tecmint is the only website fully dedicated to Linux.

У нас может быть специальный концевик для команды «кошка». Вот это реализовано.

# cat test.txt I am Avishek Here i am writing this post Hope your are enjoying

Никогда не недооценивайте силу команды «cat», она может быть полезна для копирования файлов.

# cat avi.txt I am a Programmer by birth and Admin by profession
# cat avi1.txt I am a Programmer by birth and Admin by profession

Теперь, что является противоположностью кошки? Да, это «tac». «tac» — это команда в Linux. Лучше показать пример такта, чем что-то говорить о нем.

Создайте текстовый файл с названиями всех месяцев, чтобы в строке отображалось одно слово.

# cat month January February March April May June July August September October November December
# tac month December November October September August July June May April March February January

Дополнительные примеры использования команды cat см. в разделе Использование команды 13 cat.

Это все на данный момент. Я буду здесь снова с другой интересной статьей, которую стоит знать. А пока следите за обновлениями и подключайтесь к Tecmint. Не забудьте предоставить нам свои ценные отзывы в нашем разделе комментариев.

Источник

Оцените статью
Adblock
detector