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


50

'로그인'과 '대화 형'bash 쉘의 차이점은 무엇입니까? 아래에서 Wikipedia를 인용했지만 더 나은 답변을 줄 수 있습니까?

편집 : 이것은 커뮤니티 위키이므로 닫으려고 투표하기보다는 어떤 상황이 어떤 유형의 $ SHELL인지에 대한 예를 제공 할 수 있습니다.

시작 스크립트

Bash가 시작되면 다양한 스크립트로 명령을 실행합니다.

Bash는 대화식 로그인 쉘로 호출 될 때 파일이 존재하는 경우 먼저 / etc / profile 파일에서 명령을 읽고 실행합니다. 해당 파일을 읽은 후 ~ / .bash_profile, ~ / .bash_login 및 ~ / .profile을 순서대로 찾아서 존재하고 읽을 수있는 첫 번째 명령을 읽고 실행합니다.

로그인 쉘이 종료되면 Bash는 ~ / .bash_logout 파일 (있는 경우)에서 명령을 읽고 실행합니다.

로그인 쉘이 아닌 대화식 쉘이 시작될 때 Bash는 ~ / .bashrc에서 해당 파일이있는 경우 명령을 읽고 실행합니다. --norc 옵션을 사용하여이를 방지 할 수 있습니다. --rcfile 파일 옵션은 Bash가 ~ / .bashrc 대신 파일에서 명령을 읽고 실행하도록합니다.


절반 정도의 사이트 규칙에 더 적합하도록 질문을 편집했습니다. 유용한 정보를 삭제하려는 욕구를 이해하지 못할 것 같습니다 ...
Gareth

7
사람들이 왜이 질문을 투표합니까? 나에게 완벽하게 합법적 인 것 같습니까?
duffbeer703

2
어, 질문에서 답을 꺼내서 답으로 게시하십시오. 자신의 질문에 대답해도됩니다.
derobert

2
구별이 혼란 스럽기 때문에 매우 유효한 질문입니다. 예를 들어 xdm을 통해 그래픽 환경에 로그인하고 xterm을 실행하면 대화식 쉘이 표시되고 로그인 쉘 시작 파일이 실행되지 않습니다.
pjc50

답변:


16

로그인 쉘의 프로파일 파일에서 세션 중에 사용할 항목을 설정할 수 있으며 한 번만 수행하면됩니다. 몇 가지 아이디어 :

  • 연결 한 IP 주소를 포함하는 임시 파일을 작성하십시오. 나중에 방화벽 규칙을 설정하는 일부 스크립트에 포함 할 수 있습니다.
  • ssh-agent를 실행하고 SSH 키를 요청하고 SSH 에이전트 환경 변수를 파일에 저장하십시오.
  • 그것이 제한된 컴퓨터이고 동료가 서로의 로그인을 알고 싶다면, 로그인을 알리는 메시지를 작성하십시오 (1).

비 로그인 쉘 파일 ( .bashrc)에서 쉘을 구성해야합니다.

  • 멋진 프롬프트
  • 별명 설정
  • 기록 옵션 설정
  • 커스텀 쉘 함수 정의
  • 환경 변수 내보내기 (시스템 전체 설정이 빠지면 PAGER, EDITOR 일 수 있음)
  • 저장된 ssh-agent 변수로드 .bash_profile

일반적으로, 당신은 포함됩니다 .bashrc에서 .bash_profile다음에. 그런 다음 로그인 셸은 모든 사용자 지정 내용을 가져오고 .bash_profile파일에 이미있는 내용을 복제 할 필요가 없습니다 .bashrc.

[[ -f ~/.bashrc ]] && . ~/.bashrc

3
로그인 쉘은 컴퓨터에서 처음 시작할 때 시작되는 것입니까? 그 후에 여는 다른 모든 쉘은 대화식이거나 아닐 수 있습니다. cron에서 실행되는 쉘? 대화식으로 보이지 않지만 로그인입니까? 컴퓨터를 사용하지 않으면 어떻게 되나요? 답변되지 않은 질문들
François Beausoleil

4
지금, 그것은 내가 이해할 수있는 해답입니다 : linuxquestions.org/questions/linux-general-1/…
François Beausoleil
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.