로그인/비로그인 쉘의 개념은 각각 비대화형/대화형 쉘의 개념과 동일합니까?
아니면 이러한 개념이 직교하여 네 가지 다른 조합이 발생합니까?
저는 다양한 상황에서 .bashrc
스크립트가 어디서 .bash_profile
나오는지 명확하게 이해하려고 노력하고 있으며 때로는 기사에서 이러한 개념을 같은 의미로 사용하는 것을 발견했습니다.
답변1
로그인shell: 로그인 쉘은 특정 사용자로 시스템에 로그인합니다. 이를 위해서는 사용자 이름과 비밀번호가 필요합니다. ctrl+를 클릭하여 가상 터미널에 로그인 alt하면 로그인에 성공하면 로그인 셸(대화형)이 표시됩니다. F1원본 문서:
/etc/profile
~/.profile
Bourne 호환 쉘/etc/profile.d/*
( 및~/.bash_profile
배쉬용/etc/zprofile
~/.zprofile
zsh 의 경우/etc/csh.login
~/.login
csh 의 경우
로그인하지 않았습니다shell : 로그인 없이 실행할 수 있는 쉘. 이를 위해서는 현재 로그인된 사용자가 필요합니다. gnome에서 그래픽 터미널을 열면 이는 비로그인(대화형) 쉘입니다. 원본 문서:
/etc/bashrc
~/.bashrc
배쉬 용
인터렉티브쉘: gnome 터미널(비로그인) 또는 가상 터미널(로그인)과 같이 대화식으로 명령을 입력하거나 중단할 수 있는 쉘(로그인 또는 비로그인)입니다. 대화형 셸에서는 프롬프트 변수(
$PS1
)를 설정해야 합니다. 원본 문서:/etc/profile
그리고~/.profile
/etc/bashrc
또는/etc/bash.bashrc
bash의 경우
비대화형쉘: 자동화된 프로세스에서 실행될 수 있는 (하위)쉘입니다. 호출 프로세스가 이를 처리하지 않으면 입력이나 출력이 표시되지 않습니다. 호출하는 사용자가 이미 로그인되어 있으므로 이 쉘은 일반적으로 비로그인 쉘입니다. 스크립트가 실행되는 셸은 항상 비대화형 셸이지만 스크립트는 사용자에게 값을 묻는 메시지를 표시하여 대화형 셸을 시뮬레이션할 수 있습니다. 원본 문서:
/etc/bashrc
또는/etc/bash.bashrc
bash의 경우(그러나 대부분의 경우 스크립트 시작 부분에서 다음을 볼 수 있습니다.[ -z "$PS1" ] && return
이는 비대화형 쉘인 경우 아무것도 하지 않음을 의미합니다).- 쉘에 따라 다릅니다. 그 중 일부는 변수의 파일을 읽습니다
$ENV
.