বাংলায় শেল ও শেলস্ক্রিপ্টিং শেখার কোর্স
  • শুরুর কথা
  • প্রথম খন্ড - শেল বেসিক
    • প্রথম অধ্যায় - শেল বেসিক
      • শেল ও প্রম্পট
      • কমান্ড
      • নেভিগেশন
      • আরো একটু ls
      • ফাইল
      • লিঙ্ক
      • লিনাক্স ফাইলসিস্টেম
    • দ্বিতীয় অধ্যায় - ম্যানিপুলেশন
      • ওয়াইল্ডকার্ড
      • ফাইল ও ডিরেক্টরি তৈরি করা
      • ফাইল ও ডিরেক্টরি কপি করা
      • ফাইল ও ডিরেক্টরি মুভ করা
      • ফাইল ও ডিরেক্টরি রিমুভ করা:
      • হার্ডলিঙ্ক ও সফ্টলিঙ্ক তৈরি করা
      • অনুশীলন
    • তৃতীয় অধ্যায় - রিডিরেকশন
      • স্ট্যান্ডার্ড ইনপুট, আউটপুট এবং এরর
      • স্ট্যান্ডার্ড আউটপুট রিডিরেকশন
      • স্ট্যান্ডার্ড এরর রিডিরেকশন
      • স্ট্যান্ডার্ড আউটপুট ও এরর একত্রে রিডিরেকশন
      • ফাইল সংযুক্তিকরণ
      • পাইপলাইন
    • চতুর্থ অধ্যায় - শেলের চোখে দেখা
      • এক্সপ্যানসন
      • পাথনেম এক্সপ্যানসন
      • গানিতিক এক্সপ্যানসন
      • ব্রেস এক্সপ্যানসন
      • প্যারামিটার এক্সপ্যানসন
      • কমান্ড সাবস্টিটিউশন
      • ক্যোটিং
      • স্কেইপিং ক্যারেক্টার
    • পঞ্চম অধ্যায় - কীবোর্ড ট্রিক্স
      • কমান্ডলাইন এডিটিং
      • কমপ্লিশন
      • কমান্ড হিস্ট্রি
    • ষষ্ঠ অধ্যায় - পারমিশন
      • ওনার, গ্রুপ এবং অন্যান্য
      • এক্সেস রাইট
      • ফাইল পারমিশন পরিবর্তন
      • ফাইল পারমিশন মাস্কিং
      • বিশেষ পারমিশন
      • ওনার ইউজার ও গ্রুপ পরিবর্তন
      • পরিচয় পরিবর্তন
      • পাসওয়ার্ড পরিবর্তন
    • সপ্তম অধ্যায় - প্রসেস
      • প্রসেস এর প্রাথমিক ধারণা
      • প্রসেস দেখা
      • প্রসেস নিয়ন্ত্রণ
      • সিগন্যাল
  • দ্বিতীয় খন্ড - কনফিগারেশন ও এনভায়রনমেন্ট
    • প্রথম অধ্যায় - এনভায়রনমেন্ট
      • এনভায়রনমেন্টের ভিতরে দেখা
      • যেভাবে এনভায়রনমেন্ট তৈরী হয়
      • এনভায়রনমেন্ট পরিবর্তন
    • দ্বিতীয় অধ্যায় - প্রম্পট সম্পাদনা
      • প্রম্পট কাস্টমাইজেশন
      • প্রম্পট রঙ করা
      • কার্সরের অবস্থান পরিবর্তন
  • তৃতীয় খন্ড - আটপৌরে কমান্ডলাইন
    • প্রথম অধ্যায় - প্যাকেজ ম্যানেজমেন্ট
    • দ্বিতীয় অধ্যায় - টেক্সট এডিটর
      • ন্যানো
        • ন্যানোর প্রাথমিক ব্যবহার
        • ন্যানো - এডিটিং এবং নেভিগেশন
        • ন্যানো কনফিগারেশন
      • ভিম
        • ভিম-এর এডিটিং মোড
        • ভিম-এর বেসিক এডিটিং
        • ভিম: সার্চ এ্যান্ড রিপ্লেস
        • ভিম: একাধিক ফাইল নিয়ে কাজ করা
      • ইম্যাকস্
        • ইম্যাকস্: প্রথম ধাপ
        • ইম্যাকস্: ক্যারেক্টার, কী এবং কমান্ড
        • ইম্যাকস্: বেসিক এডিটিং
        • ইম্যাকস্: সার্চ এ্যান্ড রিপ্লেস
        • ইম্যাকস্: একাধিক ফাইল এডিট করা
    • তৃতীয় অধ্যায় - স্টোরেজ মিডিয়া
      • লিনাক্সের চোখে স্টোরেজ ডিভাইস
      • মাউন্ট এবং আনমাউন্ট
      • পার্টিশন এবং ফরম্যাট করা
      • ফাইলসিস্টেম টেস্ট এবং রিপেয়ার করা
      • ডিভাইস ক্লোনিং
      • ইমেজ তৈরী
      • অপটিক্যাল মিডিয়ায় রাইট করা
    • চতুর্থ অধ্যায় - নেটওয়ার্কিং
      • নেটওয়ার্ক পরীক্ষণ এবং পর্যবেক্ষন
      • ফাইল ট্রান্সফার
      • নিরাপদ যোগাযোগ
    • পঞ্চম অধ্যায় - ফাইল সার্চ
      • Locate: নাম দিয়ে ফাইল সার্চ
      • find: শক্তিশালী সার্চ
        • find: টেস্ট
        • find: অপারেটর
        • find: একশন
        • find: অপশন
        • অনুশীলন
    • ষষ্ঠ অধ্যায় - আর্কাইভ ও ব্যাকআপ
      • ডাটা কম্প্রেশন
      • ডাটা আর্কাইভিং
      • dtrx
      • সিনক্রোনাইজেশন
    • সপ্তম অধ্যায় - আটপৌরে টুলস
      • রেঞ্জার(Ranger): ফাইল ম্যানেজার
      • মাট (Mutt): ইমেইল ক্লায়েন্ট
      • সিমিউজ(cmus): মিউজিক প্লেয়ার
      • ইলিঙ্কস (elinks): ওয়েব ব্রাউজার
      • উইচ্যাট (weechat) : আইআরসি ক্লায়েন্ট
      • ফিঞ্চ (finch) : চ্যাট ক্লায়েন্ট
    • অষ্টম অধ্যায় - প্রোগ্রাম কম্পাইলেশন
  • চতুর্থ খন্ড - টেক্সট ম্যানিপুলেশন
    • প্রথম অধ্যায় - রেগুলার এক্সপ্রেশন
      • গ্রেপ (grep)
