دستور head در لینوکس
دستور head در لینوکس، نقش مکمل دستور tail را ایفا می کند و به جای چند خط آخر، چند خط اول فایل موردنظر را پرینت می کند که در دنیای برنامه نویسی و اسکریپت نویسی، نقش مهمی در اشکال زدایی و بررسی سریع تر فایل ها دارد.
وظیفه پیش فرض دستور head، نمایش ۱۰ خط اول فایل ورودی است ولی شما با استفاده از آپشن های متنوع این دستور می توانید رفتار آن را متناسب با نیاز خود سفارشی سازی کنید.
اگر می خواهید صاحب یک سرور حرفه ای شوید و مشکلی از بابت اجرای انواع دستورات لینوکس نداشته باشید، می توانید از صفحه خرید سرور مجازی لینوکس دیدن کنید.
سینتکس دستور head در لینوکس
سینتکس پایه این دستور به صورت زیر است:
head [Option] [File]
Optionها برای تعیین رفتار دستور head در مقابل فایل ورودی به کار می روند که استفاده از آنها هم کاملاً اختیاری است.
File هم حاوی اسم فایل یا فایل هایی است که قصد بررسی بخش اول آن را دارید. اگر هیچ فایلی را مشخص نکنید، دستور منتظر می ماند تا شما موردنظر را تایپ کنید و اینتر را بزنید تا ۱۰ خط اول آن را به شما نمایش دهد.
آپشن های دستور head
آپشن | کاربرد |
c- یا byte– | تعیین تعداد بایت موردنظر برای پرینت |
n- یا lines– | تعیین تعداد خطوط موردنظر برای پرینت |
q- یا quit– | حذف عناوین از خروجی |
v- یا verbose– | نمایش جزئیاتی مثل عنوان و اسم فایل همراه خروجی |
version– | نمایش نسخه دستور head |
برای دسترسی به اطلاعات بیشتر در مورد دستور head می توانید از دو دستور زیر کمک بگیرید:
man head
head -h
مثال های کاربردی از دستور head در لینوکس
کاربرد دستور head در لینوکس با مثال هایی که در ادامه بررسی می کنیم، قابل درک تر خواهد بود. پس ابتدا با دستور cd در مسیر فایل یا فایل های موردنظر قرار بگیرید و سپس دستورات زیر را امتحان کنید:
مشاهده ۱۰ خط اول یک فایل
دستور head در حالت پیش فرض ۱۰ خط اول فایل ورودی را نمایش می دهد پس برای اینکه ۱۰ خط اول یک فایل را ببینید، نیازی نیست که آپشن دیگری را به سینتکس این دستور اضافه کنید:
head file.txt
اگر در مسیر فایل موردنظر نیستید، می توانید به طور مستقیم مسیر فایل را هم در دستور لحاظ کنید:
head /home/documents/file.txt
برای نمایش اسم فایل همراه با خروجی، باید آپشن v- را به دستور اضافه کنید:
head -v file.txt
مشاهده ۱۰ خط ابتدایی چند فایل
برای اینکه ۱۰ خط مربوط به چند فایل را به صورت یکجا ببینید، کافیست اسم فایل ها را به صورت زیر در دستور head لحاظ کنید:
head file1.txt file2.txt file3.txt file4.txt
۱۰ خط مربوط به هر فایل توسط عنوان هر کدام از فایل ها تفکیک شده اند و موقع بررسی می توانید خروجی آنها را از هم جدا کنید.
اگر تمایلی به تفکیک خروجی آنها ندارید، می توانید آپشن q را به دستور اضافه کنید:
Head -q file1.txt file2.txt file3.txt file4.txt
تعیین تعداد خط موردنظر از فایل ورودی برای نمایش در خروجی
اگر می خواهید به جای ۱۰ خط، تعداد خط نمایشی را خودتان مشخص کنید، کافیست از آپشن n استفاده کنید:
head -n 30 file.txt
این دستور ۳۰ خط اول فایل موردنظر را به شما نمایش می دهد.
البته با اجرای دستور زیر هم می توانید به همان نتیجه دست پیدا کنید:
head -30 file.txt
مشاهده تعداد بایت دلخواه از ابتدای فایل موردنظر
اگر می خواهید به جای تعداد خط، تعداد بایت را مشخص کنید و خروجی را بر اساس تعداد بایتی که در دستور لحاظ کرده اید ببینید، کافیست از آپشن c استفاده کنید:
head -c 100 file.txt
در صورت تمایل می توانید واحد موردنظر برای نمایش بایت ها را هم در دستور head لحاظ کنید.
به عنوان مثال اگر می خواهید ۵ کیلوبایت (۵ * ۲۰۴۸ = 10240 بایت) از ابتدای فایل را ببینید، کافیست دستور head را به صورت زیر اجرا کنید:
head -c 5k file.txt
ترکیب دستور head با دستورات دیگر
یکی از زیبایی های دنیای لینوکس این است که با استفاده از عملگر پایپ (|) می توانید دستورات را به هم وصل کنید و از این طریق، کاربرد دستورات را به سطح بالاتری ارتقا دهید.
بیایید با چند نمونه از ترکیباتی که با دستور head قابل انجام هستند را بررسی کنیم:
نمایش خطوط حاوی یک کاراکتر یا الگوی خاص
اگر می خواهید خطوط حاوی کاراکتر یا الگوی خاص را در خروجی head ببینید، می توانید head و grep را با هم ترکیب کنید.
به عنوان مثال اگر می خواهید فقط خطوط حاوی ch را در خروجی دستور head ببینید، می توانید از دستور زیر استفاده کنید:
head file.txt | grep ch
مشاهده تعداد خط، کلمات و بایت های خروجی head
برای این کار کافیست دستور head را با wc پایپ کنید تا خروجی دستور head به عنوان ورودی wc عمل کند و wc هم تعداد خط، کلمات و بایت های آن را محاسبه کند.
head file.txt | wc
ترکیب دستور head و tail
اگر به خطوط میانی فایل موردنظر نیاز دارید، می توانید با دستور head تعداد خطوط ابتدایی آن را مشخص کنید و سپس از دستور tail برای پرینت خطوط انتهایی خروجی head استفاده کنید.
به عنوان مثال برای مشاهده محتوای خط ۵ تا ۱۰ فایل موردنظر می توانید از دستور زیر استفاده کنید:
head -n 10 file.txt | tail -n 5
این دستور ابتدا ۱۰ خط اول را از فایل موردنظر برمی دارد و به دستور tail پایپ می کند و دستور tail هم ۵ خط انتهایی این ۱۰ خط را در خروجی نشان می دهد.
فیلتر خروجی مربوط به دستور ls
اگر می خواهید از دستور ls برای مشاهده لیست محتویات یک فولدر استفاده کنید و فقط به چند مورد ابتدایی این لیست نیاز دارید، می توانید دو دستور ls و head را به شکل زیر با هم پایپ کنید:
ls | head -n 5
این دستور ۵ آیتم ابتدایی لیست را به شما نشان می دهد.
برای مرتب سازی خروجی دستور بالا بر اساس حروف الفبا هم می توانید از دستور sort استفاده کنید:
ls | head -n 5 | sort
در حالت کلی، دستور head کاربرد ساده ای دارد ولی اگر بتوانید این دستور را به صورت ترکیبی استفاده کنید، می توانید کارایی دستورات را تا حد زیادی ارتقا دهید و شرایط را به نفع خود تغییر دهید.
سخن آخر
دستور head در لینوکس برای نمایش ۱۰ خط اول فایل یا فایل های موردنظر به کار می رود و این شما هستید که می توانید با اضافه کردن آپشن های موردنظر یا ترکیب آن با دستورات دلخواه، رفتار آن را تعیین کنید.