특정한 프로그래밍 언어 인터페이스뿐 아니라 유닉스 및 유닉스 계열 운영 체제(어느 정도까지는 윈도우에도 해당함)에서 컴퓨터 프로그램과 그 환경(일반적으로 단말기) 사이에 미리 연결된 입출력 통로를 가리킨다.
보통 입출력은 물리적으로 연결된시스템 콘솔의 키보드와 모니터를 통해 일어나는데,표준 스트림은 이것을 추상화한 것이다. 어떤 명령이 대화형 셸을 통해 실행될 때, 일반적으로 명령의 스트림은 셸이 실행중인 텍스트 터미널에 연결된다. (그러나 이는파이프와 같은리다이렉션을 통해 전환될 수 있다.) 더 일반적으로 말하자면,자식 프로세스는 부모 프로세스의 표준 스트림을 상속 받는다고 할 수 있다
표준 스트림 중 하나는 입력을 위한 스트림(Standard input, STDIN, 0), 하나는 출력을 위한 스트림(Standard Output, STDOUT, 1), 하나는 오류 메시지를 출력하기 위한 스트림(Standard Error, STDERR, 2)이며, 실제로 리눅스의 /dev 디렉토리에서 위 세 개의 표준 스트림을 앞서 언급한 파일 형태로 담고 있습니다.
입력, 출력, 오류를 위한 표준 스트림실제로 리눅스의 /dev 디렉토리에서 위 세 개의 표준 스트림을 앞서 언급한 파일 형태로 담고 있습니다.
stdin
표준 입력은 프로그램으로 들어가는 입력값의 데이터(보통은 문자열) 스트림이며, Standard Input을 stdin으로 줄여 표현합니다. 리눅스 쉘에서는 표준 설정이 키보드로 되어 있습니다. 그러나 모든 프로그램이 입력을 요구하지 않으며, 대표적인 예로는 비밀번호를 입력할 때 이러한 표준 입력 스트림을 사용합니다.
stdout
표준 출력은 프로그램이 출력 데이터를 기록하는 스트림으로, Standard Output을 stdout으로 줄여 표현합니다. 표준 출력은 텍스트 터미널에서 이루어집니다. 표준 입력과 마찬가지로 모든 프로그램이 출력을 요구하는 것은 아닙니다.
stderr
표준 오류는 프로그램이 오류 메세지나 진단을 출력하기 위해 일반적으로 쓰이는 또다른 출력 스트림이며, Standard Error를 stderr로 줄여 표현합니다.