انجمنهای فارسی اوبونتو
جامعه کاربران => کافه اوبونتو => نویسنده: norouzi90 در 29 آبان 1404، 08:16 بظ
-
شل یا پوسته لینوکس :
پوسته لینوکس، یک مفسر فرمان، مبتنی بر متن است که از طریق آن کاربران میتوانند با وارد کردن دستورات با سیستم عامل تعامل داشته باشند. این پوسته به عنوان رابطی بین کاربر و هسته عمل میکند و اجرای برنامه، مدیریت فایل و اتوماسیون وظایف را از طریق اسکریپتهای پوسته امکانپذیر میسازد. نمونههایی از پوستههای محبوب شامل Bash (استاندارد در بسیاری از توزیعها) و Zsh است.
fish shell :
fish یک پوسته خط فرمان هوشمند و کاربرپسند برای لینوکس، macOS و بقیه خانواده است.
مزایای استفاده از fish shell :
1- Autosuggestions :
دستوراتی را همزمان با تایپ شما، بر اساس تاریخچه دستورات، تکمیل دستورات و مسیرهای معتبر فایل، پیشنهاد میدهد. همزمان با تایپ دستورات، پیشنهادی را بعد از مکاننما، به رنگ خاکستری کمرنگ مشاهده خواهید کرد.
2- Tab Completion :
وقتی شما کلید tab را در کیبوردتان فشار می دهید، fish سعی میکند بقیه کلمه زیر مکاننما را حدس بزند. اگر فقط یک احتمال پیدا کند، آن را درج میکند. اگر بیشتر پیدا کند، طولانیترین بخش بدون ابهام را درج میکند و سپس منویی ("pager") را باز میکند که میتوانید برای یافتن آنچه به دنبالش هستید، در آن پیمایش کنید.
این منوی باز شده را می توان با :
-کلید جهت نمای بالا
-کلید جهت نمای پایین
-کلید Tab
-کلیدهای ترکیبی Tab +Shift
پیمایش کرد.
و همچنین هنگامی که این منو باز است، با استفاده از کلیدهای ترکیبی Ctrl +s می توان یک منوی جستجو را باز کرد که میتوانید از آن برای فیلتر کردن لیست منو باز شده، استفاده کنید.
3- Syntax highlighting :
fish shell ، خط فرمان را همانطور که تایپ میشود تفسیر میکند و از هایلایت کردن و برجستهسازی نحوی برای ارائه بازخورد استفاده میکند. مهمترین بازخورد، تشخیص خطاهای احتمالی است. به طور پیشفرض، خطاها با رنگ قرمز مشخص میشوند.
مثلاً سعی کنید تا یک دستوری که وجود ندارد بکار ببرید یا اینکه بخواهید که به یک فایلی که وجود ندارد، چیزی را اضافه کنید یا آن را بخوانید.
4- No configuration needed:
fish shell ، طوری طراحی شده است که بلافاصله و بدون نیاز به پیکربندی گسترده، آماده استفاده باشد.
به طور پیشفرض طوری طراحی شده است که از نظر ویژگیها غنی باشد، نه اینکه قابلیت پیکربندی بالایی داشته باشد.
یعنی به زبان ساده از fish shell ، بعد از نصب، بدون نیاز به پیکربندی می توان از امکانات سه مزایایی که در بالا شمردیم، استفاده کرد.
ایراد fish shell :
از نظر طراحی به استانداردهای پوسته POSIX پایبند نیست.
###############################################################################################################
ابتدا با دستور زیر ببینید که وقتی وارد سیستم میشوید(login)، کدام پوسته اجرا می شود:
$ echo "$SHELL"
همانطور که در عکس 1 می بینید در سیستم من که دبیان است، از پوسته bash استفاده شده است.
###############################################################################################################
نحوه نصب fish در دبیان: عکس 2
$ sudo apt install fish
###############################################################################################################
بعد از نصب fish، در بعضی توزیع ها مانند دبیان، یک اپلیکیشن به لیست اپلیکیشن ها در منو اضافه می شود. مانند عکس 3
البته توجه کنید که در توزیعی مانند Debian Mate ، بعد از نصب برای اینکه در لیست منویتان این اپلیکیشن را ببینید، لازم است که یکبار از سیستمتان log out کنید و سپس log in کنید تا در لیست منویتان اپلیکیشن fish دیده شود.
بهر حال اگر این اپلیکیشن به لیست منویتان اضافه نگردید، یک ترمینال باز کنید و حتی می توانید از یکی از tty ها هم استفاده کنید.، و یکی از این دو دستور را در آنجا تایپ کنید:
عکس 4
$ fish
عکس 5
$ exec fish
همتنطور که می بینید خط فرمان از حالت $~: به حالت <~ تبدیل گردید.
یادتان باشد در این حالت برای خروج از ترمینال بهتر است که مستقیماً علامت کادر ضربدر مربوط به Close Window را نزنید و ابتدا دستور exit را اجرا کنید و سپس از Close Windows استفاده کنید. عکس 6
###############################################################################################################
حالت قبلی مخصوص اجرا با حالت کاربر عادی و یا اجرای کاربر عادی با sudo می باشد.
شاید شما هم دوست داشته باشید که دستوراتی را در حالت کاربر ریشه اجرا کنید، همانطور که در عکس 7 می بینید با اجرای دستور – su ، خط فرمان از پوسته fish خارج شد و به پوسته bash تغییر حالت داد، برای اینکه بتوانید در محیط کاربری عادی، از حساب کاربری ریشه هم از fish استفاده نمایید از این دستوراستفاده نمایید:
$ sudo usermod -s /bin/fish root
اگر به عکس 8 نگاه کنید، بعد از اجرای این دستور وقتی که از حساب کاربر ریشه با دستور – su استفاده می کنیم، اینبار بهجای پوسته bash از پوسته fish استفاده می کنیم، تفاوت رنگ ها را می بینید؟!
بنابراین بهطور کلی بعد از اجرای این دستور از هر نوع ترمینال یا tty که وارد حساب ریشه شویم از پوسته fish استفاده خواهد شد.
اگر هر زمانی که خواستید به حالت قبلی، اگر چنانکه از پوسته bash استفاده می کردید، برگردید. از این دستور استفاده کنید:
sudo usermod -s /bin/bash root
###############################################################################################################
شاید هم دوست داشته باشید که برای کاربر فعلی اتان هر نوع ترمینال یا tty ای که از آن وارد کاربر فعلی اتان بشوید، برایتان از همان ابتدابصورت اتوماتیک، پوسته fish را اجرا کند، این دستور را اجرا کنید:
$ sudo usermod -s /bin/fish username
در این دستور بهجای username ، نام کاربر فعلی اتان را بگذارید.
اخطار:
این روش فقط یک عیب بزرگ دارد و آن این است که چون پوسته bash برای کاربر فعلی اتان دیگر اجرا نمی شود، نرم افزارهایی مانند synaptic و timeshift و gparted و ...که برای اجرا به پسورد نیاز دارند، دیگر در محیط گرافیکی محیط کاربری اتان دیگر اجرا نخواهند شد.
بهر حال بستگی به سلیقه خودتان دارد، اگر می خواهید تنظیمات را برای کاربر فعلی هم به حالت قبل برگردانید، از این دستور استفاده کنید:
$ sudo usermod -s /bin/bash username
من بالشخصه ترجیح می دهم ، تنها برای کاربر root ، از حالت پیش فرض پوسته fish استفاده کنم.
###############################################################################################################
مثال برای حالت Autosuggestions :
اگر در عکس 9 ، دقت کنید، همزمان با تایپ دستورات، پیشنهادی را بعد از مکاننما، به رنگ خاکستری کمرنگ مشاهده خواهید کرد.
- اگر کلید جهت نمای سمت راست را یکبار فشار دهید، متن دستور از خاکستری کمرنگ به حالت پررنگ و آماده برای اجرا با کلید Enter تبدیل خواهد شد.
-اگر کلید Shift (یا Ctrl ) را نگه دارید و سپس با هر بار فشردن کلیدجهت نمای سمت راست می توانید، از متن دستور مورد نظر انتخاب کرده که به حالت پررنگ در می آید.
###############################################################################################################
مثال برای Tab Completion :
همانطور که در عکس 10 می بینید، من حرف a را تایپ کرده ام و سپس یکبار کلید Tab را فشار داده ام، تا منوی کمکی نشان داده شود.
همانطور که در عکس 11 می بینید، من با استفاده از کلیدهای ترکیبی s و Cntrl ، یک کادر جستجو باز کرده ام.
هر جا که خواستید این منوها را ببندید از کلید Esc استفاده کنید.
###############################################################################################################
مثال برای Syntax highlighting :
مثلاً در عکس 12 بهجای شکل درست دستور apt install vlc از شکل نادرست این دستور به حالت apta install vlc ، استفاده کرده ام. همانطور که می بینید در اینجا برای حروف apta ، از رنگ قرمز که به معنای نادرست استفاده شده است.
###############################################################################################################
اگر عبارت پیشفرض خوش آمدگویی:
Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
را دوست نداشته باشید، می توانید آن را تغییر بدهید.
- اگر بخواهید که هیچ عبارت خوش آمد گویی بصورت پیشفرض برای کاربر فعلی استفاده نشود، از این دستور استفاده کنید:
$ set -U fish_greeting
-اگر بخواهید که عبارتی خاص بهجای عبارت پیشفرض برای خوش آمد گویی برای کاربر فعلی نشان داده شود، بهطور مثال: عکس 13
$ set -U fish_greeting 'Hello World'
###############################################################################################################
نکته پایانی:
اگر زمانی خواستید که نرمافزار fish را حذف کنید، اگر از این دستورات :
$ sudo usermod -s /bin/fish rootو
$ sudo usermod -s /bin/fish username
استفاده کرده باشید، ابتدا بایستی پوسته کاربر و ریشه را با دستورات زیر به پوسته قبلی برگردانید(اگر پوسته قبلی bash باشد) :
$ sudo usermod -s /bin/bash rootو
$ sudo usermod -s /bin/bash username
و سپس آنگاه نرمافزار fish را حذف کنید.
-
ادامه عکس ها:
-
ادامه عکس ها:
-
دستوری که باهاش پوسته رو تغیر میدن chsh هست
chsh -s /bin/fish
و البته این پوسته ها هیچ ربطی به لینوکس ندارن و روی تمام توزیع های سامانهی عامل گنو قابل اجرا شدن هستن.
-
دستوری که باهاش پوسته رو تغیر میدن chsh هست
chsh -s /bin/fish
آیا روشتان باعث خواهد شد که کل پوسته سیستم، برای تمامی کاربرها به پوسته fish ، تغییر پیدا کند؟
اگر امکان داشته باشد، از روشی که فرمودید اسکرین شات ارایه بفرمایید. خیلی ممنون می شوم.
-
آیا روشتان باعث خواهد شد که کل پوسته سیستم، برای تمامی کاربرها به پوسته fish ، تغییر پیدا کند؟
همه کاربران نه، فقط کاربر جاری که درستشم همینه. شما میتونید در زمان ایجاد کاربر پوسته شو تعیین کنید.