পূর্ববর্তী নিবন্ধে, আমরা লিনাক্স এনভায়রনমেন্ট ভেরিয়েবল PS[1-4] এবং PROMPT_COMMAND সম্পর্কে আলোচনা করেছি। কার্যকরভাবে ব্যবহার করা হলে, PS1 সরাসরি কমান্ড প্রম্পটে মূল্যবান তথ্য প্রদান করতে পারে।
টম্ব রাইডারে, অ্যাঞ্জেলিনা জোলির আঙুলের ডগায় সমস্ত গ্যাজেট এবং অস্ত্র রয়েছে যাতে শৈলীতে রহস্য সমাধান করা যায়৷ যদিও অ্যাঞ্জেলিনা জোলির গ্যাজেট এবং শৈলীর সাথে মেলানো কঠিন, অন্তত এই নিবন্ধে দেওয়া 10টি উদাহরণ ব্যবহার করে আমরা ভাল পুরানো লিনাক্স প্রম্পটটিকে খুব কার্যকরী এবং স্টাইলিশ করার চেষ্টা করি৷
1. প্রম্পটে ব্যবহারকারীর নাম, হোস্টনাম এবং বর্তমান কাজের ডিরেক্টরি প্রদর্শন করুন
এই উদাহরণে PS1 প্রম্পটে নিম্নলিখিত তিনটি তথ্য প্রদর্শন করে:
- \u – ব্যবহারকারীর নাম
- \h - হোস্টনাম
- \w - বর্তমান কাজের ডিরেক্টরির সম্পূর্ণ পথ
-bash-3.2$ export PS1="\u@\h \w> "
ramesh@dev-db ~> cd /etc/mail
ramesh@dev-db /etc/mail>
2. প্রম্পটে বর্তমান সময় প্রদর্শন করুন
PS1 এনভায়রনমেন্ট ভেরিয়েবলে, আপনি $(linux_command) ফরম্যাটে উল্লেখ করে সরাসরি যেকোনো Linux কমান্ড চালাতে পারেন। নিম্নলিখিত উদাহরণে, প্রম্পটের ভিতরে বর্তমান সময় প্রদর্শনের জন্য $(তারিখ) কমান্ডটি কার্যকর করা হয়।
ramesh@dev-db ~> export PS1="\u@\h [\$(date +%k:%M:%S)]> "
ramesh@dev-db [11:09:56]>
এছাড়াও আপনি hh:mm:ss ফরম্যাটে বর্তমান সময় প্রদর্শন করতে \t ব্যবহার করতে পারেন যা নীচে দেখানো হয়েছে:
ramesh@dev-db ~> export PS1="\u@\h [\t]> "
ramesh@dev-db [12:42:55]>
এছাড়াও আপনি 12-ঘন্টা am/pm ফরম্যাটে বর্তমান সময় প্রদর্শন করতে \@ ব্যবহার করতে পারেন যা নীচে দেখানো হয়েছে:
ramesh@dev-db ~> export PS1="[\@] \u@\h> "
[04:12 PM] ramesh@dev-db>
3. প্রম্পটে
যেকোন লিনাক্স কমান্ডের আউটপুট প্রদর্শন করুনআপনি প্রম্পটে যেকোনো লিনাক্স কমান্ডের আউটপুট প্রদর্শন করতে পারেন। নিম্নলিখিত উদাহরণটি | দ্বারা পৃথক তিনটি আইটেম প্রদর্শন করে৷ (পাইপ) কমান্ড প্রম্পটে:
- \!: কমান্ডের ইতিহাস সংখ্যা
- \h: হোস্টনাম
- $kernel_version: $kernel_version ভেরিয়েবল থেকে uname -r কমান্ডের আউটপুট
- \$?: শেষ কমান্ডের স্থিতি
ramesh@dev-db ~> kernel_version=$(uname -r)
ramesh@dev-db ~> export PS1="\!|\h|$kernel_version|\$?> "
473|dev-db|2.6.25-14.fc9.i686|0>
4. প্রম্পটের ফোরগ্রাউন্ড রঙ পরিবর্তন করুন
ব্যবহারকারীর নাম, হোস্ট এবং বর্তমান ডিরেক্টরি তথ্য সহ নীল রঙে প্রম্পট প্রদর্শন করুন
<কেন্দ্র> কেন্দ্র>$ export PS1="\e[0;34m\u@\h \w> \e[m" [Note: This is for light blue prompt] $ export PS1="\e[1;34m\u@\h \w> \e[m" [Note: This is for dark blue prompt]
- \e[ – কালার প্রম্পটের শুরু নির্দেশ করে
- x;ym - রঙের কোড নির্দেশ করে। নীচে উল্লিখিত রঙ কোড মান ব্যবহার করুন.
- \e[m – কালার প্রম্পটের শেষ নির্দেশ করে
রঙের কোড টেবিল:
Black 0;30 Blue 0;34 Green 0;32 Cyan 0;36 Red 0;31 Purple 0;35 Brown 0;33 [Note: Replace 0 with 1 for dark color]
.bash_profile বা .bashrc
-এ নিম্নলিখিত লাইনগুলি যোগ করে রঙ পরিবর্তনকে স্থায়ী করুনSTARTCOLOR='\e[0;34m';
ENDCOLOR="\e[0m"
export PS1="$STARTCOLOR\u@\h \w> $ENDCOLOR"
5. প্রম্পটের পটভূমির রঙ পরিবর্তন করুন
নীচে দেখানো হিসাবে PS1 প্রম্পটে \e[{code}m উল্লেখ করে পটভূমির রঙ পরিবর্তন করুন।
$ export PS1="\e[47m\u@\h \w> \e[m"
[Note: This is for Light Gray background]
ব্যাকগ্রাউন্ড এবং ফোরগ্রাউন্ডের সমন্বয়
export PS1="\e[0;34m\e[47m\u@\h \w> \e[m"
[Note: This is for Light Blue foreground and Light Gray background]
উপরের পটভূমি এবং অগ্রভাগের রঙ স্থায়ী করতে .bash_profile বা .bashrc-এ নিম্নলিখিত যোগ করুন।
STARTFGCOLOR='\e[0;34m'; STARTBGCOLOR="\e[47m" ENDCOLOR="\e[0m" export PS1="$STARTFGCOLOR$STARTBGCOLOR\u@\h \w> $ENDCOLOR"
নিম্নলিখিত পটভূমির রঙ ব্যবহার করে চারপাশে খেলুন এবং আপনার পছন্দ অনুসারে একটি চয়ন করুন:
- \e[40m
- \e[৪১মি
- \e[৪২মি
- \e[43মি
- \e[৪৪মি
- \e[৪৫মি
- \e[46m
- \e[47মি
6. প্রম্পটে একাধিক রঙ প্রদর্শন করুন
আপনি একই প্রম্পটে একাধিক রঙ প্রদর্শন করতে পারেন। .bash_profile
-এ নিম্নলিখিত ফাংশন যোগ করুনfunction prompt { local BLUE="\[\033[0;34m\]" local DARK_BLUE="\[\033[1;34m\]" local RED="\[\033[0;31m\]" local DARK_RED="\[\033[1;31m\]" local NO_COLOR="\[\033[0m\]" case $TERM in xterm*|rxvt*) TITLEBAR='\[\033]0;\u@\h:\w\007\]' ;; *) TITLEBAR="" ;; esac PS1="\u@\h [\t]> " PS1="${TITLEBAR}\ $BLUE\u@\h $RED[\t]>$NO_COLOR " PS2='continue-> ' PS4='$0.$LINENO+ ' }
আপনি পরিবর্তনগুলি কার্যকর করার জন্য পুনরায় লগইন করতে পারেন বা নীচে দেখানো হিসাবে .bash_profile উৎস করতে পারেন৷
$. ./.bash_profile $ prompt ramesh@dev-db [13:02:13]>
7. tput
ব্যবহার করে প্রম্পটের রঙ পরিবর্তন করুনআপনি নীচের দেখানো মত tput ব্যবহার করে PS1 প্রম্পটের রঙ পরিবর্তন করতে পারেন:
$ export PS1="\[$(tput bold)$(tput setb 4)$(tput setaf 7)\]\u@\h:\w $ \[$(tput sgr0)\]"
tput রঙের ক্ষমতা:
- tput setab [1-7] – ANSI এস্কেপ ব্যবহার করে একটি পটভূমির রঙ সেট করুন
- tput setb [1-7] - একটি পটভূমির রঙ সেট করুন
- tput setaf [1-7] – ANSI এস্কেপ ব্যবহার করে একটি অগ্রভাগের রঙ সেট করুন
- tput setf [1-7] - একটি অগ্রভাগের রঙ সেট করুন
tput পাঠ্য মোড ক্ষমতা:
- টিপুট বোল্ড - বোল্ড মোড সেট করুন
- tput dim - অর্ধ-উজ্জ্বল মোড চালু করুন
- tput smul - আন্ডারলাইন মোড শুরু করুন
- tput rmul - আন্ডারলাইন মোড থেকে প্রস্থান করুন
- tput rev - বিপরীত মোড চালু করুন
- tput smso – স্ট্যান্ডআউট মোডে প্রবেশ করুন (rxvt-এ বোল্ড)
- tput rmso - স্ট্যান্ডআউট মোড থেকে প্রস্থান করুন
- tput sgr0 – সমস্ত বৈশিষ্ট্য বন্ধ করুন
tput এর জন্য রঙের কোড:
- 0 – কালো
- 1 – লাল
- 2 – সবুজ
- 3 – হলুদ
- 4 – নীল
- 5 – ম্যাজেন্টা
- 6 – সায়ান
- 7 – সাদা
8. PS1 ভেরিয়েবলের জন্য উপলব্ধ কোডগুলি ব্যবহার করে আপনার নিজস্ব প্রম্পট তৈরি করুন
নিম্নলিখিত কোডগুলি ব্যবহার করুন এবং আপনার নিজস্ব PS1 লিনাক্স প্রম্পট তৈরি করুন যা কার্যকরী এবং আপনার স্বাদ অনুসারে। এই তালিকা থেকে কোন কোড দৈনন্দিন ব্যবহারের জন্য খুব সহায়ক হবে? আপনার মন্তব্য করুন এবং আমাকে জানান যে আপনি আপনার Linux প্রম্পটের জন্য কোন PS1 কোড ব্যবহার করেছেন।
- \a একটি ASCII বেল অক্ষর (07)
- \d তারিখটি "সাপ্তাহিক মাসের তারিখ" বিন্যাসে (যেমন, "মঙ্গল ২৬ মে")
- \D{format} – ফরম্যাটটি strftime(3) এ পাস করা হয় এবং ফলাফলটি প্রম্পট স্ট্রিং-এ ঢোকানো হয়; একটি খালি বিন্যাসের ফলে একটি লোকেল-নির্দিষ্ট সময়ের উপস্থাপনা হয়। ধনুর্বন্ধনী প্রয়োজন হয়
- \e একটি ASCII এস্কেপ ক্যারেক্টার (033)
- \h প্রথম অংশ পর্যন্ত হোস্টনাম
- \H হোস্টনাম
- \j বর্তমানে শেল দ্বারা পরিচালিত কাজের সংখ্যা
- \l শেলের টার্মিনাল ডিভাইস নামের বেসনেম
- \n নতুন লাইন
- \r ক্যারেজ রিটার্ন
- \s শেলের নাম, $0 এর বেসনেম (চূড়ান্ত স্ল্যাশের পরের অংশ)
- \t বর্তমান সময় 24-ঘন্টা HH:MM:SS ফর্ম্যাটে
- \T বর্তমান সময় 12-ঘন্টা HH:MM:SS ফর্ম্যাটে
- \@ বর্তমান সময় 12-ঘন্টা am/pm ফর্ম্যাটে
- \A বর্তমান সময় 24-ঘন্টা HH:MM ফর্ম্যাটে
- \u বর্তমান ব্যবহারকারীর ব্যবহারকারীর নাম
- \v ব্যাশের সংস্করণ (যেমন, 2.00)
- \V ব্যাশ প্রকাশ, সংস্করণ + প্যাচ স্তর (যেমন, 2.00.0)
- \w বর্তমান ওয়ার্কিং ডাইরেক্টরি, $HOME সংক্ষেপে টিল্ড দিয়ে
- \W বর্তমান ওয়ার্কিং ডাইরেক্টরির বেসনেম, $HOME টিল্ড দিয়ে সংক্ষেপে
- \! এই কমান্ডের ইতিহাস নম্বর
- \# এই কমান্ডের কমান্ড নম্বর
- \$ যদি কার্যকর UID হয় 0, a #, অন্যথায় a $
- \nn অক্টাল সংখ্যা nnn এর সাথে সম্পর্কিত অক্ষর
- \\ একটি ব্যাকস্ল্যাশ
- \[ অ-মুদ্রণ অক্ষরগুলির একটি ক্রম শুরু করুন, যা প্রম্পটে একটি টার্মিনাল নিয়ন্ত্রণ ক্রম এম্বেড করতে ব্যবহার করা যেতে পারে
- \] অ-মুদ্রণ অক্ষরের একটি ক্রম শেষ করুন
9. PS1 ভেরিয়েবলের ভিতরে ব্যাশ শেল ফাংশন ব্যবহার করুন
এছাড়াও আপনি PS1-এ একটি ব্যাশ শেল ফাংশন চালু করতে পারেন যা নীচে দেখানো হয়েছে৷
৷ramesh@dev-db ~> function httpdcount { > ps aux | grep httpd | grep -v grep | wc -l > } ramesh@dev-db ~> export PS1="\u@\h [`httpdcount`]> " ramesh@dev-db [12]> [Note: This displays the total number of running httpd processes]
আপনি এই পরিবর্তনটিকে স্থায়ী করতে .bash_profile বা .bashrc-এ নিম্নলিখিত লাইন যোগ করতে পারেন:
function httpdcount { ps aux | grep httpd | grep -v grep | wc -l } export PS1='\u@\h [`httpdcount`]> '
10. PS1 ভেরিয়েবলের ভিতরে শেল স্ক্রিপ্ট ব্যবহার করুন
আপনি PS1 ভেরিয়েবলের ভিতরে একটি শেল স্ক্রিপ্টও আনতে পারেন। নীচের উদাহরণে, ~/bin/totalfilesize.sh, যা বর্তমান ডিরেক্টরির মোট ফাইলের আকার গণনা করে, PS1 ভেরিয়েবলের ভিতরে চালু করা হয়েছে৷
ramesh@dev-db ~> cat ~/bin/totalfilesize.sh for filesize in $(ls -l . | grep "^-" | awk '{print $5}') do let totalsize=$totalsize+$filesize done echo -n "$totalsize" ramesh@dev-db ~> export PATH=$PATH:~/bin ramesh@dev-db ~> export PS1="\u@\h [\$(totalfilesize.sh) bytes]> " ramesh@dev-db [534 bytes]> cd /etc/mail ramesh@dev-db [167997 bytes]>
[Note: This executes the totalfilesize.sh to display the total file size of the current directory in the PS1 prompt]
আপনি আপনার PS1 এ কতটা কাস্টমাইজেশন করেছেন? আপনার PS1 কি অ্যাঞ্জেলিনা জোলিকে হারাতে পারে? একটি মন্তব্য করুন এবং আপনার PS1 ভাগ করুন৷ প্রম্পট মান।
প্রস্তাবিত পড়া
ব্যাশ কুকবুক, কার্ল অ্যালবিং, জেপি ভোসেন এবং ক্যামেরন নিউহ্যাম . বাশ একটি খুব শক্তিশালী শেল। এই বইটি আপনাকে ব্যাশ শেল আয়ত্ত করতে এবং উচ্চ উত্পাদনশীল হতে সাহায্য করবে। আপনি একজন সিসাডমিন, ডিবিএ বা একজন বিকাশকারী হোন না কেন, আপনাকে কিছু সময়ে শেল স্ক্রিপ্ট লিখতে হবে। একজন বিজ্ঞ সিসাডমিন জানেন যে আপনি একবার শেল-স্ক্রিপ্টিং কৌশলগুলি আয়ত্ত করার পরে, আপনি শেল-স্ক্রিপ্টগুলিকে গ্রান্ট কাজ করতে দিয়ে আপনার সার্ভারগুলিকে অটো-পাইলট মোডে রাখতে পারেন। সিস্যাডমিনের স্বয়ংক্রিয়-পাইলট মোডে যেতে, আপনাকে অবশ্যই এই কুকবুকে দেওয়া উদাহরণগুলি আয়ত্ত করতে হবে। সেখানে শান্ত কয়েকটি বাশ শেল বই আছে। কিন্তু, অনেক বিস্তারিত উদাহরণ দিয়ে এই বইটি তাদের সবার উপরে।
অতিরিক্ত লিনাক্স বইয়ের সুপারিশ:আপনার মস্তিষ্ক এবং লাইব্রেরি সমৃদ্ধ করার জন্য 12টি আশ্চর্যজনক এবং প্রয়োজনীয় লিনাক্স বই
আপনি যদি এই নিবন্ধটি পছন্দ করেন তবে অনুগ্রহ করে এটিকে del.icio.us এ বুকমার্ক করুন এবং এটি হোঁচট খাবেন।