본질적으로 쉘이 로그인했는지 아닌지, 대화 형인지 또는 정확히 한 가지 이유로 중요하지 않은지 여부 :
초기화 파일 및 기본 옵션 세트는 쉘의 로그인 여부와 대화식 여부에 따라 다릅니다.
이에 따라 쉘이 로그인인지 아닌지 대화식인지 아닌지 여부는 사용 된 호출 ( 정확한 명령 이름 및 옵션) 에 따라 다릅니다 .
두 가지 속성은 쉘이 로그인했는지 여부에 관계없이 쉘이 대화식인지 아닌지를 결정하는 것과 관련이 없는지 여부에 관계없이 직교합니다.
다음 중 하나라도 해당되면 Bash가 로그인 쉘을 시작합니다.
argv[0]호출 된 명령의 이름은 -
-l옵션이 지정
마찬가지로 bash는 다음 중 하나에 해당하는 경우 대화식 쉘을 시작합니다.
- 실행할 파일 (예 : 명령이 아니었다
bash some/file) 또는 실행할 명령 문자열 ( bash -c 'foo') 이 지정되지 않았습니다 (실제 조건은 좀 더 복잡합니다. 매뉴얼 참조).
-i옵션 지정
특히 (역설적으로) 후자 bash -ic 'foo'는 대화식 쉘 을 시작 한다는 것을 의미합니다 .
따라서 다음은 대화식 쉘에 로그인이 시작되고 호출과는 아무런 관련이 없지만 대화식 쉘은 로그인을 시작합니다.
bash -lic true
콘솔이나 GUI를 통해 로그인하면 로그인 셸이 시작되거나 로그인이 전적으로 적절한 호출을 사용하여 로그인 프로세스의 영향을받습니다.
조건과 효과는 bash 매뉴얼의 시작 파일 섹션에 자세히 설명되어 있습니다.
혼동의 주요 원인은 "로그인"쉘에 대한 또 다른 공통의 의미가 있다는 것입니다.
사용자의 로그인 쉘은 해당 사용자 passwd항목에 정의 된 쉘입니다 ( /etc/passwdLDAP 또는 다른 소스 에서 제공 될 수 있음 ).
login프로그램, SSH 등은 등이 쉘 시작 로그인 답의 나머지 부분에서 의미 의미에서 쉘 - 선도적으로 -명령 이름으로, 일반적으로. 특히 혼란 스러우 길 원한다면 다음과 같이 말할 수 있습니다.
일부 로그인 프로세스는 사용자의 로그인 쉘을 로그인 쉘로 시작합니다.
GUI 로그인은 개발자가 편리하다고 생각했기 때문에 순수하게 로그인 셸을 시작한다는 점에 유의하십시오. LightDM은 분명히 대화식이 아니며 사용자의 로그인 셸 (두 번째 의미)에 의존하지 않는 로그인시 스크립트를 실행합니다. 로그인 셸을 시작하는 디스플레이 관리자에 의존하지 마십시오. 모든 로그인 관리자가 아니라 Wayland 및 GNOME에서는 로그인 프로세스가 셸 스크립트를 전혀 사용하지 않습니다.
non-interactive login shell입니다.