مدتها تصور میکردم ترمینال جایی است که برای انجام هر کاری به شیوهای دشوار و مخصوص حرفهایها به سراغش میروید. به همین دلیل، در کارهای روزمرهام، مانند مرور پروندهها، یافتن چیزی که فراموش کرده بودم یا سردرآوردن از یک گزارش، معمولا از ترمینال دوری میکردم. بیهیچ درنگی یک رابط گرافیکی باز میکردم.
اما وقتی استفاده از چند ابزار ترمینالی را آغاز کردم، این نگرشم کمکم تغییر کرد؛ چون آنها روند کارهایم را از یکنواختی و دردسر نجات دادند. هنوز هم از برنامههای گرافیکی استفاده میکنم، ولی به لطف این ابزارها بسیار کمتر به سراغشان میروم.
یازی
مدیریت پرونده؛ عادتی گرافیکی که گمان میکردم ماندگار است





فرمانهای سنتی ترمینال برای کار با پروندهها، نام و مسیر آنها را نشانم میدهند؛ اما وقتی بتوانم آنچه را با آن سروکار دارم ببینم، مدیریت پروندهها اغلب آسانتر میشود. دیدن نام پروندهها بهتنهایی همیشه کافی نیست، بهویژه وقتی چند پرونده نامهای مشابهی دارند یا باید گروهی از آنها را جابهجا کنید. بنابراین طبیعی بود که بیشتر به File Explorer گرایش داشته باشم.
اما Yazi ترمینال را به یک مدیر پرونده تعاملی تبدیل میکند که با آن میتوانم میان پوشهها حرکت کنم، پروندهها را برگزینم و پیشنمایششان را ببینم. حتی امکان انجام کارهای رایج مربوط به پروندهها را در همان پنجره فراهم میکند. مهمترین قابلیت آن برای من پیشنمایش است، زیرا پیش از آنکه تصمیم بگیرم با یک تصویر، PDF، بایگانی یا قطعهکد چه کنم، میتوانم ابتدا محتوایش را بررسی کنم.
گاهی ترجیح میدهم از ماوس استفاده کنم و در چنین مواقعی هنوز ناچارم File Explorer را باز کنم. بااینحال، روند کاری من چندین کار مرتبط با پروندهها را در بر میگیرد که از ترمینال آغازشان میکنم؛ حالا میتوانم همانجا به پایانشان برسانم و دیگر لازم نیست میان محیطهای مختلف جابهجا شوم.
افزداف
جستوجو دیگر به یادآوری دقیق خواستهام وابسته نبود

اغلب به یاد دارم که پروندهای مشخص وجود دارد، اما نامش را به خاطر نمیآورم. گاهی فقط چند حرف، بخشی از یک واژه یا ارتباط مبهم آن با موضوعی در ذهنم مانده است. در چنین موقعیتهایی، واردکردن مسیر دقیق مرا به جایی نمیرساند.
اینجاست که به سراغ fzf میروم؛ ابزاری که کمتر شبیه فرمان است و بیشتر به کادر جستوجویی میماند که معمولا در یک رابط گرافیکی دنبالش میگردم. کافی است الگویی تقریبی بنویسم تا fzf همزمان با تایپکردن، فهرست را بهصورت تعاملی محدود کند. پیش از آغاز جستوجو لازم نیست نام پرونده را بیکموکاست به یاد داشته باشم.
پروندهها نمونهای بدیهی به نظر میرسند، اما fzf با تاریخچه فرمانها، فرایندها، ثبتهای Git، نشانکها و فهرستهای دیگر نیز کار میکند؛ بنابراین کاربردش بسیار فراتر از یافتن پروندههاست.
از Yazi برای گشتوگذار و دیدن محتویات موجود استفاده میکنم؛ اما وقتی اصلا نمیخواهم چیزی را مرور کنم و فقط تصوری مبهم از آنچه میجویم دارم، به fzf روی میآورم.
النَو
ترمینال سرانجام گزارشها را به اطلاعاتی فهمیدنی تبدیل کرد

وقتی باید یک پرونده گزارش بزرگ را باز کنید، ترمینال اغلب ابزار نامناسبی به نظر میرسد. انبوهی از سطرهای متنی را نمایش میدهد و یافتن بخش مهم میان آنها واقعا دشوار است.
lnav با گزارشها همانگونه که باید برخورد میکند و بررسی آنها را آسانتر میسازد. قالب گزارشها را تشخیص میدهد و پیامها را پالایش میکند. همچنین وقتی برنامهای چند پرونده گزارش دارد و باید رویدادهای رخداده در بازه زمانی یکسانی را بررسی کنم، از آن برای ادغام ورودیهای چند پرونده در یک نمای زمانی یکپارچه بهره میبرم.
اغلب از نماهای نموداری و زمانی آن استفاده میکنم تا بدون پیمایش بیشازحد در متن خام، الگوها را تشخیص دهم. این ابزار عادت من به بازکردن چند پرونده و مقایسه ذهنی زمانها را تا حد زیادی از میان برده است.
البته قابلیتهای پیشرفتهتری هم دارد. حتی میتوانید دادههای گزارش را با SQL واکاوی کنید، هرچند دلیل پیشنهاد من در اینجا این قابلیت نیست. مهمتر اینکه هنگام بروز مشکل، دیگر لازم نیست به سراغ یک نمایشگر گرافیکی ویژه گزارشها بروم، زیرا میتوانم بررسیها را با lnav انجام دهم.
اتوین
تاریخچه فرمانهایم سرانجام واقعا جستوجوپذیر شد