Powered by GitBook
On this page
  • প্রম্পটের ব্যবচ্ছেদ
  • হাতে কলমে
  • প্রম্পট সেভ করা
  1. দ্বিতীয় খন্ড - কনফিগারেশন ও এনভায়রনমেন্ট
  2. দ্বিতীয় অধ্যায় - প্রম্পট সম্পাদনা

প্রম্পট কাস্টমাইজেশন

Previousদ্বিতীয় অধ্যায় - প্রম্পট সম্পাদনাNextপ্রম্পট রঙ করা

Last updated 6 years ago

এখন আমরা দেখবো কীভাবে প্রম্পটকে আরো ব্যবহারযোগ্য করা যায়।

প্রম্পটের ব্যবচ্ছেদ

একটি সাধারন প্রম্পট(উবুন্টুতে) দেখতে এমন হয়:

me@howtocode-pc:~$

আপনার ডিস্ট্রিবিউশনে তা অন্যরকম হতেই পারে। এর বিভিন্ন অংশ কেমন হবে তা প্রথম অধ্যায়ের প্রথম আমরা দেখেছি। এখানে আপনার ইউজার নেম, হোস্টনেম ও ওয়ার্কিং ডিরেক্টরি থাকে। এবং সব শেষে থাকে শেলের ধরন(সুপার ইউজার না নরমাল ইউজারের শেল)।

