これを実行すると、$SHELL
リストの最初の項目としてリストされます。それでは、そこで捕まえて殻として使用しますか?tmux
/bin/sh
/etc/shells
tmux
私が実行すると、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
シェルの名前を解決するために使用されます。