[Linux] 리다이렉션(redirection)
▶ 리다이렉션(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' 장치파일로 보냄