بهیادآوردن یک فرمان دقیقا با یافتن آن یکسان نیست؛ دستکم استفاده فراوانم از تاریخچه پوسته این را به من آموخته است. ممکن است به یاد داشته باشم که هفته گذشته فرمانی را اجرا کردهام، بیآنکه خود فرمان را دقیقا به خاطر بیاورم. گاهی میدانم آن را برای پروژهای به کار بردهام، اما درست یادم نیست کجا اجرایش کردهام.
Atuin کار با این تاریخچه را آسانتر میکند. من با جستوجوی تعاملی آن، فرمانها را بر پایهٔ بافتی مانند پوشهٔ کنونی، فضای کاری Git، نشست یا میزبان پالایش میکنم. پشتیبانی از جستوجوی تقریبی هم کمک میکند بدون آنکه ناچار باشم کل فرمان را از نو به یاد بیاورم، فرمان دلخواهم را پیدا کنم.
وقتی سرنخی در دست دارم—مثلاً میدانم یک فرمان طولانی مشخص را در کدام پروژه اجرا کردهام—جستوجو در تاریخچهٔ همان پروژه بسیار سودمندتر از گشتن میان همهٔ فرمانهایی است که تاکنون اجرا کردهام.
افزون بر این، تاریخچهٔ پوستهام دیگر لازم نیست فقط فهرستی برای بالا و پایین رفتن باشد. با Ctrl+R میتوانم در تاریخچهام دقیقتر بکاوم، بهویژه وقتی تنها بخشهایی از کاری را که انجام دادهام به یاد میآورم.
ترشسیالآی
حذف فایلها دیگر به معنای نابودی همیشگیشان نبود

سطل زباله حاشیهٔ امن کاربردیای است که به وجودش در مدیر فایل گرافیکی عادت کردهام. rm چنین روندی برای انتقال فایلها به سطل زباله ندارد. اگر اشتباهی رخ دهد، سطل زباله جایی برای یافتن فایل حذفشده در اختیارتان میگذارد.
با trash-cli میتوانم فایلها را از خط فرمان به سطل زباله بفرستم و سپس، در صورت نیاز، فهرستشان را ببینم یا آنها را بازیابی کنم.
| روش | چه اتفاقی میافتد |
|---|---|
| فرمان rm | فایل را با فرایند معمول حذف پاک میکند |
| ابزار trash-cli | فایل را به سطل زباله میفرستد تا بعداً بتوان آن را در فهرست دید یا بازیابی کرد |
زوکساید
دیگر برای پیمودن سامانهٔ فایل مسیرهای طولانی تایپ نمیکنم

معمولاً وقتی میخواهم به پوشههایی برسم که در چندین لایهٔ تودرتو قرار دارند، دوباره به مدیر فایل گرافیکی پناه میبرم. cd این کار را انجام میدهد، اما پایین رفتن در لایههای بسیار عمیق واقعاً طاقتفرساست؛ بهویژه وقتی دقیقاً میدانید کجا میخواهید بروید، اما مسیر کامل را به یاد نمیآورید.
رویکرد zoxide متفاوت است. این ابزار پوشههایی را که به آنها سر میزنم به خاطر میسپارد و رتبهبندی میکند؛ بنابراین یک عبارت جستوجوی کوتاه میتواند مرا به همان نتیجهای برساند که میخواهم. بهجای وارد کردن کل مسیر، تنها به یک عبارت کوتاه نیاز دارم.
من zoxide را در کنار fzf به کار میبرم، بیآنکه کارکرد fzf را تکرار کند. fzf فهرستی از موارد را پالایش میکند، اما zoxide مسیرهایی را که معمولاً به آنها سر میزنم به خاطر میسپارد و هر زمان لازم باشد دوباره در اختیارم میگذارد.
رابط گرافیکی مشکل اصلی نبود
خودم را مجبور نمیکنم که همیشه در پایانه کار کنم؛ گاهی برنامههای دارای رابط گرافیکی انتخاب منطقیتری هستند. بااینحال، بزرگترین تغییر این است که دیگر بهمحض دشوار شدن کار، ناخودآگاه پایانه را ترک نمیکنم؛ زیرا این ابزارها بسیاری از کارهایی را انجام میدهند که پیشتر مرا بهسوی رابط گرافیکی میفرستادند.
منبع: این مطلب ترجمه و بومیسازی مقالهای از MakeUseOf به قلم Afam Onyimadu است. مشاهده مقاله اصلی