반응형
SMALL
리디렉션
$ ls
----------------------
----------------------
$ _
방향을 바꾸는것,
화면상의 출력될 무언가를 file로 저장을 하거나
fid로 보낼 수도 있고, 연결을 해줄수도 있음.
출력 내지 입력의 방향을 바꾸는 작업
출력 리디렉션: >
- 화면의 출력될것을 다른곳(file)으로 보내는것.
- [n]>[I]word << 대괄호는 입력해도되고 안해도됨
- ex) ls > filename / ls >| ''''
- 스트림을 대상 파일에 저장
- 표준 출력 스트림 번호 : 1
- 표준 에러 스트림 번호 : 2
- 생략 시 표준 출력
- 대상 파일이 존재하는 경우 덮어쓰기
- noclobber 옵션 설정 시 덮어쓰기 시도 시 에러 발생
- >| 사용시 noclobber 옵션 설정 여부와 관계없이 덮어쓰기 성공
추가 모드 출력 리디렉션: >>
- [n]>>word
- 스트림을 대상 파일 끝에 저장
- 표준 출력 스트림 번호 : 1
- 표준 에러 스트림 번호 : 2
- 생략 시 표준 출력
파일 디스크립터로 리디렉션 : >&
- [n]>&[FD]
- 어떠한 스트림을 또 다른 스트림으로 리디렉션
- >과 동일하지만 '대상 파일' 대신 '대상 파일 디스크립터' 지정
- 표준 출력과 표준 에러를 한꺼번에 출력하고 싶을 때 자주 사용
표준 출력 및 표준 에러 동시 리디렉션: &>
- &>word
- 파일 디스크립터 리디렉션 문법이 귀찮고 어렵기에
- 좀 더 편하게 사용 가능한 커맨드
입력 리디렉션: <
- [n]<word
- 부등호가 출력과반대 방향
- 파일의 내용이 지정된 스트림(n)으로 리디렉션
- n이 생략되면 표준 입력(fd 0)을 의미
wc
ctrl+D
Here documents: <<
[command] <<[-]DELIM
···
DELIM
- 프로그램의 표준 입력으로 multi-line string 전달
- 코드 블록의 내용이 임시 파일로 저장됐다가 프로그램의 표준 입력으로 리디렉션
- DELIM은 다른 단어로 변경 가능(의미상 EOF, END 등)
- <<- 사용되면 라인 앞쪽의 tab 문자가 제거됨
Here strings: <<<
- Here document의 한줄 버전
- [command] <<< word
- word는 text가 될 수도 있고 실행된 결과가 될 수 있음.
- 입력한 무언가의 결과.
- 사용빈도는 낮은편. (파이프라인에서 커버됨)
파이프라인(pipeline)
- 표준 스트림을 사용하여 프로그램 간 상호작용
- 특정 프로세스와 다른 프로세스가 상호 작용 할 수 있는 방법은 여러가지가 있으나
- A프로세스의 스트림과 B프로세스의 스트림을 서로 연결해줌
- ex) A프로세스의 SIDOUT을 B프로세스의 STDIN과 연결이 가능.
- : |
- command1 [ | command2 ] ...
- = 앞에 커맨드의 표준 출력이 뒤에 커맨드의 표준 입력으로 들어간다라는 것
- = command1의 표준 출력이 command2의 표준 입력으로 연결됨
- command1 [ |& command2 ] ...
- command1의 표준 출력과 표준 에러가 command2의 표준 입력으로 연결됨
- 각 command는 sub-shell에서 실행됨
- 전체 파이프라인의 exit status는 마지막 실행 커맨드의 exit status임
- pipefail 옵션이 설정되어 있다면 실패한 커맨드가 존재하면 실패로 처리됨
반응형
LIST
'기초 물방울 > 리눅스&VM' 카테고리의 다른 글
이것이 리눅스다 CentOS 공부 기록 #2(설치~ing) (0) | 2022.04.08 |
---|---|
이것이 리눅스다 Centos 공부 기록 #1 (0) | 2022.04.08 |
리눅스(Linux) 프로세스와 시그널 (0) | 2022.04.05 |
리눅스(Linux) 사용자와 그룹, 소유권, 사용자추가, 스크립트 (0) | 2022.04.04 |
리눅스(Linux) 하드링크와 소프트링크 실습 (0) | 2022.04.04 |