خبر و ترفند روز

خبر و ترفند های روز را اینجا بخوانید!

من 5 ابزار سبک لینوکس را آزمایش کردم و همگی جایگاهی دائمی به‌دست آوردند.

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

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

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

ttyd

همکاری از راه دور بدون ترک ترمینال شما

گاهیً مجبور می‌شوم صفحه‌نمایشم را به اشتراک بگذارم اگر نیاز داشته باشم به کسی نشان دهم چه اتفاقی در ترمینال من می‌افتد. این کار می‌کند، ولی ایده‌آل نیست. روش‌های دیگر به اشتراک‌گذاری ترمینال با کمی اصطکاک همراه هستند. tmux مؤثر است، اما به‌اشتراک‌گذاری نیاز به مجوزهای سوکت و تنظیمات دستی دارد. برخی گزینه‌های مرورگر مانند ShellInABox نیاز به پیکربندی سرورهای وب یا پراکسی‌های معکوس دارند—موثر اما خیلی پیچیده.

ttyd ابزار است که این خلأ را به‌طور کامل پر می‌کند. این به من اجازه می‌دهد ترمینالم را به یک جلسه زنده قابل اشتراک‌گذاری تبدیل کنم که تمیز و به‌راحتی از طریق یک URL در دسترس است. نیازی به به‌اشتراک‌گذاری صفحه‌نمایش یا عبور از تنظیمات پیچیده ندارید. این یک پوسته یا فرمان اسکریپت را اجرا می‌کند و به‌صورت امن از طریق HTTP/HTTPS در دسترس قرار می‌دهد.

مطلب مرتبط:   5 دلیل برای اینکه چرا باید هسته لینوکس را به روز کنید

این ابزار هنگامی که نیاز دارم به‌صورت遠程 به کسی در رفع مشکل کمک کنم یا به هم‌تیمی‌هایم دسترسی موقت به ترمینال بدهم، بسیار مفید است. این یکی از آسان‌ترین راه‌حل‌ها برای اجرای یک محیط مشترک در کلاس یا کارگاه است. می‌توانم آن را با TLS، رمزعبور یا پراکسی معکوس در صورت نیاز ایمن کنم. اگرچه برای محیط‌های چندکاربره طولانی‌مدت ایده‌آل نیست، اما برای جلسات کنترل‌شده عالی است و می‌توانید آن را با هر یک از دستورات زیر نصب کنید:

توزیع

دستورات نصب

Debian / Ubuntu / Linux Mint / Pop!_OS

sudo apt install ttyd

RHEL / CentOS / Fedora / Rocky Linux / AlmaLinux

sudo dnf install ttyd

Arch Linux / Manjaro / EndeavourOS

sudo pacman -S ttyd

fzf

جستجوی آنی فایل‌ها، تاریخچه یا متن از هرجایی

جستجوی تاریخچه bash با فرمان fzf

اگر تا به حال از فرمان ls استفاده کرده‌اید، با من موافق خواهید شد که جستجوی دستی خروجی، تاریخچه یا دایرکتوری‌ها روندی آهسته است. من از grep یا find استفاده می‌کنم، اما این‌ها معمولاً نیاز به دستورات طولانی یا پرچم‌های متعدد و تطبیق دقیق کلیدواژه دارند. جستجوی دستی مرا کند می‌کند اگر بخواهم در داخل مخازن git، فایل‌های پیکربندی یا هر پوشه‌ای با ساختارهای عمیق جستجو کنم. همچنین از جستجوی تاریخچه شل (Ctrl+R) استفاده می‌کنم، اما این روش بسیار محدود است و ممکن است نتایج را از دست بدهد.

fzf را به کار گرفته‌ام، و این ابزار تقریباً بی‌نقص است. از الگوریتم fuzzy‑finder برای جستجو در هر چیزی که به آن می‌فرستم استفاده می‌کند—فایل‌ها، تاریخچه، پردازش‌ها، شاخه‌های git و متن. نیازی به تطبیق دقیق ندارم زیرا می‌تواند حدس بزند چه می‌خواهم بنویسم.

بهترین بخش این است که به‌راحتی با کلیدهای میانبر یک جستجوی pop‑up لحظه‌ای فراهم می‌کند، اگرچه برای تنظیم کلیدها و تکمیل‌ها نیاز به پیکربندی اولیه دارد.

می‌توانید آن را با هر یک از دستورات زیر نصب کنید:

توزیع

دستورات نصب

Debian / Ubuntu / Linux Mint / Pop!_OS

sudo apt install fzf

RHEL / CentOS / Fedora / Rocky Linux / AlmaLinux

sudo dnf install fzf

Arch Linux / Manjaro / EndeavourOS

sudo pacman -S fzf

zoxide

پرش‌های هوشمندانه به دایرکتوری‌ها با تقریباً بدون تنظیم

نمایش فهرستی از دایرکتوری‌های بازدید شده با zoxide

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

مطلب مرتبط:   نحوه رفع خطای "make: command not found" در اوبونتو

من از ابزارهایی مانند autojump و z استفاده کرده‌ام، اما هیچ‌کدام به‌طور کافی رتبه‌بندی یا دقت را مدیریت نمی‌کردند. اگرچه مستعارهای bash کمک می‌کنند، اگر به‌صورت دستی تعریف نشوند یا به‌روز نگه‌دارند، بی‌فایده‌اند. دستورات pushd / popd کار می‌کنند، اما شما باید حرکت خود را برنامه‌ریزی کنید و آن‌ها به‌صورت پویا با عادات شما سازگار نمی‌شوند.

