دستور Tail قسمت آخر (به‌طور پیش‌فرض 10 خط آخر) یک یا چند فایل یا نوع دیگر داده‌ها را نشان می‌دهد. همچنین می‌توان از آن برای نظارت بر تغییرات فایل در زمان واقعی استفاده کرد: یکی از رایج‌ترین کاربردهای دستور Tail، مشاهده و تجزیه‌وتحلیل فایل‌های گزارش و سایر فایل‌هایی است که معمولاً در حال تغییر هستند.
در این آموزش، نحوه استفاده از دستور tail لینوکس را از طریق مثال‌های عملی و شرح جزئیات پیرامون رایج‌ترین گزینه‌های دستور tail نشان خواهیم داد.

 

ساختار دستور Tail

قبل از اینکه به نحوه استفاده از دستور tail بپردازیم، می‌خواهیم ساختار اصلی این دستور را مرور کنیم؛ استفاده از دستور tail به شکل زیر می‌باشد:

tail [OPTION]... [FILE]...

[OPTION]- گزینه‌های این دستور می باشد که در بخش‌های بعدی، به رایج‌ترین گزینه‌های دستور tail اشاره خواهیم کرد.

FILE- نام فایل‌ها: اگر هیچ فایلی در بخش FILE مشخص نشده باشد یا FILE با – مقداردهی شده باشد، tail ورودی استاندارد را می‌خواند.

 

نحوه استفاده از دستور Tail

در ساده‌ترین شکل، این دستور بدون هیچ گزینه‌ای استفاده می‌شود؛ که در این صورت دستور 10 خط آخر را نمایش می‌دهد.

tail filename.txt

خروجی این دستور به صورت زیر می‌باشد:

نحوه نمایش تعداد مشخصی از خطوط

برای مشخص کردن تعداد خطوطی که می‌خواهید نمایش داده شود، از گزینه -n (--lines) استفاده کنید:

tail -n <NUMBER> filename.txt

همچنین می‌توانید حرف n را حذف کرده و فقط از (-) و تعداد (بدون ایجاد فاصله بین آن‌ها) استفاده کنید.
برای نمایش 50 خط آخر یک  فایل  با نام filename.txt  می‌توانید از دستور زیر استفاده نمایید:

tail -n 50 filename.txt

دستور زیر همان نتیجه دستور بالا را نشان می‌دهد:

tail -50 filename.txt

 

نحوه نمایش تعداد مشخصی از بایت‌ها

برای نشان دادن تعداد مشخصی از بایت‌ها از گزینه -c (--bytes) استفاده کنید.

tail -c <NUMBER> filename.txt

به‌عنوان‌مثال برای نمایش 500 بایت آخر از  فایلی به نام filename.txt شما می‌توانید از دستور زیر استفاده نمایید:

tail -c 500 filename.txt

همچنین می‌توانید پس از مشخص کردن تعداد، از واحدهای بایت نیز استفاده نمایید؛ تا تعداد بایت‌هایی که باید نمایش داده شود را مشخص کنید؛
b نشان دهنده 512 بایت،
kB نشان دهنده 1000 بایت،
K نشان دهنده 1024 بایت،
MB نشان دهنده 1000000 بایت،
M نشان دهنده 1048576 بایت و .... می‌باشد.
دستور زیر دو کیلوبایت آخر (2048 بایت آخر)  فایل filename.txt  را نمایش می‌دهد:

tail -c 2k filename.txt


نحوه مشاهده تغییرات اعمال‌شده روی یک فایل

برای نظارت کردن بر روی تغییراتی که بر روی یک فایل اعمال می‌شود، از گزینه -f (--follow) استفاده کنید:

tail -f filename.txt

خروجی این دستور مشابه زیر می‌باشد:


این گزینه مخصوص نظارت بر روی  فایل‌های گزارش است و در صورت اضافه شدن اطلاعات جدیدی به انتهای فایل، به صورت لحظه‌ای تغییرات را مشاهده خواهید کرد؛ لازم به ذکر است این دستور پایان نمی‌یابد و برای متوقف کردن آن، باید از کلیدهای CTRL + C استفاده کنید.

به‌عنوان‌مثال می‌توان برای نمایش 10 سطر آخر  فایل /var/log/nginx/error.log  و نظارت بر  به‌روزرسانی‌هایی که بر روی فایل صورت می‌گیرد، از دستور زیر استفاده کنید:

tail -f /var/log/nginx/error.log

برای ادامه دادن نظارت بر روی فایل هنگامی‌که دوباره فایل ایجاد می‌شود، از گزینه -F استفاده کنید.

tail -F filename.txt

این گزینه در شرایطی قابل استفاده است که دستور tail برای یک فایل گزارشِ در حال گردش بین کاربران آمده باشد. هنگامی‌که از گزینه -F استفاده می‌شود، دستور tail به‌محض اینکه دوباره فایل در دسترس قرار گیرد،  آن را دوباره باز می‌کند.

نحوه نمایش چندین فایل

اگر چندین فایل به‌عنوان ورودی دستور tail ارائه شده باشد، این دستور ده خط آخر هر  فایل را نمایش می‌دهد:

tail filename1.txt filename2.txt

خروجی دستور بالا به صورت زیر می‌باشد:

می‌توانید برای نمایش تمام فایل‌ها از یک گزینه یکسان استفاده کنید؛ به‌عنوان‌مثال، دستور زیر 20 سطر آخر  فایل‌های filename1.txt و filename2.txt را نشان می‌دهد:

tail -n 20 filename1.txt filename2.txt

 

نحوه استفاده از Tail به همراه سایر دستورات

دستورالعمل tail، می‌تواند همراه با سایر دستورات نیز استفاده شود؛ به‌عنوان‌مثال برای نظارت بر فایل گزارش دسترسی به سیستم apache و تنها نمایش خطوطی که حاوی آدرس IP 192.168.42.12 می‌باشد، می‌توانید از دستور زیر استفاده کنید:

tail -f /var/log/apache2/access.log | grep 192.168.42.12

 

مثالی دیگر: دستور ps زیر، ده فرایند در حال اجرایی را نشان می‌دهد؛ که بیشترین استفاده را از CPU دارند:

ps aux | sort -nk +3 | tail -5

 

نتیجه‌گیری
در حال حاضر شما باید درک خوبی از نحوه استفاده از دستور tail  موجود در لینوکس داشته باشید. این دستور، مکمل دستور head است که خطوط اول یک فایل را در ترمینال چاپ می‌کند.

منبع: این