ম্যানুয়ালি শুরু না করা পর্যন্ত বাশ .bashrc পড়বে না


22

bash.bashrcইন্টারেক্টিভ টার্মিনাল থেকে উত্স হবেনা যতক্ষণ না আমি ম্যানুয়ালি bashটার্মিনাল থেকে চালনা করি :

$ bash

বা ম্যানুয়ালি এটি উত্স:

$ source ./.bashrc

বা চলমান:

$ st -e bash

আমি আশা করি এখানে কিছু দরকারী আউটপুট রয়েছে:

$ echo $TERM
st-256color

$ echo $SHELL
/bin/sh

$ readlink /bin/sh
bash

$ shopt login_shell
login_shell     off

আমি CRUX লিনাক্স 3.0 এ আছি এবং আমি ব্যবহার করি dwmএবং st। আমি চেষ্টা করেছি .bash_profileএবং .profileকোন সাফল্য পাইনি।

কোন ধারনা?

উত্তর:


19

কেন এটি উত্স হবে? আপনি সত্য চালাচ্ছেন না bash:

$ echo $SHELL
/bin/sh

বেশিরভাগ আধুনিক সিস্টেমে shহ'ল একটি বেসিক শেলের একটি সিমিলিংক। উদাহরণস্বরূপ আমার ডেবিয়ানে:

$ ls -l /bin/sh 
lrwxrwxrwx 1 root root 4 Aug  1  2012 /bin/sh -> dash

আপনার ক্ষেত্রে shএটির একটি লিঙ্ক bashতবে এতে বর্ণিত হয়েছে man bash:

যদি শ নামের সাথে বাশটি প্রেরণ করা হয় তবে এটি পসিক্স স্ট্যান্ডার্ডের সাথে সামঞ্জস্য রেখে যতটা সম্ভব নিবিড়ভাবে ofতিহাসিক সংস্করণের শুরুর আচরণটি নকল করার চেষ্টা করে। [...] sh নামের সাথে একটি ইন্টারেক্টিভ শেল হিসাবে আহ্বান করা হলে, ব্যাশ ভেরিয়েবল ENV সন্ধান করে, সংজ্ঞায়িত হলে এর মান প্রসারিত করে এবং পড়তে এবং সম্পাদন করতে ফাইলের নাম হিসাবে প্রসারিত মান ব্যবহার করে। যেহেতু sh হিসাবে আহ্বান করা একটি শেল অন্য কোনও স্টার্টআপ ফাইল থেকে কমান্ডগুলি পড়তে এবং চালিত করার চেষ্টা করে না , --rcfile বিকল্পের কোনও প্রভাব নেই।

এবং

--norc
শেলটি ইন্টারেক্টিভ থাকলে সিস্টেম ওয়াইড ইনিশিয়ালেশন ফাইল /etc/bash.bashrc এবং ব্যক্তিগত প্রারম্ভিকরণ ফাইল b / .bashrc পড়ুন এবং চালিত করবেন না। শেলটি sh হিসাবে চিহ্নিত করা হলে এই বিকল্পটি ডিফল্টরূপে চালু থাকে।

সুতরাং, যেহেতু আপনার ডিফল্ট শেলটি sh, .bashrcতাই এটি পড়েনি। ব্যাশ ব্যবহার করে কেবল আপনার ডিফল্ট শেলটি সেট করুন chsh -s /bin/bash


ধন্যবাদ. আমি ধরে নিয়েছি যেহেতু /bin/shইশারা করা থেকে এটি কোনও বিষয় নয় /bin/bash। আমি মনে করি এই সমস্যাটি /bin/bashযখন আমি প্রাথমিকভাবে অ্যাকাউন্ট তৈরি করেছি তখন স্পষ্টরূপে শেলটি বরাদ্দ না করেই এই সমস্যাটির উদ্ভব হয়েছিল ।
তাড়াতাড়ি

এছাড়াও, ডাবিয়ান / উবুন্টু স্টার্টআপের সময় হ্রাস করার প্রচেষ্টার অংশ হিসাবে স্যুইচ dashকরেছে /bin/sh। যখন আমার ব্যবহারকারীরা জিজ্ঞাসা করলেন যে তাদের শেলটি কেন অন্যরকম আচরণ করে This
কুড়ম

18

.বাশ_ প্রোফাইলে আপনার নিম্নলিখিতগুলি নিশ্চিত করেছেন তা নিশ্চিত করুন:

# .bash_profile

# If .bash_profile exists, bash doesn't read .profile
if [[ -f ~/.profile ]]; then
  . ~/.profile
fi

# If the shell is interactive and .bashrc exists, get the aliases and functions
if [[ $- == *i* && -f ~/.bashrc ]]; then
    . ~/.bashrc
fi

1
@terdon আপনার উত্তরটি সঠিক। আমার উত্তরটি কেবল তখনই বৈধ হবে যখন সে চলমান ছিল bash। খুব ভাল লেগেছে, আমি এটা মিস করেছি।
জিত

আপনি যদি bashঅন্য শেলটির সাথে চালিত হন, যেমন ডিফল্টরূপে ksh93ব্যবহার .profileকরে তবে এটি আপনাকে কয়েকটা মাথাব্যথা দিতে পারে ।
কুসালানন্দ

যদি ~ / .bash_profile উপস্থিত না থাকে তবে আপনি এটি তৈরি করতে পারেন।
প্রতীক সিংহল

Debain ভিত্তিক OS এ .bashrc, .bash_profile সেন্টওএস / ফেডোরা / Mac এর OS এ
Mitoxys
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.