대화형 쉘, 비대화형 쉘, 로그인 쉘 및 비로그인 쉘의 차이점은 무엇입니까? [복사]

대화형 쉘, 비대화형 쉘, 로그인 쉘 및 비로그인 쉘의 차이점은 무엇입니까? [복사]

중복 가능성:
로그인 쉘과 비로그인 쉘의 차이점은 무엇입니까?

나는 /etc/profile그들이  어떻게 /etc/bash.bashrc 실행되는지 조사해 왔으며 일부는 비 로그인 쉘에 의해 실행되고 일부는 대화식 쉘에서 작동하는 등을 발견했습니다.

이러한 유형의 셸(예: 대화형 및 비대화형, 로그인 및 비로그인 등)의 차이점은 무엇입니까?

이 질문은 아주 기초적일 수도 있지만, 쉘이 무엇인지 먼저 물어봐야 할 것 같습니다. 쉘이란 무엇이며 관련성은 무엇이며 어떻게 사용하며 왜 존재합니까?

업데이트: 질문의 의도를 더 잘 이해하려면 정의 외에도 하나 또는 다른 셸의 사용 사례도 이해해야 합니다. 단순한 사전 정의가 아니라 이해를 돕는 사용 사례입니다.

답변1

쉘은 컴퓨터와 상호 작용하기 위한 텍스트 인터페이스를 제공하는 모든 프로그램의 일반 이름입니다. 명령을 입력하면 출력이 화면에 표시됩니다.

많은 셸에는 스크립팅 기능이 있습니다. 여러 명령을 스크립트에 넣으면 셸은 마치 키보드에서 입력한 것처럼 해당 명령을 실행합니다. 대부분의 셸은 스크립팅 기능을 프로그래밍 언어로 확장하는 추가 프로그래밍 구성을 제공합니다.

대부분의 Unix/Linux 시스템에서는 bash, csh, ksh, sh, tcsh, zsh 등 여러 셸을 사용할 수 있습니다. 사용자에게 명령 작동에 대한 다양한 옵션을 제공하고 스크립팅 언어의 복잡성과 기능이 다릅니다.

인터렉티브:이름에서 알 수 있듯이 대화형은 키보드를 통한 사용자 상호 작용을 통해 명령이 실행된다는 의미입니다. 예를 들어, 쉘은 사용자에게 입력을 요구할 수 있습니다.

비대화형:쉘은 자동화된 프로세스에서 실행될 수 있으므로 입력을 요청할 수 있거나 누군가가 출력을 볼 것이라고 가정할 수 없습니다. 예를 들어, 출력을 로그 파일에 기록하는 것이 더 나을 수도 있습니다.

로그인:이는 쉘이 사용자 로그인 시스템의 일부로 실행된다는 의미입니다. 일반적으로 사용자가 작업 환경을 설정하는 데 필요하거나 원하는 구성을 수행하는 데 사용됩니다.

비로그인:사용자가 로그인한 후 실행되거나 로그인한 사용자와 연결되지 않은 자동화된 프로세스에 의해 실행되는 기타 모든 셸입니다.

답변2

인터넷에서 컴퓨터의 연결을 끊어본 적이 없는 일부 사람들에게는 UNIX 시스템에 대한 많은 답변이 함께 제공된다는 사실이 이상하게 보일 수 있습니다. 예를 들어,남자 난교, "통화" 부분:

대화식 쉘은 옵션이 아닌 인수를 취하지 않고 -c 옵션 없이 표준 입력 및 오류가 터미널에 연결되어 있거나(isatty(3)에 의해 결정됨) -i 옵션으로 시작되는 쉘입니다. bash가 대화형이면 PS1이 설정되고 $-에는 i가 포함되어 쉘 스크립트나 시작 파일이 이 상태를 테스트할 수 있습니다.

관련 정보