알 수없는 쉘에서 bash로 어떻게 전환합니까? 로그인 한 후 나타났습니다. 메인

사이트에서이 질문을 아직 찾지 못했다는 것에 놀랐습니다. 그래서 오늘 $새로운 사용자로 로그인 한 후 나타났습니다. 메인 사용자의 프롬프트가로 시작하기 때문에 예기치 않은 결과였습니다 username@computername:~$.

그렇다면이 다른 쉘에서 bash로 어떻게 전환합니까?



답변

알 수없는 쉘이 절대 명령 실행을 지원한다고 가정하면 다음을 시도 할 수 있습니다. /bin/bash

기본 쉘을 변경하려면을 사용 chsh(1)합니다. 샘플 사용법 :chsh -s /bin/bash $USER


답변

에 입력하십시오 bash. 이것을 영구적으로 유지하려면 /bin/bash편집 하여 기본 쉘을 로 변경하십시오 /etc/passwd.

여기 내 스 니펫이 있습니다 /etc/passwd.

avahi:x:84:84:Avahi daemon:/:/bin/false
xenoterracide:x:1000:100::/home/xenoterracide:/bin/zsh
postgres:x:88:88::/var/lib/postgres:/bin/zsh
bob:x:1001:1001::/home/bob:/bin/bash
usbmux:x:140:140:usbmux user:/:/sbin/nologin

가장 마지막 필드는 쉘을 포함하며, :유효하거나 유효하지 않은 쉘로 마지막 필드를 수정 하면 작동합니다. /bin/false그리고 /sbin/nologin둘 다 사용자에게 실제 로그인 쉘이 없음을 의미하지만, pam이 올바르게 설정되지 않은 경우 이것이 로그인 할 수 없음을 의미하지는 않습니다 (아치 리눅스에서 버그를보고했습니다. 로그인 쉘). /bin/bash그리고 /bin/zsh모두 유효 포탄입니다, 참조 /etc/shells하여 시스템에 유효한 포탄의 목록. /etc/shells관심이 있다면 여기에 있습니다.

/bin/sh
/bin/bash
/bin/ksh
/bin/zsh
/bin/dash

예 , 동일한 작업을 사용 chsh하거나 usermod수행 할 수 있습니다. 이러한 파일은 구조화 된 텍스트 파일과 TIMTOWTDI입니다.


답변

경우 chsh 명령 는 config을 편집하거나 수동이되지 작업을하지만, ~ / .profile에 스크립트가 로그인시 실행되는 것,이 줄을 추가합니다 :

exec /bin/bash --login