리눅스에서 Bash 셸을 사용하면 프로세스의 입출력을 다루는 다양한 방법을 배울 수 있습니다. 이 중 가장 유용하고 강력한 개념은 입출력 리다이렉션입니다. 리다이렉션은 셸 스크립트나 커맨드 라인에서 표준 입력(stdin), 표준 출력(stdout), 표준 에러(stderr)를 다른 장소로 보내거나 가져오는 방법을 제공합니다.
입출력 리다이렉션은 리눅스 시스템에서 다양한 용도로 사용되며, 파일 입출력, 파이프, 백그라운드 실행 등 여러 상황에서 유용합니다. 이번 블로그 포스트에서는 입출력 리다이렉션의 기본 개념과 사용법을 살펴보겠습니다.
표준 입력(stdin) 리다이렉션
표준 입력 리다이렉션은 명령어나 프로그램에 입력을 제공하는 방법입니다. 기본적으로, 터미널에서 입력을 받지만, <
기호를 사용하여 파일로부터 입력을 가져올 수 있습니다.
command < input.txt
위 예시에서 command
에 input.txt
파일의 내용이 표준 입력으로 제공됩니다. 이를 통해 파일을 프로그램의 입력으로 사용할 수 있습니다.
표준 출력(stdout) 리다이렉션
표준 출력 리다이렉션은 명령어나 프로그램의 결과를 파일이나 다른 프로세스로 보내는 방법입니다. 기본적으로, 명령어의 출력은 터미널에 표시되지만, >
기호를 사용하여 출력을 파일에 저장할 수 있습니다.
command > output.txt
위 예시에서 command
의 출력은 output.txt
파일에 저장됩니다. 이로써 프로그램의 결과를 파일에 기록할 수 있습니다.
추가적으로, >>
기호를 사용하면 파일에 내용을 추가하는 것도 가능합니다.
command >> output.txt
위 예시에서 command
의 출력은 output.txt
파일의 끝에 추가됩니다.
표준 에러(stderr) 리다이렉션
표준 에러 리다이렉션은 명령어나 프로그램의 오류 메시지를 파일이나 다른 프로세스로 보내는 방법입니다. 기본적으로, 명령어의 오류 메시지는 터미널에 표시되지만, 2>
기호를 사용하여 에러 메시지를 파일에 저장할 수 있습니다.
command 2> error.txt
위 예시에서 command
의 오류 메시지는 error.txt
파일에 저장됩니다.
종합적인 입출력 리다이렉션
여러 개의 리다이렉션을 조합하여 동시에 사용하는 것도 가능합니다. 아래 예시는 표준 입력, 표준 출력, 표준 에러를 각각 다른 파일에 리다이렉션하는 방법을 보여줍니다.
command < input.txt > output.txt 2> error.txt
위 예시에서 command
에는 input.txt
파일의 내용이 표준 입력으로, 출력은 각각 output.txt
와 error.txt
파일로 리다이렉션됩니다.
결론
Bash 프로세스의 입출력 리다이렉션은 리눅스 시스템에서 강력하게 사용되는 개념입니다. 표준 입력, 표준 출력, 표준 에러를 적절하게 다루면 파일 입출력, 파이프, 백그라운드 실행 등 다양한 상황에서 유용하게 활용할 수 있습니다. 기본적인 리다이렉션 기호(<
, >
, 2>
)와 조합하는 방법을 알아두면 프로세스 관리에 더욱 효과적으로 대응할 수 있습니다.