본문 바로가기

리눅스-기초명령어/문서 관리

리 다이렉션 & 파이프

1. 리 다이렉션

Redirection(입출력 재 지정)이란 표준 입력/출력/에러를 화면이 아닌 파일로 대체하는 것을 말한다.

 

기호의 종류

리다이렉션 기호 내용
< 파일 읽기
> 파일 쓰기(덮어쓰기)
>> 파일 쓰기(이어쓰기)

 

파일 디스크립터

파일 디스크립터
(일련번호)
이름 용도 표준장치
0 stdin 명령어에 입력될 내용을 저장 키보드
1 stdout 명령어에서 출력될 내용을 저장 화면
2 stderr 명령어에서 출력될 에러 메시지를 저장 화면

 

다양한 리다이렉션 기호 조합

 

  • 명령 &> 파일명 # : 명령이 실행된 표준 출력의 결과와 에러를 파일로 출력

 

  • 명령 &>> 파일명 # : 명령이 실행된 표준 출력의 결과와 에러를 파일로 덧붙여 출력

 

  • 명령 2> err.txt # : 명령 실행 시 에러가 나면, 에러를 화면에 출력하지 말고 파일에 기록하도록 재 지정

 

  • 명령 2>> err.txt # : 오류가 나면 에러내용을 계속 파일에 덧붙여 추가한다.



2>&1 이해하기

[root@Linux ~]# ls
[root@Linux ~]# ls > ls.log
[root@Linux ~]# cat ls.log
ls.log
[root@Linux ~]# ls /error > ls.log
ls: cannot access '/error': No such file or directory
[root@Linux ~]# cat ls.log
# ls.log에 정상 명령어는 저장되고 에러는 저장되지 않는다.
[root@Linux ~]# ls 2> ls.log
ls.log
[root@Linux ~]# cat ls.log
[root@Linux ~]# ls /error 2> ls.log
[root@Linux ~]# cat ls.log
ls: cannot access '/error': No such file or directory
# 2>를 사용하면 출력은 저장되지 않고 에러만 저장된다.

[root@Linux ~]# ls > ls.log 2> ls.log
[root@Linux ~]# cat ls.log
ls.log
[root@Linux ~]# ls /error > ls.log 2> ls.log
[root@Linux ~]# cat ls.log
ls: cannot access '/error': No such file or directory
# 정상출력과 에러가 모두 파일에 저장되지만 명령어가 복잡해져 사용이 어렵다.

[root@Linux ~]# ls /test /error > ls.log 2>&1
[root@Linux ~]# cat ls.log
ls: cannot access '/error': No such file or directory
/test:
# 출력과 에러가 모두 파일에 저장된다.

 

/dev/null

데이터를 지우고 싶을 때 사용한다 주로 출력이 필요 없을 때 사용

[root@Linux ~]# ls > /dev/null
# 출력값이 나오지 않는다.

 

2. | (pipe)

  앞에 실행한 명령어의 출력 결과를 뒤에 실행하는 명령어의 입력 값으로 넣어 준다. |(pipe)를 사용하면 여러 명령을 동시에 연결하여 사용할 수 있다.

[root@Linux ~]# dnf list | grep htop
htop.x86_64                                                                              3.2.2-1.el9                          @epel 

#dnf list 내용중 htop에 대한 내용만 출력

 

'리눅스-기초명령어 > 문서 관리' 카테고리의 다른 글

정규표현식  (2) 2023.08.31
vi(vim)  (0) 2023.08.31
EOF, --stdin  (0) 2023.08.31
echo, cat, head, tail  (1) 2023.08.31
텍스트 파일 관련 명령어 wc(word count)  (0) 2023.05.16