4. 셸 기본 특성의 ~ 방향 변경

6551 단어
제3 장 목록:
3.1 셸 문법 3.2 셸 명령 3.3 셸 함수 3.4 셸 매개 변수 3.5 셸 3.6 리 셋 3.7 명령 실행 3.8 셸 스 크 립 트
이 파일 의 내용 은 "3.6 리 셋"입 니 다.
하나의 명령 에 있어 서 우리 가 관심 을 가 지 는 것 은 명령 의 입력 과 명령 의 출력 이다.명령 의 출력 은 두 가지 가 있 는데 하 나 는 표준 출력 이 고 하 나 는 명령 의 오류 정보 출력 이다.기본 적 인 상황 에서 명령 의 표준 출력 은 '표준 출력 파일' 에 기록 되 고 파일 설명 자 는 1 입 니 다.표준 출력 파일 은 화면 에 직접 보 여 주 는 특수 한 파일 입 니 다.명령 의 오류 출력 은 기본적으로 '표준 출력 파일' 을 기록 합 니 다.명령 의 표준 입력 은 기본적으로 '표준 입력 파일' 에서 내용 을 읽 고 파일 설명 자 는 0 입 니 다.표준 입력 파일 은 우리 의 키보드 입력 장치 와 직접 연 결 됩 니 다.
예 를 들 어, 예 를 들 어, 우리 가 ls 명령 을 실행 하면 화면 에 현재 디 렉 터 리 의 내용 을 직접 표시 합 니 다.
[root@vm2 zabbix]# ls
zabbix_agentd.log

이것 은 ls 명령 의 표준 출력 은 '표준 출력 파일' 에 기록 되 어 있 기 때 문 입 니 다. '표준 출력 파일' 은 매우 특수 하기 때문에 그 내용 이 화면 에 직접 표 시 됩 니 다. 그래서 우 리 는 ls 명령 을 실행 해 야 위 와 같은 출력 을 직접 볼 수 있 습 니 다.
명령 의 표준 입력 에 있어 서, 예 를 들 어 cat - 명령 을 실행 하면 cat 명령 은 지정 한 파일 의 내용 을 직접 표시 합 니 다 (지정 한 파일 내용 을 '표준 출력 파일' 에 기록 합 니 다). cat - '표준 입력 파일' 의 내용 을 표시 합 니 다. 이 때 는 우리 가 키 판 에서 입력 할 때 까지 기 다 립 니 다. 여 기 는 문자열 을 마음대로 입력 하고 Enter 를 누 르 면 표 시 됩 니 다.
[guli@gulideMacBook-Air ~]$ cat -
alskdf
alskdf

우 리 는 기본 설정 을 바 꾸 고 명령 의 입력 과 출력 을 다른 파일 과 연결 시 키 는 것 입 니 다.
명령 을 바 꾸 면 명령 이 실행 되 기 전에 명령 의 입 출력 이 바 뀔 수 있 습 니 다.
방향 을 바 꾸 는 것 도 현재 셸 환경 에 파일 을 열 거나 파일 을 닫 는 데 사용 할 수 있 습 니 다.
방향 을 바 꾸 는 기호의 위치: 방향 을 바 꾸 는 기 호 는 간단 한 명령 전에 나타 나 고 그 다음 에 나타 날 수 있 습 니 다.
방향 을 바 꾸 고 나타 나 는 순서에 따라 왼쪽 에서 오른쪽으로 집행 합 니 다.
기 호 를 바 꾸 기 전에 2 > 와 같은 파일 설명 자 를 사용 할 수 있 습 니 다.{VARNAME} 도 가능 합 니 다.
{VARNAME} 이 라면 '> &' 와 '를 제외 하고
'> &' 와 '
다음 설명 에서 파일 설명 자 를 명시 적 으로 쓰 지 않 으 면 첫 번 째 리 셋 기 호 는 '첫 번 째 리 셋 기호 가' > '일 때 표준 출력 파일 (파일 설명 자 는 1) 을 표시 합 니 다.
기 호 를 바 꾼 다음 단 어 는 별도의 설명 이 없 는 한 다음 과 같이 전개 할 수 있 습 니 다. 괄호 전개, 파도 선 전개, 매개 변수 전개, 명령 교체, 산술 전개, 참조 취소, 파일 이름 전개 및 단어 분할.
여러 단어 로 펼 쳐 지면 bash 에서 오 류 를 보고 합 니 다.
주의해 라, 방향 을 바 꾸 는 순서 가 매우 중요 하 다.예 를 들 면:
ls > DIRLIST 2>&1

