Search

리눅스(Linux) - IO Redirection

Created at
2019/02/03
Updated at
2021/02/21
Tags
Keywords
Linux 기초
3 more properties
생활코딩 생활코딩 리눅스 강좌 내용을 들으면서 정리하는 노트
강의 듣기 (같은 강의이니 편한 곳을 선택해서 공부하면 된다!)

0. Process의 input과 output

UNIX Program에서 process는 기본적으로 input과 output을 가지고 있음
Means of input
program(command line) arguments [control information]
e.g. ls -al에서 al
environment variables [state information]
standard input [data]
Means of output
Return status code [control information]
Standard output [data]
Standard error [error messages]
IO Redirection이란 입력(Input)과 출력(Output)의 방향을 바꾸는 것

1. Output redirection

1.1 Standard output redirection

Standard output은 기본적으로 결과가 모니터에 출력됨
>(1>이 생략된 것)를 사용해 output이 파일에 저장되도록 redirection
e.g. $ ls -l > result.txt
ls -l의 출력 결과를 result.txt 파일에 저장함
>>: output을 파일에 덮어쓰기 하지 않고 append
> /dev/null: output이 화면에도 출력되지 않고 파일에도 출력되지 않음

1.2 Standard error redirection

Standard error: 프로그램에 오류가 있을 때 별도의 출력으로 처리됨
2>를 사용해 redirection (standard output과의 차이에 유의)
e.g. $ rm result.txt 2> error.log
$ rm result.txt의 결과 오류가 발생하면 에러 메시지를 error.log 파일에 저장함

2. Input redirection

input redirection은 output redirection처럼 자주 쓰이는 것은 아님

2.1 Standard input redirection

<을 사용해서 standard input을 redirection
e.g. $ cat < result.txt를 사용하면 redirection
cat은 standard input으로 키보드 입력값을 받음
cf: $ cat result.txt는 command line argument로 입력한 것
<<: 여러 개의 input을 redirection
e.g. $ mail hyeshinoh@gmail.com << aaa
aaa를 입력할 때까지의 모든 입력이 email로 전송됨

3. Input redirection과 output redirection 함께 사용하기

표준입력에 대한 redirection과 표준출력에 대한 redirection을 연결해서 함께 사용 가능함
e.g. $ head -n1 < result.txt > one.txt
result.txt의 첫 1줄이 one.txt에 저장됨
참고자료