[Linux]

[Linux] 리다이렉션(redirection)

Jarvis2304 2022. 8. 29. 04:25

 

리다이렉션(redirection): 표준출력 방향을 화면에서 파일로 변경하는 메커니즘

- 표준출력 방향을 파일로 변경하는 기호: ' > '

- 명령어 수행 중 입력을 요구하지 않고, 수행 결과를 반드시 터미널 화면에 출력하는 명령어일 경우에 유용

- 지정한 파일이 존재하면 덮어씀

 

 

▶덮어쓰지 않게 설정

- $set -o noclobber (해제: $ set +o noclobber)

- 이중기호 사용 '>>' : 지정한 파일이 존재할 경우 파일 끝에 추가

 

표준출력/표준오류 리다이렉션

- 표준오류까지 모두 리다이렉션: 기호: "&>" 또는 ">&" 사용

- 표준출력,표준오류 선택적 리다이렉션: 1-> stdout, 2->stderr ex) 1> , 2>

 

tty : 터미널 장치 파일명 출력

-현재 터미널(제어터미널)과 연결된 장치 파일명을 출력

 

장치파일

/dev/tty1: 컴퓨터에서 동작중인 첫 번째 콘솔 장치 파일, 또 다른 콘솔은 tty2~tty12

/dev/pts/1: 컴퓨터에서 동작중인 첫 번째 가상터미널 장치 파일명

/dev/lp: 프린터

/dev/null: 이 장치로 리다이렉션 되는 내용은 모두 사라짐

/dev/zero: 무한대의 NULL 값을 반환하는 장치 (보통 dd 명령과 함께 사용)

/dev/zero: 무한대의 NULL 값을 반환하는 장치 (보통 dd 명령과 함께 사용)

/dev/stdout: 표준 출력 장치, 현재 터미널 혹은 콘솔 장치 파일과 연결되는 심볼릭 링크

/dev/stderr: 표준 오류 장치, 현재 터미널 혹은 콘솔 장치 파일과 연결되는 심볼릭 링크

 

ex)

$ tty

/dev/pts/1 => x원도우 터미널

$tty

/dev/tty3 => 터미널

 

 

 

 

ls -l > list.file : ls -l의 표준출력을 list.file로 보냄

 

$cat > file1: cat :명령으로 표준 입력을 받아 file1 생성

 

cat file1 file2 file3 > file4 : file1,file2,file3 세 파일의 내용을 모두 합쳐 file4로 보냄

 

mail < data.txt : mail명령의 표준입력을 'data.txt'로 받음

 

$ls -lR /etc &> out.file : /etc파일의 표준출력,표준오류를 모두 'out.file'로 보냄

 

ls -lR /etc > ls.txt 2> /dev/null : /etc파일의 표준출력을 'ls.txt'에 저장하고, 기호 '2>'로 표준오류메시지를 '/dev/null' 장치파일로 보냄