키보드 같은 표준 입력 장치가 아닌 파일 등으로 재지정하는것을 입력 재지정이라고 하고
명령어의 실행결과나 에러메시지같이 화면에 출력되는 것을 파일 등에 저장하는 것을 출력 재지정이라고 합니다
입출력 재지정은 <,>이용하여 표시합니다 <,>앞에는 프로그램의 입출력 용도를 의미하는 fd번호를 기입합니다 이때 <,>를 fd번호와 반드시 붙여서 사용합니다.
fd | 이름 | 용도 | 표준장치 |
0 | stdin | 명령어에 입력될 내용을 저장 | 키보드 |
1 | stdout | 명령어에서 출력될 내용을 저장 | 화면 |
2 | stderr | 명령어에서 출력될 에러메시지를 저장 | 화면 |
형식 | 내용 |
명령어 fd 번호 < 파일 | 명령어에서 기본지정된 파일이나 표준 입력장치가 아닌 재지정된 파일에서 데이터를 입력받는다. |
명령어 fd 번호 > 파일 | 명령어에서 기본지정된 파일이나 표준 출력장치가 아닌 재지정된 파일에서 데이터를 출력받는다. |
※ 보통 입출력 재지정을 사용할때 <,>앞에 있는 fd번호를 생략할수 있습니다.
※ 대부분의 쉘은 stdin, stdout, stderr에 대한 기본적인 재지정을 제공합니다.
입력재지정은 키보드등 표준입력 장치로부터 처리할 데이터를 다른 파일등으로 입력받도록 재지정하는 것으로 <를 사용합니다. 0은 생략가능하므로 일반적으로 <만 사용합니다.
<예제
대문자를 소문자로 변경하여 출력하는 명령어
출력재지정은 명령어의 실행 결과가 화면 등 표준 출력 장치로 출력되는 것을 파일등으로 저장 및 출력하도록 재지정하는것으로 >를 사용합니다. 1은 생략가능하므로 일반적으로 >만 사용합니다.
>예제
입력한 글자가 출력되는 명령어
※ >이후 이름이 같은 파일이 있으면 기존파일을 덮어쓰기 때문에 주의해야합니다.
기존파일의 내용에 새로운 내용을 추가할때는 >>를 사용합니다.
※ 기존의 파일이 없으면 생성하고 이후 같은 명령어를 수행시 추가되는 내용만 계속 추가합니다.
에러재지정은 명령어 실행에서 에러가 발생했을때 화면 같은 표준 출력 장치로 출력되는 에러 내용을 파일등으로 저장 및 출력하도록 재지정하는 것입니다. 출력재지정처럼 >를 사용하는데 >기호앞에 fd번호 2를 반드시 기입해줘야합니다.
2>예제
ls 옵션에 _를 붙여 오류를 만들었습니다.
※ 출력과 에러 메시지가 동일한 파일에 출력되도록 재지정해야하는 경우가 있을수 있는데 이런 경우에는 명령어의 중복을 막기 위해 >&를 이용할수 있습니다.
※ >& 기호앞에 fd 번호 1은 생략가능하지만 >&기호뒤의 fd번호는 생략이 불가능합니다
'리눅스' 카테고리의 다른 글
[리눅스 명령어] cp (복사) (0) | 2021.09.08 |
---|---|
[리눅스 명령어] chgrp (0) | 2021.09.08 |
[리눅스 명령어] chown (0) | 2021.09.08 |
[리눅스 명령어] chmod (0) | 2021.09.08 |
[리눅스 명령어] 파이프 pipe (0) | 2021.09.08 |