사이트에서이 질문을 아직 찾지 못한 것에 놀랐습니다. 그래서 오늘 $
가 왔습니다. 새 사용자로 로그인 한 후 시작됩니다. 내 기본 사용자의 프롬프트가 username@computername:~$
로 시작하기 때문에 예상치 못한 일이었습니다.
그러면 어떻게 전환 할 수 있습니까? bash에 대한 다른 셸?
댓글
답변
알 수없는 셸이 절대 명령 실행을 지원한다고 가정하면 다음을 시도해 볼 수 있습니다. /bin/bash
기본 셸을 변경하려면 chsh(1)
를 사용합니다. 샘플 사용 : chsh -s /bin/bash $USER
댓글
- chsh가 셸을 영구적으로 변경합니까 아니면 현재 세션에 대해서만 변경합니까? ?
- @mouche 영구적으로;
/etc/passwd
- @mouche,
chsh(1)
의 항목을 변경하면 나열된 셸로만 변경할 수 있습니다./etc/shells
(아마도 사용 가능함).chsh -l
에는 대안이 나열되어 있습니다. 일부 (예 :nologin
)는 로그인에 사용해서는 안되는 계정에 대해 정의되며 (자신을 잠그는 좋은 방법), 특별한 용도를위한 로컬 추가가있을 수 있습니다.
li>
답변
bash
를 입력합니다. 이를 영구적으로 변경하려면 /etc/passwd
를 편집하여 기본 셸을 /bin/bash
로 변경합니다.
여기 내 /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이 올바르게 설정되지 않은 경우 로그인 할 수 없다는 의미는 아닙니다 (로그인 셸없이 그래픽으로 로그인 할 수 있기 때문에 Arch Linux에서 버그를보고했습니다). /bin/bash
및 /bin/zsh
는 모두 유효한 셸입니다. 유효한 셸 목록은 /etc/shells
를 참조하세요. 당신의 시스템. 여기에 “관심이 있다면 내 /etc/shells
가 있습니다.
/bin/sh /bin/bash /bin/ksh /bin/zsh /bin/dash
예, 또는 usermod
는 동일한 작업을 수행합니다. 이들은 구조화 된 텍스트 파일과 TIMTOWTDI 일뿐임을 기억하십시오.
댓글
-
passwd
- @Michael
/etc/passwd
에서 셸을 변경하는 방법은 약 5 개 (POOMA)가 있습니다. ' 어떤 것도 나열하고 싶지 않았습니다. , 왜냐하면 저는 항상 수동으로하기 때문입니다. chsh와 usermod는 둘 다 할 수 있습니다. - 구성 파일을 다루는 것은 나쁜 생각입니다 (TM). 오류로 인해 시스템을 사용할 수 없게 될 수 있습니다. 예, 대부분의 경우 유일하고 빠른 방법이지만 극심한주의 로 수행합니다.
를 수동으로 수정하는 대신 chsh
를 사용하는 것이 좋습니다.
답변
chsh 또는 구성 수동 편집이 작동하지 않는 경우 하지만 ~ / .profile 스크립트는 로그인시 실행됩니다. 다음 줄을 추가합니다.
exec /bin/bash --login
Comments
- 잠시 둘러 본 후 이것이 필요한 솔루션이었습니다. 감사합니다!
- 좋은 아이디어, 특히 셸이 시작할 때 파일 소스를 선택한 경우 …
-
touch ~/.bash_profile
또는 그렇지 않으면 bash가 자체적으로 루프를 실행합니다. bash는~/.bash_profile
가 수행하지 않는 경우~/.profile
를 사용합니다. id = “81d1d16526″>
존재하지 않습니다.
$
가username@computername:~$
' 배쉬가 아니었다는 것을 의미하지는 않습니다. ' 프롬프트의 정확한 형식은 PS1 변수에 의해 설정되며 사용자마다 다르게 설정하거나 사용자 지정할 수 있습니다.echo $SHELL
현재 셸이 무엇인지 알아보기 위해./bin/sh
인 경우 ' '는 일반적으로 다른 것에 대한 심볼릭 링크입니다. 나는 'ls -l /bin/sh
를 입력하여 심볼릭 링크를 ' 확인합니다. 어떤 경우에는 무언가에 대한 심볼릭 링크가 동작을 변경하지만 ' bash가 그런식이라고 생각하지 않습니다./bin/sh
많은 bash 기능을 비활성화 합니다 (POSIX 준수 모드로 전환됨).