আমি কীভাবে টিএমউক্সকে আমার ডিফল্ট শেল ব্যবহার করতে পারি?


155

একটি নতুন সেটআপে, tmux আমার ডিফল্ট (zsh) এর পরিবর্তে ব্যাশ ব্যবহার করছে।

আমি কীভাবে এটিকে zsh ব্যবহার করতে বাধ্য করতে পারি?


12
এটা খুঁজে বের করে। Tmux কনফিগারেশনে নিম্নলিখিতটি সেট করতে পারেন: set -g ডিফল্ট-কমান্ড / বিন / zsh সেট -g ডিফল্ট-শেল / বিন / zsh
পুনরায়

4
এফডাব্লুআইডাব্লু, আপনি যদি ডিফল্ট শেল সেট করেন তবে আপনাকে ডিফল্ট-কমান্ড সেট করার দরকার নেই।
নিকোলাস রিলে

উত্তর:


200
set-option -g default-shell /bin/zsh

মধ্যে ~/.tmux.confবা /etc/tmux.conf। ফেডোরার কাজ করে।

আপনার সাথে tmux পুনরায় আরম্ভ করতে হতে পারে killall tmux; tmux


5
যদি এটি আপনার পক্ষে কাজ করে না তবে নিশ্চিত হয়ে নিন যে আপনি আবার চালু করেছেন tmux। সুস্পষ্ট বলে মনে হচ্ছে তবে আমাকে খুঁজে বের করতে ভাল সময় লাগল!
অ্যান্ডি স্মিথ

27
বিটিডাব্লু: টিএমউক্স পুনরায় চালু করার অর্থ killall tmux; tmux। বেশ কিছুক্ষণ আমাকে বের করে নিল
js-coder

5
কনফিগগুলি কোনও সার্ভার না মেরে পুনরায় লোড করা যায়:bind R source-file ~/.tmux.conf \; display-message " Config reloaded..".
01 МАЛИКОВ

14
বা tmux source-file ~/.tmux.confকমান্ড লাইন থেকে সহজভাবে চালানো ।
পেটর পুদলক

12
@ জেএস-কোডার: আপনার টিএমউক্স সার্ভারটিকে আরও পরিষ্কার করে মেরে ফেলতে আমি তার tmux kill-serverপরিবর্তে প্রস্তাব দেব ।
চুইম

41

প্রথমে আপনার কমান্ড লাইনে এটি চালনার মাধ্যমে আপনার ডিফল্ট শেলটি zsh এ সঠিকভাবে সেট করা আছে তা নিশ্চিত করুন:

chsh -s $(`which zsh`) $USER

আপনার ~ / .tmux.conf এ ফলোয়িং স্থাপন কোনও শেলের জন্য আরও শক্তিশালী বিকল্প।

set-option -g default-shell $SHELL

1
ব্যবহারকারীর শেল ( chsh -s) সেট করা অপ্রয়োজনীয় যেহেতু tmux এর চেয়ে আলাদা একটি বিকল্প প্রস্তাব করে।
মাহমুদ আল-কুদসি

আমি ভেবেছিলাম $ শেল ভেরিয়েবলটি ব্যবহার করা আরও শক্তিশালী। তবে এটি একটি অতিরিক্ত পদক্ষেপ এবং বিভ্রান্তি যুক্ত করে তাই আমি গৃহীত উত্তর পছন্দ করি না।
ডিবাগওয়াইজেড

এটি গৃহীত উত্তরের চেয়ে ভাল। আমার zsh / bin / zsh এ ইনস্টল করা নেই।
হ্যাপিফ্রেস

20

আপনার নীচে এই লাইনটি ফেলে দিন ~/.tmux.conf

set-option -g default-command "reattach-to-user-namespace -l zsh"

আপনি এটি যুক্ত করার পরে, আপনার tmux সার্ভারটি হত্যা করে পুনরায় চালু করুন এবং সমস্ত কাজ করা উচিত।


2
তবুও, কোনও ম্যাকের উপর রিপেট (অপিপি) রয়েছে এমন কোনও ইঙ্গিত রয়েছে, বা wraেকে দেওয়া প্রোগ্রাম ইনস্টল করা আছে?
ক্রিস জনসেন

1
আমি মনে করি এই উত্তরটি কেবল ম্যাক ওএস এক্স
এহুভটোভ

5
tmux kill-serverসমস্ত tmux সার্ভারগুলি সমাপ্ত করার আদেশ হ'ল
কিথ স্মাইলি

