Phantom

Standard I/O Redirection 본문

Reverse Engineering

Standard I/O Redirection

Ph4nt0m_ 2014. 2. 25. 17:04
반응형

오늘은 리다이렉션에 대해 글을 쓰려 합니다.

리눅스에선 기본 입출력 방식이 3가지가 있는데요

* 표준 입력(0), ex)키보드

* 표준 출력(1), ex)모니터

* 표준 에러(2), ex)모니터 이렇게 세가지가 있습니다.

---------------------------

Standard Input 0 <------------ 키보드

---------------------------

---------------------------

Standard Output 1 -------+

---------------------------        |

                                              +---> 모니터

---------------------------        |

Standard Error 2 -------+

---------------------------


표준 입출력에 사용되는 기호로는

 >

쓰기

 <

 읽기 

 >>

 추가 

 <<

입력을 종료할 문자를 지정한다(EndOfFile) 

  2>

 에러의 방향을 바꾼다. ex)2>/dev/null 

 1>2&

 출력을 에러로 보낸다. 

 2>&1

에러를 출력으로 내보낸다. 


예시를  들어보겠습니다.

#cat result.txt

#cat < result.txt (cat result.txt 와 동일합니다)

#cat

---> 입력 리다이렉션(< 기호)를 사용하지 않았으므로 키보드로부터 입력을 받으려고 커서가 다음 줄로 넘어갑니다.

문장을 입력하고 ctrl + d 를 누르면 종료가 됩니다.


ex) 

#cat > result.txt (키보드 입력을 받아 파일로 출력하라는 의미)

one

two

three

ctrl + d

#ls

#cat result.txt

기존에 파일 속에 내용이있엇더라도 >를 쓰면덮어쓰기(Overwrite)가 된 것을 확인할 수 있습니다.


#cat >> result.txt

four

five

six

ctrl + d

#ls

#cat result.txt

이번엔 덮어쓰기가 아니라 아래에 글이 추가된 것을 확인 할 수 있습니다.


#cat > result.txt << EOF

kor

eng

math

eof

EOF(입력 종료 문자로 동작함)

#cat result.txt

result.txt.에 글을 쓰고 마지막에 eof를 쓰면 자동으로 빠져나오는것을 확인할 수 있습니다.


이외에도 


#echo 100 > test_file

#ls

#cat test_file

 

#cat test_file > output1

 

#cat < test_file > output2

#ls

#cat output1

100

#cat output2

100

 

#cat < test_file >> output2

#cat output2

100

100

이 있습니다.


다음은 에러에 대해 예시를 보여드리겠습니다.


#cp

#cp > error.txt

#cat error.txt

 

#cp 2> error.txt

#cat error.txt

cp의 에러를 error.txt에 저장합니다 


#cp > error2.txt 2>&1

#cat error2.txt

errpr2.txt에 저장하면서 에러를 표준출력(모니터)로 보내줍니다

반응형

'Reverse Engineering' 카테고리의 다른 글

간단한 C언어 패턴 분석  (0) 2018.01.17
함수 호출 규약  (0) 2014.02.25
IA-32 Register  (0) 2014.02.21
Comments