سؤال كيف يمكنني جعل tmux استخدام shell الافتراضي الخاص بي؟


في الإعداد الجديد ، تستخدم tmux bash بدلاً من الإعداد الافتراضي (zsh).

كيف يمكنني إجباره على استخدام zsh؟


121
2018-03-06 05:04


الأصل


اكتشفه. يمكن تعيين التالي في تكوين tmux: set -g default-command / bin / zsh set -g default-shell / bin / zsh - re5et
FWIW ، لن تحتاج إلى تعيين الأمر الافتراضي إذا قمت بتعيين الإعداد الافتراضي. - Nicholas Riley


الأجوبة:


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

في ~/.tmux.conf أو /etc/tmux.conf. يعمل على فيدورا.

قد تضطر إلى إعادة تشغيل tmux باستخدام killall tmux; tmux


158
2018-02-10 04:38



إذا لم ينجح ذلك ، فاحرص على إعادة التشغيل tmux. يبدو واضحا لكنه استغرق مني ساعة جيدة لمعرفة! - Andy Smith
راجع للشغل: إعادة تشغيل tmux يعني killall tmux; tmux. استغرقني بعض الوقت لمعرفة. - js-coder
يمكن إعادة تحميل الملفات دون قتل الخادم: bind R source-file ~/.tmux.conf \; display-message " Config reloaded..". - ДМИТРИЙ МАЛИКОВ
أو ببساطة تشغيل tmux source-file ~/.tmux.conf من سطر الأوامر. - Petr Pudlák
@ js-coder: لقتل خادم tmux بشكل أكثر تنظيفًا ، أوصيك tmux kill-server في حين أن. - Chuim


تأكد أولاً من تعيين shell الافتراضي بشكل صحيح على zsh عبر تشغيل هذا في سطر الأوامر:

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

وضع folloowing في الخاص بك ~ / .tmux.conf هو خيار أكثر قوة لأي قذيفة.

set-option -g default-shell $SHELL

33
2018-02-29 00:25



من غير الضروري تعيين shell المستخدم (chsh -s) كما تقدم tmux خيارًا مستقلًا عن ذلك. - Mahmoud Al-Qudsi


إسقاط هذا الخط في الجزء السفلي من الخاص بك ~/.tmux.conf

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

بعد إضافة ذلك ، قم بقتل وإعادة تشغيل خادم tmux ويجب أن يعمل كل شيء.


17
2018-01-31 16:25



Er ، هل هناك أي إشارة إلى أن re5et (OP) على جهاز Mac ، أو تم تثبيت برنامج المجمع هذا؟ - Chris Johnsen
أعتقد أن هذه الإجابة لا تعمل إلا لنظام التشغيل Mac OS X - EhevuTov
tmux kill-server هو الأمر لإنهاء جميع خوادم tmux - Keith Smiley
على الرغم من أنها لم تكن الإجابة التي طلبها OP ، فقد انتهى بي المطاف في هذا الموضوع ، وأنا في الواقع على OS X ، باستخدام هذا المجمع ، وهذا هو الحل الذي احتاجه ؛ شكرا لك! - Jose Alban
كيف يختلف هذا عن set-option -g default-shell ؟ ما سبق لا يبدو أنه يعمل مع قشرة السمك. - Tommy


استعمال chsh(1):

chsh -s /bin/zsh $USER

1
2018-03-06 05:22



سبق لي أن وضعت هذه المجموعة ، ولكن tmux تجاهلها. - re5et


تسجيل الخروج وتسجيل الدخول مرة أخرى حل مشكلتي. عندما ردد $SHELL كان لا يزال /bin/bash ولكن بعد تسجيل الخروج ، تم تغييره إلى /usr/bin/zsh


1
2018-01-05 12:18





إذا كنت تريد فرض tmux لاستخدام نفس shell كما هو محدد في متغير البيئة الخاص بك ، فيمكنك استخدام:

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

في حياتك ~/.tmux.conf أو /etc/tmux.conf.

قد تحتاج ل tmux kill-server وثم tmux لإعادة تشغيل tmux.


1
2017-07-29 19:09



هذه هي الإجابة الوحيدة التي عملت لي (الأمر tmux kill-server) - undefined


أضف هذا الى حسابك ~/.tmux.conf

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

0
2018-06-19 16:49





يبدو tmux لاستخدام SHELL متغير البيئة ، لذلك يجب أن تعمل التالية:

SHELL=/usr/bin/zsh tmux

أو

env SHELL=/usr/bin/zsh tmux

0
2018-04-12 20:54



لست متأكدًا من سبب هذا التصويت. يبدو أنه صحيح: هناك مشكلة شائعة وهي استخدام غلاف مختلف على سبيل المثال. iTerm ولكن مع ترك قذيفة تسجيل الدخول /bin/bash لضمان عدم حدوث أي فواصل غير متكررة. iTerm لن تحدد $SHELLإلى اسم shell الجديد (غير متأكد من السبب) ، وستضعه تهيئة bash في shell تسجيل الدخول في حالة عدم التعيين عند بدء التشغيل. ثم يستخدم tmux هذه القيمة إذا default-shell لم يتم تعيينها بشكل صريح. - Sam Brightman
نعم ربما env SHELL=/usr/bin/zsh tmux أفضل؟ (تحديث الرد). - blueyed


الإجابة المقبولة لم تنجح بالنسبة لي.

كان علي أن أكتب كلاهما

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

و

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

في ~/.tmux.conf - لا تنس أن tmux kill-server; tmux، لإعادة تحميل tmux.conf


أنا أستخدم tmux -V 2.6 تحت Ubuntu 18 في محاكي gnome-shell.

أنا أيضا تعزيز tmux مع https://github.com/samoshkin/tmux-config. تحقق من ذلك ، انها حقا رائع.


0
2017-10-29 10:11