PATH
এনভ্বর সেট করার জন্য পছন্দের জায়গাটি কোথায় ?
~/.profile
বা /etc/environment
?
PATH
উভয় স্থানে সেট করা হলে কী হয় ? শেষের ফলাফলটি কি এই দুটি স্থানে উভয় মানের একটি সংক্ষেপণ সেট করা আছে?
PATH
এনভ্বর সেট করার জন্য পছন্দের জায়গাটি কোথায় ?
~/.profile
বা /etc/environment
?
PATH
উভয় স্থানে সেট করা হলে কী হয় ? শেষের ফলাফলটি কি এই দুটি স্থানে উভয় মানের একটি সংক্ষেপণ সেট করা আছে?
উত্তর:
সারাংশ:
আপনি যদি কেবলমাত্র আপনার বর্তমান ব্যবহারকারীর জন্য এবং আপনার কম্পিউটারের সমস্ত ব্যবহারকারীর জন্য নয় তবে /your/additional/path
আপনার PATH
চলকটিতে একটি পাথ (উদাহরণস্বরূপ ) যুক্ত করতে চান তবে আপনি সাধারণত ~/.profile
এই দুটি উদাহরণের মধ্যে একটির মতো পছন্দ রেখেছিলেন :
PATH="/your/additional/path:$PATH"
PATH="$PATH:/your/additional/path"
নোট করুন যে পথের অগ্রাধিকারগুলি বাম থেকে ডানে নীচে নেমেছে, সুতরাং প্রথম পথে সর্বাধিক অগ্রাধিকার রয়েছে। আপনি যদি বাম দিকে আপনার পথটি যুক্ত করেন তবে $PATH
এটির সর্বোচ্চ অগ্রাধিকার থাকবে এবং সেই অবস্থানের এক্সিকিউটেবল অন্য সমস্তকে ওভাররাইড করবে। আপনি যদি ডানদিকে আপনার পথটি যুক্ত করেন তবে এটি সর্বনিম্ন অগ্রাধিকার পাবে এবং অন্যান্য অবস্থানগুলি থেকে এক্সিকিউটেবলকে অগ্রাধিকার দেওয়া হবে।
যাইহোক, আপনার যদি সমস্ত ব্যবহারকারীর জন্য সেই পরিবেশের পরিবর্তনশীল সেট করার দরকার হয় তবে আমি স্পর্শ করার পরেও /etc/environment
ফাইলের নামটি শেষ না হওয়া দিয়ে একটি ফাইল তৈরি করার পরামর্শ দেব .sh
না /etc/profile.d/
। /etc/profile
স্ক্রিপ্ট এবং সমস্ত স্ক্রিপ্ট /etc/profile.d
প্রতিটি ব্যবহারকারীর ব্যক্তিগত বিশ্বব্যাপী হয় সমতুল্য ~/.profile
এবং তাদের আরম্ভের সময় সব শাঁস নিয়মিত শেল স্ক্রিপ্ট হিসাবে মৃত্যুদন্ড কার্যকর।
আরো বিস্তারিত:
/etc/environment
একটি সিস্টেম-ব্যাপী কনফিগারেশন ফাইল, যার অর্থ এটি সমস্ত ব্যবহারকারী ব্যবহার করেন। root
যদিও এটি মালিকানাধীন , সুতরাং আপনাকে প্রশাসক ব্যবহারকারী হওয়া দরকার এবং sudo
এটি পরিবর্তন করতে ব্যবহার করতে হবে।
~/.profile
আপনার নিজস্ব ব্যবহারকারীর ব্যক্তিগত শেল প্রারম্ভিক স্ক্রিপ্টগুলির মধ্যে একটি। প্রত্যেক ব্যবহারকারীর একটি থাকে এবং অন্যকে প্রভাবিত না করে তাদের ফাইল সম্পাদনা করতে পারে।
/etc/profile
এবং /etc/profile.d/*.sh
গ্লোবাল ইনিশিয়ালাইজেশন স্ক্রিপ্টগুলি যা ~/.profile
প্রতিটি ব্যবহারকারীর জন্য সমান । যদিও ব্যবহারকারী-নির্দিষ্ট স্ক্রিপ্টগুলির আগে বিশ্বব্যাপী স্ক্রিপ্টগুলি কার্যকর করা হয়; এবং /etc/profile
মূলটি সমস্ত *.sh
স্ক্রিপ্টগুলি বের হওয়ার /etc/profile.d/
ঠিক আগেই সম্পাদন করে ।
/etc/environment
ফাইল সাধারণত শুধুমাত্র এই লাইন রয়েছে:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
এটি PATH
সিস্টেমের সমস্ত ব্যবহারকারীর জন্য এই ডিফল্ট মানটিতে পরিবর্তনশীল সেট করে যা বড় উপায়ে পরিবর্তন করা উচিত নয়। অন্তত আপনার মত গুরুত্বপূর্ণ পাথ কোন অপসারণ করা উচিত নয় /bin
, /sbin
, /usr/bin
এবং /usr/sbin
তা থেকে।
এই ফাইলটি প্রতিটি ব্যবহারকারীর প্রতিটি শেল দ্বারা প্রথম কনফিগারেশন ফাইল হিসাবে পড়া হয়। মনে রাখবেন এটি কোনও শেল স্ক্রিপ্ট নয় । এটি কেবল একটি কনফিগারেশন ফাইল যা কোনওভাবে পার্স হয়ে যায় এবং এতে কেবল পরিবেশের পরিবর্তনশীল অ্যাসাইনমেন্ট থাকতে পারে!
~/.profile
ফাইল অনেক কিছু থাকতে পারে, ডিফল্ট দ্বারা এটি অন্যান্য উপাদান মধ্যে একটি চেক রয়েছে এমন একটি কিনা ~/bin
ডিরেক্টরির বিদ্যমান এবং ব্যবহারকারীর বিদ্যমান যে যোগ PATH
পরিবর্তনশীল (চালু পুরোনো উবুন্টু 16,04 পূর্বে প্রকাশ - নতুন রিলিজের নিঃশর্তভাবে এটি যোগ) এই মত:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
আপনি দেখতে পাচ্ছেন যে পুরানো মানটি PATH
এখানে পুনরায় ব্যবহার হয়ে যায় এবং নতুন পথটি সমস্ত কিছু ওভাররাইট করার পরিবর্তে শুরুতে যুক্ত হয়। আপনি যখন ম্যানুয়ালি নতুন পাথ যুক্ত করতে চান তখন আপনার পুরানো $PATH
মানটি সর্বদা নতুন স্ট্রিংয়ের কোথাও রাখা উচিত ।
এই ইনিশিয়ালাইজেশন স্ক্রিপ্টটি কেবলমাত্র এটির ব্যবহারকারীর শেলগুলি দ্বারা পড়ে, তবে অন্য শর্ত রয়েছে:
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
সুতরাং আপনি যদি ডিফল্ট ব্যাশ শেল ব্যবহার করেন তবে আপনার অবশ্যই নিশ্চিত হওয়া উচিত যে আপনার ব্যবহারকারীর জন্য কোনও প্রভাব আছে কিনা তা আপনি পরিবর্তন করতে চান না ~/.bash_profile
or~/.bash_login
~/.profile
পরিবেশের ভেরিয়েবলগুলি সম্পর্কে সম্পূর্ণ বোঝার জন্য দেখুন: https://help.ubuntu.com/commune/En वातावरणीय পরিবর্তনশীল
সম্পর্কিত প্রশ্ন: bash.bashrc এবং / ইত্যাদি / পরিবেশ ফাইলের মধ্যে পার্থক্য
~/.profile
অস্তিত্বের জন্য যাচাই করে না ~/bin
, তবে এটির লাইনটি কেবল:PATH="$HOME/bin:$HOME/.local/bin:$PATH"
/etc/skel/.profile
16.04 এ আমার উল্লেখ করা লাইন রয়েছে line আপনি পূর্ববর্তী প্রকাশে দৃশ্যত আপনার ব্যবহারকারীকে তৈরি করেছেন।
~/.profile
এখনও এটি ছিল তবে আপনি ঠিক বলেছেন - /etc/skel/.profile
এটি আমার আপগ্রেড 16.04 সিস্টেমে নেই (এবং 16.04-এ ইনস্টল করার সময় একটি ব্যবহারকারী অ্যাকাউন্ট তৈরি হয়েছিল) অন্য মেশিনে এটি নেই .profile
)।
এই উত্তরটি প্রধানত সম্পর্কে যা বিভিন্ন পরিবেশের পছন্দ অর্ডার
PATH
হস্তান্তর করা হয়েছে যখন বিভিন্ন কনফিগারেশন ফাইলের মধ্যে উল্লেখ করা হয়েছে। আপনার সাধারণত সেগুলি কোথায় সেট করা উচিত তাও আমি আচ্ছাদন করি, তবে নীচের তালিকাগুলি আপনার সেগুলি ব্যবহার করার বিষয়ে বিবেচনা করা উচিত সে অনুযায়ী ফাইলগুলি তালিকাভুক্ত করে না। সেটিং সাধারণ তথ্যের জন্যPATH
উবুন্টু এবং অন্যান্য বিভিন্ন পরিবেশের আমিও পড়া সুপারিশ EnvironmentVariables এবং এই প্রশ্নের অন্যান্য উত্তর।
সেট করার পছন্দের জায়গাটি PATH
নির্ভর করে যে কোন ব্যবহারকারীদের জন্য আপনাকে এটি সেট করতে হবে এবং কখন এবং কীভাবে আপনি সেট করতে চান তা নির্ভর করে । আপনার সিদ্ধান্তের অংশটি হ'ল আপনি যদি কোনও ব্যবহারকারীর জন্য পরিবেশের পরিবর্তনশীল সেট চান বা প্রতি ব্যবহারকারী ভিত্তিতে। যদি আপনি নিশ্চিত না হন, তবে আমি এটি সিস্টেমওয়াইডের পরিবর্তে কেবলমাত্র একটি ব্যবহারকারীর জন্য (যেমন, আপনার অ্যাকাউন্ট) সেট করার পরামর্শ দিচ্ছি।
অ্যালেক্সপি যেমন বলেছে , PATH
পরিবেশের ভেরিয়েবলের মানটি এটি সর্বাধিক নির্ধারিত হবে । অনুশীলনে, বেশিরভাগ সময় আপনি সেট করেন PATH
, আপনি পুরানো মানটিকে PATH
নতুন মানটিতে অন্তর্ভুক্ত করেন, যাতে আগের এন্ট্রিগুলি বজায় থাকে।
সুতরাং, অনুশীলনে, যখন PATH
একাধিক ফাইল থেকে সেট করা হয়, এটিতে সাধারণত সমস্ত ফাইলে প্রদত্ত এন্ট্রি থাকে। তবে এটি কেবল তখনই ঘটে কারণ এটিকে সেট করা সমস্ত ফাইল প্রথমটিকে বাদ দিয়ে সাধারণত PATH
ভেরিয়েবলটিকেই উল্লেখ করে যার ফলে তার পুরানো মানটিকে নতুনটিতে অন্তর্ভুক্ত করা হয়।
অতএব, আপনি PATH
বিভিন্ন ফাইলের সেটিংস কার্যকর হওয়ার আদেশটি কার্যকরভাবে জিজ্ঞাসা করছেন ।
সাধারণ, সাধারণ উদ্দেশ্যে নির্ধারিত স্থানগুলি PATH
নীচে নীচে তালিকাভুক্ত করা হয়েছে যাতে কোনও ব্যবহারকারী লগইন করার সময় সেগুলি কার্যকর হয় সেই ক্রমে নয় , আপনি সাধারণত সেগুলি ব্যবহারের বিষয়ে বিবেচনা করবেন । নীচে তালিকাভুক্ত স্থানের প্রতিটি সেট করার জন্য একটি যুক্তিসঙ্গত পছন্দ PATH
মধ্যে কিছু পরিস্থিতিতে , কিন্তু মাত্র কয়েক অধিকাংশ সময় ভাল পছন্দ নয়।
নীচের তালিকায় আপনি কিছু ডিরেক্টরি নাম দেখতে পাবেন ~/.profile
। যদি আপনার সাথে অপরিচিত হন টিল্ড সম্প্রসারণ , ~/
বর্তমান ব্যবহারকারীর হোম ডিরেক্টরি বোঝায়। আমি এই সংশ্লেষটি মূলত সংক্ষিপ্ততার জন্য ব্যবহার করি। এটা তোলে শেল স্ক্রিপ্ট-এ সমর্থিত নয়, তবে না PAM কনফিগারেশন ফাইলের মধ্যে।
/etc/environment
উবুন্টুতে থাকা পিএএম এর ফলে তালিকাভুক্ত পরিবেশের ভেরিয়েবলগুলি /etc/environment
সেট করা হয়, যদি সেই ফাইলটি বিদ্যমান থাকে, যা পূর্বনির্ধারিতভাবে এটি করে। সমস্ত ব্যবহারকারীদের জন্য পরিবেশের ভেরিয়েবলগুলি সর্বাধিক সেট করা থাকে।
$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
আপনার যদি কেবলমাত্র আপনার ব্যবহারকারী অ্যাকাউন্টের পরিবর্তে সমস্ত ব্যবহারকারীর অ্যাকাউন্টের জন্য পরিবেশের ভেরিয়েবল সেট করতে হয় তবে সেই ফাইলটি সংশোধন করা সম্ভবত আপনার সেরা পছন্দ। আমি প্রথমে এটি সমর্থন করার পরামর্শ দিচ্ছি recommend এই ফাইলটির ব্যাকআপ নেওয়ার একটি উপায় হ'ল:
sudo cp /etc/environment /etc/environment.orig
.orig
এক্সটেনশন বিশেষভাবে প্রয়োজন হয় না - আপনি ব্যাকআপ ফাইল কিছু বিভ্রান্তিকর বা ইতিমধ্যে ব্যবহৃত হচ্ছে না নামকরণ সম্পর্কে ভাল বোধ করতে পারে। (এ ছাড়া .orig
, .old
, .backup
এবং .bak
সাধারণ।)
আপনি (যদি আপনি root পরিচয়ে অন্য কোন ফাইল সম্পাদনা পারে উপায়ে কোনো একটিতে এই ফাইল সম্পাদনা করতে পারেন sudoedit /etc/enviromnment
, sudo nano -w /etc/environment
, gksudo gedit /etc/environment
ইত্যাদি,)
/etc/environment
কোনও ভেরিয়েবলের পুরানো মান স্বয়ংক্রিয়ভাবে সহ সমর্থন করে না। তবে এটি সাধারণত অপ্রয়োজনীয়, যেহেতু আপনি বেশিরভাগ সময় সম্পাদনা করে সমস্ত ব্যবহারকারীর জন্য পরিবেশের পরিবর্তনশীল সেট করতেন /etc/environment
, আপনি যেভাবেই লগইন করবেন যখন আপনি এটির প্রাথমিক মান হতে চান। ব্যবহারকারী তাদের পছন্দমতো এটি পরিবর্তন করতে পারে। সাধারণত ব্যবহারকারীদের এটি করতে সক্ষম হওয়া ভাল।
/etc/security/pam_env.conf
পিএএম /etc/security/pam_env.conf
প্রতি ব্যবহারকারী ~/.pam_environment
ফাইলগুলিতে ব্যবহৃত একই সিনট্যাক্সের সাহায্যে উল্লিখিত সমস্ত ব্যবহারকারীর জন্য পরিবেশ পরিবর্তনশীলগুলি পড়বে (নীচে দেখুন)।
যখন একই পরিবেশের পরিবর্তনশীল উভয়তে সেট করা থাকে /etc/environment
এবং /etc/security/pam_env.conf
তখন মানটি pam_env.conf
ব্যবহৃত হয় - এমনকি যদি সেই মানটি DEFAULT
পরিবর্তে নির্দিষ্ট করা হয় OVERRIDE
।
যাইহোক, যখন আপনি একটি লাইন রহিত environment
মধ্যে এক সঙ্গে pam_env.conf
, আপনি ছাপিয়ে মান বিষয়বস্তু অন্তর্ভুক্ত করতে পারে। .pam_environment
বিশদগুলির জন্য নীচের বিভাগটি দেখুন (যেহেতু এটি একই বাক্য গঠন ব্যবহার করে)।
এটি সম্পাদনা করা সাধারণত প্রয়োজন হয় না pam_env.conf
এবং আপনি যদি এটি করেন তবে আপনার খুব সতর্কতা অবলম্বন করা উচিত , যেহেতু একটি ত্রুটিযুক্ত রেখা সাধারণত সমস্ত সাধারণ ব্যবহারকারীর অ্যাকাউন্টগুলিতে লগ ইন করতে বাধা দেয়! উদাহরণস্বরূপ, ডিফল্টটিতে pam_env.conf
লাইন থাকে:
#PATH DEFAULT=${HOME}/bin:/usr/local/bin:/bin\
#:/usr/bin:/usr/local/bin/X11:/usr/bin/X11
এটি বেশ কয়েকটি উদাহরণের মধ্যে একটি হিসাবে উপস্থাপিত হয়। এটি চিত্রিত করার একটি বিষয় হ'ল কীভাবে একাধিক লাইনে অ্যাসাইনমেন্ট বিভক্ত করা যায় \
। মনে করুন আপনি প্রথম লাইনেই অসুস্থ হয়ে পড়েছিলেন, তবে দ্বিতীয় লাইনে কিছু করতে ভুলে গেছেন:
PATH DEFAULT=${HOME}/bin:/usr/local/bin:/bin\
#:/usr/bin:/usr/local/bin/X11:/usr/bin/X11
এটা করবেন না!
আমি দুর্ঘটনাক্রমে নিজেই এটি পরীক্ষা করেছি এবং এটি কোনও ব্যবহারকারীকে সফলভাবে লগ ইন করতে বাধা দিয়েছে। এটি ঠিক করতে, আমাকে পুনরুদ্ধার মোডে বুট করতে হয়েছিল এবং এটি আবার পরিবর্তন করতে হয়েছিল। (ভাগ্যক্রমে আমি এটি ভার্চুয়াল মেশিনে করেছি যা আমি কেবল জিনিস পরীক্ষার জন্যই ব্যবহার করি, সুতরাং এটি আমার কোনও সমস্যায় পড়েনি))
.pam_environment
ব্যবহারকারীর হোম ডিরেক্টরিতেএকক ব্যবহারকারীর জন্য পরিবেশের পরিবর্তনশীল সেট করার অন্যতম উপায় হ'ল ব্যবহারকারীর .pam_environment
নিজের ডিরেক্টরি ডিরেক্টরিতে সম্পাদনা (বা তৈরি) করা । এই ফাইলে সেট করা মানগুলি বিশ্বব্যাপী /etc/environment
ফাইলের মধ্যে সেট সেটকে ছাড়িয়ে যায় ।
.pam_environment
প্রাথমিকভাবে যখন ব্যবহারকারী অ্যাকাউন্ট তৈরি করা হয় তখন কোনও ফাইলের কঙ্কালের অংশ নয় যা ব্যবহারকারীর হোম ফোল্ডারে অনুলিপি করা হয়। তবে আপনি যদি নিজের হোম ডিরেক্টরিতে সেই ফাইলটি তৈরি করেন তবে আপনি পরিবেশের মত চলকগুলি সেট করতে এটি ব্যবহার করতে পারেন PATH
। /etc/environment
(তবে পছন্দ মতো /etc/security/pam_env.conf
) এর বিপরীতে , প্রতি ব্যবহারকারী .pam_environment
ফাইলগুলি পরিবেশের পরিবর্তনশীলের পুরানো মানটিকে নতুন হিসাবে প্রসারণ করতে সমর্থন করে। তবে এগুলি শেল স্ক্রিপ্ট নয়, এবং এটি অর্জনের জন্য আপনাকে অবশ্যই একটি বিশেষ সিনট্যাক্স ব্যবহার করতে হবে, যা আপনার মতো কোনও ফাইলের সিনট্যাক্স থেকে কিছুটা আলাদা .profile
।
উদাহরণস্বরূপ, bin2
আপনার বাড়ির ডিরেক্টরিতে যদি আপনার একটি ডিরেক্টরি থাকে যা আপনি শেষের দিকে যুক্ত করতে চান তবে আপনি PATH
এই লাইনটি যুক্ত করে তা করতে পারেন .pam_environment
:
PATH DEFAULT=${PATH}:/home/@{PAM_USER}/bin2
দেখুন উপধারা এর EnvironmentVariables , (যা থেকে উপরোক্ত উদাহরণে ঘনিষ্ঠভাবে অভিযোজিত হয়) , এবং আরও বিস্তারিত জানার জন্য।~/.pam_environment
man pam_env
man pam_env.conf
যদিও এটি একবার উবুন্টু ব্যবহারকারীদের জন্য পরিবেশের পরিবর্তনগুলি যুক্ত করতে বা যুক্ত করতে পছন্দসই উপায় হিসাবে বিবেচিত হয়েছিল এবং এখনও একটি যুক্তিসঙ্গত এবং গ্রহণযোগ্য পছন্দ হিসাবে বিবেচিত হয়, সম্পাদনার সময় আপনার অবশ্যই যত্নবান হওয়া উচিত.pam_environment
। সিস্টেমওয়াইডের সম্পাদনাগুলির মতো /etc/security/pam_env.conf
(উপরে দেখুন), ব্যবহারকারীর .pam_environment
ফাইলে একটি ত্রুটিযুক্ত লাইন লগইনকে সফল হতে বাধা দেয়। (আমি এই পরীক্ষা আছে -। এই সময় উদ্দেশ্যমূলকভাবে) কিভাবে সম্পর্কে আরও তথ্যের জন্য সুপারিশ করেছি প্রসূত দেখুন গানার Hjalmarsson এর মন্তব্য নিচে এবং এই ubuntu-devel
আলোচনা ।
এ জাতীয় ভুলটি কোনও ত্রুটিযুক্ত রেখার চেয়ে সাধারণভাবে খুব কম গুরুতর pam_env.conf
, কারণ এটি কেবলমাত্র একজন ব্যবহারকারীকেই প্রভাবিত করে। তবে, লগইনগুলিকে অনুমতি দেয় এমন একটি ব্যবহারকারীর অ্যাকাউন্ট সহ ডেস্কটপ উবুন্টু সিস্টেমের ক্ষেত্রে, সম্পাদনা করার সময় এমন একটি ভুল সম্পাদনা .pam_environment
করার মতোই খারাপ হবে pam_env.conf
- আপনি যদি ইতিমধ্যে লগইন না করে থাকেন তবে আপনি সক্ষম হবেন না পুনরুদ্ধার মোডে (বা লাইভ ইউএসবি ইত্যাদি) বুট না করে এটিকে ঠিক করতে।
(আপনার যদি অন্য ব্যবহারকারীর অ্যাকাউন্ট থাকে, তবে আপনি অন্য ব্যবহারকারী হিসাবে লগ ইন করতে পারেন এবং সমস্যাটি সমাধান করতে পারেন they এমনকি যদি তারা প্রশাসক না হন sudo
এবং রুট করতে না পারেন তবেও তারা চালাতে পারেন এবং আপনার (তাদের নয়) পাসওয়ার্ড প্রবেশ করার অনুরোধ জানানো যেতে পারে । অতিথি অ্যাকাউন্ট, যাইহোক, এই যেমন ব্যবহার থেকে নিষিদ্ধ করা হয় ব্যবহার করতে পারবেন না, অন্য কোনো ব্যবহারকারী পরিচয় নিতে।)su your-account
su
/etc/profile
এবং ভিতরে ফাইল/etc/profile.d/
বোর্ন-সামঞ্জস্যপূর্ণ শেল ( bash
উবুন্টুতে ডিফল্ট ব্যবহারকারী শেল সহ ) /etc/profile
লগইন শেল হিসাবে আহ্বান করা হলে কমান্ডগুলি চালায় ।
উবুন্টুর /etc/profile.d
সমাপ্তি এর সাথে:
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
এর ফলে /etc/profile.d/
ডিরেক্টরিটির যে কোনও ফাইলের কমান্ডগুলি .sh
চালিত হয় যার নাম শেষ হয় ।
বেশিরভাগ ডিসপ্লে ম্যানেজার গ্রাফিকাল লগইনের জন্য কমান্ডগুলি /etc/profile
(এবং এইভাবে ফাইলগুলিতে /etc/profile.d
) চালিত করতে পারে। যাইহোক, সমস্তই করেন না, এবং এটি পরিবর্তে পিএএম দ্বারা সরবরাহিত সুবিধাগুলি ব্যবহারের পক্ষে (উপরে দেখুন) - এটি তাত্পর্যপূর্ণ তর্কস্বরূপ - যদি না এই সিস্টেমে কোনও গ্রাফিকাল লগইন না পাওয়া যায়, উদাহরণস্বরূপ, যদি এটি হয় কোনও জিইউআই ইনস্টল না করা একটি সার্ভার।
এটি সিস্টেমওয়াইড এনভায়রনমেন্ট ভেরিয়েবলগুলিতে সেট করা traditionalতিহ্যগত /etc/profile
তবে এটি প্রায়শই সেরা পছন্দ নয়। যদি আপনি পরিবেশের পরিবর্তনশীল সেট করতে না পারেন /etc/environment
এবং আপনার অবশ্যই এটি অবশ্যই সমস্ত ব্যবহারকারীর জন্য সেট করে রাখতে পারেন তবে নিজের /etc/profile.d/
সম্পাদনা করার চেয়ে একটি নতুন ফাইল তৈরি করা ভাল /etc/profile
। এর একটি কারণ হ'ল, যখন উবুন্টু আপগ্রেড করা হবে তখন একটি নতুন ডিফল্ট /etc/profile
ফাইল থাকতে পারে । আপনি কীভাবে আপগ্রেড করবেন তার উপর নির্ভর করে সেই পুরানো ফাইলটি (আপনার পরিবর্তনগুলি সহ) রাখা হবে, সেই নির্দিষ্ট আপডেট হওয়া কনফিগারেশন ফাইলটির পূর্বেই, অথবা আপনাকে পরিস্থিতি পরিচালনা করতে অনুরোধ করা হবে।
যখন একই পরিবেশের পরিবর্তনশীল উভয় /etc/profile
এবং এক বা একাধিক ফাইলের মধ্যে সেট করা থাকে /etc/profile.d
, যা শেষ সঞ্চালিত হয়? এই /etc/profile
সেটে থাকা কমান্ডগুলি ফাইলগুলি profile.d
উত্সাহিত হওয়ার আগে বা পরে প্রদর্শিত হয়েছিল কিনা তার উপর নির্ভর করে (আমি উপরে বর্ণিত কোড দ্বারা)। কমান্ডগুলি /etc/profile
তাদের প্রদর্শিত ক্রমে কার্যকর করা হয়।
/etc/profile
একটি শেল স্ক্রিপ্ট, এবং তার বাক্য গঠন হয় না PAM কনফিগারেশন উপরে আলোচনা ফাইল যে একই । এর সিনট্যাক্স প্রতি ব্যবহারকারী ~/.profile
ফাইলের জন্য সিনট্যাক্সের সমান (নীচে দেখুন)।
আপনার যদি এমন কোনও কোড লিখতে হয় যা কোনও নির্দিষ্ট ডিরেক্টরিতে (এবং সমস্ত ব্যবহারকারীর জন্য এটি করার জন্য) কোনও বিশেষ সংযোজন করবেন কিনা তা স্থির করে PATH
, আপনি এটি ব্যবহার করতে পারবেন না /etc/environment
বা করতে পারবেন /etc/security/pam_env.conf
না। এটি সম্ভবত প্রধান পরিস্থিতি যেখানে এটি ব্যবহার করা /etc/profile
বা /etc/profile.d/
তার পরিবর্তে ভাল।
.bash_profile
ব্যবহারকারীর হোম ডিরেক্টরিতেযদি কোনও ব্যবহারকারীর থাকে তবে ~/.bash_profile
বাশ এটি ব্যবহার করে ~/.profile
বা এর পরিবর্তে ~/.bash_login
(নীচে দেখুন)। .bash_profile
আপনার নিজের ডিরেক্টরি ডিরেক্টরিতে সাধারণত হওয়া উচিত নয় ।
যদি আপনি না, এটা সাধারণত উৎস থেকে একটি কমান্ড ধারণ কর্তব্য ~/.profile
(যেমন, . "$HOME/.profile"
)। অন্যথায়, প্রতি ব্যবহারকারী .profile
ফাইলের সামগ্রীগুলি মোটেই চালিত হয় না।
.bash_login
ব্যবহারকারীর হোম ডিরেক্টরিতেযদি কোনও ব্যবহারকারীর থাকে তবে ~/.bash_login
বাশ এটিকে ~/.profile
(নীচে দেখুন) এর পরিবর্তে ব্যবহার করে , যদি না ~/.bash_profile
উপস্থিত থাকে, তবে ক্ষেত্রে neither ~ / .Bash_login থেকে উত্সাহিত না হওয়াতে অন্যরা দু'জনেরই ব্যবহৃত হবে না।
পাশাপাশি .bash_profile
, .bash_login
আপনার নিজের ডিরেক্টরি ডিরেক্টরিতে কোনও ফাইল থাকা উচিত নয় ।
.profile
ব্যবহারকারীর হোম ডিরেক্টরিতে।যখন বোর্ন-স্টাইলের শেলটি লগইন শেল হিসাবে চালিত হয় তখন এটি কমান্ডগুলি চালায় /etc/profile
(এতে সাধারণত কমান্ডগুলি অন্তর্ভুক্ত থাকে যা ফাইলগুলিতে কমান্ডগুলি /etc/profile.d/
চালিত করে - উপরে দেখুন)। এর পরে, এটি .profile
ব্যবহারকারীর হোম ডিরেক্টরিতে কমান্ডগুলি চালায় । এই ফাইলটি প্রতিটি ব্যবহারকারীর জন্য পৃথক। (ব্যাশ আসলে চালায় .bash_profile
অথবা .bash_login
পরিবর্তে থাকলে সেগুলি -। কিন্তু, একটি উবুন্টু সিস্টেমে ব্যবহারকারীদের জন্য, ঐ ফাইল খুব কমই বা অস্তিত্ব না করা উচিত বিবরণের জন্য, উপরে দেখুন এবং 6.2 ব্যাশ প্রারম্ভ ফাইল মধ্যে ব্যাশ ম্যানুয়াল ।)
~/.profile
ব্যবহারকারীদের লগ-ইন করার সময় চালিত কমান্ডগুলি রাখার প্রধান জায়গা এটি। এটি আপনার সেট করার জন্য এটি প্রচলিত জায়গা PATH
, তবে যেহেতু উবুন্টুর পাম_েনভ মডিউল এবং সমর্থন রয়েছে তাই আপনার এটি ~/.pam_environment
ব্যবহার করা উচিত।
হিসাবে /etc/profile
, সমস্ত প্রদর্শন পরিচালকরা এই ফাইলটি গ্রাফিকাল লগইনগুলির জন্য চালান না, যদিও বেশিরভাগই করেন। এই পছন্দ একটি কারণ ~/.pam_environment
এনভায়রনমেন্ট ভেরিয়েবল সেট করার জন্য (এক পছন্দ করেন যতটা /etc/environment
থেকে /etc/profile
)।
আপনি বিভিন্ন পরিবেশের প্রসারিত করতে পারেন, যার PATH
নিজেই, যখন আপনি সেট PATH
মধ্যে .pam_environment
(উপরে দেখুন)। যাইহোক, যদি আপনাকে PATH
আরও পরিশীলিত উপায়ে সেট করার প্রয়োজন হয় তবে আপনার .profile
পরিবর্তে আপনাকে এটি ব্যবহার করতে হতে পারে । বিশেষত, আপনি যদি অনুসন্ধান করতে চান যে প্রতিবার কোনও ব্যবহারকারী লগইন করে কোনও ডিরেক্টরি উপস্থিত থাকে এবং কেবল এটির মধ্যে PATH
এটি যুক্ত হয় তবে আপনি .pam_environment
সেই ডিরেক্টরিটি আপনার ডিরেক্টরিতে যুক্ত করতে নিজের ফাইলটি ব্যবহার করতে সক্ষম হবেন না PATH
।
উদাহরণস্বরূপ, .profile
উবুন্টুতে প্রতি ব্যবহারকারী ডিফল্ট ফাইলটি এর সাথে শেষ হত :
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
দেখুন গানার Hjalmarsson এর মন্তব্য উপর বাইট কমান্ডার এর উত্তর জানার জন্য।
bin
আপনার বাড়ির ডিরেক্টরিটির একটি উপ-ডিরেক্টরি আছে কিনা তা এটি পরীক্ষা করে । যদি তা হয় তবে এটি আপনার শুরুর সাথে সেই উপ-ডিরেক্টরিকে যুক্ত করে PATH
।
ব্যবহারকারীরা লগ ইন করার সময় অন্যান্য বিভিন্ন উপায়ে পরিবেশ পরিবর্তনশীল সেট করা থাকে যা লগইনের ধরণের উপর বেশি নির্ভর করে। উদাহরণস্বরূপ, আপনার মাঝে মাঝে পরিবেশের ভেরিয়েবলগুলি থাকতে পারে যা কেবল গ্রাফিকাল লগইনগুলির জন্য বা এসএসএইচ-ভিত্তিক দূরবর্তী লগইনগুলির জন্য সেট হয়ে যায়। উপরের তালিকাতে এ জাতীয় মামলা অন্তর্ভুক্ত নয়।
আমি কয়েকটি ফাইল রেখে দিয়েছি যেখানে লোকেরা মাঝে মাঝে পরিবেশের ভেরিয়েবলগুলি সংজ্ঞায়িত করে, যেমন ~/.bashrc
এবং /etc/bash.bashrc
কারণ সেগুলি সাধারণত সেট করার জন্য প্রস্তাবিত জায়গা নয় PATH
এবং বিরল এটি আপনার পক্ষে এই উদ্দেশ্যে ব্যবহার করা উচিত rare আপনি যদি এই ফাইলগুলিতে ডিরেক্টরিগুলি যুক্ত করতে ব্যবহার করেন PATH
তবে সেগুলি কখনও কখনও বহুবার যুক্ত হয়ে যায় এবং যখন আপনি পরীক্ষা করেন তখন খুব বিভ্রান্ত হয় $PATH
। (চরম ক্ষেত্রে এটি জিনিসগুলিকে ধীর করতে পারে তবে সাধারণত সবকিছু পরিষ্কার এবং বোধগম্য রাখার বিষয়))
যেহেতু bash
ব্যবহারকারীদের জন্য উবুন্টুর ডিফল্ট লগইন শেল, এবং বেশিরভাগ ব্যবহারকারী এটি বা অন্য কোনও পসিক্স-সামঞ্জস্যপূর্ণ শেল ব্যবহার করেন, তাই পরিবেশ-পরিবর্তনশীলগুলি কীভাবে অন্যান্য, বোর্ন-স্টাইনের শেলগুলিতে সেট করা হয় সে সম্পর্কে আমি তথ্য বাদ দিয়েছি tcsh
।
/etc/environment
/ ~/.pam_environment
যেমন বাঞ্ছনীয় ফাইল। বিকাশকারীদের সাথে পরামর্শ করার পরে আমি এটিকে পিএএম এবং / / এর মধ্যে নিরপেক্ষ হিসাবে পরিবর্তিত করেছি এবং এখনও আমি সেভাবে এটি দেখার ঝোঁক। /etc/profile.d/*.sh
~/.profile
/etc/profile.d/*.sh
/ ~/.profile
এর পক্ষে গুরুত্বপূর্ণ যুক্তিগুলি হ'ল বাক্য গঠনটি সহজ এবং লাইটডিএম / জিডিএম ত্রুটির ক্ষেত্রে ক্ষমা করে দিচ্ছে (সিনট্যাক্স ত্রুটিগুলি আপনাকে লগ ইন করতে বাধা দেয় না, তবে কেবল সতর্ক বার্তায় ফলাফল দেয়)।
pam_env.so
, আপনি কি বলতে চাচ্ছেন pam_env.conf
?
pam_env.conf
। ধন্যবাদ! আমি এটিকে ঠিক করার জন্য সম্পাদনা করেছি।
/ ইত্যাদি / এনভায়রনমেন্ট ফাইল কোনও স্ক্রিপ্ট ফাইল নয় আপনি সেখানে রফতানি ব্যবহার করতে পারবেন না এবং এটি simp হোম টাইপটির পরিবর্তনশীল প্রসারণ সমর্থন করে না, কেবল সহজলভ্য = মান জোড়া। সুতরাং এই ফাইলটি ব্যবহার করার জন্য, আপনাকে কেবলমাত্র বিদ্যমান সংজ্ঞাটিতে আপনার পথটি সংযোজন করতে হবে, বিশেষত সিস্টেম-ব্যাপী পরিবেশের পরিবর্তনশীল সেটিংসের জন্য বোঝানো হয়েছে। প্রতি লাইনে এক বিশেষত, এই ফাইলটি সিস্টেম-বিস্তৃত লোকেল এবং পথের সেটিংস সঞ্চয় করে।
~ /। প্রোফাইল - এই ফাইলটি যখনই বাশ শেলটি কার্যকর করা হয় তখন সাধারণত পরিবেশের পরিবর্তনশীলগুলির জন্য প্রস্তাবিত ফাইলটি কার্যকর হয়, তবে এটি কেবলমাত্র লগইন শেল দ্বারা আহ্বান করার অসুবিধা রয়েছে, সুতরাং এটি কার্যকর হওয়ার জন্য আপনার প্রয়োজন হবে লগ আউট এবং ফিরে প্রবেশ করতে - বা কমপক্ষে একটি নতুন লগইন শেল শুরু করুন।
পরিবেশগত ভেরিয়েবল সেট করার জন্য পছন্দের জায়গাটি বেশ কয়েকটি বিষয়ের উপর নির্ভর করে:
/etc/environment
হ'ল যেহেতু _অনুষ্ঠানিক অ্যাক্সেসের কোনও বিপদ নেই।/etc/environment
তবে~/.profile
তবে প্রতিটি সিস্টেমের প্রতিটি ব্যবহারকারীর হোম ডিরেক্টরিতে অবস্থিত হওয়ায় প্রত্যেকের সিস্টেমের প্রতিটি ব্যবহারকারীর সাথে সম্পর্কিত হওয়া উচিত ।সিস্টেমটি পড়ার /etc/environment
আগে পড়বে ~/.profile
। কোনও মনোনিবেশ ঘটে না এবং অ্যালেক্স পি এর মতোই বলেছিলেন যে পথে শেষ অ্যাসাইনমেন্টটি বিরাজ করছে।
এই জাতীয় অবস্থানগুলির সাথে কীভাবে খেলবে ~/.profile
এবং কীভাবে /etc/environment
খেলবে তা এখানে এবং এখানে কীভাবে নির্ধারণ করা হয় সেগুলি সম্পর্কে আরও বিশদ দেখার জন্য , কারণ এই কারণগুলি আপনি কীভাবে এই অবস্থানগুলি ব্যবহার করবেন তা প্রভাবিত করবে।