특정 디렉토리로 SSH하는 방법? 특정 디렉토리로 cd합니다. 이 두 명령을

자주 서버에 로그인 한 다음 특정 디렉토리로 cd합니다. 이 두 명령을 하나로 단순화 할 수 있습니까?

ssh bob@foo
cd /home/guest

가능한 경우 ‘foo’에서 아무것도 변경하지 않기를 원합니다. 서버 관리자에게 문의해야하기 때문입니다. 나는 bash를 사용하지만 다른 쉘에서 대답 할 수 있습니다.



답변

~ bob / .bash_profile 파일의 마지막 줄을 foo에 넣으십시오.

cd /home/guest >& /dev/null

이제 로그인 할 때마다 (SSH 또는 다른 방법으로) cd 명령이 실행됩니다. ssh로 주변을 둘러 볼 필요가 없습니다.

“가능한 경우 ‘foo’에 대한 변경을 피하고 싶다”고 썼지 만 bob @ foo 계정이 귀하의 계정이라면 자신의 .bash_profile을 변경할 수 있습니다.


답변

이것은 OpenSSH와 함께 작동합니다 :

ssh -t bob@foo 'cd /home/guest && exec bash -l'

마지막 인수는 로그인 쉘에서 실행됩니다. -t에 전달 플래그 ssh힘은 ssh대화 형 쉘에 필요한 의사 터미널을 할당합니다. -l에 전달 플래그 bash시작은로 비난 로그인 쉘 .


답변

@EvanTeitelman의 솔루션과 유사하게 다음과 같이 할 수도 있습니다.

$ ssh -t bob@foo "cd /tmp ; bash"

또는 다른 쪽 끝의 껍질을 모르는 경우 :

$ ssh -t bob@foo "cd /tmp && exec \$SHELL"

또는 이렇게 :

$ ssh -t bob@foo 'cd /tmp && exec $SHELL'


답변