কম্পিউটার টিউটোরিয়াল

Bash মাস্টার করুন: টার্মিনাল রঙ এবং প্রম্পট কাস্টোমাইজ করে পান একটি টেইলরড লিনাক্স অভিজ্ঞতা

আজকাল, Bash অধিকাংশ (যদি সকল নয়) আধুনিক লিনাক্স ডিস্ট্রিবিউশনে ডিফল্ট শেল। যাইহোক, আপনি লক্ষ্য করেছেন होंगे যে টার্মিনালে টেক্সটের রঙ এবং প্রম্পট কন্টেন্ট এক ডিস্ট্রিবিউশন থেকে অন্য ডিস্ট্রিবিউশনে ভিন্ন হতে পারে।

সাজেস্টেড রিড: লিনাক্সের জন্য ৫টি সবচেয়ে বেশি ব্যবহৃত ওপেন সোর্স শেল

যদি আপনি কখনো চিন্তা করেছেন কীভাবে এটিকে আরও অ্যাকসেসিবলিটির জন্য বা শুধু ইচ্ছামতো কাস্টোমাইজ করা যায়, পড়তে থাকুন – এই আর্টিকেলে আমরা সেটি কীভাবে করা যায় তা ব্যাখ্যা করব।

PS1 Bash এনভায়রনমেন্ট ভেরিয়েবল

কমান্ড প্রম্পট এবং টার্মিনাল আপারেন্স একটি এনভায়রনমেন্ট ভেরিয়েবল দ্বারা গভর্ন করা হয় যাকে PS1 বলা হয়। Bash ম্যান পেজ অনুযায়ী, PS1 প্রাইমারি প্রম্পট স্ট্রিংকে রিপ্রেজেন্ট করে যা শেল কমান্ড পড়ার জন্য রেডি হলে প্রদর্শিত হয়।

PS1-এ অনুমোদিত কন্টেন্ট 몇몇 ব্যাকস্ল্যাশ-এস্কেপড স্পেশাল ক্যারেক্টারের ওপর ভিত্তি করে যা ম্যান পেজের PROMPTING সেকশনে লিস্ট করা আছে।

বোঝানোর জন্য, আমাদের সিস্টেমে PS1-এর বর্তমান কন্টেন্ট ডিসপ্লে করি (আপনার কেসে এটি কিছুটা ভিন্ন হতে পারে):

$ echo $PS1
[\u@\h \W]\$

এখন আমরা ব্যাখ্যা করব কীভাবে PS1-কে আমাদের প্রয়োজন অনুযায়ী কাস্টোমাইজ করা যায়।

PS1 ফরম্যাট কাস্টোমাইজ করা

ম্যান পেজের PROMPTING সেকশন অনুযায়ী, প্রতিটি স্পেশাল ক্যারেক্টারের অর্থ নিচের মতঃ

  1. \u: বর্তমান ব্যবহারকারীর username।
  2. \h: ফুলি-কোয়ালিফাইড ডোমেইন নেমে প্রথম ডট (.) পর্যন্ত হোস্টনেম।
  3. \W: বর্তমান ওয়ার্কিং ডিরেক্টরির বেসনেম, $HOME টিলডা (~) দিয়ে এব্রিভিয়েটেড।
  4. \$: যদি বর্তমান ব্যবহারকারী রুট হয়, # দেখায়, অন্যথায় $।

উদাহরণস্বরূপ, আমরা \! যোগ করতে চাইব যদি আমরা বর্তমান কমান্ডের হিস্টরি নম্বর দেখাতে চাই, বা \H যদি শর্ট সার্ভার নামের বদলে FQDN দেখাতে চাই।

নিচের উদাহরণে আমরা উভয়টিই আমাদের বর্তমান এনভায়রনমেন্টে ইম্পোর্ট করব নিচের কমান্ড এক্সিকিউট করে:

PS1="[\u@\H \W \!]$"

যখন আপনি Enter চাপবেন আপনি দেখবেন প্রম্পট কন্টেন্ট নিচের মত পরিবর্তন হয়েছে। উপরের কমান্ড এক্সিকিউট করার আগে এবং পরের প্রম্পট তুলনা করুন:

