من جریان کاری خود را دوست دارم و هرگز قصد نداشتم یک بازنگری کلی انجام دهم. تمام چیزی که به آن نیاز داشتم، رفع چند نقص کوچک در جریان کاری بود، اما این کار من را به دنیایی از ابزارهای سبک لینوکس برد که آنقدر ساده به نظر میآمدند که ممکن بود آنها را نادیده بگیرم. یکی را نصب کردم، سپس دیگری را، و پس از چند ابزار جدید، ترمینالی که سالها استفاده میکردم، احساس میکرد که قدیمی شده است.
من عاشق روند کاری خودم هستم و هرگز قصد نداشتم یک بازنگری کلی انجام دهم. تنها چیزی که نیاز داشتم رفع چند نقص کوچک در روند کار بود، اما این من را به سمت مجموعهای از ابزارهای سبک لینوکس برد که آنقدر ناچیز بودند که ممکن بود از آنها عبور کنم. یکی را نصب کردم، سپس دیگری، و پس از چند ابزار جدید، ترمینالی که سالها استفاده میکردم قدیمی به نظر رسید.
در این مرحله، دیگر هرگز به ترمینال قبلی خود بازنخواهم گشت. این پنج ابزار بهطرز شگفتانگیزی برای حل مشکلات خاص ترمینال مناسب هستند. من جلسات زنده ترمینال خود را به اشتراک میگذارم، به دایرکتوریها میپرسم، فایلها را مییابم و خطاها را راحتتر اصلاح میکنم. این گام بعدی کامل پس از تسلط بر دستورات که من را به یک مدیر واقعی تبدیل میکند، است.
ttyd
همکاری از راه دور بدون ترک ترمینال شما
گاهیً مجبور میشوم صفحهنمایشم را به اشتراک بگذارم اگر نیاز داشته باشم به کسی نشان دهم چه اتفاقی در ترمینال من میافتد. این کار میکند، ولی ایدهآل نیست. روشهای دیگر به اشتراکگذاری ترمینال با کمی اصطکاک همراه هستند. tmux مؤثر است، اما بهاشتراکگذاری نیاز به مجوزهای سوکت و تنظیمات دستی دارد. برخی گزینههای مرورگر مانند ShellInABox نیاز به پیکربندی سرورهای وب یا پراکسیهای معکوس دارند—موثر اما خیلی پیچیده.
ttyd ابزار است که این خلأ را بهطور کامل پر میکند. این به من اجازه میدهد ترمینالم را به یک جلسه زنده قابل اشتراکگذاری تبدیل کنم که تمیز و بهراحتی از طریق یک URL در دسترس است. نیازی به بهاشتراکگذاری صفحهنمایش یا عبور از تنظیمات پیچیده ندارید. این یک پوسته یا فرمان اسکریپت را اجرا میکند و بهصورت امن از طریق HTTP/HTTPS در دسترس قرار میدهد.
این ابزار هنگامی که نیاز دارم بهصورت遠程 به کسی در رفع مشکل کمک کنم یا به همتیمیهایم دسترسی موقت به ترمینال بدهم، بسیار مفید است. این یکی از آسانترین راهحلها برای اجرای یک محیط مشترک در کلاس یا کارگاه است. میتوانم آن را با TLS، رمزعبور یا پراکسی معکوس در صورت نیاز ایمن کنم. اگرچه برای محیطهای چندکاربره طولانیمدت ایدهآل نیست، اما برای جلسات کنترلشده عالی است و میتوانید آن را با هر یک از دستورات زیر نصب کنید:
|
توزیع |
دستورات نصب |
|---|---|
|
Debian / Ubuntu / Linux Mint / Pop!_OS |
|
|
RHEL / CentOS / Fedora / Rocky Linux / AlmaLinux |
|
|
Arch Linux / Manjaro / EndeavourOS |
|
fzf
جستجوی آنی فایلها، تاریخچه یا متن از هرجایی

اگر تا به حال از فرمان ls استفاده کردهاید، با من موافق خواهید شد که جستجوی دستی خروجی، تاریخچه یا دایرکتوریها روندی آهسته است. من از grep یا find استفاده میکنم، اما اینها معمولاً نیاز به دستورات طولانی یا پرچمهای متعدد و تطبیق دقیق کلیدواژه دارند. جستجوی دستی مرا کند میکند اگر بخواهم در داخل مخازن git، فایلهای پیکربندی یا هر پوشهای با ساختارهای عمیق جستجو کنم. همچنین از جستجوی تاریخچه شل (Ctrl+R) استفاده میکنم، اما این روش بسیار محدود است و ممکن است نتایج را از دست بدهد.
fzf را به کار گرفتهام، و این ابزار تقریباً بینقص است. از الگوریتم fuzzy‑finder برای جستجو در هر چیزی که به آن میفرستم استفاده میکند—فایلها، تاریخچه، پردازشها، شاخههای git و متن. نیازی به تطبیق دقیق ندارم زیرا میتواند حدس بزند چه میخواهم بنویسم.
بهترین بخش این است که بهراحتی با کلیدهای میانبر یک جستجوی pop‑up لحظهای فراهم میکند، اگرچه برای تنظیم کلیدها و تکمیلها نیاز به پیکربندی اولیه دارد.
میتوانید آن را با هر یک از دستورات زیر نصب کنید:
|
توزیع |
دستورات نصب |
|---|---|
|
Debian / Ubuntu / Linux Mint / Pop!_OS |
|
|
RHEL / CentOS / Fedora / Rocky Linux / AlmaLinux |
|
|
Arch Linux / Manjaro / EndeavourOS |
|
zoxide
پرشهای هوشمندانه به دایرکتوریها با تقریباً بدون تنظیم

