![SSH를 통해 원격 서버에 연결할 때 Fish Shell에서 tmux를 자동으로 시작하는 방법](https://linux55.com/image/51906/SSH%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%EC%9B%90%EA%B2%A9%20%EC%84%9C%EB%B2%84%EC%97%90%20%EC%97%B0%EA%B2%B0%ED%95%A0%20%EB%95%8C%20Fish%20Shell%EC%97%90%EC%84%9C%20tmux%EB%A5%BC%20%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C%20%EC%8B%9C%EC%9E%91%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
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
.