নতুন টার্মিনাল খোলার সময় .bashrc কার্যকর করা হয় না


84

আমি উবুন্টু 12.04-এ একটি নতুন টার্মিনাল উইন্ডো খুললে .bashrc এর কোডটি কার্যকর হয় না। .Bash_aliases ফাইল তৈরি করার সময় আমি এটি লক্ষ্য করেছি। আমি নতুন টার্মিনালটি খুললে এলিয়াসগুলি প্রদর্শন করা হয়নি। তবে আমি যখন source .bashrcএলিয়াস টাইপ করব তখন তা প্রদর্শিত হবে না।

.bashrc চালানো উচিত প্রতিবারই আমি কোনও নতুন টার্মিনাল উইন্ডো খোলাম?

আমি এটি কীভাবে করব?


পরিবর্তে। প্রোফাইল চেষ্টা করুন।
জিপ্পি

4
@ জিপ্পি নো, .profileলগইন করার সময় পড়া হয়, যখন আপনি কোনও নতুন টার্মিনাল খোলেন না, যদি না কোথাও কোনও ভুল কনফিগারেশন না থাকে। সেলাহ: আপনি কি ডিফল্ট কনফিগারেশন থেকে কিছু পরিবর্তন করেছেন? ps -o command $$ $PPIDএকটি টার্মিনাল চালান এবং আউটপুট অনুলিপি করুন।
গিলস

1
শুধু ইতিবাচক নিশ্চিত করার জন্য, আপনি .bashrcনিজের বাড়ির ফোল্ডারে রেখে দিচ্ছেন, তাই না?
জেজেদ

পরীক্ষা করতে চান echo $SHELL। আমার সাথে এটি ঘটেছিল এবং শ্যাশটি বাশের পরিবর্তে / বিন / শ ছিল। এটিকে / ইত্যাদি / পাসডাব্লু এবং এটির চলমান .bashrc এ ঠিক করুন।
জো ফ্লিন

উত্তর:


128

এটি অগত্যা চালানো হয় না; স্ট্যান্ডার্ড শীর্ষে .brcrc এই মন্তব্য:

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

আমি বিশ্বাস করি লগইন শেল হিসাবে বাশ টার্মিনাল চালানোর একটি বিকল্প রয়েছে বা না। উবুন্টু সহ, জিনোম-টার্মিনালটি সাধারণত লগইন শেল হিসাবে চালায় না, সুতরাং .brcrc সরাসরি চালানো উচিত।

লগইন শেলগুলির জন্য (ভার্চুয়াল টার্মিনালের মতো) সাধারণত ফাইলটি ~/.profileচালিত হয়, যদি না আপনার হয় ~/.bash_profileবা ~/.bash_loginনা থাকে তবে সেগুলি ডিফল্টরূপে সেখানে না থাকে। ডিফল্টরূপে, উবুন্টু কেবলমাত্র প্রোফাইলে ব্যবহার করে।

স্ট্যান্ডার্ডটিতে ~/.profileএটি রয়েছে:

if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

এটি উপলব্ধ থাকলে এটি বাশ্রাক চালায় - ধরে নেওয়া $ BASH_VERSION আপনার পরিবেশে উপস্থিত রয়েছে। কমান্ডটি লিখে আপনি এটি পরীক্ষা করতে পারেন echo $BASH_VERSIONএবং সংস্করণ নম্বরে এটি কিছু তথ্য প্রদর্শন করা উচিত - এটি ফাঁকা হওয়া উচিত নয়।


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

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

4
আপনি যখন নতুন লগইন শেলটি শুরু করেন তখন এটি সাধারণত চালানো হয় (ডেস্কটপ সেশন নয়, কারণ আপনি ডেস্কটপ সেশন থেকে একটি নতুন লগইন শেল চালাতে পারেন)। আমি যেমন বলেছি, এটি ডিফল্টরূপে চালিত হয় তবে আপনি তৈরি করেছেন ~/.bash_profileবা তৈরি করেছেন তা নয় ~/.bash_login। আপনি চেকবক্সটি চেক বা চেক-ইন পরীক্ষা করে পরীক্ষা করতে পারেন Edit -> Profile Preferences -> Title and Command -> "Run command as a login shellএবং প্রস্থান করে টার্মিনালটি পুনরায় চালু করতে পারেন। আপনি পরীক্ষার জন্য। প্রোফাইল থেকে কিছু প্রতিধ্বনি করতে পারেন।
মার্টি ফ্রাইড

