입출력 재지정(I/O Redirection)

- 입출력 대상으로 표준 입력, 표준 출력, 표준 오류를 사용하지 않고 다른 경로인 파일로 재지정 하는 것

- 즉, 명령은 리다이렉션을 통해 파일로부터 입력받을 수 있고, 파일로 출력 할 수 있음

- 입출력 재지정을 통해 출력과 입력의 방향을 변경할 수 있음

* 참고: 표준 입력 표준 출력, 표준 에러

- 표준 입력(stdin): 표준 입력이라고 부르는 곳에서 입력 내용을 가져옴, 기본적으로 키보드에 직접 연결

- 표준 출력(stdout): 명령이나 프로그램 등의 실행 결과를 표준 출력에 전송, 기본적으로 화면과 연결 되어 있고 디스크 파일에 따로 저장하지 않음 

- 표준 오류(stderr): 명령이나 프로그램 등의 상태 및 오류 메시지를 표준 에러에 전송, 기본적으로 화면과 연결되어 있고 디스크 파일에 따로 저장하지 않음


1. 표준 입력 재지정(Input Redirection)

- 키보드 입력(표준 입력)을 파일에서 받도록 대체 하는 것

- < 연산자를 사용해서 키보드로 연결된 표준 입력 방향을 파일로 변경(명시적)

- cat 명령어를 사용하는 것과 동일한 결과를 나타냄

- 사용 예시


2. 표준 출력 재지정(Output Redirection)

- 명령의 실행 결과나 에러 상황을 화면에 출력(표준 출력, 표준 에러) 하지 않고 파일로 저장

1) > 연산자를 사용한 표준 출력 재지정

- 파일명 앞에 > 연산자를 사용

- > 연산자로 출력 방향을 지정할 때 목적 파일은 항상 처음부터 다시 작성됨 (파일 덮어씀)

- 사용 예시

2) >> 연산자를 사용한 표준 출력 재지정 

- 파일명 앞에 >> 연산자 사용

- 존재하지 않는 파일이면 > 연산자를 사용한 것 처럼 파일이 생성, 파일이 있는 경우는 이어서 작성 됨

- 사용 예시


3. 표준 오류 재지정

- 리다이렉션 연산자가 필요 없음, 쉘은 파일 디스크립터 번호를 이용해서 재지정 할 수 있는 표기를 지원

- 파일 디스크립터: 표준 입력-0, 표준 출력-1, 표준 오류-2

- 파일 디스크립터 번호를 리다리렉션 연산자 앞에 위치

- 사용 예시


파이프(Pipe), 파이프라인(Pipeline)

- 둘 이상의 명령을 함께 묶어 출력의 결과를 다른 프로그램의 입력으로 전환 하는 기능

- 즉, 명령어의 표준 출력을 또 다른 명령어의 표준 입력과 연결 시킬 수 있음

- 명령어와 명령어의 연결은  '|'(수직바) 기호를 사용

- '|' 기호 앞의 명령 결과가 '|' 기호 뒤의 명령에 입력 데이터로 사용

- 사용 예시