اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

چگونه رنگ و محتویات Bash در خط فرمان لینوکس را شخصی سازی کنیم

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    چگونه رنگ و محتویات Bash در خط فرمان لینوکس را شخصی سازی کنیم

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


    متغیر محیطی Bash به نام PS1

    ظاهر خط فرمان و ترمینال توسط متغیر محیطی PS1 مدیریت می شود. بر اساس صفحه ی man مربوط به Bash، متغیر PS1 درحقیقت استرینگ prompt اولیه (prompt string) را ارائه می دهد که زمانی که شل آماده خواندن یک دستور است این string نمایش داده می شود.

    مقادیر مجاز برای متغیر PS1 شامل چندین کاراکتر خاص backslash-escape می باشد که معنی آنها در بخش PROMPTING از صفحه ی man لیست شده اند.

    برای روشن تر کردن این موضوع، بیایید محتوای در حال حاضر PS1 را در سیستم خودمان نشان دهیم. (البته این خروجی ممکن است در سیستم شما متفاوت باشد)
    کد PHP:
    $ echo $PS1
    [\u@\h \W]\$ 
    اکنون نحوه شخصی سازی PS1 را با توجه به نیازمان برای شما توضیح می دهیم.



    شخصی سازی قالب PS1

    با توجه به قسمت PROMPTING در صفحه man، توضیحات مربوط به هر کاراکتر خاص به شرح زیر میباشد :

    \u : نام کاربر (username) جاری سیستم
    \h : این کاراکتر مربوط به Hostname سیستم میباشد، در حقیقت نامی که تا قبل از اولین dot (.) در FQDN یا Fully-Qualified Domain Name آمده است.
    \W : نام اصلی (basename) مسیر کاری جاری (working directory) و کاراکتر ~ که مخففی است برای متغیر $HOME
    \$ : در صورتی که کاربر جاری root باشد علامت # و در غیر این صورت علامت $ نمایش داده می شود. برای مثال میتوانید از کاراکتر \! را برای نمایش شماره دستور جاری در history و یا از \H برای نمایش FQDN (نام کامل دامنه مثلا example.com) به جای نام کوتاه سرور، استفاده کنید.


    در مثال زیر ما هر دوی این متغیرها را به محیط ترمینال کنونی خود با استفاده از دستور زیر اضافه کرده ایم :
    کد PHP:
    PS1="[\u@\H \W \!]\$" 
    هنگامی که کلید Enter را می فشارید خواهید دید که محتوای خط فرمان شما مانند تصویر زیر تغییر می کند، خط فرمان خود را قبل و بعد از اجرای دستور مقایسه کنید.
    تغییر رنگ ترمینال لینوکس






    حال بیایید یک قدم فراتر بگذاریم و رنگ user و hostname را در command prompt تغییر دهیم - هم در متن آن و هم در رنگ background این متن تغییر ایجاد می کنیم.

    در حقیقت می توانیم از 3 جهت خط فرمان را تغییردهیم.
    برای بزرگتر شدن عکس روی آن کلیک کنیدنام:	image_7019.pngنمایش ها:	6اندازه:	17.2 KBشناسه:	26905







    از کاراکتر خاص \e در ابتدا و کاراکتر m در انتها جهت نشان دادن اینکه آنچه بین این دو کاراکتر می آید یک شماره ی رنگ است، استفاده می شود.

    این سه متغیر در این دنباله (background ،format ,text color) با استفاده از کاما از یکدیگر جدا شده اند، در صورتی که یکی از مقادیر را وارد نکرده باشید از مقدار پیشفرض آن استفاده می شود.

    همچنین تا زمانی که رنج مقادیر متفاوت باشند اهمیتی ندارد که کدام یک (background ،format ، text color) را اول مشخص کنید.

    به عنوان مثال متغیر PS1 زیر رنگ پس زمینه را به قرمز و رنگ متن را به زرد تبدیل میکند و زیر آن خط (underlined) می اندازد :
    کد PHP:
    PS1="\e[41;4;33m[\u@\h \W]$ " 
    تغییر رنگ بش در لینوکس






    به همین خوبی که به نظر می رسد این تنظیمات فقط برای این کاربر و در این پنجره باقی خواهد ماند، در صورتی که ترمینال را ببندید و یا از این session خارج شوید این تغییرات از بین خواهند رفت.

    در صورتی که بخواهید این تنظیمات دایمی شوند کافیست با توجه به نوع توزیعلینوکس خود خطوط زیر را به فایل ~/.bashrc یا ~/.bash_profile اضافه کنید :
    کد PHP:
    PS1="\e[41;4;33m[\u@\h \W]$ " 
    با رنگ ها بازی کنید و آنها را تغییر دهید تا به حالت دلخواه خود برسید.


    همچنین توصیه میشود مقالات زیر را هم مطالعه کنید :

    آموزش دستور awk در linux

    نحوه نمایش رنگی صفحات دستور Man در لینوکس

    ccat - نمایش خروجی دستور cat به صورت رنگی و Highlight شده

    نحوه شخصی سازی و حذف مسیر دایرکتوری ها یا فولدرها در ترمینال لینوکس




    خلاصه

    در این مقاله نحوه شخصی سازی رنگ و محتوای خط فرمان را در Bash prompt توضیح دادیم، در صورتی که سوال و یا پیشنهادی درباره این پست دارید با ما در میان بگذارید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 06-16-2021, 12:49 PM.

درباره انجمن منطقه لینوکسی ها

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

شبکه های اجتماعی
در حال انجام ...
X