خط فرمانگنو/لینوکس

اضافه کردن رنگ به خط فرمان

آخرین بروزرسانی

بیشتر برنامه‌های شبیه‌ساز ترمینال از برخی کاراکترها به منظور کنترل برخی مشخصه‌ها (مثل رنگ و متن بولد) و موقعیت مکان‌نما استفاده می‌کنند. موقعیت مکان‌نما را در انتهای این درس توضیح خواهیم داد اما ابتدا به رنگ نگاهی بیندازیم.

اضافه کردن رنگ به خط فرمان

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

به منظور تغییر رنگ‌ها از کدهای موجود در جدول زیر استفاده می‌کنیم:

توالیرنگ متن
\033[0;30mسیاه
\033[0;31mقرمز
\033[0;32mسبز
\033[0;33mقهوه‌ای
\033[0;34mآبی
\033[0;35mبنفش
\033[0;36mفیروزه‌ای
\033[0;37mخاکستری روشن
\033[1;30mخاکستری تیره
\033[1;31mفرمز روشن
\033[1;32mسبز روشن
\033[1;33mزرد
\033[1;34mآبی روشن
\033[1;35mبنفش روشن
\033[1;36mفیروزه‌ای روشن
\033[1;37mسفید

اکنون که کدهای رنگ را مشاهده کردید، آن را اجرا خواهیم کرد. کد رنگ خاکستری را انتخاب کرده و آن را کپسوله کنید و مقدار را در متغیر PS1 تعریف کنید.

همچنین می‌توانید رنگهای پس‌زمینه خط فرمان را با استفاده از کدهای زیر موجود در جدول تغییر دهیم:

توالیرنگ پس‌زمینه
\033[0;40mسیاه
\033[0;41mقرمز
\033[0;42mسبز
\033[0;43mقهوه‌ای
\033[0;44mآبی
\033[0;45mبنفش
\033[0;46mفیروزه‌ای
\033[0;47mخاکستری روشن

جابه‌جا کردن مکان‌نما

کدهای Escape (توالی‌های \[ و \]) را می‌توان به منظور تعیین موقعیت مکان‌نما استفاده کرد. این کار معمولاً به منظور نمایش یک ساعت و یا برخی دیگر از اطلاعات مفید در موقعیت‌های مختلف در صفحه‌نمایش استفاده می‌شود.

جدول زیر لیست کدهای موقعیت‌های مختلف را نمایش می‌دهد:

کد عبورعملکرد
\033[l;cHجابجایی مکان‌نما به خط 1 و ستون c
\033[nAجابجایی مکان‌نما به n خط بالا
\033[nBجابجایی مکان‌نما به n خط پایین
\033[nCجابجایی مکان‌نما به n کاراکتر به جلو
\033[nDجابجایی مکان‌نما به n کاراکتر به عقب
\033[2Jپاک کردن صفحه‌نمایش و جابجایی مکان‌نما به گوشه بالا چپ (خط 0 ستون 0)
\033[Kپاک کردن از موقعیت مکان‌نما به انتهای خط فعلی
\033[sذخیره‌سازی موقعیت فعلی مکان‌نما
\033[uفراخوانی موقعیت ذخیره شده مکان‌نما

جدول زیر بصورت کامل و مورد به مورد، فرمانی که برای ایجاد ساعت وارد کردیم را تفسیر می‌کند:

توالیعملکرد
\[شروع یک توالی کاراکتر چاپ نشدنی. هدف واقعی آن این است که به بش اجازه دهد تا به‌صورت صحیح اندازه قابل مشاهده خط فرمان را محاسبه کند.
\033[sذخیره‌سازی موقعیت مکان‌نما. زمانی مورد نیاز است که می‌خواهیم به موقعیت خط فرمان برگردیم پس از اینکه ساعت در بالای صفحه‌نمایش چاپ شد.
\033[0;0Hجابجایی مکان‌نما به گوشه بالا چپ که خط 0 ستون 0 است.
\033[0;41mتغییر رنگ پس‌زمینه به قرمز
\033[Kپاک کردن از موقعیت فعلی مکان‌نما (گوشه بالا چپ) به آخر خط. از آنجایی که رنگ پس زمینه قرمز است، رنگ این بخش خالی مانده و یک نوار ایجاد می‌شود.
\033[1;33mتغییر رنگ متن به زرد
\tنمایش زمان فعلی. در حالی که این یک عنصر چاپ شدنی است ما هنوز این را درون بخش چاپ نشدنی خط فرمان وارد می‌کنیم. چونکه ما نمی‌خواهیم بش در حین محاسبه اندازه واقعی خط فرمان ساعت را نیز شامل می‌شود.
\033[0mخاموش کردن رنگ. این بر روی رنگ متن پس زمینه تاثیر می‌گذارد.
\033[uبازیابی موقعیت مکان‌نما
\]پایان توالی کاراکترهای چاپ نشدنی
<\u@\h \W>\$رشته خط فرمان

اگر هم‌اکنون ترمینال را ببندید و مجددا آن را باز کنید. مشاهده می‌کنید که همه تغییراتی که انجام داده‌ایم مثل خط فرمان اختصاصی، رنگ و مکان‌نما از بین می‌روند. مسلما شما تمایلی ندارید که هر بار این تغییرات را انجام دهید. پس بایستی این تغییرات را در جایی ذخیره کنیم. با اضافه کردن به فایل .bashrc این تغییرات ثابت خواهد بود.

در ادامه فایل .bashrc را با استفاده از nano باز کرده و به آخر فایل رفته و دو خط زیر را به آن اضافه کنید:

منبع: لینوکس‌سیزن نوشته فرشید نوتاش حقیقت

برچسب ها

نوشته‌های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا
بستن