Published Book on Amazon
All of IOT
Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 1 |
|
All of IOT
Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 2 |
출판된 한글판 도서
최신 라즈베리파이(Raspberry Pi)로 시작하는 사
물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (상) |
|
최신 라즈베리파이(Raspberry Pi)로 시작하는 사
물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (하) |
Original Book Contents
10.8.2 redirection 명령 - 입력, 출력 장치 변경
Linux에서는 특정 명령을 실행할 때 그 실행 결과를 사전에 지정된 출력장치로 보낸다. 그런데 필요에 따라 실행결과를 사전에 지정된 출력장치가 아닌 다른 출력장치로 보낼 수 있다.
이럴 때 사용하는 것이 "<" 와 ">" (redirection)이다. 이 명령을 사용하면 이 명령 뒤에 지정된 출력장치로 실행결과를 보내준다. "redirect"의 의미는 키보드와 모니터가 설정되어 있는 기본 입력과 기본출력을 다른 곳으로 변경하는 것이다.
참고로 사용자가 입력, 출력을 redirect할 수 있는 명령은 다음과 같이 여러 가지가 있다.
■ < 와 << -- 오른쪽 처리 결과를 왼쪽으로 보낸다.
■ > 와 >> -- 왼쪽의 처리 결과를 오른쪽으로 보낸다.
■ < 와 > -- 기존 파일이 있는 경우 overwrite한다
■ << 와 >> -- 기존 파일이 있는 경우 append한다
[명령 형식]
send-command > redirect-output-device |
[명령 개요]
■ 앞 명령의 처리결과를 지정된 출력장치로 보낸다.
■ user 권한 -- 일반 user.
[상세 설명]
■ "/dev/null" redirect-output device
출력장치를 "/dev/null" 로 지정하면 null 로 출력하라는 것이며, 이렇게 하면 어떤 결과도 출력되지 않는다. 이 장치는 보통의 상황에서는 잘 사용하지 않는다.
[사용 Example]
작업을 시작하기 전에 "testdata" directory의 내용을 확인해 보자. 다음과 같이 나온다.
pi@raspberrypi ~/testdata $ ls -l |
-rw-r--r-- 1 pi pi 62 Apr 23 13:06 customer_list.txt -rw-r--r-- 1 pi pi 123 Apr 23 13:00 customer_product.txt -rw-rw---- 2 pi pi 80 Apr 12 15:12 DebianManual.txt drwxr-xr-x 4 pi pi 4096 Apr 22 09:52 TestFolder01 drwxr-xr-x 2 pi pi 4096 Apr 10 13:32 TestFolder02 |
이번 사례에서 우리는 "echo" 명령을 사용하여 ">" (출력전환)에 대한 사례를 설명하고자 한다. "echo" 명령은 지정된 문자열을 표준 출력장치인 화면에 표시해 준다. 아래와 같이 실행이 될 것이다.
pi@raspberrypi ~/testdata $ echo "This is rsapbian guide" |
This is rsapbian guide |
이번에는 동일한 처리 결과를 "pi_user_guide.txt" 파일로 보낼 것이다.
pi@raspberrypi ~/testdata $ echo "This is rsapbian guide" > pi_user_guide.txt |
|
위 명령을 실행하면 이전의 처리와는 다르게 화면에는 아무 것도 나타나지 않는다. 그런데 directory의 내용을 확인해 보면 "pi_user_guide.txt"가 생성되어 있는 것을 알 수 있다. 즉 ">" (redirection) 명령을 사용하여 결과를 화면으로 출력하지 않고, 파일로 보낸 것이다.
"cat" 명령을 이용해서 해당 파일의 내용을 확인해 보면 처음 "echo" 명령에서 입력한 자료가 파일에 저장되어 있는 것을 알 수 있다.
pi@raspberrypi ~/testdata $ ls -l |
-rw-r--r-- 1 pi pi 62 Apr 23 13:06 customer_list.txt -rw-r--r-- 1 pi pi 123 Apr 23 13:00 customer_product.txt -rw-rw---- 2 pi pi 80 Apr 12 15:12 DebianManual.txt -rw-r--r-- 1 pi pi 40 Apr 24 02:50 pi_user_guide.txt drwxr-xr-x 4 pi pi 4096 Apr 22 09:52 TestFolder01 drwxr-xr-x 2 pi pi 4096 Apr 10 13:32 TestFolder02 |
pi@raspberrypi ~/testdata $ cat pi_user_guide.txt |
This is rsapbian guide for the beginner |
이번에는 ">" (redirect) 명령을 사용하여 파일 두 개를 하나로 합쳐 볼 것이다. "testdata" directory 속에는 "customer_list.txt" 파일과 "customer_product.txt" 파일이 있고, 각각의 내용은 아래와 같다.
pi@raspberrypi ~/testdata $ ls -l |
-rw-r--r-- 1 pi pi 62 Apr 23 13:06 customer_list.txt -rw-r--r-- 1 pi pi 123 Apr 23 13:00 customer_product.txt -rw-rw---- 2 pi pi 80 Apr 12 15:12 DebianManual.txt drwxr-xr-x 4 pi pi 4096 Apr 22 09:52 TestFolder01 drwxr-xr-x 2 pi pi 4096 Apr 10 13:32 TestFolder02 |
pi@raspberrypi ~/testdata $ cat customer_list.txt |
Microsoft IBM LG Samsung Sony Hewlett-Packard |
pi@raspberrypi ~/testdata $ cat customer_product.txt |
Microsoft PC Google Search IBM Super Computer Facebook SNS LG Electrics Samsung Mobile Sony Movie Hewlett-Packard Printer |
이제 cat 명령과 ">" (redirect) 명령으로 새로운 파일로 내용을 합해 보겠다. 다음과 같은 명령을 실행한다. 역시 화면에는 아무 메시지도 표시되지 않는다.
pi@raspberrypi ~/testdata $ cat customer_list.txt customer_product.txt > customer_full.txt |
|
이제 directory의 내용을 확인해 보면 "customer_full.txt"가 생성되어 있는 것을 알 수 있다. 즉 "cat" 명령으로 나오는 결과물을 ">" (redirection) 명령을 사용하여 화면으로 출력하지 않고, 파일로 보낸 것이다.
pi@raspberrypi ~/testdata $ ls -l |
-rw-r--r-- 1 pi pi 185 Apr 24 03:04 customer_full.txt -rw-r--r-- 1 pi pi 62 Apr 23 13:06 customer_list.txt -rw-r--r-- 1 pi pi 123 Apr 23 13:00 customer_product.txt -rw-rw---- 2 pi pi 80 Apr 12 15:12 DebianManual.txt drwxr-xr-x 4 pi pi 4096 Apr 22 09:52 TestFolder01 drwxr-xr-x 2 pi pi 4096 Apr 10 13:32 TestFolder02 |
"cat" 명령을 이용해서 해당 파일의 내용을 확인해 보면 두 개의 파일에 있던 내용이 하나로 합쳐져 있는 것을 알 수 있다.
pi@raspberrypi ~/testdata $ cat customer_full.txt |
Microsoft IBM LG Samsung Sony Hewlett-Packard Microsoft PC Google Search IBM Super Computer Facebook SNS LG Electrics Samsung Mobile Sony Movie Hewlett-Packard Printer |
이번에는 처리 결과를 null 장치로 출력해 보자. null 장치는 "/dev/null"이다. "cat" 명령을 이용해서 위와 동일한 파일에 대한 내용을 확인해 보자. 그러면 "cat" 명령의 결과는 전혀 화면에 표시되지 않는다. 또한 해당 directory에도 아무런 파일이 생성되지 않은 것을 확인할 수 있다.
pi@raspberrypi ~/testdata $ cat customer_full.txt > /dev/null |
|