- Today
- Total
Phantom
Standard I/O Redirection 본문
오늘은 리다이렉션에 대해 글을 쓰려 합니다.
리눅스에선 기본 입출력 방식이 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 |