1
যদিও ওপি এটির যে উত্তর চেয়েছিল তা না হলেও আমি এই থ্রেডে শেষ করেছিলাম এবং সত্যই আমি ওএস এক্সে আছি, এই মোড়কটি ব্যবহার করে, এবং এটি আমার প্রয়োজনীয় সমাধান; তাই আপনাকে ধন্যবাদ!
জোসে আলবান

1
এটি কীভাবে আলাদা set-option -g default-shell ? উপরেরটি ফিশ শেলের সাথে কাজ করে বলে মনে হচ্ছে না।
টমি

5

আপনি যদি পরিবেশগত পরিবর্তনশীলতে উল্লিখিত একই শেলটি ব্যবহার করতে tmux কে জোর করতে চান তবে আপনি এটি ব্যবহার করতে পারেন:

# force SHELL ENV variable as shell
set-option -g default-shell ${SHELL}

আপনার ~/.tmux.confবা /etc/tmux.conf

পরিবর্তন আসলে কার্যকর করার পেতে, আপনি করার প্রয়োজন হতে পারে tmux kill-serverএবং তারপর tmuxtmux পুনরায় আরম্ভ করা।


1
এটি কেবলমাত্র উত্তর আমার (tmux হত্যা-সার্ভার কমান্ড) এর জন্য কাজ করা হয়
অনির্ধারিত

2

ব্যবহার chsh(1):

chsh -s /bin/zsh $USER

1
আমি ইতিমধ্যে এই সেট ছিল, কিন্তু tmux এটি এড়ানো হয়েছে।
5.3

2

লগ-আউট এবং লগ-ইন আবার আমার সমস্যার সমাধান করেছে। যখন প্রতিধ্বনিত $SHELLএটি তখনও ছিল /bin/bashতবে লগ-আউট করার পরে এটিতে পরিবর্তন করা হয়েছিল/usr/bin/zsh


2

tmux SHELLএনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করার জন্য প্রদর্শিত হয় , সুতরাং নিম্নলিখিতটি কাজ করা উচিত:

SHELL=/usr/bin/zsh tmux

অথবা

env SHELL=/usr/bin/zsh tmux

কেন এটি নিচে ভোট হয়েছে তা নিশ্চিত নয় Not এটি সঠিক বলে প্রতীয়মান হয়েছে: একটি সাধারণ সমস্যা হ'ল আইটর্মের জন্য আলাদা শেল ব্যবহার করছে তবে লগইন শেলটি ছাড়াই হবে যা /bin/bashঅ-পুনরাবৃত্ত বিরতি কিছুই না তা নিশ্চিত করে। আইটর্ম $SHELLনতুন শেল নামটিতে সেট করবে না (কেন তা নিশ্চিত নয়) এবং ব্যাশ আরম্ভের সময় এটি সূচনাতে আনসেট না হলে লগইন শেলের সাথে সেট করে। tmux এর পরে এই মানটি ব্যবহার করে যদি default-shellস্পষ্টভাবে সেট না করা হয়।
স্যাম ব্রাইটম্যান

হ্যাঁ .. সম্ভবত env SHELL=/usr/bin/zsh tmuxভাল? (উত্তর আপডেট হয়েছে)।
নীল রঙের

1

এটি আপনার মধ্যে যোগ করুন ~/.tmux.conf

set -g default-command /usr/local/bin/fish

1

গৃহীত উত্তরটি আমার পক্ষে কার্যকর হয়নি।

আমাকে দুটোই লিখতে হয়েছিল

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

এবং

set -g default-commanmd "/bin/bash"

আমার ~/.tmux.conf- tmux kill-server; tmuxtmux.conf পুনরায় লোড করতে , ভুলবেন না


আমি tmux -Vজিনোম-শেল এমুলেটরটিতে উবুন্টু 18 এর নীচে 2.6 ব্যবহার করছি ।

আমি https://github.com/samoshkin/tmux-config এর সাথেও tmux বাড়িয়েছি । এটি দেখুন, এটি সত্যিই দুর্দান্ত।


0

আমার জন্য আমাকে প্রতিস্থাপন করতে হয়েছিল:

default-command "/usr/local/bin/fish"
default-shell "/usr/local/bin/fish"

সঙ্গে

set-option -g default-command "/usr/local/bin/fish"
set-option -g default-shell "/usr/local/bin/fish"

ইন .tmux.conf এবং রান কমান্ডtmux kill-server; tmux


এটি উত্তরের ডুপ্লিকেট হ'ল সুপারইউজার . com /a/1370909/ 174140
174140

@ জোহান আমি এর set-option -gপরিবর্তে ব্যবহার করেছি set -g। tmux বিভিন্ন সংস্করণ সম্ভবত সম্ভবত
আলী আমিন

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