이것을 실행하면 $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
쉘의 이름을 확인하는 데 사용됩니다 .