۲۹ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

۹ جواهر خط فرمان برای جعبه ابزار توسعه دهنده شما

برای توسعه‌دهندگانی که عاشق CLI هستند و آن‌هایی که دوست ندارند، در اینجا 9 ابزار خط فرمان وجود دارد که روزهای کاری شما را آسان‌تر می‌کنند و حتی ممکن است باعث شادی شوند.

برای توسعه‌دهندگانی که عاشق CLI هستند و آن‌هایی که دوست ندارند، در اینجا ۹ ابزار خط فرمان وجود دارد که روزهای کاری شما را آسان‌تر می‌کنند و حتی ممکن است باعث شادی شوند.

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

۹ ابزار CLI برای استفاده برای تجربه بهتر توسعه دهنده

  • tldr
  • ngrok
  • صفحه نمایش
  • sdkman و nvm
  • fzf
  • exa
  • خفاش
  • نهاک

Tldr

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

برای دریافت دفترچه راهنمای رسمی در خط فرمان، تایپ کنید:


$ man <command-name>

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


$ tldr <command-name>

tldr

درباره tldr بیشتر بیاموزید: https://tldr.sh.

اگر npm را نصب کرده اید، یک راه آسان برای نصب tldr این است:


npm install -g tldr

نگروک

هنگامی که tldr را نصب کردید، می توانید از آن برای کاوش بسیاری از دستورات خوب دیگر استفاده کنید. در اینجا یک مورد خوب وجود دارد:


$ tldr ngrok
Reverse proxy that creates a secure tunnel from a public endpoint to a locally running web service.

انگروک حیوان جالبی است زیرا هم یک شرکت انتفاعی و هم یک فرمان رایگان برای استفاده است- ابزار خط اما من هرگز جنبه تجاری را پیدا نکردم که با ابزار ngrok تداخل داشته باشد.

Ngrok راهی بدون استرس برای دسترسی به ماشین توسعه از طریق یک مرورگر راه دور به شما ارائه می دهد. اما بیش از این کار را انجام می دهد.

من به طور مرتب از ngrok برای توسعه در ابر و مشاهده نتایج در مرورگرم استفاده می‌کنم. همچنین یک راه ساده برای افشای سرویس در حال اجرا شما از طریق HTTPS بدون ایجاد هرگونه زیرساخت امنیتی ارائه می دهد. (مثلاً در حال ایجاد یک کارمند خدمات هستید و این کار به HTTPS نیاز دارد؛ اکنون فقط می‌توانید ngrok را بچرخانید و زمینه امن شما وجود دارد.)

چیزی که توسعه دهندگان نرم افزار از آن متنفرند

به عنوان مثال، اجازه دهید پورت HTTP 8080 را در معرض دید جهانیان قرار دهیم:


$ ngrok http 8080

Ngrok موارد زیر را برمی‌گرداند:


https://f951-34-67-117-59.ngrok-free.app -> http://localhost:8080

اکنون، هر کسی می‌تواند به https://f951-34-67- برود ۱۱۷-۵۹.ngrok-free.app و ببینید چه چیزی آنجاست. (در حال حاضر چیزی در آنجا پیدا نخواهید کرد زیرا من این روند را متوقف کردم.)

ngrok

Ngrok را نصب کنید: https://ngrok.com/download.

صفحه نمایش

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


$ tldr screen 
Hold a session open on a remote server. Manage multiple windows with a single SSH connection.

فرض کنید داریم ngrok را برای دسترسی به برنامه وب که از راه دور روی آن کار می‌کنیم راه‌اندازی می‌کنیم—یک مورد استفاده عالی برای ngrok. می‌توانیم فرآیند ngrok را شروع کنیم، سپس آن را در screen در حال اجرا رها کنیم و به انجام کدنویسی برویم. Ngrok همیشه به کار ادامه می‌دهد، و هر زمان که لازم باشد، می‌توانیم به صفحه مراجعه کنیم تا آدرس HTTPS را بررسی کنیم یا ngrok را متوقف کنیم.

می‌توانیم با انجام این کار این کار را انجام دهیم:


$ screen
// Now we are in a new session
$ ngrok http 8080
// Now ngrok is running, exposing http port 8080
Type ctrl-a
// Now we are in screen’s command mode
Type the “d” key, to “detach”. 
// Now you are back in the shell that you started in, while screen is running your ngrok command in the background:
$ screen -list
There is a screen on:
        ۱۲۸۸۶۱.pts-0.dev3       (04/25/24 14:36:58)     (Detached)

نکته

اگر می‌خواهید جلسه‌ای را که در آن هستید نام‌گذاری کنید، Ctrl-a، :sessionname را تایپ کنید. زمانی که صفحه‌های زیادی در حال اجرا هستید، این بسیار مفید است.

از آنجایی که فقط یک صفحه در حال اجراست، می‌توانید $ screen -r (برای پیوست کردن مجدد) تایپ کنید و به جلسه ngrok خود باز می‌گردید.< /p>

وقتی چندین صفحه دارید، می توانید با تایپ $ screen -r دوباره به آنها بپیوندید. برای مثال، $ screen -r 128861.

