নতুন tmux সেশনগুলি বাশার্ক ফাইলটি উত্স করে না


17

সারসংক্ষেপ

আমি যখন একটি নতুন টিএমএক্স সেশন তৈরি করি, তখন আমার প্রম্পটটি একটি ডিফল্ট ব্যাশ কনফিগারেশন থেকে টান দেয় এবং আমাকে source ~/.bashrcনিজের কাস্টমাইজড প্রম্পটের জন্য ম্যানুয়ালি চালাতে হয় ।

বিশ্লেষণ

আমি একটি RHEL 7 মেশিন ব্যবহার করছি। কিছুক্ষণ আগে বাশ আপডেটের পরে আমি এই আচরণটি লক্ষ্য করা শুরু করেছিলাম, তবে এখন অবধি প্রশ্ন জিজ্ঞাসা করতে পারিনি (এবং নিশ্চিত হওয়া যায় না যে এটি কোন আপডেটের চারপাশে ঘটতে শুরু করেছিল)।

উদাহরণস্বরূপ, আমি দেখতে দেখতে আমার প্রম্পটটি কাস্টমাইজ করেছি:

[user@hostname ~]$

যখনই আমি একটি নতুন tmux সেশন শুরু করি, এটি ব্যাশ ডিফল্ট হিসাবে উপস্থিত যা ব্যবহার করে:

-sh-4.2$

source ~/.bashrcসর্বদা একটি দ্রুত চালনা সমস্যাটি স্থির করে, তবে বিরক্তিকর যে আমি যখনই ছোট কিছু ঠিক করতে চাইছি তখনই আমাকে এই কাজটি করতে হবে। আবার স্বয়ংক্রিয়ভাবে এটি করতে টিএমউক্স কীভাবে পাবেন সে সম্পর্কে কোনও ধারণা?

যদি আরও কোনও তথ্যের প্রয়োজন হয় তবে আমি সরবরাহ করে খুশি।

tmux.conf

রেফারেন্সের জন্য, আমার কাছে আমার tmux.confফাইলটি নীচে রয়েছে, যদিও আপনি কাস্টমটিকে কল করতে পারেন তা খুব কমই।

setw -g mode-keys vi

# reload tmux.conf
bind r source-file ~/.tmux.conf \; display-message " ✱ ~/.tmux.conf is reloaded"

উত্তর:


19

আমি যতদূর জানি, ডিফল্টরূপে tmuxলগইন শেল চালায়। যখন bashএকটি ইন্টারেক্টিভ লগ-ইন শেল যেন বরকত হয়, এটা জন্য দেখায় ~/.bash_profile, ~/.bash_loginএবং ~/.profile। সুতরাং আপনাকে source ~/.bashrcসেই ফাইলগুলির মধ্যে একটি রাখতে হবে।

এই সমস্যাটি সমাধানের আর একটি উপায় আপনার ফাইলটিতে .tmux.confলাইনটি রাখা:

set-option -g default-shell "/bin/bash"

1
আমি source ~/.bashrcআমার সাথে লাইনটি যুক্ত করেছিলাম .bash_profile, লগ আউট করার চেষ্টা করেছি এবং ফিরে এসেছি , একটি নতুন টিএমউक्स সেশন তৈরি করেছি, তবে কোনও পরিবর্তন হয়নি। কোন ধারনা?
জাস্টিন ডাব্লু। ফ্লরি

1
আপনার ফাইলটি .tmux.confলাইনটি দেওয়ার চেষ্টা করুন set-option -g default-shell "/bin/bash"। এটি আপনার সমস্যা সমাধান করা উচিত (কমপক্ষে আমি আশা করি)!
andreatsh

আমার টিএমএক্স কনফিগারেশন পুনরায় লোড করার পরে, এটি আমার সমস্যার সমাধান করেছে! আপনার উত্তরটি পরিবর্তন করতে চান বা একটি নতুন তৈরি করতে চান? আমি এটি গ্রহণযোগ্য হিসাবে চিহ্নিত করতে খুশি হবে। :)
জাস্টিন ডাব্লু। ফ্লরি

আপনি দয়াবান, আমি দ্রুত আমার উত্তরটি পরিবর্তন করেছি!
andreatsh

2
ম্যাকোস ব্যবহারকারীদের জন্য নোট: আপনি যদি bashহোমব্রিউয়ের মাধ্যমে ইনস্টল করেছেন এবং এটি কাজ না করে তবে এতে পরিবর্তন "/bin/bash"করুন "/usr/local/bin/bash"

5

এটি ব্যাশ ইআরআইডি ফাইলগুলির সাথে সম্পর্কিত। ডিফল্টরূপে, ~/.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

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

তথ্যসূত্র


2

এতে নিম্নলিখিতগুলি যুক্ত করা হচ্ছে .tmux.conf:

set-option -g default-shell "/bin/bash"

করেনা কাঙ্ক্ষিত ফলাফল ফলন হয়।

শুধুমাত্র যখন যোগ source "$HOME/.bashrc"করার ~/.bash_profileউদ্দেশ্যে ফলাফলের এটা করা যায়।

এটি একটি নতুন উইন্ডো বা ফলকটি খোলার সময় এবং একটি নতুন tmux অধিবেশনটি বিচ্ছিন্ন ও খোলার সময় একটি সক্রিয় tmux সেশনে কাজ করবে।

পরীক্ষিত:

VERSION="16.04.2 LTS (Xenial Xerus)"
tmux 2.1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.