<Linux Chapter 6> - 리디렉션과 파이프라인 1

심우열·2023년 1월 26일
0

Linux OS

목록 보기
10/10

1. 리디렉션

어떤 명령어가 실행된 결과의 출력이나 입력을 다른 방향으로 바꿔주는 것

1. 출력 리디렉션: >

  1. 명령어 [n]>|, []는 옵션임
  2. 스트림을 대상 파일에 저장(n 값에 해당)
    표준 출력 스트림 번호: 1
    표준 에러 스트림 번호: 2
    *생략시 표준 출력(1)
  3. 대상 파일이 존재하는 경우 덮어쓰기
  4. noclobber 옵션 설정 시 덮어쓰기 시도 시 에러 발생
  5. '>|' 사용시 noclobber 옵션 설정 여부와 관계없이 덮어쓰기 성공

2. 추가 모드 출력 리디렉션: >>

  1. 명령어 [n]>>(내용을 추가할 기존 파일 이름)
  2. 스트림을 대상 파일 끝에 저장
    표준 출력 스트림 번호: 1
    표준 에러 스트림 번호: 2
    *생략시 표준 출력
  3. 기존 파일이 없는 파일이면 새로운 파일 생성

3. 파일 디스크립터로 리디렉션: >&

  1. 명령어 [n]>&[FD]
  2. '>'와 동일하지만 '대상파일' 대신 '대상 파일 디스크립터' 지정
  3. 표준 출력과 표준 에러를 한꺼번에 출력하고 싶을 때 자주 사용

4. 표준 출력과 표준 에러 동시 리디렉션: &>

  1. 명령어 &>(파일이름)
  2. 파일 디스크립터 리디렉션 문법이 복잡함
  3. 이를 위의 명령어로 좀 더 편리하게 사용 가능

5. 입력 리디렉션: <

  1. 명령어 [n]<(파일 이름)
  2. (파일 이름)의 내용이 지정된 스트림(n)으로 리디렉션
  3. n이 생략되면 표준 입력(fd 0)을 의미

6. Here documents: <<

  1. [command] <<[-]DELIM
    ...
    DELIM
  2. 프로그램의 표준 입력으로 multi-line String 전달
  3. 코드 블록의 내용이 임시 파일로 저장됐다가 프로그램의 표준 입력으로 리디렉션
  4. DELIM은 다른 단어로 변경 가능(의미상 EOF, END 등 아무거나)
  5. '<<-' 사용되면 라인 앞쪽의 tab 문자가 제거됨

7. Here strings: <<<

  1. [command] <<< "문장"
  2. Here document의 한 줄 버전
profile
Dev Ops, "Git, Linux, Docker, Kubernetes, ansible, " .

0개의 댓글