গ্লোবাল বাশ_প্রোফাইল


20

আমি বুঝতে পারি যে বিশ্বব্যাপী পরিবেশের ভেরিয়েবল সেট করার জন্য রয়েছে /etc/profileএবং /etc/bashrcফাইলগুলি এবং সম্ভবত আমি তাদের উদ্দেশ্যগুলি ভুল বুঝছি, তবে ...

একটি বিশ্বব্যাপী bash_profileফাইল আছে?

আমি ম্যাক ওএস এক্স ব্যবহার করছি

উত্তর:


15

এটি বলা হয় না bash_profile, তবে বিশ্বব্যাশ কনফিগারেশনের মানক স্থান /etc/bash.bashrc/etc/profileশেলটি যদি ব্যাশ হয় তবে এটিকে কল করা স্বাভাবিক । উদাহরণস্বরূপ, আমার মধ্যে /etc/profileআছে:

if [ "$PS1" ]; then
  if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1=’0
    if [ f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  fi
fi

ব্যবহারের শর্তাবলী, /etc/profileসমস্ত বোর্ন সামঞ্জস্যপূর্ণ শেল (sh, bash, ksh, ইত্যাদি) এর জন্য সিস্টেম-ব্যাপী কনফিগারেশন সরবরাহ করে। সাধারণত কোনও সমতুল্যের প্রয়োজন হয় না /etc/bash_profile, কারণ প্রোফাইল ফাইলটির উদ্দেশ্য হ'ল লগইন শেলগুলির জন্য আচরণ নিয়ন্ত্রণ করা। সাধারণত আপনি সেখানে যা করতে চান তা বাশ-নির্দিষ্ট হতে পারে না। /etc/bash.bashrcবাশ-নির্দিষ্ট, এবং এটি লগইন এবং নন-লগইন শেল উভয়ের জন্য পরিচালিত হবে।

জিনিসগুলিকে আরও জটিল করার জন্য, দেখে মনে হচ্ছে ওএস এক্স এর একটিও নেই /etc/bash.bashrc। এটি সম্ভবত ওএস এক্স ডিফল্ট টার্মিনালগুলি লগইন শেল হিসাবে চলার সাথে সম্পর্কিত , তাই পার্থক্যটি হারিয়ে যায়:

টার্মিনাল উইন্ডো গাইডলাইনসের ব্যতিক্রম ম্যাক ওএস এক্সের টার্মিনাল.এপ, যা প্রতিটি নতুন টার্মিনাল উইন্ডোর জন্য ডিফল্টরূপে লগইন শেল চালায়, .bashrc এর পরিবর্তে .bash_profile কল করে calling অন্যান্য জিইউআই টার্মিনাল এমুলেটরগুলি একই কাজ করতে পারে তবে বেশিরভাগেরই তেমন ঝোঁক থাকে না।

আমি ওএস এক্স চালাচ্ছি না, তাই আমার জ্ঞানের ব্যাপ্তি সেখানেই শেষ হয়।


/etc/bash.bashrcএকটি ইন্টারেক্টিভ শেল থেকে পড়বেন না । /etc/profileঅ-ইন্টারেক্টিভ শেল দ্বারা পড়তে পারেন। লগইন শেল এবং নন-লগইন শেলের মধ্যে পার্থক্য
গিলস 2'18

@ গিলস - আপনি এখানে কোন পয়েন্টটি বানাতে চাইছেন তা আমি পরিষ্কার করছি না। একটি অ-ইন্টারেক্টিভ লগইন শেল প্রকৃতপক্ষে একটি অস্বাভাবিক জিনিস। রেফারেন্সের জন্য, আমি যে কোডটি উদ্ধৃত করছি তা আমার নিজের তৈরি নয়। এটি /etc/profileউবুন্টু 12.04- এ ডিফল্ট থেকে । এর পরিবর্তে আপনি কী প্রস্তাব করবেন যদি কেউ এমনটি চান /etc/profileযা কেবল বাশের অধীনে কার্যকর করা হয়েছিল, এবং অন্য কোনও sh- সামঞ্জস্যপূর্ণ শেল নেই?
ire_and_curses

সিস্টেম /etc/profileআমার সিস্টেম ফাইল শীর্ষ সার্চ যে একটি মন্তব্য রয়েছে: # System-wide .profile for sh(1)। এর অর্থ profileকি shসুনির্দিষ্ট? এর shআগে কি কোনওভাবে চালানো যায় bash?

@ জোশ ভয়েগস - এটির shএকটি উপসেট bash/etc/profileজন্য মৃত্যুদন্ড কার্যকর করা হয় sh, bashঅন্য সব বোর্ন সামঞ্জস্যপূর্ণ শাঁস, এবং।
ire_and_curses

@ire_and_curses এটি প্রদর্শিত হচ্ছে ফাইলটি /etc/bashrcম্যাকের নামে ডাকা হয়েছিল, না /etc/bash.bashrc। এটি পাশাপাশি চালানোর জন্য প্রদর্শিত হয় /bin/sh
BrainStorm.exe

4

/etc/profileবিশ্বব্যাপী bash_profile। ব্যাশের সাথে সুনির্দিষ্ট কোনও ফাইল নেই, বাশ কেবল সমস্ত বোর্ন-স্টাইলের শেল দ্বারা পড়া স্ট্যান্ডার্ড ফাইলটি পড়ে। আপনি যেখানে সিস্টেম-ওয়াইড এনভায়রনমেন্ট ভেরিয়েবল সেট করতে পারবেন।

দেখুন সমস্ত "শেল" দ্বারা পড়া ".Bashrc" সমতুল্য ফাইল কি আছে? ব্যাশের সাধারণ স্টার্টআপ ফাইলগুলির সাধারণ জরিপ জন্য।


0

ইন্টারেক্টিভ শেল (ব্যাশ) বিশ্বব্যাপী সেটআপ করুন

এটি লোড হয় না /etc/profile, তাই কোনও কিছুই লোড হয় না /etc/profile.d/(লগইন শেলগুলির বিপরীতে, শেষটি দেখুন)।

এর জন্য গ্লোবাল ফাইলটি হ'ল / ইত্যাদি / বাশার্ক বা /etc/bash.bashrc ( -DSYS_BASHRC=সংকলনের সময় পতাকা সেট উপর নির্ভর করে ):

# System-wide .bashrc file for interactive bash(1) shells.
if [ -z "$PS1" ]; then
   return
fi

PS1='\h:\W \u\$ '
# Make bash check its window size after a process completes
shopt -s checkwinsize

[ -r "/etc/bashrc_$TERM_PROGRAM" ] && . "/etc/bashrc_$TERM_PROGRAM"

দ্বন্দ্ব এড়ানোর জন্য সাধারণত এই ফাইলটি যেমন হয় তেমন (যথাসম্ভব) রেখে দেওয়া ভাল ধারণা। আমি যে কৌশলটি ব্যবহার করি তা হ'ল লগইন করা (/ ইত্যাদি / প্রোফাইল) শেল ব্যবহারের মতো।

আমার কৌশলটি হ'ল উপরের ফাইলটিতে কোনও লোডার যুক্ত করা:

# Add new directory analog to /etc/profile.d
mkdir /etc/bashrc.d

# Write the loader to /etc/bash.bashrc (it might be /etc/bashrc on as mentioned above)
cat >> /etc/bash.bashrc << 'EOF'
# I appended this: Load scripts from /etc/bashrc.d
if test -d /etc/bashrc.d; then
  for script in /etc/bashrc.d/*.sh; do
    test -r "$script" && . "$script"
  done
  unset item
fi
EOF

এখন আমি সহজেই /etc/bashrc.d ডিরেক্টরিতে নতুন .shfiles রেখে গ্লোবাল ইন্টারেক্টিভ (বাশ) শেল ফাইলে এন কাস্টমাইজেশন যুক্ত করতে পারি।

গ্রেপকে বিশ্বব্যাপী রঙিন করুন

/etc/bashrc.d/grep.sh

alias grep='grep --color=auto'

আপনি এই ওয়ান-লাইনার দিয়ে এটি করতে পারেন:

printf "alias grep=\'grep --color=auto\'" > /etc/bashrc.d/grep.sh

প্রোফাইল.ডি বনাম bashrc.d এর সাথে তুলনা করুন

যদি এটি পড়ার পরে, আপনি বিনা সম্মতিতে থেকে যান, নিজেকে বোঝানোর জন্য এটি করুন:

printf "alias grep=\'grep --color=auto\'" > /etc/profile.d/grep.sh

একটি নতুন টার্মিনাল এমুলেটর খুলুন এবং আপনার ব্যবহারকারী ডিরেক্টরিতে কিছু গ্রেপ ব্যবহার করে "গ্রাফিক্স" ব্যবহার করুন word

grep -r 'the'

কিছুই রঙ করা উচিত নয়। সিটিআরএলএলটিএফ 1 করে ভার্চুয়াল কনসোলে একই জিনিসটি করুন (মনে রাখবেন যে আপনার এক্স সার্ভারটি সম্ভবত সিটিআরএলএলটিএফ 7 এ চলছে যাতে আপনি পিছনে স্যুইচ করতে পারেন your যদি ভুলে যান তবে আপনার ডেস্কটপ ম্যানেজারটিকে পুনরায় চালু করুন, উদাহরণস্বরূপ)

grep -r 'the' 

পছন্দসই হিসাবে রঙিন ফলাফল প্রদান করবে।

কিছুই রঙ করা উচিত নয়। ভার্চুয়াল কনসোলে একই জিনিসটি করে করুন CTRLALTF1(মনে রাখবেন যে আপনার এক্স সার্ভারটি সম্ভবত চলমান রয়েছে CTRLALTF7যাতে আপনি ফিরে যেতে পারেন your

grep -r 'the' 

পছন্দসই হিসাবে রঙিন ফলাফল প্রদান করবে।

লগ-ইন শেল কি যখন আপনি একটি মেশিন বুট বা ভার্চুয়াল কনসোল সুইচ পাবেন CTRLALTF1মাধ্যমে FNthভার্চুয়াল কনসোল।

ফাইলগুলি লোড করার /etc/profileসময় একটি লগইন শেল লোড হয় /etc/profile.d/*.sh

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