جستجو برای:
سبد خرید 0
  • صفحه اصلی
  • دوره‌های آموزشی
  • وبلاگ
  • درباره ما
  • قوانین و مقررات
  • همکاری با ما
  • تماس با ما
محتوای باز
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
عضویت
[suncode_otp_registration_form]
  • خانه
  • کتاب آنلاین
  • درباره سایت
  • درباره لوگو
  • تماس با ما
محتوای باز
  • صفحه اصلی
  • دوره‌های آموزشی
  • وبلاگ
  • درباره ما
  • قوانین و مقررات
  • همکاری با ما
  • تماس با ما
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0
[wcas-search-form]

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

27 تیر 1399
ارسال شده توسط فرشید نوتاش حقیقت
خط فرمان، گنو/لینوکس
رنگ

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

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

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

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

توالیرنگ متن
\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 تعریف کنید.

<me@linuxbox ~>$ PS1="\[\033[0;31m\]<\u@\h \W>\$ "
<me@linuxbox ~>$

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

توالیرنگ پس‌زمینه
\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 باز کرده و به آخر فایل رفته و دو خط زیر را به آن اضافه کنید:

PS1="\[\033[s\033[0;0H\033[0;41m\033[K\033[1;33m\t\033[0m\033[u\]<\u@\h \W>\$ "
export PS1

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

برچسب ها: CLICommand Lineخط فرمانخط فرمان لینوکس
درباره فرشید نوتاش حقیقت

همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرم‌افزارهای آزاد/ متن‌باز و سیستم‌عامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.

نوشته‌های بیشتر از فرشید نوتاش حقیقت
قبلی جستجو و جایگزینی در ویرایشگر vi
بعدی مدیریت بسته‌ها

دیدگاهتان را بنویسید لغو پاسخ

این سایت از اکیسمت برای کاهش جفنگ استفاده می‌کند. درباره چگونگی پردازش داده‌های دیدگاه خود بیشتر بدانید.

جستجو
جستجو برای:
دسته‌بندی موضوعی مقالات
  • برنامه‌نویسی
    • پایتون
    • دواپس
  • پایگاه‌داده
    • MariaDB
    • MySQL
  • تجارت الکترونیک
    • بازاریابی اینترنتی
    • دیجیتال مارکتینگ
    • شبکه‌های اجتماعی
  • جامعه کاربری
    • لاگ
  • دسته‌بندی نشده
  • شبکه و امنیت
  • طراحی وب
    • سئو
    • سیستم مدیریت محتوا
      • وردپرس
  • فناوری‌های نوظهور
    • اینترنت اشیاء
    • رایانش ابری
      • OpenStack
    • کلان‌داده‌ها
  • گنو/لینوکس
    • توزیع
      • CentOS
      • اوبونتو
      • دبیان
      • فدورا
    • چیست
    • خط فرمان
  • مهاجرت به آزاد/متن‌باز
  • نرم‌افزار
    • اداری
      • لیبره آفیس
        • ایمپرس
        • بیس
        • دراو
        • رایتر
        • کالک
    • کاربردی
    • گرافیک و انیمیشن
      • بلندر
      • گیمپ
نماد الکترونیکی (اینماد)
پرداخت‌یار

محتوای باز؛ مرجع آموزشی نرم‌افزارهای آزاد/ متن‌باز

از اینکه قصد همکاری با رسانه «محتوای باز» را دارید بسیار خرسندیم و این مایه مباهات ماست.

نحوه همکاری با ما چندان پیچیده نیست و شرایط آن در ادامه، ارائه گردیده است.

دستمزد مدرسین

پیش از بیان شرایط ضبط ویدئو شایان ذکر است اشاره‌ای به دستمزد مدرسین سایت داشته باشیم.

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

صرف نظر از هر حالت ممکنه، می‌بایست شرایطی که در ادامه ذکر شده‌اند را رعایت کرده باشید.

در حالت اول (رایگان) رسانه محتوای باز (Open Content)، نه وجهی از شما برای نشر ویدئو می‌گیرد و نه وجهی به شما پرداخت می‌نماید و دوره آموزشی شما را به رایگان منتشر می‌کند.

اما در حالت بعدی طریقه همکاری به روش درآمد از فروش خواهد بود، به گونه‌ای که 70 درصد از کل مبلغ فروش دوره آموزشی متعلق به مدرس دوره بوده و 30 درصد مابقی به رسانه محتوای باز تعلق می‌گیرد.

شرایط کلی ضبط دوره آموزشی

دوره آموزشی مربوطه، صرف نظر از هر محتوایی که دارد می‌بایست در یکی از توزیعات گنو/لینوکسی ضبط شده باشد. (به‌عنوان مثال دوره دروپال در اوبونتو، دوره آموزشی کار با آردوینو در دبیان و امثالهم). اگر دوره آموزشی شما در محیط ویندوز و یا هر پلتفرم/سیستم‌عامل دیگری ضبط شده باشد از همکاری با شما معذوریم.

پیشنهاد می‌گردد برای ضبط دوره آموزشی در توزیع گنو/لینوکس از ابزار قدرتمند OBS استفاده نمایید. البته این صرفا یک پیشنهاد است و شما می‌توانید از هر ابزار مناسب دیگری برای این کار بهره ببرید.

برای آشنایی یا تسلط بیشتر می‌توانید دوره رایگان آموزش OBS محمد عابدینی را ببینید:

مشاهده دوره آموزش OBS
شرایط کیفی ضبط دوره آموزشی

کیفیت صدا از اهمیت ویژه‌ای برخوردار می‌باشد و می‌بایست فاقد هر گونه نویز یا صدای اضافی دیگری (صدای محیط پیرامون) باشد.

دوره آموزشی تهیه شده صرفا باید برای رسانه محتوای باز تدوین شده باشد و در هیچ سایت مشابه دیگری قرار نگرفته باشد.

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

دوره آموزشی ضبط شده می‌باید فاقد هر گونه لوگو یا آدرس سایت دیگری (در گوشه تصویر یا بک‌گراند صفحه دسکتاپ و هر جای دیگری) باشد.

در حین دوره، مدرس نباید به برند خاصی اشاره کند که جز رقبای ما به‌شمار می‌آیند.

مدرس باید در ابتدا در اواسط و در انتهای دوره به برند ما یعنی رسانه محتوای باز (Open Content) بصورت کلامی اشاره نماید.

مدرس، هنگام تدریس نباید تپق زده، سرفه یا عطسه کند یا صدای قورت دادن بزاقش شنیده شود و بایستی با صدای رسا، دوستانه و پرانرژی به تدریس بپردازد.

قبل از تدوین دوره آموزشی حتما با ما در تماس باشید و یک ویدیوی چنددقیقه‌ای (ترجیحا 5 الی 10 دقیقه)، بصورت نمونه‌کار برای ما بفرستید.

از همکاری با شما سپاسگزاریم.

فراخوان همکاری