কম্পিউটার

লিনাক্সে শেল ইনিশিয়ালাইজেশন ফাইল এবং ব্যবহারকারীর প্রোফাইল বোঝা

লিনাক্স হল একটি মাল্টি-ইউজার, টাইম শেয়ারিং সিস্টেম, যা বোঝায় যে একাধিক ব্যবহারকারী লগ ইন করতে এবং একটি সিস্টেম ব্যবহার করতে পারে। এবং সিস্টেম অ্যাডমিনিস্ট্রেটরদের কাজ রয়েছে কীভাবে বিভিন্ন ব্যবহারকারীরা সফ্টওয়্যার ইনস্টল/আপডেট/মুছে ফেলার ক্ষেত্রে একটি সিস্টেম পরিচালনা করতে পারে, তারা যে প্রোগ্রামগুলি চালাতে পারে, ফাইলগুলি তারা দেখতে/সম্পাদনা করতে পারে ইত্যাদি।

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

পঠন প্রস্তাবিত: লিনাক্সে এনভায়রনমেন্ট ভেরিয়েবল কিভাবে সেট করবেন

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

গুরুত্বপূর্ণ :এই নিবন্ধটির উদ্দেশ্যে, আমরা bash-এ ফোকাস করব , a sh সামঞ্জস্যপূর্ণ শেল যা লিনাক্স সিস্টেমে সবচেয়ে জনপ্রিয়/ব্যবহৃত শেল।

আপনি যদি একটি ভিন্ন শেল (zsh, ash, fish etc..) প্রোগ্রাম ব্যবহার করেন, তাহলে কিছু সম্পর্কিত ফাইল সম্পর্কে আরও জানতে এর ডকুমেন্টেশন পড়ুন যা আমরা এখানে বলব।

লিনাক্সে শেল ইনিশিয়ালাইজেশন

যখন শেলটি আমন্ত্রণ করা হয়, তখন কিছু সূচনা/স্টার্টআপ ফাইল রয়েছে যা এটি পড়ে যা শেল এবং সিস্টেম ব্যবহারকারীর জন্য একটি পরিবেশ সেটআপ করতে সহায়তা করে; যা পূর্বনির্ধারিত (এবং কাস্টমাইজড) ফাংশন, ভেরিয়েবল, উপনাম ইত্যাদি।

শেল দ্বারা পড়া প্রাথমিক ফাইলের দুটি বিভাগ আছে:

  • সিস্টেম-ওয়াইড স্টার্টআপ ফাইল – থিসিসগুলিতে বিশ্বব্যাপী কনফিগারেশন রয়েছে যা সিস্টেমের সমস্ত ব্যবহারকারীর জন্য প্রযোজ্য এবং সাধারণত /ইত্যাদি-এ অবস্থিত ডিরেক্টরি তারা অন্তর্ভুক্ত:/etc/profiles৷ এবং /etc/bashrc অথবা /etc/bash.bashrc .
  • ব্যবহারকারী-নির্দিষ্ট স্টার্টআপ ফাইলগুলি৷ - এই স্টোর কনফিগারেশনগুলি যেগুলি সিস্টেমে একক ব্যবহারকারীর জন্য প্রযোজ্য এবং সাধারণত ব্যবহারকারীদের হোম ডিরেক্টরিতে ডট ফাইল হিসাবে অবস্থিত। তারা সিস্টেম-ব্যাপী কনফিগারেশন ওভাররাইড করতে পারে। তারা অন্তর্ভুক্ত:.প্রোফাইল৷ , .bash_profile , .bashrc এবং .bash_login .

আবার, শেলটি তিনটি সম্ভাব্য মোডে আহ্বান করা যেতে পারে:

1. ইন্টারেক্টিভ লগইন শেল

/bin/login ব্যবহার করে একজন ব্যবহারকারী সফলভাবে সিস্টেমে লগইন করার পরে শেলটি চালু করা হয় , /etc/passwd-এ সংরক্ষিত শংসাপত্র পড়ার পরে ফাইল।

যখন শেল একটি ইন্টারেক্টিভ লগইন শেল হিসাবে শুরু হয়, তখন এটি /etc/profile পড়ে এবং এর ব্যবহারকারী-নির্দিষ্ট সমতুল্য ~/.bash_profile .

লিনাক্সে শেল ইনিশিয়ালাইজেশন ফাইল এবং ব্যবহারকারীর প্রোফাইল বোঝা

2. ইন্টারেক্টিভ নন-লগইন শেল

শেলটি একটি শেল প্রোগ্রাম ব্যবহার করে কমান্ড-লাইনে শুরু হয় উদাহরণস্বরূপ $/bin/bash অথবা $/bin/zsh . এটি /bin/su চালানোর মাধ্যমেও শুরু করা যেতে পারে আদেশ৷