دستور cd باعث ایجاد اصطکاکی در تجربه ترمینال میشود. شما باید مسیرهای طولانی و دقیق دایرکتوریها را بارها و بارها تایپ کنید و همواره آرزو داشتم که این فرمان بهقدرت یادگیری داشته باشد. همچنین، اصطکاک هنگام حرکت بین پوشههای پرکاربرد اما عمیق همیشه جریان کاری من را خراب میکند.
من از ابزارهایی مانند autojump و z استفاده کردهام، اما هیچکدام بهطور کافی رتبهبندی یا دقت را مدیریت نمیکردند. اگرچه مستعارهای bash کمک میکنند، اگر بهصورت دستی تعریف نشوند یا بهروز نگهدارند، بیفایدهاند. دستورات pushd / popd کار میکنند، اما شما باید حرکت خود را برنامهریزی کنید و آنها بهصورت پویا با عادات شما سازگار نمیشوند.
Zoxide نسخهای هوشمندتر از cd است و مسیرهای مکرر من را دنبال میکند. میتوانید از z
|
توزیع |
دستورات نصب |
|---|---|
|
Debian / Ubuntu / Linux Mint / Pop!_OS |
|
|
RHEL / CentOS / Fedora / Rocky Linux / AlmaLinux |
|
|
Arch Linux / Manjaro / EndeavourOS |
|
shellcheck
تشخیص هوشمندانه خطا پیش از این که دستورات شما خراب شوند

خطاهای جزئی در استفاده از کوتیشنها و عملگرهای تست نادرست از دلایل رایج خرابی اسکریپتها هستند که میتواند خیلی گیجکننده باشد. گاهی اوقات مجبور میشوم اسکریپت بنویسم و میبینم پیامهای خطای پیشفرض ترمینال چندان مفید نیستند. این باعث میشود دیباگ کردن دشوارتر از آنچه باید باشد، شود.
shellcheck برخی از این اصطکاکها را حذف میکند. این ابزار اسکریپتها را اسکن کرده و خطاها، الگوهای ناامن و نکات نحوی را برجسته میکند. توضیحات واضح و جزئی ارائه میدهد. این ابزار فراتر از شناسایی متغیرهای بدون کوتیشن، بررسیهای شرطی نادرست و کلیدواژههای گمشده میرود و مشکلات قابلانتقال بین bash، sh، dash و zsh را نشان میدهد.
اگرچه این ابزار اصلاح مشکلات برجستهشده را انجام نمیدهد، راهنماییهای مستقیم ارائه میدهد که بهسرعت و بهطور پیشبینیپذیر به اصلاح آنها کمک میکند.
|
توزیع |
دستورات نصب |
|---|---|
|
Debian / Ubuntu / Linux Mint / Pop!_OS |
|
|
RHEL / CentOS / Fedora / Rocky Linux / AlmaLinux |
|
|
Arch Linux / Manjaro / EndeavourOS |
|
asciinema
ضبط و پخش جلسات ترمینال به روش تمیز

من اغلب نیاز به ضبط ترمینالم دارم، اما با چند چالش روبرو هستم. اسکرینشاتها معمولاً ورودی اسکرول یا جریان دستورات را ضبط نمیکنند و بسیاری از ابزارهای ضبط صفحهنمایش فایلهای سنگینی تولید میکنند که بهاشتراکگذاری دشوار است. همچنین، هنگام بهاشتراکگذاری صفحهنمایش، تاخیر رخ میدهد که دموی زنده را خراب میکند.
Asciinema یک ضبطکننده ترمینال است که تمام این اصطکاکها را حل میکند. این جلسات ترمینال را بهصورت متن ساده ضبط میکند و فایلهای .cast کوچک و کارآمدی تولید میکند که بهدقت بازپخش میشوند. پخشکننده رزولوشن اصلی، رنگها و زمانبندی دقیق را حفظ میکند، بهطوری که خروجی ترمینال در ضبطهای ویدئویی معمولی شفاف یا ناخوانا نباشد. من دوست دارم این ابزار بهراحتی به سرورهای خودممیزبان آپلود شود، که این عالی است چون من Google Drive را با یک ابر میزبانیشده شخصی جایگزین کردم.
میتوانید آن را با هر یک از دستورات زیر نصب کنید:
|
توزیع |
دستورات نصب |
|---|---|
|
Debian / Ubuntu / Linux Mint / Pop!_OS |
|
|
RHEL / CentOS / Fedora / Rocky Linux / AlmaLinux |
|
|
Arch Linux / Manjaro / EndeavourOS |
|
حداکثر کردن ترمینال شما، کمینه کردن اصطکاک
ارتباط من با ترمینال با این ابزارها تکامل یافته است. هرکدام یک نقطه اصطکاک پایدار در روند کاری من را برطرف کردهاند و خط فرمان من را هوشمندانهتر و قدرتمندتر کردهاند.
اما ارزش واقعی تنها سرعت نیست — شفافیت، کارآمدی و اطمینان است که آنها میآورند. افزودن این ابزارها به روند کاری من به من کمک کرده زمان را بازپس بگیرم و خطاها را کاهش دهم. من یک روند کاری قابل تکرار دارم که واقعاً از استفاده آن لذت میبرم، و در نهایت توانستم به روشهایی که فکر میکردم غیرممکن است، چندکاره کار کنم.