배우는 내용 : [ 입력 리다이력션 "<", 출력 리다이렉션 ">", 리다이렉션 명령조합]
표준 입력의 리다이렉션
입력 리다이렉션 기호 "<"
- 키보드 대신에 파일을 표준입력으로 연결하는 방식
- 표준 입력은 보통 키보드 입력
▷ cat 명령어 예
- 표준 입력으로 입력한 내용을 읽어서 그대로 표준 출력에 출력하는 명령어
$ cat
Hello <- 키보드 입력
Hello <- 출력
<- control + d 이용하여 종료
$
▷ 파일을 표준 입력으로 연결한 예
$ cat < /etc/crontab
# 내용 출력 ....
# ...
◎ 입력 리다이렉션 과 입력 파일 지정
cat < /etc/crontab | 입력 리다이렉션 사용 | 표준 입력을 그대로 읽어서 출력, cat 명령어의 기본 방식 |
cat /etc/crontab | 인자로 파일 지정 | 편의를 위해 cat 명령어가 특별히 제공하는 방식 |
◎ 리눅스 명령어를 만들게 되는 경우
표준 입력을 읽어 들이는 방식을 반드시 지원하도록 구현을 해야 다른 프로그램과 연동하여 더 강력한 기능을 수행 가능
표준 출력의 리다이렉션
표준 출력 기호 ">"
▷ ls 명령어의 결과를 파일에 저장
$ ls -l / > list.txt
$ cat < list.txt
표준 에러 출력
프로그램의 에러메세지를 출력하기 위해 사용
▷ ls 명령어의 에러 메시지 → 표준 에러 출력에 출력
$ ls /xxx
ls: cannot access '/xxx': No such file or directory
▷ ls 명령어의 에러 메시지 → 리다이렉션 방식1 ">"
$ ls /xxx > list.txt
ls: cannot access '/xxx': No such file or directory
- 에러 메세지는 리다이렉션을 하여도 출력됨
▷ ls 명령어의 에러 메시지 → 리다이렉션 방식2 "2>"
$ ls /xxx > error.txt
$ cat < error.txt
ls: cannot access '/xxx': No such file or directory
- 에러가 출력되지 않고 error.txt 에 저장됨
응용 : 표준 출력 과 표준 에러 출력 을 한번에 저장
▷ 각각 다른 파일에 저장
명령어 (실행하고 싶은내용) > (표준출력을 저장할 파일명) 2> (표준에러를 저장할 파일명)
$ ls /xxx > list.txt 2> error.txt
$ cat list.txt # 실행된 결과가 없으므로 출력되는 것이 없음
$ cat error.txt
ls: cannot access '/xxx': No such file or directory
▷ 한 파일에 저장
$ ls /xxxx > result.txt 2>&1
1. 표준 출력을 result.txt 로 리다이렉션
2. 표준 에러 출력 2 을 리다이렉션 > 한다 표준출력 &1 로
3. result.txt 표준 출력 과 표준 에러가 저장됨
표준 입력 | 0 | 표준 출력 | 1 | 표준 에러 출력 | 2 |
리다이렉션을 위한 기호와 의미
기호 | 의미 |
< FILE | 표준 입력을 FILE 로 변경 |
> FILE | 표준 출력을 FILE 로 변경 |
>> FILE | 표준 출력의 출력을 FILE 의 끝에 추가 |
2> FILE | 표준 에러 출력을 FILE 로 변경 |
2>> FILE | 표준 에러 출력을 FILE 의 끝에 추가 |
> FILE 2>%1 | 표준 출력과 표준 에러 출력을 FILE 로 변경 |
'책 > 모두의 리눅스' 카테고리의 다른 글
[ 책 ] [ 모두의 리눅스 ] 11장 /dev/null (0) | 2024.03.30 |
---|---|
[ 책 ] [ 모두의 리눅스] 11장 리다이렉션 파일 덮어쓰기 (0) | 2024.03.30 |
[책] [모두의 리눅스] 10장 잡 (0) | 2024.03.26 |
[책] [모두의 리눅스] 10장 프로세스 (0) | 2024.03.25 |
[책] [모두의 리눅스] 9장 슈퍼 사용자 (0) | 2024.03.24 |