উপরন্তু, একটি ইন্টারেক্টিভ নন-লগইন শেলকে একটি টার্মিনাল প্রোগ্রাম যেমন কনসোল দিয়েও আহ্বান করা যেতে পারে , টার্মিনেটর বা xterm একটি গ্রাফিক্যাল পরিবেশের মধ্যে থেকে।

যখন শেলটি এই অবস্থায় শুরু হয়, তখন এটি প্যারেন্ট শেলের পরিবেশ অনুলিপি করে এবং ব্যবহারকারী-নির্দিষ্ট ~/.bashrc পড়ে অতিরিক্ত স্টার্টআপ কনফিগারেশন নির্দেশাবলীর জন্য ফাইল।

$ su
# ls -la
লিনাক্সে শেল ইনিশিয়ালাইজেশন ফাইল এবং ব্যবহারকারীর প্রোফাইল বোঝা

3. অ-ইন্টারেক্টিভ শেল

যখন একটি শেল স্ক্রিপ্ট চলছে তখন শেলটি চালু করা হয়। এই মোডে, এটি একটি স্ক্রিপ্ট প্রক্রিয়া করছে (শেল বা জেনেরিক সিস্টেম কমান্ড/ফাংশনগুলির সেট) এবং অন্যথা না হলে কমান্ডগুলির মধ্যে ব্যবহারকারীর ইনপুট প্রয়োজন হয় না। এটি প্যারেন্ট শেল থেকে উত্তরাধিকারসূত্রে প্রাপ্ত পরিবেশ ব্যবহার করে কাজ করে।

সিস্টেম-ওয়াইড শেল স্টার্টআপ ফাইল বোঝা

এই বিভাগে, আমরা শেল স্টার্টআপ ফাইলগুলিতে আরও আলোকিত করব যা সিস্টেমে সমস্ত ব্যবহারকারীর জন্য কনফিগারেশন সংরক্ষণ করে এবং এর মধ্যে রয়েছে:

/etc/profile ফাইল - এটি লগইন সেটআপের জন্য সিস্টেম-ওয়াইড এনভায়রনমেন্ট কনফিগারেশন এবং স্টার্টআপ প্রোগ্রাম সঞ্চয় করে। সমস্ত সিস্টেম ব্যবহারকারীর পরিবেশে আপনি প্রয়োগ করতে চান এমন সমস্ত কনফিগারেশন এই ফাইলটিতে যোগ করা উচিত।

উদাহরণস্বরূপ, আপনি এখানে আপনার বিশ্বব্যাপী PATH পরিবেশ পরিবর্তনশীল সেট করতে পারেন।

# cat /etc/profile
লিনাক্সে শেল ইনিশিয়ালাইজেশন ফাইল এবং ব্যবহারকারীর প্রোফাইল বোঝা

নোট৷ :কিছু সিস্টেমে যেমন RHEL/CentOS 7 , আপনি এই ধরনের সতর্কতা পাবেন যেমন "আপনি কি করছেন তা না জানলে এই ফাইলটি পরিবর্তন করার পরামর্শ দেওয়া হয় না। একটি কাস্টম .sh তৈরি করা অনেক ভালো /etc/profile.d/-এ শেল স্ক্রিপ্ট আপনার পরিবেশে কাস্টম পরিবর্তন করতে, কারণ এটি ভবিষ্যতের আপডেটে একত্রিত হওয়ার প্রয়োজনীয়তা রোধ করবে”।

/etc/profile.d/ ডিরেক্টরি - আপনার পরিবেশে কাস্টম পরিবর্তন করতে ব্যবহৃত শেল স্ক্রিপ্টগুলি সঞ্চয় করে:

# cd /etc/profile.d/
# ls  -l 
লিনাক্সে শেল ইনিশিয়ালাইজেশন ফাইল এবং ব্যবহারকারীর প্রোফাইল বোঝা

/etc/bashrc অথবা /etc/bash.bashrc ফাইল - সমস্ত সিস্টেম ব্যবহারকারীদের জন্য প্রযোজ্য অন্যান্য কনফিগারেশন সহ সিস্টেম-ব্যাপী ফাংশন এবং উপনাম রয়েছে৷

আপনার সিস্টেমে একাধিক ধরনের শেল থাকলে, এই ফাইলে ব্যাশ-নির্দিষ্ট কনফিগারেশন রাখা ভালো।

# cat /etc/bashrc
লিনাক্সে শেল ইনিশিয়ালাইজেশন ফাইল এবং ব্যবহারকারীর প্রোফাইল বোঝা

ব্যবহারকারী-নির্দিষ্ট শেল স্টার্টআপ ফাইলগুলি বোঝা

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

# ls -la
লিনাক্সে শেল ইনিশিয়ালাইজেশন ফাইল এবং ব্যবহারকারীর প্রোফাইল বোঝা

