programing

로그인 셸과 대화형 셸의 차이점은 무엇입니까?

goodsources 2023. 6. 10. 09:03
반응형

로그인 셸과 대화형 셸의 차이점은 무엇입니까?

의 개요login shell그리고.interactive shell그리고 무엇이.bash_profile그리고..bashrc?

대화형 셸은 -s가 지정되지 않은 경우, -c 옵션을 지정하지 않은 경우, 비옵션 인수 없이 시작된 셸이며, 입력 및 오류 출력이 모두 터미널에 연결된 경우(isatty(3)에 의해 결정됨) 또는 -i 옵션으로 시작된 셸입니다.

대화형 셸은 일반적으로 사용자의 단말기에서 읽고 씁니다.

[bash manual]

로그인 셸은 로그인하는 셸입니다.에서 로그인 셸을 인식할 수 있습니다.ps -f목록에는 프로그램 이름의 시작 부분에 하이픈이 있습니다. 예:

root      3561  3553  0 09:38 pts/0    00:00:00 -bash
qa        7327  3432  0 10:46 pts/1    00:00:00 -bash

대화형 셸은 일반적으로 터미널인 표준 입력에서 명령을 읽는 셸입니다.

예를들면,

  • xterm 또는 터미널 에뮬레이터를 사용하여 bash에 로그인하는 경우putty그러면 세션이 로그인 셸이자 대화형 셸입니다.
  • 입력할 경우bash그런 다음 대화형 셸을 입력하지만 로그인 셸이 아닙니다.

셸 스크립트(셸 명령이 포함된 파일)가 실행되면 로그인 셸도 대화형 셸도 아닙니다.

시작 파일은 bash에서 매우 조정 가능합니다.

로그인 bash 셸이 호출되면/etc/profile소스됨(현재 환경에서 사용됨).그런 다음 세 개의 파일이 존재하는지 확인합니다.이러한 파일에 대한 검사는 이 순서대로 수행되며, 가장 먼저 존재하는 파일이 실행됩니다.

  • /etc/profile
  • ~/.bash_profile
  • ~/.bash_login
  • ~/.profile

일치하는 파일이 발견되면 다른 파일이 존재하더라도 무시됩니다./etc/bashrc파일은 둘 다에 의해 사용될 수 있습니다.~/.bash_profile그리고~/.bashrc파일입니다. 그 말은 즉,/etc/bashrc파일은 로그인 셸이든 비로그인 셸이든 bash의 모든 대화형 호출에서 소스됩니다.

그래서 그..bashrc또한 새 대화형 셸을 요청할 때마다 파일이 실행됩니다.여기에는 셸 스크립트가 포함되지 않습니다.일반적으로 변수, 별칭 또는 함수는 이 파일에 배치됩니다.

적절한 지침이 있으면 Bash 셸 스크립트가 다른 파일을 읽습니다.사용자가 정의하는 경우(일반적으로 사용자 자신).bash_profile변수BASH_ENV파일 이름이 포함되어 있으면 스크립트가 이 파일을 읽습니다.이 변수가 설정되지 않은 경우(내보내기) bash 스크립트는 시작 파일을 읽지 않습니다.

"셸"이 무엇인지 알고 있으며 이를 사용하고 있기 때문에 질문은 로그인 셸과 다른 모든 것의 차이만을 대상으로 합니다.

로그인 셸은 시작할 때 하나 이상의 초기 설정 스크립트(리소스)가 로드되며 일반적으로 이름에 "profile"이 지정되어 있다는 점에서만 다른 셸과 다릅니다.기본 설정은 이후에 열린 셸에 대해 파생되므로 한 번만 정의하면 됩니다.

언급URL : https://stackoverflow.com/questions/18186929/what-are-the-differences-between-a-login-shell-and-interactive-shell

반응형