코드네임 :

[Linux] 4.1 입출력 리다이렉션 (Input/Output Redirection) 본문

⚙️Computer System/Linux

[Linux] 4.1 입출력 리다이렉션 (Input/Output Redirection)

비엔 Vien 2023. 10. 11. 17:43

입출력 리다이렉션

: 표준 출력, 입력, 에러를기본 설정이 아닌, 다른 곳으로 바꾸는 것

- 예를 들어, 터미널로 출력될 것을 파일로 출력되도록 바꿈

 

표준 입출력 장치

- 시스템이 명령의 입력과 출력과 사용하는 기본 장치

  파일 디스크립터  파일 이름 설명 기본 장치
표준 입력
Standard Input
0 stdin 명령의 실행에 필요한 데이터를 읽어들이는 기본 장치  키보드
표준 출력
Standard Output
1 stdout 명령 실행 결과를 출력하는장치 모니터
표준 요류
Standard Error
2 stderr 명령 실행 중 발생한 오류 메시지를 출력하는 장치 모니터

 

리다이렉션 : 입출력 장치의 변경

: 특수 기호를 사용하여 표준 입출력 장치를 변경

리다이렉션 특수 기호  상황
< 표준 입력 
>, >> 표준 출력
2> 표준 오류


 

출력 리다이렉션 : >, >>

$ 명령 > 파일명
$ 명령 >> 파일명

( >은 원래 1>의 형태이지만 1은 생략할 수 있음)

 

표준출력을 모니터에서 파일로 변경

: 새로운 파일로 생성, 기존 파일의 내용은 없어짐

>> : 기존 파일의 끝에 내용 추가

예시

 

 Lab2 실습

 

 


 

오류 리다이렉션 : 2>

$ 명령 2> 파일명

1. 표준 오류 메시지를 파일에 저장

예시

첫번째 오류 메시지는 찐 오류메시지, 두번째 오류메시지는 파일에 저장된 내용

출력과 오류 각각 파일에 리다이렉션 : > 과 2>

2. 표준 출력과 오류 메시지를 각각의 파일에 저장

예시

첫째줄 : 출력 내용은 ls.out에, 오류 내용은 ls.err에 저장

출력과 오류 같이 한 파일에 리다이렉션

$ 명령 > 파일명 2>&1

표준 출력과 오류메시지를 하나의 파일에 저장

- $ 명령 &> 파일명 또는 $ 명령 >& 파일명 과 같다

예시

 

 

lab 3 오류 리다이렉션 실습

첫번째 명령에서 뜨는 것만 진짜 오류 메시지고, 나머지 cat으로 출력하는 오류메시지는 ls.err, ls.out파일에 저장된 오류메시지의 내용임 

 


입력 리다이렉션 : <

$ 명령 < 파일명

표준 입력을 키보드에서 파일로 변결

예시

표준 입력이 loveletter 파일로 변경됨을 알 수 있다

 

Lab4

5개의 수를 입력받아 평균을 구하는 프로그램(avg.c)을 작성하고, 입력 리다 이렉션(<)으로 5개의 수를 가진 입력 파일(no.5.txt)를 사용하여 실행해 봅시 다.