자주 서버에 로그인 한 다음 특정 디렉토리로 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'