기본 쉘로 csh에서 bash로 변경하는 방법


34

내가 가진 csh같이, 내 기본 쉘로 echo $SHELL. bash기본 쉘로 전환하고 싶습니다 . 나는 쓸모없는 다음 접근법을 시도했다.

  1. chshI 수 :

    chsh: can only change local entries; use ypchsh instead.
  2. ypchshI 수 :

    ypchsh: yppasswdd not running on NIS master host ("dcsun2").

.chsrc홈 디렉토리 에만 있고 .profile에서 파일을 찾을 수 없습니다 /etc. 기본 쉘을 bash어떻게 변경할 수 있습니까?


4
어떤 유형의 유닉스인지 아는 것이 도움이 될 수 있습니다.
enzotib

답변:


43
  1. bash설치되어 있는지 확인하십시오 .

  2. 의 위치를 ​​배우십시오 bash:

    which bash

    또는

    whereis bash

    아래에서는 위치가이라고 가정합니다 /bin/bash.

    a) 관리 권한이 있으면 루트 권한으로 실행하십시오.

    usermod -s /bin/bash YOUR_USERNAME

    ( YOUR_USERNAME사용자 이름으로 대체 ).

    b) adm이없는 경우 권한을 유지하려면 bash --login로그인 에서 .cshrc또는 .profile(홈 디렉토리의) 끝에 아래 줄 두어 계속 실행할 수 있습니다 .

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

2b. 올바른 경로로 bash열거되어 있는지 확인하십시오 /etc/shells.
manatwork

@manatwork 2b가 아니라 2a 와 관련이 있습니다 . 솔루션이 작동하지 않는 이유를 판별하기 위해 이상하거나 손상된 시스템 설정에서만 유용합니다.
rozcietrzewiacz

1
1. SHELL = / bin / bash는 명령을 찾을 수 없음 오류를 제공합니다. 2. 귀하의 솔루션은 프롬프트로 bash 쉘을 제공합니다. 그러나 로그인 쉘은 변경되지 않습니다. 그래도 도움을 주셔서 감사합니다.
Sumod

1
이 문제를 해결하기 위해 내가 한 일이 있습니다. 1. .cshrc 파일의 exec / bin / bash --login 2. SHELL = / bin / bash를 설정 한 다음 / etc / profile 파일에서 SHELL을 내 보냅니다. 감사.
Sumod

2
아 죄송합니다 export SHELL=/bin/bash. 첫 번째 줄은 이었습니다. 실제로 그보다 더 좋은 방법이 있습니다-업데이트를 참조하십시오.
rozcietrzewiacz

13

시스템 관리자에게 문의하십시오. 그는 일을 잘못 설정했습니다. 경우 당신은 당신의 시스템 관리자 다음 당신은했습니다 잘못 설정 것을.

오류 메시지는 매우 직설적으로 보입니다. yppasswddcsun2에서 실행하고 있지 않습니다 . 그것은해야한다.

그러나 빠른 Google 검색을 수행 하면 클라이언트와 서버 모두에서 실행중인 경우이 오류가 발생한다는 결과 가 나타납니다 yppasswd. 이 경우 클라이언트에서 끄십시오.


로그인 쉘로 csh를 사용하는 경우에도 로그인 할 때 bash를 호출 할 수 있습니다. 다음 명령을 입력하십시오 ~/.login( chsh 또는 관리자 권한없이 기본 쉘 변경 참조 ).

sleep 2
if (-x /usr/local/bin/bash) then
  exec /usr/local/bin/bash -l
endif

/usr/local/bin/bash필요한 경우 올바른 경로로 교체하십시오 . 모든 것이 작동하면 제거하십시오 sleep 2(이는 지연 Ctrl+C되어 문제가 발생할 경우 csh 프롬프트로 떨어질 수 있습니다 ).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.