먼저 '표준 출력' (파일 설명자 1) 을 재 설정 하고 파일 설명자 1 이 DIRLIST 파일 에 연결 되 었 음 을 나타 낸다.
그 다음 에 '표준 오류 출력' (파일 설명자 2) 을 재 설정 합 니 다. 여기 에는 참조 & 1 을 사용 하여 파일 설명자 1 과 연 결 된 파일 을 표시 합 니 다. 재 설정 되 었 고 값 은 DIRLIST 이기 때문에 표준 오류 출력 은 DIRLIST 파일 로 재 설정 되 었 습 니 다.
최종 효 과 는 표준 출력 과 표준 오류 출력 (파일 설명자 2) 을 DIRLIST 파일 로 동시에 가 져 오 는 것 입 니 다.
 ls 2>&1 > DIRLIST

이전 명령 과 비교 하면 표준 출력 만 파일 DIRLIST 로 가 져 옵 니 다.2>&1 표준 오류 출력 에 대해 방향 을 바 꾸 는 것 을 표시 합 니 다. 즉, 파일 설명자 2 와 연 결 된 파일 을 바 꾸 려 고 합 니 다.파일 설명자 1 과 연 결 된 파일 로 다시 설정 합 니 다. 연 결 된 파일 은 기본 '표준 출력 파일' 입 니 다.> 표준 출력 을 재 설정 한 다 는 뜻 입 니 다. 즉, 파일 설명자 1 과 연 결 된 파일 을 바 꾸 는 것 입 니 다. 여 기 는 DIRLIST 로 재 설정 되 었 습 니 다.
bash 가 방향 을 바 꿀 때 일부 파일 이름 에 대해 특별 대 우 를 합 니 다.
'/dev/fd/FD' FD 가 유효한 정수 라면 파일 설명자 FD 가 복 사 됩 니 다.
'/dev/stdin' 파일 설명자 0 이 복사 되 었 습 니 다.
'/dev/stdout' 파일 설명자 1 이 복사 되 었 습 니 다.
'/dev/stderr' 파일 설명자 2 가 복사 되 었 습 니 다.
'/dev/tcp/HOST/PORT'
만약 에 HOST 가 유효한 호스트 이름 이나 IP 주소 이 고 PORT 가 정수 포트 숫자 나 서비스 이름 이 라면 bash 는 TCP 를 열 어 대응 하 는 socket 에 연결 하려 고 시도 합 니 다.
'/dev/udp/HOST/PORT'
만약 에 HOST 가 유효한 호스트 이름 이나 IP 주소 이 고 PORT 가 정수 포트 숫자 나 서비스 이름 이 라면 bash 는 UDP 를 열 어 대응 하 는 socket 에 연결 하려 고 시도 합 니 다.
파일 을 여 는 데 실 패 했 거나 파일 을 만 드 는 데 실 패 했 을 경우 방향 을 바 꾸 는 데 실 패 했 습 니 다.
셸 내부 에서 사용 할 수 있 기 때문에 9 이상 의 파일 설명 자 는 신중하게 사용 해 야 합 니 다.
3.6.1 입력 방향 변경
WORD 의 전개 결 과 를 파일 이름 으로 합 니 다.이 파일 이름 을 가 진 파일 이 파일 설명자 'N' 과 연결 되 고 파일 이 열 리 고 읽 기 를 기다 리 도록 방향 변경 을 입력 하 십시오.'N' 이 지정 되 지 않 으 면 파일 이 표준 입력 에 연 결 됩 니 다.
[N]

3.6.2 출력 방향 변경
WORD 의 전개 결 과 를 파일 이름 으로 합 니 다.이 파일 이름 의 파일 을 파일 설명자 'N' 과 연결 시 키 고 파일 이 열 리 고 기록 을 기다 리 도록 방향 을 바 꾸 십시오.'N' 이 지정 되 지 않 으 면 파일 이 표준 출력 에 연 결 됩 니 다.
파일 이 존재 하지 않 으 면 생 성 됩 니 다.파일 이 존재 하면 파일 내용 이 비 워 집 니 다 (truncated).
[N]>[|]WORD

리 셋 기호 가 '>' 이 고 'noclobber' 옵션 이 set 명령 으로 열 리 면 파일 이 존재 하고 파일 이 일반 파일 이 라면 리 셋 에 실패 합 니 다.
리 셋 기호 가 '> |' 이거 나 '>' 이 고 'noclobber' 가 열 리 지 않 으 면 파일 이 존재 하 더 라 도 리 셋 을 시도 합 니 다.
3.6.3 추가 출력 방향 변경
추가 출력 방향 을 바 꾸 면 파일 에 있 는 내용 에 출력 을 추가 합 니 다.파일 이 존재 하지 않 으 면 생 성 됩 니 다.
[N]>>WORD

3.6.4 표준 출력 과 표준 오류 출력 으로 재 설정
이 구 조 는 표준 출력 과 표준 오류 출력 을 동시에 파일 로 바 꿀 수 있 습 니 다.
두 가지 형식 이 있다.
&>WORD
>&WORD

