chsh
관리자 권한이 없어서 실행할 수없는 경우 , 다른 사람 과 대화하십시오 .
예를 들어 시스템이 파일이 아닌 NIS 또는 LDAP를 사용하기 때문에 사용중인 시스템이 작동하지 chsh
않도록 구성되어 있기 때문에 루트가 아닌 것으로 사용할 수 없습니다 . 또는 시스템 관리자가 일부 제어권을 유지하려고 할 수도 있습니다.chsh
/etc/passwd
셸 변경 절차는 조직의 정책에 따라 다릅니다. chsh
일반적으로 수행 하는 로컬 명령이있을 수 있습니다 . 또는 쉘 변경을 요청하는 지원 티켓을 제출해야 할 수도 있습니다.
대부분의 다른 답변은 좋지만 관리자가 적절하게 응답하면 시작 스크립트를 해킹하는 것을 원하지 않을 수 있습니다. zsh -l
관리자가 내 계정을 업데이트 할 때까지 로그인 한 후 수동으로 호출했을 것입니다 .
명심해야 할 또 다른 사항 : 때때로 다른 쉘이 동일한 시작 파일을 사용할 수 있습니다. 예를 들어, sh
및 bash
실행할 수 있습니다 모두 $HOME/.profile
, 및 csh
및 tcsh
실행할 수 있습니다 모두 $HOME/.login
와 $HOME/.cshrc
(하지만 같은 쉘 특정 시작 파일 .bashrc
, .bash_profile
및 .tcshrc
이들을 대체 할 수 있습니다). 기본 쉘이 /bin/csh
있고를 사용하려는 경우 호출하도록 /bin/tcsh
업데이트 하면 무한 루프가 발생할 수 있습니다. 특정 시작 파일 을 실행하지 않으므로 문제가되지 않습니다 ..login
/bin/tcsh -l
zsh
bash
대부분의 쉘은 (실행중인 쉘 식별 변수 설정 $BASH_VERSION
, $tcsh
, $ZSH_VERSION
)를. 선호하는 쉘을 호출하기 위해 시작 코드를 작성하려는 경우,이를 쉘로 묶는 것은 좋은 생각 if
이 아니므로 해당 쉘을 아직 실행하지 않은 경우에만 실행됩니다. konsolebox의 답변 에서 코드 사용 :
if [ "${ZSH_VERSION:-unset}" = "unset" ] ; then
export SHELL=/bin/zsh
exec /bin/zsh -l
fi
(확인의 추가 복잡성은 "${ZSH_VERSION:-unset}"
단순히 정의되지 않은 변수에 대한 참조를 오류로 만드는 옵션 인을 "$ZSH_VERSION"
수행했을 가능성을 허용합니다 set -o unset
.)
zsh
온.bashrc
파일. 로그 아웃 및 로그인 및 완료!