~/.bash_profile ফাইল - এটি ব্যবহারকারীর নির্দিষ্ট পরিবেশ এবং স্টার্টআপ প্রোগ্রাম কনফিগারেশন সংরক্ষণ করে। আপনি এখানে আপনার কাস্টম PATH পরিবেশ পরিবর্তনশীল সেট করতে পারেন, যেমনটি নীচের স্ক্রিনশটে দেখানো হয়েছে:

# cat ~/.bash_profile
লিনাক্সে শেল ইনিশিয়ালাইজেশন ফাইল এবং ব্যবহারকারীর প্রোফাইল বোঝা

~/.bashrc ফাইল – এই ফাইলটি ব্যবহারকারীর নির্দিষ্ট উপনাম এবং ফাংশন সংরক্ষণ করে।

# cat ~/.bashrc
লিনাক্সে শেল ইনিশিয়ালাইজেশন ফাইল এবং ব্যবহারকারীর প্রোফাইল বোঝা

~/.bash_login৷ ফাইল - এটিতে নির্দিষ্ট কনফিগারেশন রয়েছে যা সাধারণত আপনি যখন সিস্টেমে লগ ইন করেন তখনই চালানো হয়। যখন ~/.bash_profile অনুপস্থিত, এই ফাইলটি ব্যাশ দ্বারা পড়া হবে৷

~/.প্রোফাইল৷ ফাইল – এই ফাইলটি ~/.bash_profile এর অনুপস্থিতিতে পড়া হয় এবং ~/.bash_login; এটি একই কনফিগারেশন সংরক্ষণ করতে পারে, যা সিস্টেমের অন্যান্য শেল দ্বারাও অ্যাক্সেসযোগ্য হতে পারে। যেহেতু আমরা এখানে প্রধানত ব্যাশ সম্পর্কে কথা বলেছি, মনে রাখবেন যে অন্যান্য শেল ব্যাশ সিনট্যাক্স বুঝতে পারে না।

এর পরে, আমরা আরও দুটি গুরুত্বপূর্ণ ব্যবহারকারী নির্দিষ্ট ফাইল ব্যাখ্যা করব যা অগত্যা ব্যাশ ইনিশিয়ালাইজেশন ফাইল নয়:

~/.bash_history ফাইল - ব্যাশ সিস্টেমে ব্যবহারকারীর দ্বারা প্রবেশ করা কমান্ডগুলির একটি ইতিহাস বজায় রাখে। কমান্ডের এই তালিকাটি ~/.bash_history-এ ব্যবহারকারীর হোম ডিরেক্টরিতে রাখা হয় ফাইল।

এই তালিকাটি দেখতে, টাইপ করুন:

$ history 
or 
$ history | less
লিনাক্সে শেল ইনিশিয়ালাইজেশন ফাইল এবং ব্যবহারকারীর প্রোফাইল বোঝা

~/.bash_logout৷ ফাইল - এটি শেল স্টার্টআপের জন্য ব্যবহৃত হয় না, তবে লগআউট পদ্ধতির জন্য ব্যবহারকারীর নির্দিষ্ট নির্দেশাবলী সংরক্ষণ করে। এটি পড়া এবং চালানো হয় যখন একজন ব্যবহারকারী একটি ইন্টারেক্টিভ লগইন শেল থেকে প্রস্থান করে।

একটি ব্যবহারিক উদাহরণ লগআউট করার সময় টার্মিনাল উইন্ডোটি সাফ করে। এটি দূরবর্তী সংযোগগুলির জন্য গুরুত্বপূর্ণ, যা তাদের বন্ধ করার পরে একটি পরিষ্কার উইন্ডো ছেড়ে যাবে:

# cat bash_logout 
লিনাক্সে শেল ইনিশিয়ালাইজেশন ফাইল এবং ব্যবহারকারীর প্রোফাইল বোঝা

অতিরিক্ত অন্তর্দৃষ্টির জন্য, বিভিন্ন লিনাক্স ডিস্ট্রোতে এই শেল ইনিশিয়ালাইজেশন ফাইলগুলির বিষয়বস্তু চেকআউট করুন এবং ব্যাশ ম্যান পৃষ্ঠাটিও পড়ুন:

এখন এ পর্যন্তই! এই নিবন্ধে, আমরা লিনাক্সে শেল স্টার্টআপ/ইনিশিয়ালাইজেশন ফাইলগুলি ব্যাখ্যা করেছি। আমাদের কাছে আবার লিখতে নীচের মন্তব্য ফর্মটি ব্যবহার করুন৷


  1. শেল স্ক্রিপ্টে ফাংশন বোঝা এবং লেখা - পার্ট VI

  2. লিনাক্স নতুন এবং প্রশাসকদের জন্য 4টি বিনামূল্যের শেল স্ক্রিপ্টিং ইবুক

  3. শেল স্ক্রিপ্টিং-এ 'লিনাক্স ভেরিয়েবল' বোঝা এবং লেখা - পার্ট 10

  4. লিনাক্সে ফাইল এবং ডিরেক্টরি তালিকাভুক্ত করার জন্য কমান্ড