۱۳۸۹ شهریور ۸, دوشنبه

ترفند 5 » رنگ آمیزی خط فرمان لینوکس

در پست قبلی در مورد تاکید خط فرمان لینوکس بر رنگی بودن گفتم و نحوه رنگ آمیزی دستور grep را نوشتم. این بار جالبتر است!
دوست دارید رنگ سطری که دستور را در آن می‌نویسید با بقیه ترمینال متفاوت باشد؟
این کار چند فایده دارد:
اول) وقتی دستوری مثل cat یا grep خروجی زیادی تولیدی می‌کند، خود دستور گم نمی‌شود. راحت معلوم است که ابتدای خروجی کجاست و آخرش کجا.
دوم) با کمی سلیفه می‌توانید کاری کنید که حالت‌های مختلف رنگ‌های مختلف داشته باشد: مثلا من برای کاربر عادیم رنگ آبی، برای کاربر root (یا sudo) رنگ قرمز و برای کاربری راه دور (با ssh) رنگ سبز گذاشته‌ام.

روش انجام

کافیست خطوط زیر را در محل مناسبی از فایل .bashrc در شاخه home کاربری‌تان اضافه کنید: (بگردید و آن را بعد از تمام خطوطی که PS1 در آن به کار رفته بگذارید)
#!/bin/bash
promptcolor="2;34"
if [[ $EUID -eq 0 ]]; then
    promptcolor="2;31"
fi
PS1="\[\e[${promptcolor}m\]$PS1\[\e[0m\]"
یادتان باشد که لازم است یکبار دیگر ترمینال را باز کنید تا (.bashrc اجرا شده و) تغییرات را در پنجره جدید ببینید.
عدد 34 رنگ آبی و عدد 31 رنگ قرمز را مشخص می‌کند. (جدول رنگ) عدد 2 هم تاثیراتی بر میزان روشن بودن یا حتی درشت (bold) شدن متن دارد که بهتر است تغییر دهید و ببینید.
شرح کامل اینکه PS1 چیست و معنی این دستورات اجق وجق را در همان لینک جدول رنگ پی بگیرید.

کلمات کلیدی: ،shell ،terminal رنگی، رنگ آمیزی، لینوکس، اسکریپت، ترفند، پوسته، حط فرمان.

۱ نظر: