[Linux] 리눅스 쉘 표준 스트림과 리다이렉션Linux2024. 12. 28. 15:13
Table of Contents
728x90
리눅스 쉘 표준 스트림과 리다이렉션 정리
리눅스와 같은 유닉스 계열 시스템에서는 명령어의 입출력을 조작하기 위해 표준 스트림과 리다이렉션을 사용함.
이를 통해 파일이나 다른 명령어와 데이터를 주고받을 수 있음.
표준 스트림
리눅스의 표준 스트림은 다음과 같이 세 가지로 나뉨:
표준 입력 (Standard Input, stdin)
- 파일 디스크립터:
0
- 키보드나 파일에서 데이터를 읽음.
- 파일 디스크립터:
표준 출력 (Standard Output, stdout)
- 파일 디스크립터:
1
- 명령어의 실행 결과를 출력.
- 파일 디스크립터:
표준 에러 (Standard Error, stderr)
- 파일 디스크립터:
2
- 오류 메시지를 출력.
- 파일 디스크립터:
표준 입출력 리다이렉션
리다이렉트 출력
명령어의 출력을 파일로 저장하거나 다른 곳으로 전송할 수 있음.
기본 출력 덮어쓰기:
command > filename
- 기존 파일 내용을 덮어씌움.
출력 추가:
command >> filename
- 기존 파일의 내용 뒤에 출력 내용을 추가.
- 예시:
echo meow >> cat.txt
리다이렉트 입력
파일의 내용을 명령어의 입력으로 전달.
command < filename
입출력 리다이렉션 콤보
입력과 출력을 동시에 조작 가능.
입력 파일을 읽어 출력 파일로 저장:
cat < origin.txt > output.txt
입력 파일을 읽어 출력 파일에 추가:
cat < origin.txt >> output.txt
정렬된 내용을 출력 파일에 저장:
sort < name.txt > sorted.txt
표준 에러 리다이렉션
에러 메시지를 파일로 저장하거나 추가 가능.
에러 메시지 덮어쓰기:
command 2> error.log
에러 메시지 추가:
command 2>> error.log
왜 2를 사용하나?
- 표준 스트림의 파일 디스크립터 번호는 다음과 같음:
- 표준 입력:
0
(기본값으로 생략 가능) - 표준 출력:
1
(기본값으로 생략 가능) - 표준 에러:
2
(명시적으로 작성 필요)
- 표준 입력:
표준 출력과 에러를 한 곳으로 리다이렉션
표준 에러를 표준 출력으로 합침:
command 2>&1
표준 에러를 표준 출력에 추가:
command 2>>&1
모든 출력(표준 출력 + 에러)을 파일에 저장:
command &> filename
모든 출력(표준 출력 + 에러)을 파일에 추가:
command &>> filename
예시
# 정상 출력은 result.txt로, 에러는 error.log로 저장
ls > result.txt 2> error.log
# 모든 출력을 all_output.txt로 저장
ls &> all_output.txt
'Linux' 카테고리의 다른 글
[Linux] 리눅스 쉘 확장(Expansion) 정리 (1) | 2024.12.28 |
---|---|
[Linux] 리눅스 쉘 파이프(|)와 관련 명령어 (0) | 2024.12.28 |
[Linux] 리눅스 파일 내용 확인 및 출력 (0) | 2024.12.28 |
[Linux] 리눅스 단축키 (0) | 2024.12.27 |
[Linux] cd 명령어 (0) | 2024.12.26 |
@mane Lab :: 마네의 연구소
배움에 즐거움을 느끼는 마네의 연구소입니다. 이미지 출처 : https://www.instagram.com/hoseobiiiiiii._.0410/
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!