آموزش دستور less در لینوکس برای نمایش محتوای فایل
با اینکه ابزارها و دستورات لینوکسی زیادی برای مشاهده فایل ها وجود دارد ولی اگر با یک فایل بزرگ سروکار دارید و دوست دارید به جای بارگذاری تمام محتویات به صورت یکجا، به صورت صفحه به صفحه به محتویات آن دسترسی پیدا کنید، دستور less در لینوکس همان دستوری است که دنبالش هستید.
دستور less در لینوکس یکی از رایج ترین دستورات برای نمایش محتویات فایل های بزرگ به صورت صفحه ای است. این دستور در کنار سرعت بالا، آپشن های مختلفی هم ارائه می دهد که برای کاربران لینوکس بسیار مفید و کارساز است.
دستور less نه تنها به افزایش سرعت بارگذاری محتوای فایل کمک می کند، بلکه امکانات پیشرفته ای را برای اسکرول به سمت عقب و جلو، جستجوی الگوها و مشاهده چند فایل به صورت یکجا ارائه می دهد که همه این ها باعث ایجاد یک تجربه عالی برای کاربران لینوکسی می شود.
این دستور هم مثل اکثر دستورات لینوکسی، کاربردهای خاص خود را دارد. مخصوصاً اگر قصد پیاده سازی پروژه های سنگین با فایل های بزرگ دارید و دوست دارید پروسه بررسی و مشاهده آنها را در زمان کمتری جلو ببرید، توصیه می کنیم که با خرید سرور مجازی لینوکس (Linux VPS) و استفاده از دستورات کاربردی مثل دستور less بسیاری از کارها را برای خود راحت تر سازید و بیشتر روی اهداف و برنامه ریزی های خود تمرکز کنید.
آماده اید که دستور less در لینوکس و سینتکس و کاربردهای مختلف آن را بررسی کنیم؟ مطمئناً که آماده اید. پس بیایید شروع کنیم:
دستور less در لینوکس
دستورات زیادی مثل nano و vim هستند که می توان از آنها برا مشاهده و ویرایش فایل های متنی استفاده کرد ولی وقتی بحث سرعت و تعامل بالا می شود، دستور less در لینوکس یک قدم جلوتر می گذارد.
با دستور less می توانید فایل های متنی بزرگ را بدون آپلود یکجا و به صورت صفحه به صفحه مشاهده کنید. همچنین، این ابزار دارای دستورات زیادی برای پیمایش محتوای فایل، مانیتور فایل به صورت real time و جستجوی متن موردنظر است که همه این امکانات برای افزایش سرعت مشاهده و بررسی فایل موردنظر هستند.
یک مزیت دیگر دستور less در لینوکس این است که این دستور فقط خواندنی “Read – only” است و احتمال ویرایش یا ایجاد تغییرات تصادفی در فایل موردنظر وجود ندارد و همین باعث می شود که به راحتی و بدون هیچ دغدغه ای از امکانات و آپشن های مختلف این دستور بهره ببرید.
پس اگر به دنبال یک دستور با انعطاف پذیری بیشتر برای پیمایش فایل ها و امکاناتی مثل مشاهده چند فایل، جستجوی متن، ایجاد و حذف بوک مارک ها و سازگار با ورودی پیپ ( | ) هستید و سرعت دسترسی به فایل ها و استفاده از امکانات برایتان خیلی مهم است، دستور less در لینوکس گزینه خوبی برای شماست.
پس اگر یک سیستم لینوکسی دارید و به ترمینال آن هم دسترسی دارید، دیگر وقت آن است که به صورت عملی با سینتکس و کاربرد دستور less آشنا شوید:
سینتکس و آپشن های دستور less
سینتکس اصلی و پایه این دستور به صورت زیر است:
less [options] file_path
با اینکه این دستور بدون آپشن هم قابل اجرا است و محتویات فایل موردنظر را به صورت پیش فرض نمایش می دهد ولی آپشن های زیادی دارد که با استفاده از آنها می توانید نحوه رفتار دستور less در لینوکس را تغییر دهید و خروجی را مدیریت کنید. برخی این آپشن ها عبارت اند از:
E – خروج خودکار موقع رسیدن به انتهای فایل
f – باز کردن اجباری فایل های غیرعادی
g – هایلایت آخرین رشته ی جستجو یافته ( دستور less به طور پیش فرض تمام بخش های مطابق با متن جستجو شده را هایلایت می کند.)
G – حذف تمایل هایلایت ها
i – نادیده گرفتن حساسیت کوچک و بزرگ بودن حروف موقع جستجو
J – نمایش ستون وضعیت در سمت چپ صفحه
p – ارائه یک الگو برای شروع نمایش قسمت های منطبق با الگو
s – تبدیل خطوط خالی متوالی به یک خط خالی
N – نمایش شماره خطوط
X – ادامه نمایش خروجی در خط فرمان در صورت خروج از دستور less در لینوکس
البته، با بررسی مثال های کاربردی آشنایی بیشتری با نحوه استفاده از این آپشن ها پیدا خواهید کرد. آپشن های دیگری هم هستند که مطابق با نیاز و کاربرد خود می توانید در دستور less لحاظ کنید. برای آشنایی با تمام آپشن های این دستور می توانید از دستورات زیر استفاده کنید:
less –help
man help
نحوه پیمایش خروجی دستور less
دستور less در لینوکس این امکان را به شما می دهد که با استفاده از برخی از کلیدهای کیبورد بتوانید متن خروجی را پیمایش کنید. جدول زیر حاوی مهم ترین میانبرهای کیبورد دستور less است:
میانبر | وظیفه |
دکمه جهتی پایین، اینتر، e یا j | انتقال به خط بعدی |
دکمه جهتی بالا، y یا k | برگشت به خط قبلی |
دکمه space یا f | انتقال به صفحه بعدی |
b | برگشت به صفحه قبلی |
/pattern یا string | جستجوی الگو یا رشته متنی در فایل متنی به صورت forward |
?pattern یا string | جستجوی الگو یا رشته متنی در فایل متنی به صورت backward |
n | متن بعدی سازگار با الگو یا رشته جستجو |
N | متن قبلی سازگار با الگو یا رشته جستجو |
Ng | رفتن به N امین خط فایل |
Np | رفتن به بخش N درصدی از فایل |
دکمه جهتی راست | اسکرول به سمت راست |
دکمه جهتی چپ | اسکرول به سمت چپ |
g | پرش به ابتدای فایل |
G | پرش به انتهای فایل |
q | خروج از دستور less |
مثال های کاربردی از دستور less
حالا دیگر وقت آن است که نحوه استفاده از دستور less لینوکس و آپشن های آن را به صورت عملی و با استفاده از مثال های کاربردی یاد بگیرید:
نحوه باز کردن یک فایل
برای اینکه فایل موردنظر خود را با استفاده از دستور less باز کنید، باید مسیر آن را در دستور less لحاظ کنید:
less /etc/updatedb.conf
حالا که محتویات فایل موردنظر در صفحه ترمینال برای شما باز شده است، با استفاده از جدولی که در بالا قرار داده ایم، می توانید این فایل را پیمایش کنید و عملیاتی مثل جستجوی الگو را انجام دهید.
نمایش شماره خطوط
اگر شماره خطوط فایل متنی برای شما مهم است، مخصوصاً اگر فایل موردنظر حاوی کدهای برنامه نویسی است که برای خطایابی یا ایجاد تغییر در کد، نیاز به شماره خطوط دارید، می توانید از آپشن N استفاده کنید:
less -N /etc/init/mysql.conf
جستجوی یک رشته متنی با دستور less در لینوکس
دستور less در لینوکس این امکان را به شما می دهد که رشته متنی موردنظر را در یک فایل متنی جستجو کنید و سپس بخش های حاوی آن رشته را به صورت هایلایت شده به شما نشان می دهد.
ابتدا باید فایل را باز کنید.
حالا اگر می خواهید این جستجو را به صورت forward یا رو به جلو انجام دهید، باید از / استفاده کنید و سپس متن موردنظر را وارد کنید و کلید Enter را بزنید.
اگر هم می خواهید بخش قبل از اشاره گر را جستجو کنید یعنی جستجوی backward یا رو به عقب انجام دهید، باید از ? استفاده کنید و سپس متن موردنظر را وارد کنید و کلید Enter را بزنید.
باز کردن فایل با یک الگوی جستجو
اگر می خواهید فایل متنی را طوری باز کنید که دستور less الگوی موردنظر را در آن جستجو کرده و موردهای سازگار با آن الگو را به صورت هایلایت شده به شما نشان دهد، باید از آپشن p استفاده کنید.
* این آپشن نسبت به بزرگ و کوچک بودن حروف، حساس است.
* بین آپشن p و الگوی موردنظر، فاصله ای وجود ندارد.
less -pERROR /etc/init/mysql.conf
حذف خطوط خالی
اگر فایل شما حاوی خطوط خالی پشت سر هم است و می خواهید با حذف آنها، فضای بیشتری برای نمایش محتوای اصلی و مهم در هر صفحه داشته باشد، کافیست آپشن s را در دستور لحاظ کنید تا تمام خطوط خالی پشت سر هم به یک خط خالی تبدیل شوند:
less -s welcome.txt
باز کردن همزمان چند فایل
اگر می خواهید چند فایل را به صورت همزمان باز کنید، تنها کاری که باید انجام دهید این است که اسم فایل های موردنظر که در مسیر فعلی خط فرمان قرار دارند را وارد کنید یا اینکه، فایل های موردنظر را با مسیر مشخص کنید:
less -s welcome.txt
این دستور، ابتدا فایل اول را باز می کند و برای رفتن فایل بعدی، کافیست : را وارد کنید و سپس n را وارد کنید و اینتر را بزنید.
با p: هم می توانید به فایل قبلی برگردید.
علامت گذاری فایل
اگر موقع بررسی فایل متنی موردنظر، به بخش خاصی رسیده اید که می خواهید آن را علامت گذاری کنید تا بعداً راحت تر و سریع تر بتوانید به آن بخش برگردید، کافیست بخش موردنظر را انتخاب کنید و سپس، کلید m را فشار دهید.
بعد که خط فرمان set mark باز شد، حرف کوچک دلخواهی برای آن وارد کنید و اینتر را بزنید.
* برای علامت گذاری های بیشتر از حروف کوچک متفاوت استفاده کنید.
حالا اگر می خواهید به بخش موردنظر بروید، کافیست ‘ را وارد کنید و سپس در بخش go to mark، حرف کوچکی که برای آن بخش انتخاب کرده بودید را وارد کنید.
نگهداری فایل در خط فرمان بعد از خروج از less
اگر می خواهید از خط فرمان دستور less در لینوکس خارج شوید ولی همچنان به محتوای فایلی که باز کرده بودید نیاز دارید، حتماً باید از آپشن X استفاده کنید چون در حالت پیش فرض، با فشردن کلید q و خروج از دستور less، محتویات صفحه هم بسته می شود.
less -X /etc/init/mysql.conf
مانیتور فایل متنی به صورت real time
اگر فایل موردنظر شما طوری است که هر لحظه اطلاعات جدید یا خطوط جدیدی به آن اضافه می شود (مثل فایل های لاگ) و می خواهید آخرین صفحه آن را به صورت بلادرنگ بررسی کنید، کافیست از آپشن F+ استفاده کنید:
less +F /var/log/syslog
خروجی این دستور، طوری است که پیام ها و خطوط جدید به انتهای فایل اضافه می شوند و ترمینال هم به صورت خودکار به سمت پایین اسکرول می شود تا داده های جدید را به شما نمایش دهد.
برای خروج از این حالت و برگشتن به حالت استاندارد تعاملی less می توانید از کلید ترکیبی Ctrl+C استفاده کنید.
نمایش ورودی پیپ شده از یک دستور دیگر
اگر می خواهید از دستور less در لینوکس برای مشاهده خروجی یک دستور دیگر استفاده کنید یا به اصطلاح، خروجی دستور موردنظر را به ورودی دستور less پیپ کنید، دستور less هیچ مانعی برای شما لحاظ نمی کند.
به عنوان مثال، دستور dmesg پیام های و گزارشات هسته را نمایش می دهد و از آنجا که این گزاراشات طولانی و حجیم هستند، بهترین ایده این است که خروجی این دستور را به less پیپ کنید تا این گزاراشات به صورت صفحه به صفحه (نه یکجا) نمایش داده شوند:
sudo dmesg | less
با فشردن کلیک ایند End می توانید خروجی را رفرش کنید و پیام های جدید را ببینید. یا اینکه از آپشن F برای خودکارسازی پروسه رفرش و نمایش real time خروجی استفاده کنید:
sudo dmesg | less +F
این دستور، آخرین صفحه فایل را باز می کند و منتظر داده های جدید می ماند تا این صفحه را آپدیت کند.
یا برای جستجوی یک الگو در فایل گزارشات هسته می توانید از p استفاده کنید:
dmesg | less -p "fail"
ویرایش فایل ها
همانطورکه قبلاً هم اشاره کردیم، دستور less صرفاً جهت مشاهده و خواندن فایل متنی است و گزینه های خاصی را برای ویرایش فایل لحاظ نکرده است. ولی با فشردن کلید v می توانید فایل را به ویرایشگر پیشفرض سیستم انتقال دهید و اجازه دهید که فایل باز شده با دستور less، توسط ویرایشگر متنی باز شود و سپس، ادیت های لازم را در آن اعمال کنید.
سخن آخر
دستور less در لینوکس، یکی از پرکاربردترین دستورات برای مشاهده فایل های متنی بزرگ است. این دستور برای نمایش فایل متنی از تکنیک صفحه به صفحه استفاده می کند و دیگر نیازی نیست که کل محتوای یک فایل به صورت یکجا در ترمینال بارگذاری شود. همین ویژگی باعث افزایش سرعت این دستور می شود که البته، امکانات و آپشن های دیگری هم وجود دارد که با استفاده از آنها می توانید رفتار دستور less را کنترل کنید.
از اینکه تا انتهای مقاله با ما همراه بودید، از شما متشکریم. امیدواریم که مطالعه این مقاله برای شما مفید واقع شده باشد. در صورت داشتن هرگونه سوال، درخواست و نیاز به راهنمایی، می توانید با ثبت نظر خود، با ما وارد ارتباط شوید تا هر چه زودتر به شما پاسخ دهیم.