이전 단원에서는 표준 출력 (stdout) 스트림 리디렉션에 대해 배웠습니다. 마찬가지로 표준 입력 (stdin) 스트림도 관리할 수 있습니다. 기본적으로 프로그램은 키보드로부터 stdin을 받지만, 파일이나 다른 프로세스의 출력을 입력 소스로 사용할 수도 있습니다.
stdin 과 stdout 이해하기
리눅스의 모든 명령줄 프로세스는 최소한 두 가지 기본 데이터 스트림, 즉 표준 입력 (stdin) 과 표준 출력 (stdout) 을 가지고 작동합니다. 프로그램은 stdin에서 데이터를 읽고 결과를 stdout에 씁니다. 효과적인 명령줄 작업을 위해서는 stdin과 stdout 모두를 제어하는 방법을 이해하는 것이 중요합니다.
stdin 리디렉션 방법
stdout 리디렉션을 위해 >를 사용하는 것처럼, stdin을 리디렉션하기 위해 < 연산자를 사용합니다. 이 강력한 기능을 사용하면 명령이 키보드 입력을 기다리는 대신 파일에서 입력을 읽도록 지시할 수 있습니다. 이것이 바로 입력 리디렉션의 핵심 개념입니다.
cat stdin 을 사용한 실제 예제
이전 단원에서 "Hello World" 텍스트가 포함된 peanuts.txt 파일을 다시 살펴보겠습니다. 다음 명령을 고려해 보세요.
cat < peanuts.txt > banana.txt
여기서 일어나는 일에 대한 분석입니다.
< peanuts.txt부분은 셸에게cat명령의stdin을리디렉션하여 키보드 대신peanuts.txt에서 읽도록 지시합니다.cat명령은 입력을 처리합니다. 이 경우,cat stdin을 사용한다는 것은peanuts.txt의 내용을 읽는다는 의미입니다.> banana.txt부분은cat의 표준 출력을banana.txt라는 새 파일로 리디렉션합니다.
결과적으로 peanuts.txt의 내용이 banana.txt로 복사됩니다. 이 예제는 단일하고 효율적인 명령으로 stdin과 stdout을 모두 관리하는 방법을 효과적으로 보여줍니다.