bash
쉘에서 쉘로 전환했습니다 fish
. 나는 그것이 마음에 들었고 내 서버에서도 사용하기로 결정했습니다. tmux
연결되면 자동으로 시작하는 방법은 무엇입니까 ssh
? 나는 팔로우한다이것bash 명령이지만 fish
쉘과 달리 이 방법은 기본적인 재작성 없이는 작동하지 않습니다.
답변1
나는 대본을 다시 썼다. 가장 까다로운 부분은 내부가 작동하지 않기 때문에 ssh
종료하여 연결을 끊는 것 입니다.fish
exit
./.config/fish/config.fish
tmux
의 부모가 인 경우에만 fish
시작됩니다 ssh
.
이것은 내 파일의 일부입니다 ./.config/fish/config.fish
.
if status --is-login
set PPID (echo (ps --pid %self -o ppid --no-headers) | xargs)
if ps --pid $PPID | grep ssh
tmux has-session -t remote; and tmux attach-session -t remote; or tmux new-session -s remote; and kill %self
echo "tmux failed to start; using plain fish shell"
end
end
내 다른 질문에서 더 읽기 쉬운 버전을 찾을 수 있습니다. (감사합니다.말도 안되는 물고기, "Fish Shell"의 저자):Fish Shell에서 부울 값을 사용하는 방법은 무엇입니까?
답변2
스크린 부분, 자동 시작 기능을 제공하는 tmux 기반 터미널 멀티플렉서입니다.
답변3
다음 위치에 .fish 파일을 만듭니다 .config/fish/conf.d
.
if status --is-interactive
echo server is interactive
if set -q SSH_CONNECTION[1]; and set -q SSH_CLIENT[1]; and set -q SSH_TTY[1]; or pstree -p | grep "sshd.*\($fish_pid\)"; and not set -q TMUX
tmux new -AD -t remote -s remote
end
end
로컬 머신에도 tmux 세션이 있는 경우 ++를 사용하여 CTRL원격 세션에서 분리해야 합니다. 자세한 내용은B CTRLB D여기. -AD
tmux 명령에서 사용하는 이유를 이해하려면 확인하십시오.여기.
폴리스티렌허용되는 답변을 명확히 하기 위해 일반적으로 Fish는 로그인 쉘로 설정되지 않습니다. 따라서 ssh 후에는 fish
yes PPID
및 bash
no 를 실행합니다 ssh
.