본문 바로가기

과제

SHELL redirection

SHELL redirection은 명령의 입출력과 출력을 제어할 수 있는 Unix 계열 운영체제의 기능입니다.

이 기능을 통해 프로그래머/엔지니어가 원하는쪽으로 내용을 redirect 할 수 있습니다.

  • 리다이렉션 방향을 정할때 FD(File Descriptor) 를 지정
    • 0, 1 ,2 파일 디스크립터
    • 0 : 표준 입력 스트림 : 키보드
    • 1 : 표준 출력 스트림 : 모니터
    • 2 : 표준 에러 출력 스트림 : error

예제 1) stderr

고의로 error를 낸 후에 error 내용 다른 파일에 출력
--FD(File Descriptor) X
[root@localhost ~]# cat /root/redirection.txt > /root/error.txt
cat: /root/redirection.txt: 그런 파일이나 디렉터리가 없습니다

--FD(File Descriptor) 2 추가
[root@localhost ~]# cat /root/redirection.txt 2> /root/error.txt

--error.txt 내용 확인
[root@localhost ~]# cat /root/error.txt 
cat: /root/redirection.txt: 그런 파일이나 디렉터리가 없습니다

 

예제 2) stdout(1) , stderr(2) 분리

파일이 존재한다면 hello.txt 파일에 출력하고 파일이 존재하지 않는다면 err.txt에 출력
--파일 O
[root@localhost ~]# cat /root/test01 1> /root/hello.txt 2> /root/err.txt 
[root@localhost ~]# cat /root/err.txt 
[root@localhost ~]# cat /root/hello.txt 
test
helloworld
--고의로 파일 이름 변경
[root@localhost ~]# cat /root/test0 1> /root/hello.txt 2> /root/err.txt 
[root@localhost ~]# cat /root/hello.txt 
[root@localhost ~]# cat /root/err.txt 
cat: /root/test0: 그런 파일이나 디렉터리가 없습니다