2017-03-15 1 views
2

기본 세션이 csh 인 동안 bash에서 ssh를 사용하여 원격 서버에서 명령을 실행하고 싶습니다.SSH를 통해 원격 Linux 서버에서 명령을 실행하는 동안 CSH 대신 BASH

최소한의 예 (실제 명령은 더 복잡 내 IDE 원격 디버거에 의해 생성됩니다) :

ssh hostname 'ls | head' 

내가 관리자 권한이 없습니다. 오류 chsh: cannot lock /etc/passwd; try again later.

나는 다음과 같은

setenv SHELL /bin/bash 
exec /bin/bash --login 

을의 .cshrc에 추가하는 시도로 chsh -s /bin/bash 결과를 시도하지만 ssh를 통해 명령을 전송 콘솔을 정지 (동안 정기적으로 SSH 작품)

어떤 생각 방법 그것을 해결하기 위해?

참고 : 내 IDE의 디버거에서 자동으로 생성되는 ssh 명령에 액세스 할 수 없으므로 호스트를 구성하는 솔루션이 있어야합니다. IDE에서는 호스트 이름과 포트 번호 만 설정할 수 있습니다. (EDIT) 따라서 ssh hostname '/bin/bash -c "ls | head"'와 같은 솔루션이 늘

EDIT2 적용 IDE로 표시 실제 명령 (다시, 나는 그것을 편집 할 수 없습니다),하지만 떠들썩한 파티에서 사용하는 이유

ssh://[email protected]:2213/home/lab/username/anaconda2/envs/tf_011b/bin/python -u /specific/a/home/cc/cs/username/.pycharm_helpers/pydev/pydevd.py --multiproc --qt-support --client '0.0.0.0' --port 41823 --file /home/lab/username/remote_py/nlteach/show_attend_and_tell/train_saat_classifier.py --train_dir=/home/lab/username/nlteach/output/train/d=cub/imSD=11%imSP=rnd%tcSP=cvpr16/CSat/res50%lr0_02LrDTexpLrDc0_938OrmspWDc0/emb=512%ldTrn=0%nU=512%noHid=1%lr=0_02%lrDT=fix%lrDc=1%o=rmsp/ 

나는 확실하지 않다 서버가 작동하지만 csh 호스트에서 실패합니다.

감사합니다!

+0

실제 명령을 추가하십시오 (중요한 정보는 분명히 제거하십시오). – bishop

+0

@bishop, 그에 따라 편집 됨 – yuval

+0

'chsh'를 사용할 수있는 권한이 없다면, 사용 된 기본 쉘을 변경할 방법이 없습니다. 명령에''bash -c ''를 넣을 수 없다면, 나는 당신이 실수 한 것 같아요. – Barmar

답변

1

원격 측에서 호출 bash, 실행 명령을 무엇을 말하는 :

ssh hostname '/bin/bash -c "ls | head"' 

명령 (때문에 탈출 인용 부호의 예) 너무 복잡 경우, 스크립트에 명령을 쓰기, 복사 스크립트를 실행 한 다음 스크립트를 실행하십시오.

scp script.bash hostname:/tmp/ 
ssh hostname '/bin/bash /tmp/script.bash' 
+0

감사합니다. 저 밑 참고를보십시오. 클라이언트에서 보낸 명령을 조작 할 수있는 권한이 없습니다. – yuval

관련 문제