Linux 생활코딩 - I/O Redirection (output)

2022. 1. 20. 02:10Linux

안녕하세요. brandy 입니다. 

이번 생활코딩(이고잉님 강의) Linux 강좌에서 I/O(Input Output) Redirection에 대하여 학습하였습니다. 

 

실습 내용은 아래와 같습니다. 

 

1. ls -l을 통해 현재 디렉토리에 있는 파일들을 출력합니다. (ls -al은 숨김 파일까지 모두 보여줍니다) 

그런데, ls -l 의 내역들을 복사해서 파일을 또 하나 생성해서 붙여넣기에는 너무 복잡하죠? 

 

2. 그래서 > (Redirection) 키워드를 사용하여 ls -l의 내용을 result.txt 라는 파일 안에 넣고자 합니다. 

result.txt는 지금 현재 디렉토리에 없지만, > 를 통해 result.txt 파일을 새로 생성해서 ls -l의 내용을 넣겠다는 의미입니다. 

 

3. 파일을 만들었으니 cat(텍스트 파일을 모니터에 출력하는 명령어)을 통해 result.txt의 내용을 확인하겠습니다. 

4. 아까 ls -l을 통해 긁어왔던 내용과 result.txt가 함께 추가되었습니다. 

 

리눅스 Shell은 표준 입출력을 '파일 형태'로 열고 있습니다.

표준 입력 (stdin : 키보드) (stdout : 모니터) (stderr : 모니터) 

기본적으로 연산 프로그램은 연산 결과를 출력 장치(파일,모니터,프린터 등)으로 내보내는데요, 이 출력되는 데이터를 임의의 다른 장치로 보내는 것을 Redirection 이라고 합니다. 

 

=> 파일이나 프로그램, 명령어 등의 출력을 긁어 다른 파일이나 프로그램 명령어의 표준 입력으로 다시 보내는 것 

위에서 실습한 예제가 그렇습니다. 

ls -l의 출력을 긁어 result.txt 라는 다른 파일로 내용을 붙여 cat 명령어의 표준 입력으로 다시 사용하였습니다. 

 

 

표준 입출력은 파일 형태로 열려있으며, 리눅스에서 열려 있는 파일은 파일 디스크립터를 할당받습니다.

표준 입력 stdin = 0 

표준 출력 stout = 1 

표준 에러 stderr = 2 

 

0,1,2 파일 디스크립터를 할당받기 때문에 이를 활용해서 Redirection이 가능합니다. 

 

참고 

https://gracefulprograming.tistory.com/100