상기 두 가지 중에서 첫 번 째 가 더 인기 가 많다 & > WORD.
의미 상 그것들 은 이와 같다.
>WORD 2>&1

>WORD: 即 1>WORD,将WORD文件跟 “文件描述符1” 关联,等待写入。
       表示标准输出重定向到WORD文件。

2>&1: 表示将 “文件描述符2” 跟 “文件描述符1” 所关联的文件做关联,
      等待写入。

3.6.5 표준 출력 과 표준 오류 출력 을 추가 합 니 다.
이 구 조 는 표준 출력 과 표준 오류 출력 을 동시에 파일 로 바 꿀 수 있 습 니 다.그 형식 은:
&>>WORD

의미 상, 그것 은 이것 과 같다.
>>WORD 2>>&1

3.6.6 Here Document
이 리 셋 방향 은 현재 source 에서 입력 을 읽 고 WORD 만 포함 하 는 줄 이 나타 날 때 까지 입 니 다.이전에 읽 은 모든 줄 은 명령 의 표준 입력 으로 사 용 됩 니 다.
<

WORD 에 대해 서 는 인자 전개, 명령 교체, 산술 전개, 파일 이름 전개 가 진행 되 지 않 습 니 다.
WORD 에 인 용 된 문자 가 포함 되 어 있 으 면 DELIMiter 는 삭 제 된 값 을 인용 하 는 것 과 같 습 니 다. here - document 의 모든 줄 은 펼 치지 않 습 니 다.
WORD 가 인용 되 지 않 으 면 here - document 의 모든 줄 은 인자 전개, 명령 교체 와 산술 전개 가 가능 합 니 다.ewline '은 무시 되 고' 인용 ',' $',' '를 사용 해 야 합 니 다.
만약 방향 을 바 꾸 는 기호 가 '<
3.6.7 Here String
이것 은 here - document 의 변형 입 니 다.
<<< WORD

WORD 가 펼 쳐 진 후에 명령 의 표준 입력 을 제공 합 니 다.
3.6.8 파일 설명자 의 복사
파일 설명자 의 복사 입력:
[N]

이 리 셋 연산 자 는 입력 파일 설명 자 를 복사 하 는 데 사 용 됩 니 다.
WORD 가 하나 이상 의 숫자 로 펼 쳐 지면 설명자 'N' 과 연 결 된 파일 은 전개 숫자 (파일 설명자 로 서) 와 연 결 된 파일 을 복사 합 니 다.
WORD 가 읽 기 방식 으로 열 린 파일 설명자 가 아니라면 방향 을 바 꾸 는 오류 가 발생 할 수 있 습 니 다.WORD 가 '-' 와 같 으 면 설명자 'N' 이 닫 힙 니 다.
'N' 이 지정 되 지 않 으 면 표준 입력 (파일 설명 자 는 0) 을 사용 합 니 다.
출력 파일 설명자 의 복사:
[N]>&WORD 

이 리 셋 연산 자 는 출력 파일 설명 자 를 복사 하 는 데 사 용 됩 니 다.WORD 가 하나 이상 의 숫자 로 펼 쳐 지면 설명자 'N' 과 연 결 된 파일 은 전개 숫자 (파일 설명자 로 서) 와 연 결 된 파일 을 복사 합 니 다.
WORD 가 쓰기 로 열 린 파일 설명자 가 아니라면 방향 을 바 꾸 는 오류 가 발생 할 수 있 습 니 다.
'N' 이 지정 되 지 않 으 면 기본 값 은 1 입 니 다.
'N' 이 지정 되 지 않 았 고 WORD 가 숫자 로 펼 쳐 지지 않 았 다 면 표준 출력 과 표준 오류 출력 은 다시 정 해 집 니 다 (앞에서 말 한 바 와 같이).
3.6.9 파일 설명자 이동
[N]
파일 설명자 DIGIT 를 N 으로 이동 하고 N 이 지정 되 지 않 으 면 0 으로 이동 합 니 다.DIGIT 가 N 으로 복사 되면 DIGIT 설명자 가 닫 힙 니 다.
[N]>&DIGIT-
파일 설명자 DIGIT 를 N 으로 이동 하고 N 이 지정 되 지 않 으 면 1 로 이동 합 니 다.
3.6.10 읽 기와 쓰기 로 파일 설명 자 를 엽 니 다.
[N]<>WORD
WORD 를 펼 쳐 결 과 를 파일 이름 으로 하고 이 파일 을 설명자 'N' 과 연결 하여 읽 기와 쓰기 로 엽 니 다.N 이 지정 되 지 않 으 면 0 설명 자 를 사용 합 니 다.파일 이 존재 하지 않 으 면 파일 을 만 듭 니 다.

좋은 웹페이지 즐겨찾기