আমার একটি পুনরুত্পাদনযোগ্য সমস্যা:
- আমার প্যাটপ সেট আপ করুন ব্যাশ। প্রোফাইলে
- দ্বারা tmux শুরু
tmux
,tmux attach
বা কোনো বৈকল্পিক - প্রতিধ্বনি $ PATH এবং এটি একই উপাদানগুলির সাথে তবে ভিন্ন ক্রমে দেখুন
কিভাবে এই বন্ধ? এটি কি ব্যাখ্যা করে?
আমার একটি পুনরুত্পাদনযোগ্য সমস্যা:
tmux
, tmux attach
বা কোনো বৈকল্পিককিভাবে এই বন্ধ? এটি কি ব্যাখ্যা করে?
উত্তর:
আপনি যদি কোনও ম্যাকের উপরে থাকেন এবং যদি আপনি ভাবছেন যে /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
আপনি যখন টিএমউक्स চালাচ্ছেন তখন কেন PATH- র কাছে চাপ দেওয়া হচ্ছে, কারণ এটি আপনার /etc/profile
ফাইল থেকে চালিত পথ_হেল্পার নামক একটি ইউটিলিটির কারণে ।
আপনি সহজেই উত্স না করে tmux (বা বরং বাশ) কে রাজি করতে পারবেন না /etc/profile
(কোনও কারণে tmux সর্বদা লগইন শেল হিসাবে চলে, যার অর্থ / ইত্যাদি / প্রোফাইল পড়বে), তবে আপনি নিশ্চিত করতে পারেন যে পথ_সেইলপার ডনের প্রভাবগুলি আপনার পথের সাথে স্ক্রু লাগবে না।
কৌশলটি হ'ল পাথ_হেলপার চালানোর আগে PATH খালি রয়েছে তা নিশ্চিত করা। আমার ~/.bash_profile
ফাইলে আমার কাছে এটি রয়েছে:
if [ -f /etc/profile ]; then
PATH=""
source /etc/profile
fi
পাথ_হেল্পার কার্যকর করার আগে PATH কে সাফ করার আগে এটি আপনার (পূর্ববর্তী) বেছে নেওয়া পাঠ্যপথটিকে ডিফল্ট PATH প্রেরণ করা থেকে বিরত রাখবে এবং আপনার বাকী ব্যক্তিগত বাশ সেটআপ স্ক্রিপ্টগুলি (আরও নিচে কমান্ড .bash_profile
, অথবা আপনি .bashrc
এটি থেকে উত্সাহিত করেছেন যদি .bash_profile
) আপনার সেটআপ করার অনুমতি দেবে your পাঠ অনুসারে।
আশা করি তা বোধগম্য ...
-f
করতে পারেন -e
, তবে আমি ব্যক্তিগতভাবে চেষ্টা করব না এবং কোনও স্ক্রিপ্ট থেকে একটি ফাইল উত্পন্ন করব না যা আমি লগইন করার পরে চালিত হয় যদি না এটি পরীক্ষা না করা হত। যদিও আমি আমার ব্যাশ স্ক্রিপ্টটি প্রচুর মেশিনে (এবং অপারেটিং সিস্টেমগুলি) পুনরায় ব্যবহার করতে চাই না, তাই আমি নিশ্চিত করতে চাই যে তারা বুলেট প্রুফ। আমি কল্পনা করতে পারি কিছু অন্যান্য ইউনিক্স রূপগুলি এটিকে অন্য কিছু বলে call
~/.bash_profile
আনীত বিচক্ষণতার শীর্ষে রেখেছিল আমার সুখী tmux জগতে।
set -g default-command "${SHELL}"
এ .tmux.conf
বাহিনীর অ লগইন শাঁস ব্যবহার করতে tmux। আমি যাইহোক, সেগুলির মধ্যে পয়েন্টটি দেখতে পাচ্ছি না, যেহেতু আপনি ইতিমধ্যে লগ ইন করার পরে সাধারণত tmux খুলুন
না; বাছাই $PATH
করা খুব পাগল জিনিস হবে কারণ অনেকগুলি সিস্টেম তার ব্যবহারকারী-সেট অর্ডারে নির্ভর করে।
যাইহোক, tmux নেই "লগইন" মোডে আপনার শেল শুরু, যার ফলে ~/.profile
sourced করা আবার । এর অর্থ হ'ল যদি আপনার কাছে PATH=/my/dir:/another/dir:$PATH
সেই ফাইলে কিছু থাকে তবে এটি আবার করা হবে , ফলস্বরূপ $ PATH রয়েছে /my/dir:/another/dir:/my/dir:/another/dir:(etc.)
। এটি এড়াতে, আপনি পরীক্ষা করতে অন্য পরিবর্তনশীল ব্যবহার করতে পারেন:
if [ "$_SKIP_PROFILE" ]; then
return 0
else
export _SKIP_PROFILE=y
fi
export PATH="/my/dir:/another/dir:$PATH"
if [ -n "$TMUX" ]
নিজেই এটি একটি ক্লজের আড়ালে লুকিয়ে রেখেছি, তবে আমি ভাবছিলাম -[ -f /etc/profile ]
আসলে কী তা গুরুত্বপূর্ণ ? এটি/etc/profile
নিয়মিত ফাইল হিসাবে ধরে নেওয়া কি নিরাপদ নয় ?