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

সাদাকালো প্রম্পট কতক্ষণ ভালোলাগে? এবার এটাকে রঙ করা যাক। আমরা কিছু ননপ্রিন্টিং ক্যারেক্টার ব্যবহার করে নির্দিষ্ট কিছু রঙের মধ্য থেকে বেছে নিতে পারি। টার্মিনালের টেক্সটে দুইরকম রঙ ব্যবহার করা যায়। ব্যাকগ্রাউন্ড কালার অর্থাৎ টেক্সটের পিছনের রঙ আর টেক্সট কালার বা লেখার রঙ। যেহেতু কালারকোডগুলো ননপ্রিন্টিং ক্যারেক্টার তাই এদের [ এবং ] দিয়ে আবদ্ধ করতে হয়।

এবার দেখা যাক একটি কালারকোড। কালো রঙের কালার কোড হল:

\033[0;30m

এর প্রত্যেকটি অংশের নিশ্চয়ই অর্থ আছে। আসুন দেখে নেয়া যাক:

  • \033: এটা দিয়ে এস্কেপ সিক্যুয়েন্স শুরু হয়। কীবোর্ডে এস্কেপ চাপলে এই কোডই পাঠায় কম্পিউটারকে।

  • [ এবং ;: [ এবং ; এখানে ফরম্যাটিংয়ের কাজে ব্যবহৃত। কোডের তিনটি অংশ যেন মিশে না যায় সেজন্য।

  • 0: এখানে মান হয় 0 হবে অথবা 1। 0 হলে সাধারন রঙ বা নরমাল কালার। আর 1 হলে বোল্ড কালার বা উজ্জ্বল রঙ।

  • 30m: এটি নির্ধারণ করবে কোন রঙ হবে। যেমন 30m কালো রঙ বুঝায়।

টেক্সট কালার

আমরা মোট আটটি সাধারণ ও আটটি উজ্জ্বল রঙ ব্যবহার করতে পারি টেক্সট কালারের জন্য।

সাধারণ রঙ:

উজ্জ্বল রঙ:

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

ব্যাকগ্রাউন্ড কালারে কোনো উজ্জ্বল রঙ নেই। তাই মোট আটটি রঙ। এর কোড হচ্ছে:

এর বাইরেও একটি কালারকোড আছে যেটি হল \033[0m যা ডিফল্ট রঙে ফেরত আনে।

এবার হাতে কলমে এর ব্যবহার দেখা যাক। গত লেসন(2.2.1.customize.md) আমাদের সর্বশেষ প্রম্পটি ছিল:

PS1="\@ \u@\h->[\W]{\!}\$ "

যদি এটিকে আমরা উজ্জ্বল লাল রঙ দিতে চাই তাহলে আমাদের \033[1;31m ব্যবহার করতে হবে। এবং এটি ননপ্রিন্টিং ক্যারেক্টার বলে [ ও ] দ্বারা আবদ্ধ করতে হবে। অর্থাৎ এটা হবে [\033[1;31m]। এবার তাহলে চেষ্টা করা যাক:

01:02 PM utsob@Codex-Zigus->[~]{94}$ PS1="\[\033[1;31m\]\@ \u@\h->[\W]{\!}\$ "
01:03 PM utsob@Codex-Zigus->[~]{95}$

এবার আপনি দেখতে পারবেন প্রম্পটি লাল হয়ে গেছে। একইভাবে আমরা ব্যাকগ্রাউন্ড কালারও চেঞ্জ করতে পারি। তবে এখনো আমাদের একটি সমস্যা আছে। এরপরের সব লেখাও লাল হয়ে যাচ্ছে। অর্থাৎ আমাদের ঠিক করে দিতে হবে কোনপর্যন্ত রঙ হবে। আমরা প্রম্পটের শেষে যদি \033[0m ব্যবহার করি তাহলে ডিফল্ট রঙে ফিরে আসবে:

01:03 PM utsob@Codex-Zigus->[~]{95}$ PS1="\[\033[1;31m\]\@ \u@\h->[\W]{\!}\$\[\033[0m\] "
01:07 PM utsob@Codex-Zigus->[~]{96}$

আমরা আসলে প্রম্পটে একাধিক রঙ ব্যবহার করতেই পারি। আমাদের এই প্রম্পটিকেই আমরা অনেকগুলো রঙ দেবো এভাবে:

01:07 PM utsob@Codex-Zigus->[~]{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 utsob@Codex-Zigus->[~]{97}$

রীতিমত ভয়ংকর দেখাচ্ছে PS1 ভেরিয়েবলটি। তাইনা? আসুন ভেঙে দেখি:

Last updated