Zoxide نسخه‌ای هوشمندتر از cd است و مسیرهای مکرر من را دنبال می‌کند. می‌توانید از z برای پرش خودکار به بهترین تطبیق استفاده کنید. نتایج Zoxide با زمان بهبود می‌یابند زیرا دایرکتوری‌های شما را بر اساس فراوانی و تازگی رتبه‌بندی می‌کند. اما چیزی که آن را بی‌قیمت می‌کند این است که بر روی bash، zsh، fish، nushell، و حتی PowerShell کار می‌کند. همچنین، تنظیم بسیار ساده است: یک نصب و یک خط اولیه.

توزیع

دستورات نصب

Debian / Ubuntu / Linux Mint / Pop!_OS

sudo apt install zoxide

RHEL / CentOS / Fedora / Rocky Linux / AlmaLinux

sudo dnf install zoxide

Arch Linux / Manjaro / EndeavourOS

sudo pacman -S zoxide

shellcheck

تشخیص هوشمندانه خطا پیش از این که دستورات شما خراب شوند

رفع اسکریپت‌ها با ابزار spellcheck

خطاهای جزئی در استفاده از کوتیشن‌ها و عملگرهای تست نادرست از دلایل رایج خرابی اسکریپت‌ها هستند که می‌تواند خیلی گیج‌کننده باشد. گاهی اوقات مجبور می‌شوم اسکریپت بنویسم و می‌بینم پیام‌های خطای پیش‌فرض ترمینال چندان مفید نیستند. این باعث می‌شود دیباگ کردن دشوارتر از آنچه باید باشد، شود.

shellcheck برخی از این اصطکاک‌ها را حذف می‌کند. این ابزار اسکریپت‌ها را اسکن کرده و خطاها، الگوهای ناامن و نکات نحوی را برجسته می‌کند. توضیحات واضح و جزئی ارائه می‌دهد. این ابزار فراتر از شناسایی متغیرهای بدون کوتیشن، بررسی‌های شرطی نادرست و کلیدواژه‌های گمشده می‌رود و مشکلات قابل‌انتقال بین bash، sh، dash و zsh را نشان می‌دهد.

مطلب مرتبط:   سیستم لینوکس من پس از حذف این سرویس‌های بی‌مصرف، دو برابر سریع‌تر بوت شد.

اگرچه این ابزار اصلاح مشکلات برجسته‌شده را انجام نمی‌دهد، راهنمایی‌های مستقیم ارائه می‌دهد که به‌سرعت و به‌طور پیش‌بینی‌پذیر به اصلاح آن‌ها کمک می‌کند.

توزیع

دستورات نصب

Debian / Ubuntu / Linux Mint / Pop!_OS

sudo apt install shellcheck

RHEL / CentOS / Fedora / Rocky Linux / AlmaLinux

sudo dnf install shellcheck

Arch Linux / Manjaro / EndeavourOS

sudo pacman -S shellcheck

asciinema

ضبط و پخش جلسات ترمینال به روش تمیز

نصب asciinema بر روی لینوکس

من اغلب نیاز به ضبط ترمینالم دارم، اما با چند چالش روبرو هستم. اسکرین‌شات‌ها معمولاً ورودی اسکرول یا جریان دستورات را ضبط نمی‌کنند و بسیاری از ابزارهای ضبط صفحه‌نمایش فایل‌های سنگینی تولید می‌کنند که به‌اشتراک‌گذاری دشوار است. همچنین، هنگام به‌اشتراک‌گذاری صفحه‌نمایش، تاخیر رخ می‌دهد که دموی زنده را خراب می‌کند.

Asciinema یک ضبط‌کننده ترمینال است که تمام این اصطکاک‌ها را حل می‌کند. این جلسات ترمینال را به‌صورت متن ساده ضبط می‌کند و فایل‌های .cast کوچک و کارآمدی تولید می‌کند که به‌دقت بازپخش می‌شوند. پخش‌کننده رزولوشن اصلی، رنگ‌ها و زمان‌بندی دقیق را حفظ می‌کند، به‌طوری که خروجی ترمینال در ضبط‌های ویدئویی معمولی شفاف یا ناخوانا نباشد. من دوست دارم این ابزار به‌راحتی به سرورهای خودم‌میزبان آپلود شود، که این عالی است چون من Google Drive را با یک ابر میزبانی‌شده شخصی جایگزین کردم.

می‌توانید آن را با هر یک از دستورات زیر نصب کنید:

توزیع

دستورات نصب

Debian / Ubuntu / Linux Mint / Pop!_OS

sudo apt install asciinema

RHEL / CentOS / Fedora / Rocky Linux / AlmaLinux

sudo dnf install asciinema

Arch Linux / Manjaro / EndeavourOS

sudo pacman -S asciinema

حداکثر کردن ترمینال شما، کمینه کردن اصطکاک

ارتباط من با ترمینال با این ابزارها تکامل یافته است. هرکدام یک نقطه اصطکاک پایدار در روند کاری من را برطرف کرده‌اند و خط فرمان من را هوشمندانه‌تر و قدرتمندتر کرده‌اند.

اما ارزش واقعی تنها سرعت نیست — شفافیت، کارآمدی و اطمینان است که آن‌ها می‌آورند. افزودن این ابزارها به روند کاری من به من کمک کرده زمان را بازپس بگیرم و خطاها را کاهش دهم. من یک روند کاری قابل تکرار دارم که واقعاً از استفاده آن لذت می‌برم، و در نهایت توانستم به روش‌هایی که فکر می‌کردم غیرممکن است، چندکاره کار کنم.