정보보안공부
Linux_리눅스 파이프 / 리다이렉션 본문
리눅스 파이프 / 리다이렉션
- 오라클 가상 머신 사용
- CentOS6
<파이프 / 리다이렉션>
#1 파이프
- 파이프는 프로세스( 명령어끼리 ) 통신하는 방법
- 파이프 사용 : 명령어 1 | 명령어 2 | 명령어 3 ...
*** 파이프 형태 만들어보기
-> cat의 결과를 통해 grep으로 root가 포함된 부분을 찾는다.
-> cat의 결과를 통해 grep으로 root가 포함된 부분을 찾고 wc -l을 이용해 해당줄이 2줄로 되있음을 나타낸다.
*** 파이프 형태 실습해보기
-> process1.c 파일 : Hello출력해주는 파일
-> process2.c 파일 : 문자를 입력받아 출력해주는 파일
-> process1파일을 실행하면 Hello!가 출력된다.
-> process2파일을 실행하면 입력한 안녕하세요!가 출력된다.
-> process1파일을 실행하고 파이프로 process2파일을 실행하면 process1에서 실행한 출력문 Hello가 process2파일에 입력으로 들어가서 입력의 결과 : Hello!가 출력된다.
*** 파이프 형태 실습해보기2
-> test_prinf.c 파일 : Hello 출력후 40초동안 대기하는 파일
-> test_scanf.c 파일 : 문자열을 입력받아 출력후 40초 동안 대기하는 파일
-> test_printf 파일을 실행하고 파이프 test_scanf 파일을 & (백그라운드) 로 실행한다.
-> ps aux | grep을 이용해 해당 프로세스 번호를 알아낸다.
-> ls -l /proc/프로세스번호/fd 를 해보면 0은 입력 1은 출력 2는 에러값을 나타내는데 test_printf의 출력이 test_scanf의 입력으로 들어가는것을 확인 할 수 있다.
-> 1571 프로세스의 출력을 1572 프로세스의 입력으로 보낸다.
-> 1571 프로세스의 입력으로 받은 내용을 출력한다.
==> 파이프를 사용했을때 프로세스가 어떻게 출력되고 입력되는지 확인
#2 리다이렉션
- 리다이렉션은 입력 리다이렉션과 출력 리다이렉션이 있다.
*** 출력 리다이렉션
-> Hello를 a.txt로 출력한다.
-> >>는 해당파일로 출력할때 기존의 파일내용에 추가해서 작성된다.
-> >는 해당파일로 출력시 파일이 없다면 해당파일을 만들고 파일이 있으면 해당 파일의 내용이 초기화되고 해당 단어만 출력된다.
*** 입력 리다이렉션
-> <<는 해당단어가 나올때 까지 계속 입력받는다. 해당 단어가 나오면 종료된다.
-> 입력받는 단어를 > 를 이용해 다시출력할 수 있다.
*** 파일 디스크립터 0 1 2
- 0 : 표준입력 ( stdin )
- 1 : 표준출력 ( stdout )
- 2 : 표준에러 ( stderr )
-> stdout_error.c 파일 : Hello1은 정상출력, Hello2는 정상출력, Hello3은 에러출력하는 파일이다.
-> ./stdout_error 1> a.txt를 하게되면 해당코드중 정상적인 출력을 a.txt로 출력하게된다.
-> ./stdout_error 2> b.txt를 하게되면 해당코드중 에러 출력을 b.txt로 출력하게된다.
'Linux' 카테고리의 다른 글
Linux_리눅스 디스크관리 / fdisk / mount (0) | 2018.07.05 |
---|---|
Linux_리눅스 vi / vim 간단한 사용 (0) | 2018.07.05 |
Linux_리눅스 setuid / setgid / stickybit (0) | 2018.07.05 |
Linux_리눅스 퍼미션 / chmod / chown / chgrp (0) | 2018.07.05 |
Linux_리눅스 명령어 find / grep (0) | 2018.07.05 |