본문 바로가기
Linux

[Linux] 9. 리눅스 입출력 방향 변경

by 상도동개발자 2023. 2. 9.
SMALL

1. 표준 입출력 장치

- 리눅스에서 셸이 작업을 수행하는 데 필요한 정보를 받아들이는 장치를 표준 입력 장치라고 하고, 실행 결과를 보내는 장치를 표준 출력 장치라고 한다.

- 표춘 출력과 별도로 오류 메시지를 내보내는 장치를 표준 오류 장치라고 한다.

- 기본적으로 표준 입력 장치는 키보드 설정, 표준 출력 및 표준 오류 장치는 화면(모니터)으로 설정되어 있다.

- 리눅스에서는 장치도 파일로 관리하기때문에 파일 디스크립터가 부여되어있다.

 

- 표준 입출력 장치의 파일 디스크립터

파일 디스크립터 파일 디스크립터 대신 사용하는 이름 정의
0 stdin 명령의 표준 입력
1 stdout 명령의 표준 출력
2 stderr 명령의 표준 오류

- 표준 입출력 장치를 파일로 바꾸는 것을 리다이렉션이라고 한다.

 

2. 출력 리다이렉션

- 출력 리다이렉션에는 두가지 방법이 있다. 두 방법의 차이는 출력 결과를 저장 할 파일이 이미 존재하는 파일일 경우, 기존 파일의 내용을 유지할 것인지 여부이다. 기족 파일의 내용을 삭제하고 결과를 새로 저장 할때는 >를, 기존 파일의 내용 뒤에 결과를 추가 할때는 >> 를 사용한다.

 

2-1. > 명령어

파일 리다이렉션(덮어쓰기)을 한다.

형식 : 명령 1> 파일명, 명령 > 파일명 (명령1은 파일 디스크립터1을 의미 함)

- 사용 예

ls -al 의 결과를 out1 파일에 리다이렉트
date 의 결과를 out1에 리다이렉트

-  > 명령어로 리다이렉트 시 덮어쓰여지는 위험성이 있는데 아래의 명령을 사용하면 해당 위험을 예방 할 수 있다.

덮어쓰기 금지 설정

- set -o noclobber 명령을 해제 하는 명령어

덮어쓰기 금지 설정 해제

2-2. >> 명령어

파일에 내용을 추가한다.

- 형식 : 명령 >> 파일명

- 사용 예

>> 명령어를 활용하여 파일에 내용 추가

3. 오류 리다이렉션

- 명령을 실행하는 과정에서 셸이 화면에 출력되는 메시지를 정상 출력, 오류 메시지뿐이다. 이때 노출되는 오류 메시지는 표준 오류라고 한다. 

- 표준 오류도 표준 출력처럼 리다이렉션 할 수 있다.

3-1. > 명령어

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

- 형식 : 명령 2 > 파일명 

- 사용 예

표준 출력과 표준 오류를 한 번에 리다이렉션하기

4. 입력 리다이렉션

4-1. < 명령어

표준 입력을 바꾼다.

- 형식 : 명령 0< 파일명, 명령 < 파일명

- cat 명령은 파일의 내용이나 키보드로 입력을 받아 화면에 출력하는 명령이다. cat 명령이 파일을 읽어서 출력하는 기능은 <를 생략한것으로, 표준 입력이 자동으로 파일로 리다이렉션 한 것이다. 아래는 해당 예이다.

입력리다이렉션 예시

 

728x90
반응형
LIST

댓글