আপনি যদি বারবার লিনাক্সের সাথে Bash শেল দিয়ে ইন্টারঅ্যাক্ট করেন, সেটাকে একটু কাস্টোমাইজ করতে চাইবেন - যেন নিজের শর্টকাট যোগ করুন, বা এনভায়রনমেন্ট আপনার পছন্দমত সেটআপ করুন, অথবা সাজাবাটের জন্য কিছু পেরসোনালাইজেশন যোগ করুন।
এই কাজের জন্যই Bash প্রোফাইল। এটি আপনার হোম ডিরেক্টরিতে থাকে এবং এডিট করে আপনি প্রতিবার লগইন করার সময় সেটাকে আপনার মত করে সেটআপ করতে পারেন।
আপনার Bash প্রোফাইল এডিট করুন
আপনার bash প্রোফাইল এডিট করতে nano টেক্সট এডিটরে খুলুন:
nano ~/.bash_profile
যদি বর্তমান প্রোফাইল ব্যাকআপ রাখতে চান, কপি করে রাখুন:
cp .bash_profile .bash_profile.bak
যদি ~/.bash_profile ফাইল এক্সিস্ট না করে, ~/.profile ফাইলটি পড়া হবে। এটি উবুন্টু লিনাক্স ডিস্ট্রিবিউশনে ডিফল্ট।
যদি ডিফল্ট ~/.profile ফাইলের কন্টেন্ট কপি করে নতুন ~/.bash_profile বানাতে চান এডিটের জন্য, কপি করুন:
cp ~/.profile ~/.bash_profile
নোট: লিনাক্স শেলে ~/ কারেন্ট ইউজারের হোম ডিরেক্টরির শর্টকাট।
উদাহরণ
আপনার Bash প্রোফাইল দিয়ে শুরু করতে পারেন এমন কিছু জিনিস:
শেল প্রম্পট চেঞ্জ করুন
সাধারণত আপনার শেল প্রম্পট এমন দেখায়:
user@hostname:~$
...আপনার নাম, হোস্টনেম, এবং কারেন্ট ওয়ার্কিং ডিরেক্টরির কম্বিনেশন। এটি চেঞ্জ করতে .bash_profile ফাইল মডিফাই করে নিচের লাইন যোগ করুন:
export PS1="?"
এটি প্রম্পটকে একটি লোকোমোটিভ ইমোজি বানাবে। একটু যেন কাজের নয়, তবে আরও জিনিস যোগ করা যায়।
এটি প্রম্পটকে কারেন্ট লগড-ইন ইউজার এবং লোকোমোটিভ ইমোজি দেখাবে:
export PS1="\u ?"
আপনি নিজের টেক্সট, ক্যারেক্টার, এবং ভ্যালু যোগ করতে পারেন। বিল্ট-ইন ভেরিয়েবলের লিস্ট (ডেট, ইউজারনেম, কারেন্ট ডিরেক্টরি, ইত্যাদি) জানতে চেক করুন:
https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Controlling-the-Prompt
টেক্সট এবং ব্যাকগ্রাউন্ড কালার চেঞ্জ করুন!
উপরের উদাহরণে বিল্ড আপ করে কালার যোগ করা যাক। এই উদাহরণ প্রম্পট টেক্সট লাল এবং ব্যাকগ্রাউন্ড নীল করবে:
export PS1="\e[44;31m\u ? \e[0m "
...এবং এইটি ট্রেন ইমোজিকে ব্লিংক করাবে:
export PS1="\e[44;31m\u \e[5m? \e[0m "
নোট করুন:
- \e[ : ফরম্যাটিং স্কিম শুরু
- 44;31 : ব্যাকগ্রাউন্ড কালার এবং টেক্সট কালর, ক্রমশः
- \e[5m ট্রেন আইকন ব্লিংক করاয়
- \e[m : সব অ্যাট্রিবিউট রিসেট করে ফরম্যাটিং স্কিম বন্ধ করে
অনেক কালার এবং ফরম্যাটিং অপশন আছে। এক্সহাস্টিভ লিস্ট নয়, কিন্তু কিছু ইউজফুল উদাহরণ:
| কোড | অর্থ | উদাহরণ |
|---|---|---|
| 1 | বোল্ড | "\e[1mBolded" |
| 2 | ডিম | "\e[2mDimmed" |
| 3 | আন্ডারলাইন | "\e[4mUnderlined" |
| 4 | ব্লিংকিং | "\e[5mBlinking" |
| 5 | ইনভার্টেড কালার | "\e[7mInverted" |
উপলব্ধ কালারগুলো নোমেরিক ভ্যালু যেগুলো ব্যাকগ্রাউন্ড/টেক্সট কম্বিনেশনে পেয়ার করা যায়। এনভায়রনমেন্ট অনুযায়ী ভিন্ন হয় - এই কমান্ড আপনার সিস্টেমে উপলব্ধ কম্বিনেশন আউটপুট করবে:
for x in {0..8}; do for i in {30..37}; do for a in {40..47}; do echo -ne "\e[$x;$i;$a""m\\\e[$x;$i;$a""m\e[0;37;40m "; done; echo; done; done; echo "" নিজের শর্টকাট / ফাংশন যোগ করুন
আপনি যদি একই কমান্ড সিরিজ বারবার টাইপ করেন, আপনার bash প্রোফাইলে একটি শর্টকাট ফাংশন ডিফাইন করুন। ~/.bash_profile ফাইলে নিচের কোড যোগ করলে একটি নতুন ফাংশন ডিফাইন হবে যা ডিরেক্টরি লিস্ট করে তারপর কত সুন্দর ডিরেক্টরি বলে এক্সক্লেম করবে:
myShortcut(){ ls -la echo "Look at that nice directory!" } এখন এটি চালাতে শুধু রান করুন:
myShortcut
শেলে এবং সেই ফাংশনের কন্টেন্ট এক্সিকিউট হবে।
পরিবর্তনগুলো অ্যাপ্লাই করুন
প্রোফাইলে পরিবর্তনগুলো অ্যাপ্লাই করে টার্মিনাল রিস্টার্ট বা ক্লোজ না করেই দেখতে, শুধু চালান:
source ~/.bash_profile
Zsh-এর কী?
আমরা gầnে zsh শেল এক্সপ্লোর করেছি।
Zsh-রও একটি প্রোফাইল ফাইল আছে যা bash প্রোফাইল-এর মতোই কাজ করে, লোকেশন:
~/.zprofile
এটিও bash প্রোফাইল মতো এডিট করা যায়, কিন্তু Zsh-স্পেসিফিক ফাংশনসহ। ট্রাই করে দেখুন!