.bashrc / .profile নতুন tmux সেশনে (বা উইন্ডো) লোড হয় না - কেন?


94

Tmux নতুন উইন্ডোটি শুরু বা খুললে এটি আমার .profileবা লোড হয় না .bashrc। আমি . ~/.bashrcপ্রতিবার টাইপিং শেষ । এটি স্বয়ংক্রিয়ভাবে ঘটানোর কোনও উপায় আছে?

উত্তর:


149

হ্যাঁ, আপনার শেষে, .bash_profileলাইনটি লিখুন:

. ~/.bashrc

এটি স্বয়ংক্রিয়ভাবে সেই পরিস্থিতিতে আরসি ফাইলটিকে উত্স করে যেখানে এটি কেবলমাত্র প্রোফাইলটি প্রক্রিয়া করে।

bashকমান্ড লাইন আর্গুমেন্ট এবং পরিবেশের ভেরিয়েবলের সাথে নির্দিষ্ট ফাইলগুলি চালিত হওয়ার নিয়মাবলী জটিল এবং শেলটির প্রকারের উপর নির্ভর করে (লগইন / নন-লগইন, ইন্টারেক্টিভ বা না এবং আরও কিছু) depend

আপনি এগুলি man bashআউটপুটে দেখতে পাচ্ছেন , কেবল সন্ধান করুন INVOCATION- আপনার হজম করতে এবং ডিকোড করতে আপনার সম্ভবত কিছুটা সময় প্রয়োজন হবে যদিও :-)


4
এই সমাধানটির সাথে সমস্যাটি হ'ল কিছু সিস্টেমে .bashrc .bash_profile কল করে।
হনজা

4
আমাকে নিজেকে সংশোধন করতে দাও: সিস্টেমে .bashrc প্রোফাইলে কল করা যায় না, তবে আপনি নিজে করছেন না তা নিশ্চিত করা দরকার।
হনজা

4
@ হোঞ্জা, এটি প্রায় সবসময় অন্যান্য উপায়ে যেহেতু এটি সবচেয়ে অস্বাভাবিক সেটআপ হবে। কেউ নিশ্চয়ই সেভাবে এটি করার ব্যবস্থা করতে পারে তবে আমরা তাদের
বিচক্ষণতা

4
প্রকৃতপক্ষে, দেখা গেল যে আমি সেভাবে এটি করার ব্যবস্থা করেছি (এবং এটি ভুলে গিয়েছি)। আপনি আমার বুদ্ধি প্রশ্নে স্বাগত জানাই ...;)
হনজা

4
আমি ভেবেছিলাম এটাই প্রশ্ন ....bashrc/.profile is not loaded on new tmux session (or window) — why?
dylnmc

16

ব্যাশ চালানো স্পষ্টভাবে আমার জন্য কাজ করেছে, আমার ~ / .tmux.conf ফাইলে এই লাইনটি যুক্ত করে:

set-option -g default-command "exec /bin/bash"

4
এটি আমার পক্ষে কাজ করেছিল! তবে আপনার "এক্সিকিউটিভ" অংশের দরকার নেই। আমি আমার নিম্নলিখিত লাইন যোগ ~/.tmux.conf : set -g default-command "/bin/bash"। ধন্যবাদ বন্ধু.
জোকার

তবে, কেন এমন হচ্ছে তা আপনার কোনও ধারণা আছে? উবুন্টু 16.04 থেকে 18.04.2 এ আপগ্রেড করার পরে আমি হঠাৎ এটি লক্ষ্য করেছি। আমি ভাবতে পারি এই পার্থক্য। এছাড়াও, আমি লক্ষ্য করেছি যে কয়েকটি কনফিগারেশন ভেঙে গেছে এবং আমাকে কিছু নতুন সিনট্যাক্স মেনে চলতে হয়েছে (মনে হচ্ছে tmux এছাড়াও আপডেট হয়েছিল, তবে আমি আগে যাচাই করেছিলাম tmux সংস্করণটি মনে করি না)।
জোকার

6

প্রাক্তন উত্তরগুলি সমাধান সরবরাহ করেছিল তবে কারণটির ব্যাখ্যা দেয় নি। এটা এখানে.

এটি ব্যাশ ইআরআইডি ফাইলগুলির সাথে সম্পর্কিত। ডিফল্টরূপে, ~/.bashrcএকটি ইন্টারেক্টিভ, নন-লগইন শেল ব্যবহৃত হয়। এটি একটি লগইন শেল মধ্যে উত্সাহিত করা হবে না। Tmux ডিফল্টরূপে লগইন শেল ব্যবহার করে। অতএব, শেমস টিএমউक्स এড়িয়ে চলুন ~/.bashrc

default-command শেল কমান্ড

ডিফল্টটি একটি খালি স্ট্রিং, যা tmux কেdefault-shell বিকল্পের মান ব্যবহার করে লগইন শেল তৈরির নির্দেশ দেয় ।

বাশের জন্য ইনস ফাইলগুলি,

  1. লগইন মোড:
    1. /etc/profile
    2. ~/.bash_profile, ~/.bash_login, ~/.profile(শুধুমাত্র প্রথম এক যে বিদ্যমান)
  2. ইন্টারেক্টিভ অ লগইন :
    1. /etc/bash.bashrc (কিছু লিনাক্স; ম্যাক ওএস এক্সে নেই)
    2. ~/.bashrc
  3. অ-ইন্টারেক্টিভ:
    1. উত্স ফাইল ইন $BASH_ENV

অদ্ভুত ইন্টারেক্টিভ, লগ-ইন না করা লোডিং প্রয়োজনীয়তা অন্যান্য পরিস্থিতিতেও মানুষকে বিভ্রান্ত করে। সবচেয়ে ভালো সমাধান লোড প্রয়োজন পরিবর্তন হয় ~/.bashrcযেমন শুধুমাত্র ইন্টারেক্টিভ , যা ঠিক কিছু ডিস্ট্রো উবুন্টু মত কি, করছেন।

# write content below into ~/.profile, or ~/.bash_profile

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

এটি আপনার ইচ্ছা সমাধান হওয়া উচিত। এবং আমি প্রতিটি বাশ ব্যবহারকারীর প্রোফাইলে এটি সেটআপ করার পরামর্শ দিচ্ছি।

তথ্যসূত্র



1

আমার জন্য যে সমাধানটি কাজ করেছিল তা নিম্নলিখিত:

  • .bash_profileআপনার যদি ফাইল না থাকে তবে একটি ফাইল তৈরি করুন~
  • .bash_profileপুট শেষে source ~/.bashrcবাsource ~/.profile
  • Tmux পুনরায় আরম্ভ করুন।

বিষয়টি এখন ঠিক করা উচিত।


0

আমার একই সমস্যা ছিল এবং এখনও পর্যন্ত সমাধানগুলি আমার পক্ষে কার্যকর হয়নি। আমার জন্য কাজ শেষ করে এমন সমাধানটি এখানে পাওয়া যাবে

সংক্ষেপে, tmuxউইন্ডোজ / সেশনগুলিতে লগইন শেল ব্যবহার করা হয় যা ~/.profileশুরু হওয়ার সাথে সাথে অন্য ফাইলগুলির মধ্যে সন্ধান করে।

আমি যা চেয়েছিলাম তা ছিল প্রতিটি নতুন tmuxউইন্ডো দিয়ে zsh শুরু করা যাতে আমি exec zshআমার নীচে রেখে যাই ~/.profile

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