쉘 세션에는 몇 개의 STDIN이 존재합니까?

쉘 세션에는 몇 개의 STDIN이 존재합니까?

저는 주니어 Java 개발자이며 UNIX 시스템을 처음 접합니다.

제가 질문하는 것이 맞는지 모르겠습니다.

따라서 IDE 환경에서 STDIN은 일반적으로 IDE의 콘솔을 나타냅니다.

UNIX 쉘에서 STDIN은 명령줄 프롬프트를 참조하는 것으로 보입니다.

그렇다면 쉘 세션에는 몇 개의 STDIN이 존재할 수 있습니까?

쉘 프롬프트 외에 다른 입력 스트림이 있습니까? (비표준 입출력과 유사)

답변1

다른 관점에서 생각해 보세요.

모든프로세스파일 설명자가 많이 있습니다. 관례적으로 처음 세 개는 stdin, stdout 및 stderr입니다.

프로세스를 실행할 때 이러한 설명자를 다른 위치로 "지정"할 수 있습니다.

IDE에서 셸을 실행하면 IDE는 이러한 셸을 IDE에서 제공하는 콘솔로 지정합니다.

xterm 내에서 쉘을 실행하면 xterm은 이러한 쉘을 xterm이 제공하는 창/키보드 상호 작용으로 가리킵니다.

직렬 포트(임베디드 시스템에서 일반적임)를 통해 셸을 실행하면 이러한 포트는 직렬 포트를 가리킵니다.

쉘에서 쉘을 실행하고 리디렉션하면 파일을 가리킬 수 있습니다.

마찬가지로, 셸에서 다른 프로세스(프로그램)를 실행할 때 해당 프로그램의 stdin 및 stdout을 예를 들어 >및 를 통해 리디렉션할 수 있습니다 <.

"STDIN은 명령줄 프롬프트를 의미합니다." 쉘 프로세스 자체에는 쉘이 호출될 때 설정된 모든 것을 참조하는 이러한 설명자가 있으며, 쉘은 이러한 설명자를 쉘에서 시작된 다른 프로그램에 상속할 수 있습니다(또는 해당 프로그램에 대해 다른 설명자를 사용할 수 있습니다).

관련 정보