Alireza Sampour
Alireza Sampour
خواندن ۴ دقیقه·۵ سال پیش

نحوه‌ی نصب fish shell در اوبونتو



راستش من یه چند وقتیه اوبونتو رو نصب کردم:) و میخوام تجربه‌هامو از کار باهاش و.. اینجا به اشتراک بزارم، این متن قراره در مورد تجربه ی خودم از نصب fish shell و نحوه‌ی نصبش روی اوبونتو باشه، خب بریم سر اصل مطلب :)

آشنایی من با shell و fish shell

شاید براتون مثل خود من سؤال باشه که shell چیه اصلا؟ به زبون خیلی ساده شل میشه یه ابزاری که میاد بین دستوراتی که شما توی ترمینال میزنین و هسته‌ی اصلی سیستم عامل ارتباط برقرار میکنه که دستورات رو بهش برسونه.

آشنایی من با fish shell (خودِ این اسم از این سه کلمه میاد: friendly interactive shell) از همین ویرگول و زیر یکی از پست ها شکل گرفت که یکی از دوستان توصیه‌اش کرده بود و منم تصمیم گرفتم یه مدت نصبش کنم و امکاناتشو ببینم، نتیجه این شد که از ویرگول شروع کردم و هرچقدر گشتم مطلبی که نحوه‌ی نصب این شل رو توضیح داده باشه پیدا نکردم، درنهایت دست به دامن گوگل و سایت های خارجی شدم که توی این سرچ به سایت اصلی این شل رسیدم، که یکی از امکانات خوب این سایت اینه که یه گزینه‌ی try in browser تو همون صفحه‌ی اصلیش داره که میتونین به‌صورت آنلاین شل رو امتحان کنین و تصمیم بگیرین که میخوایین نصبش کنین یا نه؟

مزایا و معایب

مزایا

از جمله امکانات جالبی که fish shell نسبت به bash (شِل دیفالت اوبونتو) داره میشه اینارو گفت:

  • 1.Syntax highlighting
Syntax-highlighting
Syntax-highlighting

این ویژگی همونطور که از اسمش مشخصه میاد کلمات و دستورهایی که تایپ میکنید رو به رنگ‌های مختلفی در میاره که هرکدوم از اونا معانی مختلفی دارن:

قرمز : دستورهای نامعتبر به رنگ قرمز نشون داده میشن. (البته تا وقتی معتبر نشدن)

آبی : دستورهای معتبر به رنگ آبی نشون داده میشن.

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

  • 2.Inline auto-suggestions based on history
Inline-auto-suggestions-based-on-history
Inline-auto-suggestions-based-on-history


توی این ویژگی وقتی شما چند حرف از یه دستوری رو تایپ میکنید بصورت خودکار پیشنهادهایی رو برای تکمیل کردنش بهتون میده که بنظر جالب میاد، اگه خواستین پیشنهادش رو قبول کنین میتونین کلید ctrl + f و یا کلید → رو بزنید، اگه خواستین فقط یه کلمه از چیزی که بهتون پیشنهاد داده رو قبول کنین با کلید alt + → میتونین این کار رو انجام بدین.

  • 3.Tab Completions
Tab-Completions
Tab-Completions


این ویژگی تقریباً با ویژگی قبلی یکیه، به این صورت که با کمک این ویژگی وقتی چند حرف از یه دستوری رو تایپ کنین و tab رو بزنین دستوری یا دستوراتی که بعد از اون متنی که نوشتین میتونه بیاد رو نمایش میده و با زدن کلید tab میتونین روی دستورات احتمالی پیمایش کنین و با زدن اینتر یکی رو انتخاب کنین. (فرق این ویژگی با قبلی اینه که مثلاً وقتی دستور sudo apt رو بزنین و تب رو بزنین تمام دستوراتی که میتونن ادامه‌ی این دستور بیان رو براتون میاره)

  • 4.Web based configuration


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

fish_config

مرورگرتون باز میشه و میتونین بخش‌های مختلفش رو شخصی سازی کنین.


  • 5.Smart Search

وقتی دستوری رو می زنین و یسری دستورات پیشنهادی رو میاره اگه دنبال یه دستور خاصی توی اون ها بگردین با زدن کلیدهای ctrl + s میتونین توی همون ترمینال از بین نتایج سرچ کنید.

نکته : من همه شل های ممکن رو امتحان نکردم و طبیعتاً به ویژگی‌هایی که این شل داشت پرداختم، شاید یه شل دیگه شما بشناسین که علاوه بر این امکانات یسری امکانات دیگه هم داشته باشه که خوشحال می شم تو کامنت ها ذکر کنین.

معایب

راستش تا الان بزرگترین و تنها عیبی که دیدم اینه که دستوراتش توی یسری قسمت ها با bash همخونی ندارن:(

مراحل نصب

خب بریم سراغ مراحل شیرین نصب:

از طریق دستور زیر می تونین اقدام به نصب کنید.

sudo apt install fish

بعد از نصب با دستور fish میتونین شل رو از شل فعلی به fish shell تغییر بدین (با دستور exit هم برمیگردین به همون شل فعلی)، اما میبینین اگه ترمینال رو ببندین و دوباره باز کنین shell پیش‌فرضِ ترمینالتون میاد، خب حالا چکار کنیم که این شلی که نصب کردیم بصورت پیش‌فرض وقتی ترمینال رو باز میکنیم بالا بیاد؟ اول با دستور زیر آدرس محل نصب fish shell رو پیدا کنید که احتمالاً باید یه همچین چیزی باشه:

usr/bin/fish

با دستور زیر هم می تونین بفهمین که شل پیش‌فرضتون چی هست:
echo $SHELL

بعد از اون باید به سیستم بفهمونیم که هربار که ترمینال رو باز میکنیم شل رو از اون آدرسی که ما بهش میگیم بخونه (که اینجا همون‌ آدرس محل نصب fish shell میشه.) که برای این کار دستورات زیر رو وارد می‌کنیم:

chsh -s /usr/bin/fish
دقت کنین اگه مسیر نصب fish shell شما با اینی که اینجا هست فرق میکنه آدرسی که جلوی این دستور هست رو پاک کنین و آدرس محل نصبی که توی مرحله قبلی بدست آوردین رو بنویسین.

بعد از این کار با یکبار لاگ این/اوت کردن میبینین که fish shell به شل پیش‌فرضتون تبدیل شده:)

با این دستور میتونین متن خوش آمد گویی ای که اولش میاد رو پاک کنین
set fish_greeting

در آخر ممنون از اینکه مطالعه کردین، من سعی کردم توی نگارش این متن منابعم معتبر باشن با این حال اگه اشکالی دیدین توی کامنت ها ذکر کنین که اصلاح کنم❤️.

shellشل
mastodon.social/@tellmealireza
شاید از این پست‌ها خوشتان بیاید