Bash 프로세스 입출력 리다이렉션

리눅스에서 Bash 셸을 사용하면 프로세스의 입출력을 다루는 다양한 방법을 배울 수 있습니다. 이 중 가장 유용하고 강력한 개념은 입출력 리다이렉션입니다. 리다이렉션은 셸 스크립트나 커맨드 라인에서 표준 입력(stdin), 표준 출력(stdout), 표준 에러(stderr)를 다른 장소로 보내거나 가져오는 방법을 제공합니다.

입출력 리다이렉션은 리눅스 시스템에서 다양한 용도로 사용되며, 파일 입출력, 파이프, 백그라운드 실행 등 여러 상황에서 유용합니다. 이번 블로그 포스트에서는 입출력 리다이렉션의 기본 개념과 사용법을 살펴보겠습니다.

표준 입력(stdin) 리다이렉션

표준 입력 리다이렉션은 명령어나 프로그램에 입력을 제공하는 방법입니다. 기본적으로, 터미널에서 입력을 받지만, < 기호를 사용하여 파일로부터 입력을 가져올 수 있습니다.

command < input.txt

위 예시에서 commandinput.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.txterror.txt 파일로 리다이렉션됩니다.

결론

Bash 프로세스의 입출력 리다이렉션은 리눅스 시스템에서 강력하게 사용되는 개념입니다. 표준 입력, 표준 출력, 표준 에러를 적절하게 다루면 파일 입출력, 파이프, 백그라운드 실행 등 다양한 상황에서 유용하게 활용할 수 있습니다. 기본적인 리다이렉션 기호(<, >, 2>)와 조합하는 방법을 알아두면 프로세스 관리에 더욱 효과적으로 대응할 수 있습니다.