Raspberry Pi_Kor_10.8.2 redirection 명령 – 입력, 출력 장치 변경


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

Google

IBM

Facebook

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

Google

IBM

Facebook

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

 


 

Leave a Reply