اگر می‌خواهید جلسه خود را بکشید، می‌توانید به آن بپیوندید، ngrok را با Ctrl-c متوقف کنید و سپس exit را تایپ کنید درخواست جدا کردن و کشتن جلسه.

screen

کارهای بیشتری وجود دارد که می توانید با screen انجام دهید. اسناد را در اینجا بررسی کنید: https://www.gnu.org/software/screen/ manual/screen.html.

Sdkman و nvm

اگر برنامه نویسی هستید که از Java یا JavaScript در سرور استفاده می کنید، باید با sdkman آشنا شوید (برای جاوا) و nvm (برای Node). هر دو ابزار برای دستکاری نسخه‌های مختلف زبان در یک دستگاه مفید هستند و به شما امکان می‌دهند تنظیم مسیر و متغیرهای محیط را حذف کنید.

من همیشه از sdkman استفاده می‌کنم تا نسخه‌های جدیدتر جاوا را بررسی کنم و سپس به نسخه LTS فعلی برگردم. یک دستور sdk این فرآیند را بدون دردسر می کند. اینجا sdk است که تمام نصب‌های جاوا موجود در دستگاه محلی من، از جمله موردی که در حال حاضر استفاده می‌شود را به من نشان می‌دهد:

sdkman

درباره sdk بیشتر بیاموزید: https://sdkman.io.

جابه‌جایی بین نسخه‌ها ساده است: $ sdk use java 19-open به من امکان می‌دهد یکباره JDK نسخه ۱۹ را باز کنم:


$ tldr sdk
Manage parallel versions of multiple Software Development Kits.
Supports Java, Groovy, Scala, Kotlin, Gradle, Maven, Vert.x and many others.

ابزار nvm Node تقریباً یکسان عمل می کند:


$ tldr nvm
Install, uninstall or switch between Node.js versions.
Supports version numbers like "12.8" or "v16.13.1", and labels like "stable", "system", etc.

nvm

درباره nvm بیشتر بیاموزید: https://github.com/nvm- sh/nvm.

Fzf

هر دو grep و find بخش‌های استاندارد پالت خط فرمان هستند. اما پس از چندین دهه استفاده از آنها، من هنوز با جستجوی یک فایل روی دیسک درگیر هستم، اگر به هر نحوی پیچیده باشد. هیچ یک از ابزارها به اندازه ای که می تواند کاربردی نیست.

fzf را وارد کنید – یک فایل یاب “فازی”. منظور ما از فازی این است که وقتی در جزئیات کمی مبهم هستید، در جستجوی آنچه نیاز دارید خوب است. این یک مثال است:


$ tldr fzf
Command-line fuzzy finder.
Similar to sk.

برای درک کامل آن باید fzf را امتحان کنید. هنگامی که ابزار را در خط فرمان خود راه اندازی می کنید، بلافاصله به کار فهرست سازی سیستم فایل می پردازد. سپس شروع به ارائه پیشنهادات به شما می کند. هر چه تایپ کنید، با لیستی از بازدیدهای احتمالی باز می گردد. من به دنبال پروژه اخیری هستم که روی آن کار کردم:

fzf

درباره fzf بیشتر بیاموزید: https://github.com/junegunn/fzf< /a>.

از بین ۸۷۸۹۳۷ امکان، fzf ۲۵ فایل و فهرستی را انتخاب کرد که ممکن است مطابق با نیازهای من باشد. و این کار را به سادگی انجام داد، بدون هیچ فینگلی.

Exa

این ابزار فهرست‌های ls خسته‌کننده شما را می‌گیرد و آنها را سرگرم‌کننده‌تر و مفیدتر می‌کند:


$ tldr
A modern replacement for ls (List directory contents). 

برای تجربه بهتر توسعه‌دهنده بدون هیچ هزینه ذهنی، فقط با نام مستعار ls تا exa. Exa به اکثر گزینه‌های استاندارد ls احترام می‌گذارد، بنابراین برای مثال، exa -l دقیقاً همانطور که انتظار دارید کار می‌کند.

exa

درباره exa بیشتر بیاموزید: https://the.exa.website/# نصب.

خفاش

کاربرد bat مانند cat است، فقط بهتر است:


$ tldr bat
Print and concatenate files.
A cat clone with syntax highlighting and Git integration.

این یکی دیگر از بهبودهای موجود (یا DX) است، شبیه به تکامل exa در ls.

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

خفاش به دستورات کمتر/بیشتر پاسخ می‌دهد، بنابراین از «q» برای خروج استفاده می‌شود. پیمایش با استفاده از کلیدهای جهت نما همانطور که انتظار دارید انجام می شود.

این یک ابزار ساده است که واقعاً تجربه مرور فایل‌ها را در کنسول افزایش می‌دهد.

bat

درباره خفاش بیشتر بیاموزید: https://github.com/sharkdp/bat.

Nethack

ما به مجموعه ای از ابزارهای عالی نگاه کرده ایم، برخی جدید و برخی قدیمی. یکی از کلاسیک‌های باقی‌مانده که هر طرفدار CLI باید درباره آن بداند nethack است.

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

بله، برداشت‌های جدیدتری از این مدل وجود دارد، اما nethack کلاسیک ابدی باقی می‌ماند:

nethack

نحوه نصب nethack: https://packages.debian. org/sid/nethack-console.