답변:
bash
로그인 쉘로 호출 된다는 의미입니다 .
man bash
말한다 :
로그인 쉘은 인수 0의 첫 문자가
-
이거나--login
옵션으로 시작된 문자입니다 .bash가 대화식 로그인 쉘 또는
--login
옵션이 있는 비 대화식 쉘로 호출 될 때/etc/profile
파일이 존재하는 경우 먼저 파일에서 명령을 읽고 실행 합니다. 해당 파일을 읽은 후, 그것은을 찾습니다~/.bash_profile
,~/.bash_login
그리고~/.profile
, 순서대로, 그리고 읽고 존재하고 읽을 수있는 첫 번째에서 실행하는 명령을.--noprofile
쉘이 동작을 억제하기 시작할 때 옵션을 사용할 수있다.로그인 쉘이 종료되면 bash는 파일에서 명령을 읽고 실행합니다 (있는
~/.bash_logout
경우).
당신은 찾을 수 있습니다 login -pf
당신에 ps
기본적으로 로그인 쉘을 시작 출력.
실행 시도 login -pf
하고 login -pfl
그 차이를 참조하십시오. man login
차이점을 설명합니다.
-l
이 로그인 세션이 아니라고 로그인에 의해 실행 프로그램 지시 (관례를, 로그인 세션의 첫 번째 문자로 하이픈으로 프로그램에 신호되어argv[0]
,이 옵션을 비활성화하는), 및 방지 그것을에서chdir(2)
사용자의 홈 디렉토리에 보내고 . 기본값은 하이픈을 추가하는 것입니다 (이것은 로그인 세션입니다).
echo $0
:에 echo $0
의해 호출 된 터미널을 입력 ctrl + alt + f1
하면 결과는 다음과 같습니다 -bash
. 하지만에 의해 호출 된 termianl로 입력하면 ctrl + alt + t
결과는 bash
(대 시점 없음)입니다. 이유를 설명해 주시겠습니까?
--login
인수 와 함께 시작되면 bash는 변경되지 않지만 argv[0]
로그인 쉘 역할을합니다.
man
인용에 감사드립니다