tmuxは、使用するシェルを選択するために/ etc / shellsを使用しますか?

tmuxは、使用するシェルを選択するために/ etc / shellsを使用しますか?

これを実行すると、$SHELLリストの最初の項目としてリストされます。それでは、そこで捕まえて殻として使用しますか?tmux/bin/sh/etc/shellstmux

私が実行すると、tmux show -g次のようになります。

assume-paste-time 1
base-index 0
bell-action any
bell-on-alert off
default-command ""
default-shell "/bin/sh"
destroy-unattached off
detach-on-destroy on
display-panes-active-colour red
display-panes-colour blue
display-panes-time 1000
display-time 750
history-limit 2000
lock-after-time 0
lock-command "lock -np"
message-command-style fg=yellow,bg=black
message-style fg=black,bg=yellow
mouse off
mouse-utf8 on
prefix C-b
prefix2 <NONE>
renumber-windows off
repeat-time 500
set-remain-on-exit off
set-titles off
set-titles-string "#S:#I:#W - "#T" #{session_alerts}"
status on
status-interval 15
status-justify left
status-keys emacs
status-left "[#S] "
status-left-length 10
status-left-style default
status-position bottom
status-right " "#{=21:pane_title}" %H:%M %d-%b-%y"
status-right-length 40
status-right-style default
status-style fg=black,bg=green
status-utf8 on
update-environment "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY"
visual-activity off
visual-bell off
visual-silence off
word-separators " -_@"

default-shell "/bin/sh"/etc/tmux.conf興味深いようですが、デフォルト値がないことも知っています。

答え1

習慣。サーバーが起動すると、tmuxは最初に$ SHELLを見てデフォルトのシェルを入力し、機能しない場合(passwdデータベースで)ユーザーシェルを試し、機能しない場合は/ bin /を試します。シェン。

/ etc / shellsは、ユーザーが自分のシェルに設定できるシェル(chshまたは他のコマンドを使用)をリストし、ユーザーの実際のシェルが何であるかを指定しません。

答え2

それでは、tmuxはそれからそこから持ってきて、シェルとして使用しますか?

いいえ。実行する必要があるシェルを選択する方法は、次のとおりですman tmux

デフォルトのシェルパス

デフォルトのシェルを指定します。 default-commandオプションが空の場合は、新しいウィンドウのログインシェルとして使用され、実行可能ファイルへのフルパスである必要があります。起動時に、tmuxは最初の適切なSHELL環境変数、getpwuid(3)によって返されたシェル、または/ bin / shでデフォルト値を設定しようとします。このオプションは、tmuxをログインシェルとして使用するときに設定する必要があります。

まず、tmux始めましょう$SHELL$SHELL通常、Xログインマネージャなど、システムログインの初期段階で設定されます。

次に、詳細を読むことができる情報を/etc/passwd使用して解析します。最後に、両方の方法が失敗した場合は起動します。getpwuid()man getpwuid/bin/sh

ご覧のとおり、実行するシェルを決定する/etc/shellsのにまったく役に立ちません。tmux一時的に名前を変更しても機能し続ける tmuxことができます。

sudo mv /etc/shells /etc/shells.bak

/etc/shells指定する有効なログインシェルのパス名(オプション) で述べたように FHS。たとえば、chshシェルの名前を解決するために使用されます。

関連情報