এখন ব্যাপার হচ্ছে প্রম্পট কেমন হবে তা কীভাবে ঠিক করে কম্পিউটার? আপনার ব্যক্তিগত স্টার্টআপ ফাইল .bashrcতে একটা ভেরিয়েবল থাকে PS1(Prompt string one) নামে। এটিই নির্ধারন করে প্রম্পটটি কেমন হবে। আপনি PS1 এর মান অবশ্যই .bashrc ফাইলে গিয়ে দেখতে পারেন। তাছাড়াও echo কমান্ড দিয়ে দেখতে পারেন এভাবে:

me@howtocode-pc:~$ echo $PS1
\u@\h:\W\$

এরমধ্যে @, :, $ চিহ্নগুলো তো আমরা প্রম্পটে দেখতেই পাচ্ছি বাকিগুলো পাচ্ছি না। এবং অধিকাংশের সামনেই '\'(ব্যাকস্ল্যাশ) আছে। সামনে ব্যাকস্ল্যাশ থাকলে তাদের বলে এস্কেপ ক্যারেক্টার। প্রম্পটের কাছে এরকম বিভিন্ন এস্কেপ ক্যারেক্টারের ভিন্ন মানে আছে। আসুন প্রম্পটে ব্যবহৃত এস্কেপ ক্যারেক্টারের মানে জেনে নিই:

এস্কেপ ক্যারেক্টার

অর্থ

\a

অ্যাসকি বেল(ASCII bell)। এটা দিলে বীপ করে শব্দ হয়।

\d

বর্তমান দিন। বার, মাস, তারিখ এভাবে সাজানো। যেমন: Sun July 18।

\h

ডোমেইন নেম ছাড়া কম্পিউটারের হোস্টনেম।

\H

সম্পূর্ণ হোস্টনেম।

\j

বর্তমান শেলে চালু থাকা জবের সংখ্যা।

\l

টার্মিনাল ডিভাইসের নাম।

\n

নতুন লাইন তৈরী করে।

\r

ক্যারিজ রিটার্ন। নতুন লাইনের শুরুতে আসে।

\s

শেল প্রোগ্রামের নাম।

\t

বর্তমান সময়। ২৪ঘন্টার হিসেবে। লেখা হয় এভাবে: ঘন্টা:মিনিট:সেকেন্ড।

\T

বর্তমান সময় ১২ঘন্টার হিসেবে।

\@

বর্তমান সময় ১২ঘন্টার হিসেবে AM/PM সহ।

\A

বর্তমান সময় ২৪ঘন্টার হিসেবে কিন্তু সেকেন্ড বাদে।

\u

বর্তমার ইউজারের ইউজারনেম।

\v

শেলের ভার্শন নাম্বার।

\V

শেলের ভার্শন এবং রিলিজ নাম্বার।

\w

বর্তমান ওয়ার্কিং ডিরেক্টরি।

\W

বর্তমান ওয়ার্কিং ডিরেক্টরির শেষাংশ।

!

বর্তমান কমান্ডের হিস্ট্রি নাম্বার।

#

এই শেল সেশনে ব্যবহৃত কমান্ড সংখ্যা।

$

সুপারইউজার হলে # চিহ্ন দেখাবে, নাহলে $ চিহ্ন।

[

একাধিক ননপ্রিন্টিং ক্যারেক্টার শুরুর ব্র্যাকেট।

]

একাধিক ননপ্রিন্টিং ক্যারেক্টার শেষের ব্র্যাকেট।

এবার হয়ত আপনার কাছে সব পরিষ্কার। আমাদের প্রম্পটে ৪টি এস্কেপ ক্যারেক্টার ছিল। এগুলো হল:

  • \u: এটি দিয়ে ইউজারনেম বোঝানো হয় তাই আপনার ইউজারনেম দেখায়।

  • \h: এটি দিয়ে হোস্টনেম।

  • \W: এটি বর্তমান ওয়ার্কিং ডিরেক্টরির শেষাংশের জন্য। এর বদলে \w ব্যবহার করা যেত কিন্তু তাতে পুরো পাথ দেখাতো বলে স্ক্রীনে অনেকটা জায়গা নষ্ট হত।

  • $: এটি শেলের ধরনের জন্য।

হাতে কলমে

