![Bourne 쉘: 로그인이 아닌 대화식에서는 무엇을 합니까?](https://linux55.com/image/104186/Bourne%20%EC%89%98%3A%20%EB%A1%9C%EA%B7%B8%EC%9D%B8%EC%9D%B4%20%EC%95%84%EB%8B%8C%20%EB%8C%80%ED%99%94%EC%8B%9D%EC%97%90%EC%84%9C%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9D%84%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
내가 이렇게 묻는 이유는https://unix.stackexchange.com/a/46856/84749, 제가 시작했을 때 screen
제가 하고 있던 일은 "대화형, 비로그인"이었습니다. 실제로 일어나는 일은 BASH가 아닌 Bourne 쉘 시스템에 로그인하고 있는데 로그인하면 ~/.profile
제대로 실행되고 별칭이 설정된다는 것입니다. 그러나 실행하면 screen
이러한 별칭이 손실되고 실행되지 않는 것 같으며 ~/.profile
다른 ~/.login
어떤 것도 시도하지 않습니다.
저는 Raspberry Pi 3에서 LibreELEC를 실행하고 있습니다.
답변1
LoginSession은 sh
호출될 때 사용자의 로그인 세션을 읽습니다 ~/.profile
. 이 작업을 수행한 후 변수가 파일 이름으로 설정되고 파일이 존재하는 경우 ENV
쉘은 해당 파일을 사용하여 로그인 세션을 추가로 초기화합니다.
로그인 쉘이 아닌 대화형 쉘은 $ENV
if ENV
설정만 사용하고 읽기는 사용하지 않습니다 ~/.profile
.
비대화형 쉘은 두 파일을 모두 사용해서는 안됩니다.
일반적으로 하나는 ENV
다음의 끝에서 내보내집니다 ~/.profile
.
ENV="$HOME/.shrc" # for example
export ENV # may be done as export ENV="..." too, in most shells.
예를 들어 as 또는 with bash
로 호출되면 sh
어떻게 될까요 bash --posix
?
~/.profile
필요에 따라 두 파일( 및 ) 을 모두 사용할 수 있지만 $ENV
구성 파일은 필요한 프로세스나 기타 사용자 데몬을 PATH
시작하기 위해 한 번만 설정하면 되는 환경 변수를 설정하고 내보내는 곳입니다. fetchmail
등을 사용할 것으로 예상되며 해당 파일은 설정 (GnuPG를 사용하는 경우), 별칭 설정(별칭은 하위 쉘에서 상속되지 않기 때문에) 등과 $ENV
같은 특정 쉘 세션/TTY에 대한 특정 사항을 설정하는 곳입니다.GPG_TTY
쉘은 기본적으로 및 를 ksh93
사용 하지만 이를 특정 방식으로 해석합니다.~/.profile
$ENV
$ENV
만약에 $ENV
/./
또는 으로 시작하면 ././
시스템 전체 구성 파일(예:)이 사용되지 않습니다 /etc/ksh.kshrc
.
이 파일 이름을 이 파일 이름으로 설정하지 않거나 명시적으로 또는 에서 가져온 경우가 아니면 이 파일은 ~/.login
사용되지 않습니다 .sh
ENV
~/.profile
$ENV