Links

প্রম্পট রঙ করা

সাদাকালো প্রম্পট কতক্ষণ ভালোলাগে? এবার এটাকে রঙ করা যাক। আমরা কিছু ননপ্রিন্টিং ক্যারেক্টার ব্যবহার করে নির্দিষ্ট কিছু রঙের মধ্য থেকে বেছে নিতে পারি। টার্মিনালের টেক্সটে দুইরকম রঙ ব্যবহার করা যায়। ব্যাকগ্রাউন্ড কালার অর্থাৎ টেক্সটের পিছনের রঙ আর টেক্সট কালার বা লেখার রঙ। যেহেতু কালারকোডগুলো ননপ্রিন্টিং ক্যারেক্টার তাই এদের [ এবং ] দিয়ে আবদ্ধ করতে হয়।
এবার দেখা যাক একটি কালারকোড। কালো রঙের কালার কোড হল:
\033[0;30m
এর প্রত্যেকটি অংশের নিশ্চয়ই অর্থ আছে। আসুন দেখে নেয়া যাক:
  • \033: এটা দিয়ে এস্কেপ সিক্যুয়েন্স শুরু হয়। কীবোর্ডে এস্কেপ চাপলে এই কোডই পাঠায় কম্পিউটারকে।
  • [ এবং ;: [ এবং ; এখানে ফরম্যাটিংয়ের কাজে ব্যবহৃত। কোডের তিনটি অংশ যেন মিশে না যায় সেজন্য।
  • 0: এখানে মান হয় 0 হবে অথবা 1। 0 হলে সাধারন রঙ বা নরমাল কালার। আর 1 হলে বোল্ড কালার বা উজ্জ্বল রঙ।
  • 30m: এটি নির্ধারণ করবে কোন রঙ হবে। যেমন 30m কালো রঙ বুঝায়।

টেক্সট কালার

আমরা মোট আটটি সাধারণ ও আটটি উজ্জ্বল রঙ ব্যবহার করতে পারি টেক্সট কালারের জন্য।
সাধারণ রঙ:
কোড
রঙ
\033[0;30m
কালো
\033[0;31m
লাল
\033[0;32m
সবুজ
\033[0;33m
বাদামি
\033[0;34m
নীল
\033[0;35m
বেগুনী
\033[0;36m
সবুজাভ নীল বা সায়ান(Cyan)
\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
সাদা

ব্যাকগ্রাউন্ড কালার

ব্যাকগ্রাউন্ড কালারে কোনো উজ্জ্বল রঙ নেই। তাই মোট আটটি রঙ। এর কোড হচ্ছে:
কোড
রঙ
\033[0;40m
কালো
\033[0;41m
লাল
\033[0;42m
সবুজ
\033[0;43m
বাদামি
\033[0;44m
নীল
\033[0;45m
বেগুনী
\033[0;46m
সবুজাভ নীল বা সায়ান(Cyan)
\033[0;47m
হালকা ধূসর
এর বাইরেও একটি কালারকোড আছে যেটি হল \033[0m যা ডিফল্ট রঙে ফেরত আনে।
এবার হাতে কলমে এর ব্যবহার দেখা যাক। গত লেসন(2.2.1.customize.md) আমাদের সর্বশেষ প্রম্পটি ছিল:
PS1="\@ \[email protected]\h->[\W]{\!}\$ "
যদি এটিকে আমরা উজ্জ্বল লাল রঙ দিতে চাই তাহলে আমাদের \033[1;31m ব্যবহার করতে হবে। এবং এটি ননপ্রিন্টিং ক্যারেক্টার বলে [ ও ] দ্বারা আবদ্ধ করতে হবে। অর্থাৎ এটা হবে [\033[1;31m]। এবার তাহলে চেষ্টা করা যাক:
01:02 PM [email protected]>[~]{94}$ PS1="\[\033[1;31m\]\@ \[email protected]\h->[\W]{\!}\$ "
01:03 PM [email protected]>[~]{95}$
এবার আপনি দেখতে পারবেন প্রম্পটি লাল হয়ে গেছে। একইভাবে আমরা ব্যাকগ্রাউন্ড কালারও চেঞ্জ করতে পারি। তবে এখনো আমাদের একটি সমস্যা আছে। এরপরের সব লেখাও লাল হয়ে যাচ্ছে। অর্থাৎ আমাদের ঠিক করে দিতে হবে কোনপর্যন্ত রঙ হবে। আমরা প্রম্পটের শেষে যদি \033[0m ব্যবহার করি তাহলে ডিফল্ট রঙে ফিরে আসবে:
01:03 PM [email protected]>[~]{95}$ PS1="\[\033[1;31m\]\@ \[email protected]\h->[\W]{\!}\$\[\033[0m\] "
01:07 PM [email protected]>[~]{96}$
আমরা আসলে প্রম্পটে একাধিক রঙ ব্যবহার করতেই পারি। আমাদের এই প্রম্পটিকেই আমরা অনেকগুলো রঙ দেবো এভাবে:
01:07 PM [email protected]>[~]{96}$ PS1="\[\033[1;36m\]\@ \[\033[1;31m\]\u\[\033[1;37m\]@\[\033[1;34m\]\h\[\033[1;37m\]->\[\033[1;32m\][\W]\[\033[1;31m\]{\!}\[\033[1;34m\]\$\[\033[0m\] "
01:12 PM [email protected]>[~]{97}$
রীতিমত ভয়ংকর দেখাচ্ছে PS1 ভেরিয়েবলটি। তাইনা? আসুন ভেঙে দেখি:
কোড
অর্থ
\[\033[1;36m\]
হালকা সায়ান রঙের কোড।
\@
AM/PM এর হিসেবে সময়। এর আগে সায়ান রঙের কোড থাকায় এটি হালকা সায়ান রঙে আসবে।
\[\033[1;31m\]
হালকা লাল রঙের কোড।
\u
ইউজারনেম। আগে হালকা লালের কোড থাকায় এটি হালকা লাল রঙে আসবে।
\[\033[1;37m\]
সাদা রঙের কোড।
@
'@' চিহ্ন। আগে সাদা রঙের কোড থাকায় এটি সাদা রঙে আসবে।
\[\033[1;34m\]
হালকা নীল রঙের কোড।
\h
হোস্টনেমের শেষাংশ। আগে হালকা নীলের কোড থাকায় এটি হালকা নীল রঙে আসবে।
\[\033[1;37m\]
সাদা রঙের কোড
->
'->' চিহ্ন। আগে সাদা রঙের কোড থাকায় এটি সাদা রঙে আসবে।
\[\033[1;32m\]
হালকা সবুজ রঙের কোড।
[\W]
বর্তমান ওয়ার্কিং ডিরেক্টরির শেষাংশ। আগে হালকা সবুজের কোড থাকায় এটি হালকা সবুজ রঙে আসবে।
\[\033[1;31m\]
হালকা লাল রঙের কোড।
{\!}
হিস্ট্রি নাম্বার। আগে হালকা লালের কোড থাকায় এটি হালকা লাল রঙে আসবে।
\[\033[1;34m\]
হালকা নীল রঙের কোড।
\$
শেল মোড। আগে হালকা নীলের কোড থাকায় এটি হালকা নীল রঙে আসবে।
\[\033[0m\]
ডিফল্ট রঙে ফিরে যাওয়ার কোড