python
그래서 저는 Linux에 대한 경험이 있고 기본 셸 인터프리터(예: sh
또는 ) 대신 다른 인터프리터(예: )를 실행하도록 터미널을 수정하는 것이 가능한지 항상 궁금했습니다 bash
.
(이것은 단지 "케이스 교체는 어디서 하나요?" 또는"csh에서 bash로 기본 쉘을 변경하는 방법".소속되지 않은 사람들을 운영하는 것에 관한 것입니다.껍데기, 그 자체이지만 통역사. 나는 일을 더 명확하게 하기 위해 Python을 예로 사용하고 있지만 쉽게 php나 다른 인터프리터라고 말할 수 있습니다. )
가능합니까? 그렇다면 어떻게 할 수 있습니까?
답변1
의견과 첫 번째 답변에서 언급 했듯이 chsh
. /etc/shells
다른 쉘 /etc/passwd
(또는 다른 사용자 데이터베이스) 을 수동으로 강제 login
로 실행하는 경우(시도해 본 적은 없음) 문제가 해결되지 않습니다 python
. 에 나열되어 있습니다 /etc/shells
.
로그인 쉘에는 주로 사용자 환경을 설정하는 특정 작업이 있습니다. 따라서 로그인 쉘만 읽을 수 있습니다 /etc/profile
.
가능한 타협
일반 쉘에 대한 링크를 생성할 수 있습니다(기호 링크 또는 하드 링크, 현재로서는 어느 것이 더 나은지에 대한 의견은 없습니다).
cd /bin
ln -s bash bash-python
그리고 사용자의 기본 쉘 /bin/bash-python
에 추가하여 기본 쉘로 설정합니다. (또는 ) /etc/shells
에서 해당 이름으로 쉘이 시작되고 실행되었는지 확인할 수 있습니다 ./etc/profile
/etc/bash.bashrc
python
[[ $0 =~ bash-python ]] && exec python
# or
[[ $0 =~ bash-python ]] && python
어느 것이 더 나은지 아직 확신할 수 없습니다. 아마도 exec
로그인이 없는 변형일 수도 있지만 wtmp
로그인 쉘이 존재하는 후에 PAM이 수행되는지는 확실하지 않습니다.
답변2
chsh
로그인 셸을 전환할 수 있습니다(제한 사항이 적용됩니다. 참조 /etc/shells
).
답변3
예, 가능합니다. 한 가지 방법은 터미널을 적절하게 구성하는 것입니다. 이는 터미널 에뮬레이터에 따라 다릅니다.
그놈 터미널에서는 원하는 구성 파일의 명령을 편집할 수 있습니다:
이를 통해 기본 셸 대신 원하는 명령으로 터미널을 열 수 있습니다.
이는 다음보다 덜 침습적입니다.기본 쉘을 완전히 변경하십시오.(쉘 중 하나를 사용하지 않는 경우 관리 지원도 필요합니다 /etc/shells
).