12. Shell 편 - 파이프 와 방향 변경
2602 단어 파이프 와 방향 변경Linux
파이프: 프로 세 스 통신 의 통신 도구 재 설정: 프로그램 결 과 를 파일 로 출력 할 수도 있 고 키보드 대신 파일 을 입력 할 수도 있 습 니 다.
파이프 와 파이프 문자
파 이 프 는 신호 와 마찬가지 로 프로 세 스 통신 방식 중 하나 입 니 다. 익명 파이프 (파이프라인 문자) 는 Shell 프로 그래 밍 에 자주 사용 되 는 통신 도구 파이프 문자 입 니 다. "|"이전 명령 이 실 행 된 결 과 를 다음 명령 에 전달 합 니 다.
(1) 첫 번 째 명령 의 출력 을 두 번 째 명령 의 입력 으로 한다.
user1@SC02ZRC4KMD6N Git % ls -l | more
(2) cat 와 ps 는 모두 외부 명령 입 니 다. 파이프 부 호 는 이 두 명령 에 하위 프로 세 스 를 만 듭 니 다. (ps 명령 이 실행 되 었 기 때문에 프로 세 스 이름 이 보이 지 않 습 니 다) 외부 명령 은 하위 프로 세 스 로 실 행 됩 니 다.내장 명령 실행 과정 은 부모 프로 세 스에 전달 되 지 않 기 때문에 파이프 부 호 를 사용 할 때 내장 명령 을 사용 하 는 것 을 피해 야 합 니 다.
user1@SC02ZRC4KMD6N Git % cat | ps -f
UID PID PPID C STIME TTY TIME CMD
501 965 964 0 10:18 ttys000 0:00.07 -zsh
501 1008 965 0 10:34 ttys000 0:00.00 cat
리 셋 기호
하나의 프로 세 스 는 기본적으로 표준 입력, 표준 출력, 오류 출력 세 개의 파일 설명자 입력 리 셋 기 호 를 엽 니 다. "eg: readvar ","> ","2 > ","& "eg: echo 123 >/path/to/a/file 입 출력 리 셋 조합 은 cat >/path/to/a/file < I am $USER EOF 를 사용 합 니 다.
(1) 재 설정 입력 - a. txt 파일 의 줄 수 통계
user1@SC02ZRC4KMD6N test % wc -l < a.txt
3
(2) 재 설정 입력 - 파일 내용 을 변수 에 할당 합 니 다.
user1@SC02ZRC4KMD6N test % read var < a.txt
user1@SC02ZRC4KMD6N test % echo $var
11
(3) 출력 재 설정 - 파일 에 내용 을 출력 하면 원본 파일 의 내용 이 비 워 집 니 다.
user1@SC02ZRC4KMD6N test % echo $var >b.txt
user1@SC02ZRC4KMD6N test % cat b.txt
11
(4) 출력 재 설정 - 파일 에 내용 을 출력 하면 원본 파일 의 내용 이 비 워 지지 않 습 니 다.
user1@SC02ZRC4KMD6N test % echo $var >>b.txt
user1@SC02ZRC4KMD6N test % cat b.txt
11
11
(5) 오류 재 설정 - 오류 가 있 을 때 터미널 에 인쇄 하지 않 고 오류 정 보 를 파일 에 출력 합 니 다.
user1@SC02ZRC4KMD6N test % nocmd
zsh: command not found: nocmd
user1@SC02ZRC4KMD6N test % nocmd 2> c.txt
user1@SC02ZRC4KMD6N test % cat c.txt
zsh: command not found: nocmd
(6) 정확 하 든 실패 하 든 결 과 를 파일 에 출력 한다.
# ,
user1@SC02ZRC4KMD6N test % nocmd &> d.txt
user1@SC02ZRC4KMD6N test % cat d.txt
zsh: command not found: nocmd
# ,
user1@SC02ZRC4KMD6N test % ls &> d.txt
user1@SC02ZRC4KMD6N test % cat d.txt
a.txt
b.txt
c.txt
d.txt
(7) 입 출력 리 셋 결합 사용 - 보통 셸 스 크 립 트 는. sh 파일 에서 e. txt 를 만 드 는 데 사 용 됩 니 다.
user1@SC02ZRC4KMD6N test % cat aa.sh
#!/bin/bash
cat > e.txt <
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
LVM에서 논리 볼륨 크기 확장 시도며칠 전 저희 부서에서 관리하던 데이터베이스 서버의 용량이 100%에 이르러 세상을 떠났기 때문에 저는 새로운 디스크를 추가하여 LVM으로 논리 볼륨의 크기를 확장하고 회복했습니다. 하지만 이 일은 모르는 단어와 지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.