Linux / / 2024. 11. 8. 16:57

Linux의 표준 입출력

리눅스의 표준 입출력(Standard Input/Output)은 시스템의 기본적인 입출력 흐름을 관리하는 핵심적인 요소입니다. 대부분의 리눅스 명령어와 프로그램이 표준 입출력을 통해 데이터를 송수신하며, 이를 통해 프로그램 간의 데이터 전송, 파일로의 데이터 저장, 사용자와의 상호작용이 가능합니다. 표준 입출력에는 크게 세 가지가 있습니다: 표준 입력(stdin), 표준 출력(stdout), 표준 오류(stderr).

 

1. 표준 입력 (Standard Input, stdin)

 

파일 설명자 번호: 0

기본 입력: 키보드

역할: 사용자가 프로그램에 데이터를 입력할 수 있게 합니다. 예를 들어, 사용자가 텍스트를 입력하면 이 입력값이 표준 입력으로 들어가 프로그램에서 이를 처리합니다.

활용 예시: cat, grep 등의 명령어는 표준 입력으로 데이터를 받을 수 있습니다.

리디렉션 방법: < 기호를 사용하여 파일이나 다른 명령어의 출력을 표준 입력으로 연결할 수 있습니다.

예시:

cat < filename.txt

 

여기서 filename.txt의 내용이 cat 명령어의 표준 입력으로 전달됩니다.

 

2. 표준 출력 (Standard Output, stdout)

 

파일 설명자 번호: 1

기본 출력: 터미널 화면

역할: 프로그램이 정상적인 실행 결과를 출력하는 창구 역할을 합니다. 대부분의 리눅스 명령어는 작업의 결과를 stdout을 통해 사용자에게 보여줍니다.

리디렉션 방법: > 또는 >> 기호를 사용하여 파일로 결과를 저장할 수 있습니다.

예시:

echo "Hello, World!" > output.txt

 

여기서 "Hello, World!"는 표준 출력으로 출력되며, output.txt 파일에 저장됩니다.

 

3. 표준 오류 (Standard Error, stderr)

 

파일 설명자 번호: 2

기본 출력: 터미널 화면

역할: 오류 메시지를 출력하는 용도로 사용됩니다. 프로그램이 실행 중에 발생하는 경고나 오류는 stdout이 아닌 stderr로 전달됩니다. 이는 오류 메시지와 일반 출력을 분리해 처리할 수 있게 해줍니다.

리디렉션 방법: 2> 또는 2>> 기호를 사용하여 파일로 오류 메시지를 저장할 수 있습니다.

예시:

ls non_existent_file 2> error_log.txt

 

non_existent_file이라는 파일을 찾지 못할 때 발생하는 오류 메시지가 error_log.txt 파일에 저장됩니다.

 

표준 입출력 리디렉션 요약

 

리눅스에서 표준 입출력 리디렉션을 사용하면 명령어의 실행 결과를 파일에 저장하거나 파일의 내용을 명령어로 전달할 수 있습니다. 또한, 프로그램 간에 데이터를 전달할 때도 파이프(|)와 함께 사용하여 효율적으로 데이터를 연결할 수 있습니다. 이를 통해 프로세스 간의 데이터 흐름을 쉽게 제어할 수 있으며, 오류와 출력 결과를 분리해 관리할 수 있습니다.

 

리디렉션 및 파이프 활용 예시

command1 > output.txt       # 표준 출력을 output.txt로 저장
command2 < input.txt        # input.txt를 표준 입력으로 사용
command3 2> error.txt       # 표준 오류를 error.txt로 저장
command4 | command5         # command4의 출력을 command5의 입력으로 전달

 

이와 같이 표준 입출력과 리디렉션은 리눅스의 입출력 시스템을 유연하게 사용하게 하는 기본 도구로, 여러 명령어와 결합하여 효율적인 작업을 수행할 수 있도록 도와줍니다.

'Linux' 카테고리의 다른 글

Linux의 /tmp 디렉토리  (0) 2024.12.03
커맨드 라인 인터페이스 (CLI)  (1) 2024.12.03
Linux에서 자주 쓰이는 명령어  (0) 2024.11.10
Linux의 Redirection  (0) 2024.11.08
Linux의 Pipe  (1) 2024.11.08
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유