এবার আমরা প্রম্পট নিয়ে কিছুক্ষণ পরীক্ষা চালাবো। এতে বারোটা বাজতেই পারে প্রম্পটের। তারজন্য আগে আমরা প্রম্পটটির একটি কপি রাখবো:

me@howtocode-pc:~$ ps1_old="$PS1"
me@howtocode-pc:~$ echo $ps1_old
\u@\h:\W\$

আমরা PS1 এর মান ps1_old এ কপি করে রাখলাম। এটা হয়েছে নিশ্চিত হতে আমরা echo $ps1_old দিয়েছি। আমরা যদি পরবর্তীতে যেকোনো সময় পুরনো প্রম্পটি ফিরে পেতে চাই তা করতে পারি এভাবে: PS1 = "$ps1_old"।

এবার শুরু করা যাক। প্রথমে এটা:

me@howtocode-pc:~$ PS1=
PS1=

আমরা প্রম্পটের কোনো মানই দিইনি। যার ফলে পরের লাইনে PS1= দেখিয়েছে। তার পরের লাইনে প্রম্পট আছে কিন্তু এর কোনো লেখা নেই। এবার এটা চেষ্টা করি:

PS1="\$ "
PS1="\$ "
$

পরের লাইনে যথারীতি PS1 এর মান দেখিয়েছে। কিন্তু তারপরের লাইনে এবার আমরা প্রম্পট দেখতে পাচ্ছি। যা কিনা শুধুমাত্র $ চিহ্ন। যদি আমরা চাই যে প্রত্যেকবার প্রম্পট আসার সময় একটা বেল দেবে সেটা করতে পারি এভাবে:

$ PS1="\[\a\]\$ "
$

টার্মিনালে অডিও বেল এনাবেল করা থাকলে এখন থেকে বীপ শব্দ শোনা যাবে। এখন প্রশ্ন হল [ এবং ] কেন ব্যবহার করা হল। এদুটি দিয়ে আমরা \aকে আবদ্ধ করেছি কারন \a ননপ্রিন্টিং ক্যারেক্টার। অর্থাৎ এটি প্রিন্ট হবে না স্ক্রীনে এবং কার্সর সরবে না। প্রম্পটে এরকম কিছু লিখে এই ননপ্রিন্টিং ব্রাকেট দিয়ে আবদ্ধ করতে হয়। এবার একটি তথ্যসমৃদ্ধ প্রম্পট বানাতে চেষ্টা করি যা আসলে কাজে লাগবে:

$ PS1="\A \h \$ "
09:57 howtocode-pc $

সময় কখনো কখনো কাজে লাগতে পারে যখন একাধিক কাজ কোনটা কখন করছি সেটা জেনে রাখা দরকার হয়। এবার আমরা মোটামুটি কাজের একটা প্রম্পট বানাবো:

9:57 howtocode-pc $ PS1="\@ \u@\h->[\W]{\!}\$ "
10:03 AM me@howtocode-pc->[~]{86}$

আমরা প্রথম \@ দিয়ে AM/PM এর হিসেবে সময় দিয়েছি। তারপর আমাদের ইউজারনেম এবং হোস্টনেম @ যার মাঝখানে। তারপর -> দিয়ে [] এর মধ্যে \W দিয়ে বর্তমান ওয়ার্কিং ডিরেক্টরির শেষাংশ এবং {} এর মধ্যে ! দিয়ে হিস্ট্রি নম্বর। এবং সবার শেষে $ দিয়ে শেল মোড।

প্রম্পট সেভ করা

এটা একদমই সহজ কাজ। প্রম্পট সেট করার জন্য যে কমান্ডটি আমরা দিয়েছি .bashrc ফাইলের একদম শেষে সেটি যোগ করে দিলে সবসময়ই এরকম প্রম্পট পাওয়া যাবে। আমরা টেক্সট এডিটরে ফাইলটি খুলবো এবং কমান্ডটি একদম শেষে লিখে সেভ দেবো।

এখনি আমরা সেভ করা প্রম্পটের ফলাফল দেখতে চাইলে আমাদের source ~/.bashrc কমান্ডটি দিতে হবে।

লেসনে