এখন এক ধাপ এগিয়ে যাই এবং কমান্ড প্রম্পটে ব্যবহারকারী এবং হোস্টনেম-র রঙ পরিবর্তন করি – টেক্সট এবং এর সারাউন্ডিং ব্যাকগ্রাউন্ড দুটোই।

আসলে, আমরা প্রম্পটের ৩ দিক কাস্টোমাইজ করতে পারি:

টেক্সট ফরম্যাট ফোরগ্রাউন্ড (টেক্সট) রঙ ব্যাকগ্রাউন্ড রঙ
0: নরমাল টেক্সট 30: ব্ল্যাক 40: ব্ল্যাক
1: বোল্ড 31: রেড 41: রেড
4: আন্ডারলাইন টেক্সট 32: গ্রিন 42: গ্রিন
33: ইয়েলো 43: ইয়েলো
34: ব্লু 44: ব্লু
35: পার্পল 45: পার্পল
36: সায়ান 46: সায়ান
37: হোয়াইট 47: হোয়াইট

আমরা \e স্পেশাল ক্যারেক্টারটি শুরুতে এবং শেষে m ব্যবহার করব ইন্ডিকেট করতে যে এরপর যা আসছে সেটি একটি রঙ সিকোয়েন্স।

এই সিকোয়েন্সে তিনটি মান (ব্যাকগ্রাউন্ড, ফরম্যাট, এবং ফোরগ্রাউন্ড) কমা দিয়ে আলাদা করা হয় (যদি কোনো মান দেওয়া না থাকে ডিফল্ট ধরে নেওয়া হয়)।

সাজেস্টেড রিড: লিনাক্সে Bash শেল স্ক্রিপ্টিং শিখুন

এছাড়া, যেহেতু মানরেঞ্জগুলো ভিন্ন, কোনটি (ব্যাকগ্রাউন্ড, ফরম্যাট, বা ফোরগ্রাউন্ড) আপনি প্রথমে স্পেসিফাই করেছেন তা মানে রাখে না।

উদাহরণস্বরূপ, নিচের PS1 প্রম্পটকে ইয়েলো আন্ডারলাইন টেক্সট এবং রেড ব্যাকগ্রাউন্ডে দেখাবে:

PS1="\e[41;4;33m[\u@\h \W]$ "

তবে চমৎকার দেখানোর باড়ে, এই কাস্টোমাইজেশন শুধু বর্তমান ব্যবহারকারী সেশনের জন্য থাকবে। আপনি যদি আপনার টার্মিনাল বন্ধ করেন বা সেশন থেকে বের হন, পরিবর্তনগুলো হারিয়ে যাবে।

এই পরিবর্তনগুলো পার্মানেন্ট করার জন্য, আপনাকে আপনার ডিস্ট্রিবিউশনের উপর নির্ভর করে ~/.bashrc বা ~/.bash_profile-এ নিচের লাইনটি যোগ করতে হবে:

PS1="\e[41;4;33m[\u@\h \W]$ "

আপনার জন্য কী ভালো কাজ করে তা খুঁজে বের করার জন্য রঙগুলো নিয়ে এক্সপেরিমেন্ট করতে মুক্ত হন।

সারসংক্ষেপ

এই আর্টিকেলে আমরা ব্যাখ্যা করেছি কীভাবে আপনার Bash প্রম্পটের রঙ এবং কন্টেন্ট কাস্টোমাইজ করা যায়। আপনার এই পোস্ট সম্পর্কে কোনো প্রশ্ন বা সাজেশন থাকলে, নিচের কমেন্ট ফর্ম ব্যবহার করে আমাদের সাথে যোগাযোগ করতে দ্বিধা করবেন না। আপনার কথা শুনতে আগ্রহী!}

  1. লিনাক্সে ব্যাশ কমান্ড ব্যাকগ্রাউন্ডে রান করার পদ্ধতি

  2. লিনাক্স টার্মিনালে টেক্সট, ফাইল এবং ফোল্ডার কপি-পেস্ট করার পদ্ধতি

  3. উবুন্টু লিনাক্স আপডেট করা: ডেস্কটপ ও সার্ভারের জন্য ধাপে ধাপে গাইড

  4. উইন্ডোজ ১০-এ WSL দিয়ে Bash ইনস্টল ও ব্যবহার: ধাপে ধাপে টিউটোরিয়াল