Stderr 및 Stdout을 Bash의 파일로 리디렉션
이 기사에서는 Linux의 표준 출력 및 표준 오류에 대해 설명합니다. Bash에서 표준 출력 및 표준 오류를 리디렉션하는 방법을 살펴보겠습니다.
Linux에서 표준 출력 및 표준 오류라는 용어를 이해하기 시작하겠습니다.
Linux의 표준 출력 및 표준 오류
Linux에서 명령은 파일 또는 속성이 될 수 있는 사용자의 일부 입력을 받습니다. 이 명령을 실행하면 표준 출력이라고 하는 입력의 일부 출력이 제공됩니다.
이 표준 출력은 성공 또는 오류일 수 있습니다. 우리가 얻는 출력이 오류이면 이를 표준 오류라고 합니다.
둘 다 터미널 화면에 표시됩니다. 때로는 코드를 테스트하거나 디버깅하기 위해 표준 출력 및 표준 오류를 파일에 저장하려고 합니다.
Linux에서는 이 두 출력을 파일로 리디렉션할 수 있으며 이를 저장하는 프로세스를 리디렉션이라고 합니다.
Linux에서는 모든 프로세스에 대해 표준 입력(stdin
), 표준 출력(stdout
) 및 표준 오류(stderr
)의 세 가지 데이터 스트림이 있습니다.
표준 입력(stdin
)은 키보드를 통해 사용자로부터 입력을 받습니다. 표준 출력(stdout
)은 터미널 화면에 출력을 표시합니다.
표준 오류(stderr
)는 화면에 오류 정보를 표시합니다. 기본적으로 표준 출력과 표준 오류가 모두 터미널 화면에 인쇄됩니다.
Linux에서 각 데이터 스트림에는 고유한 숫자 ID가 있습니다.
- 표준 입력(
stdin
)의 경우 숫자 ID는0
입니다. - 표준 출력(
stdout
)의 경우 숫자 ID는1
입니다. - 표준 오류(
stderr
)의 경우 숫자 ID는2
입니다.
표준 출력 및 표준 오류의 리디렉션에 대해 자세히 설명하겠습니다.
표준 출력을 Bash의 파일로 리디렉션
Linux에서는 숫자 ID를 사용하여 stdout
을 파일로 리디렉션할 수 있습니다. 명령의 표준 출력을 리디렉션하려면 >
기호인 리디렉션 작업과 함께 1
을 사용합니다.
이 예에서는 ls
명령을 사용합니다. ls
명령의 출력을 파일로 리디렉션합니다.
그런 다음 파일에 저장된 ls
명령의 출력을 보기 위해 텍스트 파일을 봅니다.
예제 코드:
$ ls 1> stdout.txt
파일을 보려면 다음 명령을 사용합니다.
$ cat stdout.txt
코드 출력:
위의 터미널 화면과 같이 터미널에서 ls 1> stdout.txt
명령을 사용했습니다. 이 명령은 ls
명령의 출력을 stdout.txt
라는 파일에 저장합니다.
Linux에서 ls
명령을 사용하여 모든 파일과 디렉토리를 나열합니다. 따라서 파일에서 ls
명령의 출력을 리디렉션합니다.
cat
명령을 사용하여 파일을 보면 파일에 저장된 ls
명령의 표준 출력을 볼 수 있습니다. 이것이 숫자 ID를 사용하여 명령의 표준 출력을 파일로 리디렉션하는 방법입니다.
표준 오류를 Bash의 파일로 리디렉션
숫자 ID를 사용하여 표준 오류
를 파일로 리디렉션할 수도 있습니다. 표준 오류를 파일로 리디렉션하려면 리디렉션 연산자 >
와 함께 숫자 ID 2
를 사용합니다.
터미널에서 다음 명령을 사용하여 이를 수행할 수 있습니다.
예제 코드:
$ cat file.txt 2> stderr.txt
stderr.txt
라는 파일을 보려면 다음 명령을 사용합니다.
$ cat stderr.txt
보시다시피 터미널에서 cat file.txt 2> stderr.txt
명령을 사용했습니다. 현재 디렉토리에 file.txt
라는 파일이 없기 때문에 cat
명령은 stderr.txt
파일에 추가한 오류를 제공합니다.
cat
명령을 사용하여 stderr.txt
파일을 보면 No such file or directory
라는 오류가 표시되는 것을 볼 수 있습니다. 이는 cat
명령의 표준 오류를 stderr.txt
라는 파일로 리디렉션했음을 의미합니다.
이것이 모든 명령의 표준 오류를 파일로 리디렉션하는 방법입니다.
표준 출력 및 표준 오류를 Bash의 파일로 리디렉션
단일 명령을 사용하여 이 두 출력을 파일로 리디렉션할 수도 있습니다. 이를 위해 다음 명령을 사용합니다.
예제 코드:
$ ls 1> stdout.txt 2> stderr.txt
stdout.txt
파일을 보려면 다음 명령을 사용합니다.
$ cat stdout.txt
stderr.txt
파일을 보려면 다음 명령을 사용합니다.
$ cat stderr.txt
보시다시피 표준 출력 및 표준 오류를 단일 명령의 파일로 리디렉션했습니다. ls
명령 출력은 stdout.txt
파일에 저장되며 stderr.txt
채우기는 오류가 없기 때문에 비어 있습니다.
단일 명령을 사용하여 표준 출력 및 표준 오류를 파일로 리디렉션할 수 있는 방법입니다.
이 Linux 문서가 명령의 표준 출력 및 표준 오류를 Bash의 파일로 리디렉션하는 방법을 이해하는 데 도움이 되기를 바랍니다.
My name is Abid Ullah, and I am a software engineer. I love writing articles on programming, and my favorite topics are Python, PHP, JavaScript, and Linux. I tend to provide solutions to people in programming problems through my articles. I believe that I can bring a lot to you with my skills, experience, and qualification in technical writing.
LinkedIn