로그인/비로그인 및 대화형/비대화형 쉘

로그인/비로그인 및 대화형/비대화형 쉘

로그인/비로그인 쉘의 개념은 각각 비대화형/대화형 쉘의 개념과 동일합니까?

아니면 이러한 개념이 직교하여 네 가지 다른 조합이 발생합니까?

저는 다양한 상황에서 .bashrc스크립트가 어디서 .bash_profile나오는지 명확하게 이해하려고 노력하고 있으며 때로는 기사에서 이러한 개념을 같은 의미로 사용하는 것을 발견했습니다.

답변1

  • 로그인shell: 로그인 쉘은 특정 사용자로 시스템에 로그인합니다. 이를 위해서는 사용자 이름과 비밀번호가 필요합니다. ctrl+를 클릭하여 가상 터미널에 로그인 alt하면 로그인에 성공하면 로그인 셸(대화형)이 표시됩니다. F1원본 문서:

    • /etc/profile~/.profileBourne 호환 쉘 /etc/profile.d/*( 및
    • ~/.bash_profile배쉬용
    • /etc/zprofile~/.zprofilezsh 의 경우
    • /etc/csh.login~/.logincsh 의 경우
  • 로그인하지 않았습니다shell : 로그인 없이 실행할 수 있는 쉘. 이를 위해서는 현재 로그인된 사용자가 필요합니다. gnome에서 그래픽 터미널을 열면 이는 비로그인(대화형) 쉘입니다. 원본 문서:

    • /etc/bashrc~/.bashrc배쉬 용
  • 인터렉티브쉘: gnome 터미널(비로그인) 또는 가상 터미널(로그인)과 같이 대화식으로 명령을 입력하거나 중단할 수 있는 쉘(로그인 또는 비로그인)입니다. 대화형 셸에서는 프롬프트 변수( $PS1)를 설정해야 합니다. 원본 문서:

    • /etc/profile그리고~/.profile
    • /etc/bashrc또는 /etc/bash.bashrcbash의 경우
  • 비대화형쉘: 자동화된 프로세스에서 실행될 수 있는 (하위)쉘입니다. 호출 프로세스가 이를 처리하지 않으면 입력이나 출력이 표시되지 않습니다. 호출하는 사용자가 이미 로그인되어 있으므로 이 쉘은 일반적으로 비로그인 쉘입니다. 스크립트가 실행되는 셸은 항상 비대화형 셸이지만 스크립트는 사용자에게 값을 묻는 메시지를 표시하여 대화형 셸을 시뮬레이션할 수 있습니다. 원본 문서:

    • /etc/bashrc또는 /etc/bash.bashrcbash의 경우(그러나 대부분의 경우 스크립트 시작 부분에서 다음을 볼 수 있습니다. [ -z "$PS1" ] && return이는 비대화형 쉘인 경우 아무것도 하지 않음을 의미합니다).
    • 쉘에 따라 다릅니다. 그 중 일부는 변수의 파일을 읽습니다 $ENV.

관련 정보