الصفحة الرئيسية » howto » كيفية تخصيص (وتلوين) الخاص بك باش الموجه

    كيفية تخصيص (وتلوين) الخاص بك باش الموجه

    معظم توزيعات Linux تعمل على تهيئة مطالبة Bash لتبدو شبيهة اسم المستخدم @ اسم المضيف: الدليل $ . ولكن يمكنك تكوين مطالبة Bash لاحتواء ما تريد ، وحتى اختيار الألوان التي تريدها.

    تم تنفيذ خطوات المثال هنا على Ubuntu 16.04 LTS. يجب أن تكون العملية هي نفسها في توزيعات Linux الأخرى ، على الرغم من أن المطالبة Bash الافتراضية والإعدادات في ملف bashrc قد تكون مختلفة قليلاً.

    حيث يتم تخزين "المتغير الفوري"

    يتم تخزين تهيئة Bash الفوري في ملف .bashrc لحساب المستخدم الخاص بك ، الموجود في ~ / .bashrc. لذا ، إذا كان اسم المستخدم الخاص بك هو bob ، فإن الملف موجود في /home/bob/.bashrc.

    يمكنك فتح الملف لعرض متغير Bash الحالي. سنستخدم نانو كمحرر نص المثال الخاص بنا ، على الرغم من أنه يمكنك أيضًا استخدام vi أو emacs أو أي محرر نصوص آخر مرتاح. افتح مبنى ركض وقم بتشغيل:

    نانو ~ / .bashrc

    انتقل لأسفل إلى PS1 = الجزء. يبدو المتغير الأول معقدًا نوعًا ما لأنه يتضمن معلومات ملونة - سنوضح ذلك لاحقًا. المتغير الثاني ، بدون معلومات اللون ، يقرأ كما يلي:

    $ debian_chroot: + ($ debian_chroot) \ ش @ \ ح: \ ث \ $

    هذا لا يزال معقدة بعض الشيء بسبب $ debian_chroot: + ($ debian_chroot) بت. هذه فقط إخبر Bash لإعلامك إذا كنت تستخدم بيئة chroot Debian ولن تظهر عادة. تجاهل ذلك ، إليك البنية الافتراضية لمتغير Bash للمطالبة:

    \ ش @ \ ح: \ ث \ $

    \ ش يشير إلى اسم المستخدم الخاص بك, @ يشير إلى علامة @, \ ح يشير إلى اسم المضيف (اسم الكمبيوتر), : يشير إلى: الحرف, \ ث يشير إلى دليل العمل ، و \ $ يشير إلى $ إذا كنت حساب مستخدم عادي أو # إذا كنت الجذر. لذلك ، وضع كل ذلك معا ، تحصل عليه اسم المستخدم @ اسم المضيف: $ working_directory.

    لتغيير موجه Bash ، يجب عليك فقط إضافة أو إزالة أو إعادة ترتيب الحروف الخاصة في متغير PS1. ولكن هناك العديد من المتغيرات التي يمكنك استخدامها أكثر من المتغيرات الافتراضية.

    اترك محرر النص الآن في nano ، واضغط Ctrl + X للخروج. سنوضح لك كيفية تجربة المتغيرات قبل كتابة واحدة جديدة فعليًا في ملف .bashrc الخاص بك.

    كيفية إنشاء موجه باش مخصص

    يتم تخزين تهيئة Bash الفوري في متغير PS1. لحفظ محتويات متغير PS1 في متغير جديد ، قم بتشغيل الأمر التالي:

    DEFAULT = $ PS1

    يمكنك الآن ضبط متغير PS1 على قيم مختلفة للتجربة. على سبيل المثال ، يؤدي السطر الأول هنا إلى تعيين المطالبة إلى مطالبة أساسية باسم "المستخدم $" ، في حين يقوم الخيار الثاني بتعيين المطالبة على مطالبة "user: working_directory $" الأساسية.

    PS1 = "\ u \ $" PS1 = "\ u: \ w \ $"

    إذا كنت ترغب في العودة إلى موجهك الافتراضي ، فقم بتشغيل الأمر التالي.

    PS1 = $ DEFAULT

    ستتم استعادة Bash إلى المطالبة الافتراضية بفضل حقيقة أنك قمت بحفظ هذه الإعدادات الافتراضية في وقت سابق. لاحظ أن أي تغييرات تجريها هنا مؤقتة فقط لجلسة Bash الحالية ، بحيث يمكنك دائمًا تسجيل الخروج وتسجيل الدخول مرة أخرى أو إغلاق وإعادة فتح نافذة المحطة الطرفية للعودة إلى موجهك الافتراضي. ولكن الخط أعلاه يجعل من الممكن العودة بسهولة إلى مطالبة Bash الافتراضية دون الحاجة إلى تسجيل الخروج أو إغلاق النافذة.

    يمكنك إضافة أي أحرف أو نص إلى المتغير. لذلك ، لبدء بادئة المطالبة الافتراضية بـ "Hello World" ، يمكنك استخدام:

    PS1 = "Hello World \ u @ \ h: \ w \ $"

    الآن بعد أن حصلت على الأساسيات ، تحتاج فقط إلى معرفة كل الشخصيات الخاصة. ربما لن تهتم بالعديد من هذه ، ولكن إليك القائمة الكاملة كما تظهر في دليل Bash:

    • حرف الجرس:
    • التاريخ ، بتنسيق "تاريخ شهر الأسبوع" (على سبيل المثال ، "الثلاثاء 26 مايو"):
    • يتم تمرير التنسيق إلى strftime (3) ويتم إدراج النتيجة في سلسلة المطالبة؛ ينتج عن تنسيق فارغ تمثيل زمني خاص بالإعدادات المحلية. مطلوبة الأقواس: \ D تنسيق
    • شخصية هروب: \ ه
    • اسم المضيف ، حتى "." \ ح
    • اسم المضيف: \ H
    • عدد الوظائف المدارة حاليًا بواسطة shell: \ ي
    • الاسم الأساسي لاسم جهاز المحطة الطرفية shell: \ لتر
    • خط جديد: \ ن
    • عودة حرف: \ ص
    • اسم shell ، الاسم الأساسي $ 0 (الجزء الذي يلي الخط المائل الأخير): \ ق
    • الوقت ، بتنسيق HH: MM: SS على مدار 24 ساعة: \ ر
    • الوقت ، بتنسيق HH: MM: SS لمدة 12 ساعة: \ T
    • الوقت ، بتنسيق 12 ساعة / مساءً: \ @
    • الوقت ، بتنسيق HH: MM على مدار 24 ساعة:
    • اسم المستخدم للمستخدم الحالي: \ ش
    • إصدار Bash (على سبيل المثال ، 2.00): \الخامس
    • إصدار Bash و version + patchlevel (على سبيل المثال ، 2.00.0): \الخامس
    • دليل العمل الحالي ، مع $ HOME يختصر مع التيلدا (يستخدم المتغير $ PROMPT_DIRTRIM): \ ث
    • الاسم الأساسي $ PWD ، مع $ HOME يختصر مع التلدة: \ W
    • رقم سجل هذا الأمر: \!
    • رقم أمر هذا الأمر: \ #
    • إذا كان uid الفعال 0 ، # ، بخلاف $: \ $
    • الحرف الذي يكون كود ASCII هو القيمة octal nnn: \ NNN
    • شرطة مائلة للخلف: \\
    • ابدأ تسلسل الحروف غير المطبوعة. يمكن استخدام هذا لتضمين تسلسل التحكم الطرفي في الموجه: \ [
    • قم بإنهاء تسلسل أحرف غير الطباعة: \]

    لذا ، إذا أردت إضافة التاريخ والوقت لمطالب Bash ووضع أمر العمل في أمر على سطر ثانٍ ، فيمكنك استخدام البناء التالي:

    PS1 = "[\ d \ t] \ u @ \ h \ n \ w \ $"

    الأقواس المربعة هنا ليست ضرورية على الإطلاق ، ولكنها تساعد في كسر الأشياء بصريًا وجعل قراءة الخط أسهل. كما ذكرنا سابقًا ، يمكنك إضافة أي نص أو أحرف عادية إلى المتغير الذي تفضله ، لذلك لا تتردد في استخدام أي شيء يناسبك.

    هناك خدعة أكثر قوة يجب معرفتها: يمكنك إضافة إخراج أي أمر إلى الموجه. كلما ظهرت العبارة ، سيقوم Bash بتشغيل الأمر وملء المعلومات الحالية. للقيام بذلك ، قم فقط بتضمين أي أمر تريد تشغيله بين اثنين ' الشخصيات. هذا ليس الفاصلة العليا ، وهذا هو اللكنة القبر ، والذي يظهر فوق مفتاح علامة التبويب على لوحة المفاتيح.

    على سبيل المثال ، لنفترض أنك تريد عرض إصدار Linux kernel في المطالبة. يمكنك استخدام خط مثل ما يلي:

    PS1 = "\ u @ \ h on 'uname -s -r' \ w \ $"

    كمثال آخر ، لنفترض أنك ترغب في عرض وقت تشغيل النظام ومتوسط ​​التحميل ، كما هو موضح بواسطة مدة التشغيل أمر. يمكنك استخدام البناء التالي ، والذي يضع وقت التشغيل على السطر الخاص به قبل باقي المطالبة.

    PS1 = "('uptime') \ n \ u @ \ h: \ w $"

    لا تتردد في تجربة الأحرف والأوامر الخاصة المختلفة لتجميع موجه الأوامر المثالي.

    كيفية إضافة الألوان إلى موجه باش الخاص بك

    بمجرد استنتاجك لمطلبك المفضل ، يمكنك إضافة ألوان إليه. هذا في الواقع بسيط للغاية ، لكنه يجعل المتغير يبدو فوضًا ومعقدًا بشكل فظيع إذا لم تفهم ما تبحث عنه.

    على سبيل المثال ، كان متغير موجه اللون الافتراضي من سابق:

    $ debian_chroot: + ($ debian_chroot) \ [\ 033 [01، 32M \] \ ش @ \ ح \ [\ 033 [00M \]: \ [\ 033 [01؛ 34m \] \ ث \ [\ 033 [00M \] \ $

    أو ، إزالة وحدات البت debian_chroot مرة أخرى:

    \ [\ 033 [01، 32M \] \ ش @ \ ح \ [\ 033 [00M \]: \ [\ 033 [01؛ 34m \] \ ث \ [\ 033 [\] \ $ 00M

    هذا هو في الواقع مجرد \ ش @ \ H: \ $ ث متغير من قبل ، ولكن مع معلومات اللون. حقا ، يمكننا تقسيمه إلى بضعة أقسام:

    \ [\ 033 [01، 32M \]\ ش @ \ ح \ [\ 033 [00M \]: \ [\ 033 [01؛ 34m \]\ ث \ [\ 033 [00M \]\ $

    القسم الأول هو \ ش @ \ ح بت ، تسبقها معلومات اللون التي تحولها إلى اللون الأخضر. والثاني هو : حرف ، يسبقه معلومات اللون التي تزيل أي تلوين. والثالث هو \ ث بت ، تسبقها معلومات اللون التي تحولها إلى اللون الأزرق. الرابع هو \ $ بت ، مسبوقة بمعلومات اللون التي تزيل أي تلوين.

    بمجرد أن تفهم كيفية إنشاء علامات الألوان الخاصة بك ، يمكنك إضافة أي لون تريده إلى أي جزء من باش تريد.

    إليك ما تحتاج إلى معرفته: يجب عليك تضمين معلومات رمز اللون بالكامل بين \ [  و \] حرفالصورة. داخل العلامة ، يجب أن تبدأ إما \ 033 [ أو \ ه [ للإشارة إلى Bash أن هذه معلومات ملونة. على حد سواء \ 033 [ و \ ه [ افعل نفس الشيء. \ ه [ أقصر لذا قد يكون أكثر ملاءمة للاستخدام ، ولكن سنستخدم \ 033 [ هنا لأنه يطابق ما يستخدم بشكل افتراضي. في نهاية العلامة ، يجب أن تنتهي بـ م \ للإشارة إلى نهاية علامة اللون.

    كسر ذلك ، وهنا ما سوف تبدو كل علامة لون. والفرق الوحيد هو المعلومات التي تضيفها بدلاً من COLOR لتحديد اللون الفعلي:

    \ [\ 033 [اللونم \]

    يتيح لك Bash تغيير لون النص الأمامي ، وإضافة سمات مثل "غامق" أو "تسطير" إلى النص ، وتعيين لون خلفية.

    فيما يلي قيم النص الأمامي:

    • أسود: 30
    • أزرق: 34
    • سماوي: 36
    • الأخضر: 32
    • الأرجواني: 35
    • الأحمر: 31
    • الأبيض: 37
    • الأصفر: 33

    على سبيل المثال ، نظرًا لأن النص الأرجواني هو رمز لون 32 ، فيمكنك استخدامه \ [\ 033 [32م \]  للنص الأرجواني.

    يمكنك أيضًا تحديد سمة للنص. يجب إضافة هذه السمة قبل رقم اللون ، مفصولة بفاصلة منقوطة (؛). سيبدو النص مع هذه السمات مختلفًا في المحاكيات الطرفية المختلفة.

    فيما يلي قيم السمات النصية:

    • نص عادي: 0
    • نص عريض أو خفيف: 1 (يعتمد الأمر على محاكي الطرفيات).
    • خافت النص: 2
    • نص مسطر: 4
    • وميض النص: 5 (هذا لا يعمل في معظم المحاكيات الطرفية.)
    • نص Reversed: 7 (هذا عكس الألوان المقدمة والخلفية ، بحيث سترى النص الأسود على خلفية بيضاء إذا كان النص الحالي هو نص أبيض على خلفية سوداء.)
    • النص المخفي: 8

    لا تحتاج بالفعل إلى تضمين سمة النص العادية. هذا هو الافتراضي ، على أي حال.

    على سبيل المثال ، نظرًا لأن النص الأحمر هو الرمز 31 وكان النص الغامق هو الكود 1 ، فيمكنك استخدامه \ [\ 033 [1؛ 31م \] للنص الأحمر الغامق.

    يمكنك أيضًا تحديد لون خلفية ، لكن لا يمكنك إضافة سمة إلى لون الخلفية.

    فيما يلي القيم الخاصة بألوان الخلفية:

    • خلفية سوداء: 40
    • خلفية زرقاء: 44
    • سماوي الخلفية: 46
    • خلفية خضراء: 42
    • خلفية أرجوانية: 45
    • خلفية حمراء: 41
    • خلفية بيضاء: 47
    • خلفية صفراء: 43

    على سبيل المثال ، نظرًا لأن الخلفية الزرقاء هي الرمز 44, \ [\ 033 [44م \] سيحدد خلفية زرقاء.

    يمكنك تحديد كل من علامات اللون الأمامية والخلفية. على سبيل المثال ، يمثل 42 خلفية خضراء و 31 يمثل نصًا أحمر. لذا ، لجعل المطالبة الافتراضية تصبح نصًا أحمرًا على خلفية خضراء ، يمكنك استخدام:

    PS1 = "\ [\ 033 [42م \] \ [\ 033 [31m \] \ u @ \ h: \ w \ $ "

    نقوم فقط بتحديد لون خلفية واحد ثم لون نص أمامي واحد هنا ، والذي يبدأ في بداية المطالبة ويتم تطبيقه على كل النص في الموجه. ومع ذلك ، يمكنك تحديد العديد من علامات الألوان التي تريدها في المتغير لتلوين أجزاء مختلفة من الموجه الذي تريده.

    تستمر ألوان الخلفية والخلفية في تجاوز المطالبة ما لم تحدد رمز لون 00 قم بمسح معلومات اللون. يمكنك أيضًا استخدام هذه العلامة داخل المتغير لإعادة تعيين التنسيق إلى الوضع الافتراضي في مكان ما في موجهك. على سبيل المثال ، سينهي السطر التالي كل التلوين قبل \ $ حرف.

    PS1 = "\ [\ 033 [42م \] \ [\ 033 [31م \] \ ش @ \ ح: \ W \\ [\ 033 [00m \] \ $ "

    كيفية تعيين الموجه الافتراضي الجديد الخاص بك

    بمجرد الانتهاء من تجربة الألوان ، يجب أن يكون لديك رسالة Bash التي تريدها في الجلسة الحالية. ولكن ربما تريد جعل هذا الموجه جديدًا دائمًا بحيث يتم استخدامه تلقائيًا في جميع جلسات Bash.

    للقيام بذلك ، تحتاج فقط إلى تغيير محتويات متغير PS1 في ملف .bashrc ، الذي نظرنا إليه سابقًا.

    افتح الملف .bashrc في محرر النصوص المفضل لديك ، مثل:

    نانو ~ / .bashrc

    قم بالتمرير وحدد موقع PS1 = القسم. ما عليك سوى استبدال المتغير الافتراضي بمتغيرك المخصص. ربما سترغب في ترك $ debian_chroot: + ($ debian_chroot)  بت وحدها ، لكنها لن تظهر إلا في بيئة chroot ، على أي حال.

    أدخل متغير PS1 الملون الخاص بك تحت if ["$ color_prompt" = yes]؛ ثم خط. أدخل المتغير بدون الوان تحت آخر خط.

    احفظ الملف وأغلق محرر النص. على سبيل المثال ، لحفظ الملف في nano ، اضغط على Ctrl + O ، واضغط على Enter ، ثم اضغط على Ctrl + X للخروج.

    في المرة التالية التي تقوم فيها بتشغيل Bash shell الجديدة ، على سبيل المثال ، عن طريق تسجيل الدخول في المحطة الطرفية أو عن طريق فتح نافذة طرفية جديدة ، سترى طلبك المخصص.