Як користувачі Linux, ми часто працюємо з тривалими фоновими процесами Linux, які називаються демонами або службами. Деякі з поширених прикладів таких служб – Secure Shell (sshd), Network Manager (networkd), Volume Manager (LVM), Cron, і список можна продовжувати.
Багато разів нам необхідно відстежувати журнали цих служб для налагодження системних проблем. Однак одна з основних проблем полягає в тому, що ці служби генерують велику кількість журналів, і в більшості випадків перегляд цих журналів стає громіздким, тому тут ми можемо використовувати команду tail.
Команда tail – це утиліта командного рядка, аналогічна команді head, яка читає файл і друкує останні 10 рядків (вміст) одного або декількох файлів на стандартний вивід.
Синтаксис команди tail
Синтаксис команди tail аналогічний іншим командам Linux:
$ tail [OPTIONS] [FILE-1] [FILE-2] ...
1. Друк останніх 10 рядків файлу в Linux
За замовчуванням команда tail друкує останні 10 рядків заданого файлу, як показано на малюнку.
$ tail /var/log/secure
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_wj4dcluncq.png?resize=832%2C645&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_wj4dcluncq.png?resize=832%2C645&ssl=1)
Тут ми бачимо, що наведена вище команда показує останні десять рядків із файлу /var/log/secure.
2. Друк останніх N рядків файлу в Linux
В останньому прикладі команда друкує останні 10 рядків даного файлу. Однак ми можемо використовувати опцію -n, яка дозволяє нам обмежити кількість рядків, що виводяться на екран, як показано на малюнку.
$ tail -n 3 /var/log/secure
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_6tbbxzqjgr.png?resize=810%2C222&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_6tbbxzqjgr.png?resize=810%2C222&ssl=1)
У цьому прикладі ми бачимо, що тепер команда показує тільки останні три рядки замість десяти рядків.
3 Ігнорування перших N рядків файлу в Linux
Тут ми можемо використовувати символ плюс (+) з опцією -n, яка дозволяє нам керувати точкою відліку від заданого файлу.
Щоб зрозуміти це, давайте використаємо значення +5, щоб почати виведення з 5-го рядка:
$ tail -n +5 /var/log/secure
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_uouz4pfyib.png?resize=821%2C607&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_uouz4pfyib.png?resize=821%2C607&ssl=1)
4. Показати останні N символів файлу
Аналогічно рядкам, ми також можемо використовувати команду для відображення останніх N символів файлу за допомогою опції -c, як показано нижче:
$ tail -c 7 /var/log/secure
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_midrfm1vyt.png?resize=805%2C88&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_midrfm1vyt.png?resize=805%2C88&ssl=1)
У цьому прикладі ми бачимо, що команда показує останні сім ASCII-символів заданого файлу.
5. Видалення перших N символів файлу
Аналогічно, ми можемо використовувати символ плюс (+) з опцією -c, щоб пропустити перші N символів. Отже, давайте пропустимо перший рядок файлу за допомогою такої команди:
$ tail -c +5 /var/log/secure
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_jlvm4j1fdq.png?resize=819%2C475&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_jlvm4j1fdq.png?resize=819%2C475&ssl=1)
Тут ми бачимо, що команда показує всі рядки, крім першого.
6. Показувати ім’я файлу в заголовку
Ми можемо вказати команді tail відображати ім’я поточного файлу у вигляді заголовка, що дуже зручно під час роботи з кількома файлами.
Отже, давайте скористаємося опцією -v, щоб увімкнути відображення заголовка:
$ tail -n 3 -v /var/log/secure
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_m5b9uhrcmp.png?resize=815%2C251&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_m5b9uhrcmp.png?resize=815%2C251&ssl=1)
У наведеному вище виводі, ==> /var/log/secure <== являє собою відображуваний заголовок.
7. Показувати ім’я файлу як заголовок у кількох файлах
Як і будь-яка інша команда обробки файлів, команда tail може використовувати кілька файлів. У таких випадках для поділу вмісту файлів використовується відображуваний заголовок.
$ tail -n 3 -v /var/log/secure /var/log/secure-20230402
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_gogo9rdgof.png?resize=822%2C446&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_gogo9rdgof.png?resize=822%2C446&ssl=1)
У наведеному вище висновку ми можемо бачити відображуваний заголовок для кожного файлу.
8. Як вимкнути відображення заголовка у файлі
У попередньому прикладі ми бачили, що команда вмикає відображення заголовка під час роботи з кількома файлами. Однак ми можемо відключити цю поведінку за замовчуванням за допомогою опції -q.
$ tail -q -n 3 /var/log/secure /var/log/secure-20230402
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_bvmwvexij2.png?resize=823%2C360&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_bvmwvexij2.png?resize=823%2C360&ssl=1)
Тут ми бачимо, що тепер команда відображає вміст файлу один за одним без будь-якого заголовка.
9. Як стежити за змінами у файлі
Досі ми бачили, що команда tail завершує роботу, щойно обробить необхідну кількість рядків або символів. Однак іноді ми хочемо переглянути щойно створені журнали.
У таких випадках ми можемо використовувати опцію -f, яка дає змогу стежити за змінами у файлі в режимі реального часу.
Щоб зрозуміти це, спочатку виконаємо наведену нижче команду в першому терміналі:
$ tail -f /var/log/messages
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_nfomwrz79j.png?resize=824%2C492&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_nfomwrz79j.png?resize=824%2C492&ssl=1)
Тут ми бачимо, що команда чекає нескінченно довго після відображення останніх десяти рядків:
Далі, давайте відкриємо інший термінал і додамо деякий текст у файл numbers-2.txt:
$ echo "View Logs in Real-Time" >> /var/log/messages
Тепер давайте перемкнемося на перший термінал, щоб переглянути новий доданий текст:
$ tail -f /var/log/messages
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_lbjhe34bmm.png?resize=821%2C497&ssl=1)
![](https://i0.wp.com/linuxthebest.net/wp-content/uploads/2023/04/chrome_lbjhe34bmm.png?resize=821%2C497&ssl=1)
Тут ми бачимо, що команда tail показує щойно доданий текст.