생활코딩 생활코딩 리눅스 강좌 내용을 들으면서 정리하는 노트
•
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에 저장됨
참고자료