역시 시험 실기문제로 나오는 것이 아닌,

리눅스의 기본 사용법이므로 아주 간략하게만 정리 하겠습니다.


입출력 리다이렉션은 표준 출력(모니터) 가 아닌, 

다른 방향으로도(파일, 명령어의 뒷부분, 휴지통 등.. )가리킬 수 있는 지정형식입니다.


ex 1 )   >            전방에 기입한 명령어의 결과를 뒤에 기입한 파일로 보낸다. 

기존의 파일이 존재할 시,  덮어쓰는 점 유의. 

[root@TEST1 ~]# df -Th > df.txt          

화면에 df -Th 를 출력하지 않고, 바로 df.txt 라는 파일로 보냄 

[root@TEST1 ~]# cat df.txt

Filesystem                     Type      Size  Used Avail Use% Mounted on

/dev/sda3                      xfs       6.7G  4.4G  2.4G  66% /

devtmpfs                       devtmpfs  486M     0  486M   0% /dev

tmpfs                          tmpfs     496M     0  496M   0% /dev/shm

tmpfs                          tmpfs     496M   20M  476M   5% /run

tmpfs                          tmpfs     496M     0  496M   0% /sys/fs/cgroup

/dev/mapper/datastore-database xfs       2.4G   33M  2.4G   2% /database

/dev/sda1                      xfs       297M  146M  152M  49% /boot

tmpfs                          tmpfs     100M   36K  100M   1% /run/user/0

/dev/sr0                       iso9660   918M  918M     0 100% /run/media/root/CentOS 7 x86_64



ex 2 )   >>   전방에 기입한 명령어의 결과를 후반의 파일에 추가. 

[root@TEST1 ~]# uname -a >> df.txt      

df.txt 내용뒤에 명령어 결과를 추가

[root@TEST1 ~]# cat df.txt

Filesystem                     Type      Size  Used Avail Use% Mounted on

/dev/sda3                      xfs       6.7G  4.4G  2.4G  66% /

devtmpfs                       devtmpfs  486M     0  486M   0% /dev

tmpfs                          tmpfs     496M     0  496M   0% /dev/shm

tmpfs                          tmpfs     496M   20M  476M   5% /run

tmpfs                          tmpfs     496M     0  496M   0% /sys/fs/cgroup

/dev/mapper/datastore-database xfs       2.4G   33M  2.4G   2% /database

/dev/sda1                      xfs       297M  146M  152M  49% /boot

tmpfs                          tmpfs     100M   36K  100M   1% /run/user/0

/dev/sr0                       iso9660   918M  918M     0 100% /run/media/root/CentOS 7 x86_64

Linux TEST1 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux                 uname -a 결과값이 df.txt 파일 뒤에 추가됌. 

 


ex 3 ) <  전방의 명령어에 후반의 내용을 추가.

[root@TEST1 ~]# cat < df.txt                 

df.txt 의 내용을 cat 명령어 뒤에 기입한 것과 같은 효과

Filesystem                     Type      Size  Used Avail Use% Mounted on

/dev/sda3                      xfs       6.7G  4.4G  2.4G  66% /

devtmpfs                       devtmpfs  486M     0  486M   0% /dev

tmpfs                          tmpfs     496M     0  496M   0% /dev/shm

tmpfs                          tmpfs     496M   20M  476M   5% /run

tmpfs                          tmpfs     496M     0  496M   0% /sys/fs/cgroup

/dev/mapper/datastore-database xfs       2.4G   33M  2.4G   2% /database

/dev/sda1                      xfs       297M  146M  152M  49% /boot

tmpfs                          tmpfs     100M   36K  100M   1% /run/user/0

/dev/sr0                       iso9660   918M  918M     0 100% /run/media/root/CentOS 7 x86_64

Linux TEST1 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

 

 


파이프 ( | )  

[root@TEST1 ~]# cat df.txt  | grep -i G

df.txt 의 내용 중 "G"가 포함된 라인만을 출력. 

/dev/sda3                      xfs       6.7G  4.4G  2.4G  66% /

tmpfs                          tmpfs     496M     0  496M   0% /sys/fs/cgroup

/dev/mapper/datastore-database xfs       2.4G   33M  2.4G   2% /database

Linux TEST1 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux


 

 


파일 디스크립터 ( 2> ) 

0 : 키보드  1 : 모니터 표준 출력  2 : 모니터 표준 (에러) 출력 의 의미로 사용합니다. 

파일 리다이렉션에서 가령 df -Th > df.txt 로 하면, 파일 저장만 되고 아무 표시도 안 되는데 2>&1 구문을 추가하면 에러 발생시에도, 저장 및 모니터로 출력 하라는 표현이 됩니다.

다양한 방법이 가능하며 쉘 스크립팅에서 출력 용도로 유용하게 사용할 수 있습니다.  

[root@TEST1 ~]# dffa > dd.txt 2>&1

dffa 라는 명령어 실행 결과를 dd.txt 에 기록하라는 의미지만, 2>&1 없을시 

해당 출력이 error 일 경우 모니터에 출력만 하고 dd.txt에 아무 기록이 되지 않음. 

2>&1 일 경우 해당 에러값을 그대로 리다이렉션 합니다. 

[root@TEST1 ~]# cat dd.txt

bash: dffa: command not found


 


블로그 이미지

늙은M군

개인 저장공간입니다. 해당 일부 과정들을 공인 인터넷 환경에서 악성적으로 응용할 시 피해가 발생할 수 있으며, 그에 대해 책임은 사용자에게 있습니다!! 주의해주세요.

,