답변:
시스템 관리자가 기본 쉘을 변경할 수 있는지 물어봐야 할 것입니다. 그들이 대학에 없었을 때와 같이 그들이 할 수 없거나 그렇지 않을 경우, 내가 사용한 해결 방법은
# Exec bash if using an interactive shell.
if ($?prompt) then
setenv SHELL /path/to/bash
exec $SHELL
endif
에 .cshrc
. ( /path/to/bash
물론 실제 경로 로 바꿔야 bash
합니다. 시스템 제공 버전이 사용자의 취향에 맞지 않는 경우 홈 디렉토리 아래에 있는 버전 일 수도 있습니다 .) 효율성을 위해 가장 좋습니다. 일찍이에서이 작업을 수행하려면 .cshrc
추가 피하기 그래서, 가능으로 .cshrc
한 번 논쟁이 될 것이다 처리 bash
을 대체 csh
과정을.
당신은 단순히 연결할 수 있습니다
ssh -t yourhost bash
로그인 할 때 Bash 셸을 자동으로 실행합니다.
아래 의견에서 대안을 볼 수 있습니다
ssh -t yourhost exec bash
exec
새 프로세스를 실행하고 이전 프로세스를 종료하므로 csh
프로세스가 직접 종료됩니다.
APPEND 경우 -l
배쉬의 인수로 명령의 끝은, 그것이 로그인 쉘로 취급됩니다 만, 아마도 그것은 필요하지 않습니다.
ssh -t yourhost exec -a bash -l bash
초기 쉘 내부에서 프로세스로 실행하지 않고 원래 쉘을 완전히 대체합니다.
ssh -t host bash
유사한 상황에서 간단한 솔루션을 직접 사용하고 있지만 방법이 더 좋습니다. 전혀 생각하지 못했습니다 exec
, 감사합니다! 귀하의 제안으로 게시물을 업데이트하겠습니다.
bash
내장 명령에 인수를 사용하여 약간의 공상을 얻었습니다 exec
.
-a
하고 -l
. 내 대답에서 예제를 수정하겠습니다.
내가 찾은 최고의 솔루션은 stackexchange에서 하나였습니다. 다음은 링크 스택 교환 이며 솔루션은 다음과 같습니다.
홈 디렉토리에 .profile 파일을 작성하고 다음에 붙여 넣거나 .profile이 이미있는 경우 끝에 추가하십시오.
case $- in
*i*)
# Interactive session. Try switching to bash.
if [ -z "$BASH" ]; then # do nothing if running under bash already
bash=$(command -v bash)
if [ -x "$bash" ]; then
export SHELL="$bash"
exec "$bash"
fi
fi
esac
PAM을 통해 LADP 인증을 사용할 때 많이 검색했습니다. 최상의 솔루션은 사용자 홈 디렉토리의 .profile 파일에 SHELL = / bin / bash exec / bin / bash를 넣는 것입니다
ldapmodify
작동 할 수 있습니다.