@ সেলাঃ আপনার মন্তব্য আমাকে আরও বেশি সাহায্য করেছে আসল উত্তর;) মন্তব্য করার জন্য অনেক ধন্যবাদ!
আলেকস

সুতরাং আপনি যদি এটি তৈরি করেছেন ~/.bash_profileবা ~/.bash_loginআপনার সিস্টেমে তৈরি করেছেন এবং সেগুলি রাখতে চান তবে এখনও চান ~/.profileএবং সেখান থেকে ~/.bashrcকার্যকর করা হয়েছে, আপনি এটি নিজের থেকে ~/.bash_profileবা ~/.bash_loginএকটি লাইন সমেত লাইন দিয়ে উত্স করতে পারেন source "$HOME/.profile"। লগইন শেলগুলিতে আপনাকে এলএস এর রঙিন আউটপুট ফিরিয়ে দেয়!
ট্যানিয়াস

26

আমার ক্ষেত্রে, সহজভাবে .bashrcলোডার লাইনগুলি অনুপস্থিত ছিল.bash_profile

# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
fi

আমি এটিকে ম্যানুয়ালি যুক্ত করেছি এবং এটি আমার নতুন লগইনে কাজ করেছে


3
.bash_profile? উবুন্টু .profileডিফল্টরূপে ব্যবহার করে, না .bash_profile
মুড়ু

উবুন্টু সার্ভার প্রায়শই .বাশিআরসি ... পিকআপ করে না ... উপরের কাজটি করে ... বিড়াল .বাশ_প্রফাইলে [[-s "
OME

এটি আমার জন্য এটি সমাধান! আমি যুক্ত করেছি pcreএবং দেখে মনে হচ্ছে এটি বাশ প্রোফাইলটিকে যুক্ত করার পরিবর্তে ওভাররোট করে।
শাপিরো ইয়াাকভ

7

.bash_profileবাশ শেলের জন্য কনফিগারেশন ধারণ করে। আপনি যখন কোনও টার্মিনাল খোলেন, এটি প্রথমে কমান্ডগুলি পড়ে এবং প্রয়োগ করে ~/.bash_profile। সুতরাং আপনি .bash_profileবাশার্ক অনুযায়ী শেল সেটআপ করতে নিম্নলিখিতটি যুক্ত করতে পারেন ।

. ~/.bashrc

আপনার টার্মিনালটি লগইন শেলটি চালনা না করে (যা এটি উবুন্টুতে ডিফল্টরূপে হয় না) ~/.bash_profileপড়বে না (এবং এটি উবুন্টুতে ডিফল্টরূপে বিদ্যমান নেই)
মার্উ

5

যদি $BASH_VERSIONসেট না করা থাকে তবে chshশেলটি সেট করতে কমান্ডটি ব্যবহার করে চেষ্টা করুন /bin/bash

12.04 এলটিএস নিয়ে আমার একই রকম সমস্যা ছিল এবং এটি দেখা গেছে যে নতুন ব্যবহারকারীর অ্যাকাউন্টে ডিফল্ট শেল সেট করা আছে /bin/shযা সমস্যার কারণ ছিল।


এই কারণ ছিল!
Mulya

1

প্রফাইলে মন্তব্যে অ্যাকোডিং

pr /। প্রোফাইল: লগইন শেলগুলির জন্য কমান্ড ইন্টারপ্রেটার দ্বারা সম্পাদিত ¬

সুতরাং আপনি সেখানে যান, যদি ~/.bash_profileবা হয় ~/.bash_login exists, তাদের পরিবর্তে রান হয়ে যাবে~/.profile

যদি আপনি চালাতে চান ~/.bashrcশুধু লাইন যোগ source ~/.bashrcমধ্যেbash_profile


1
আমি ঠিক একই সমস্যা অভিজ্ঞতা পেয়েছি। আমার .bashrcপর্যন্ত আমি নির্মিত sourced হচ্ছে .bash_profileফাইল। সুতরাং আমি source ~/.bashrc আমার .bash_profileফাইলে লাইন চাপিয়ে দিয়েছি ।
ল্যাশ

0

এর সব কিছু না করে কেবল যান Edit -> Profile Preferences -> Title and Command -> "Run a custom command instead of my shell"এবং কাস্টম কমান্ড বাক্সে লিখুন bashএবং এটি বন্ধ করুন। পরের বার আপনি টার্মিনালটি খুলবেন, এটি স্বয়ংক্রিয়ভাবে বাশও চালাবে।


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