초코레

리눅스 리다이렉션(redirection)과 파이프(pipe) 본문

Linux

리눅스 리다이렉션(redirection)과 파이프(pipe)

초코레 2020. 7. 12. 19:12

Standard Stream (표준 입출력)

command로 실행되는 프로세스는 세 가지 스트림을 가지고 있다.

  • 표준 입력 스트림 (Standard Input Stream) ‑ stdin
  • 표준 출력 스트림 (Standard Output Stream) ‑ stdout
  • 오류 출력 스트림 (Standard Error Stream) ‑ stderr

 

리다이렉션 (redirection)

표준 스트림 흐름을 바꿔줄 수 있다.

주로 명령어 표준 출력을 화면이 아닌 파일에 쓸 때 사용한다. (>, <를 사용)

ls > files.txt
→ files.txt 파일에 ls의 출력 결과를 저장한다(ls의 출력 스트림 방향을 files.txt로 바꿈)

head < files.txt
→ files.txt의 앞 10라인을 출력(files.txt 의 파일 내용이 head 라는 파일의 처음부터 10 라인까지 출력해주는 명령으로 넣어짐)

head < files.txt > files2.txt
→ files.txt 의 앞 10라인 출력 결과를 files2.txt에 저장한다

ls >> files.txt
→ 기존에 있는 files.txt 파일 끝에 ls 출력 결과를 추가한다(>는 덮어쓰기, >>는 추가하기)

 

파이프(pipe)

두 프로세스 사이에서 한 프로세스의 출력 스트림을 또 다른 프로세스의 입력 스트림으로 사용할 때 사용한다. (|를 사용)

ls | grep file
ls 명령을 통한 출력 내용이 grep 명령의 입력 스트림으로 들어감
grep file 는 grep 명령의 입력 스트림을 검색해서 file 이라는 문구가 들어 있는 입력 내용만 출력해줌
(ls 명령으로 해당 디렉토리 또는 파일명에 file 이라는 문구가 있는지를 출력해줌)

※ 검색 명령

  • -i 옵션 : 영문의 대소문자를 구별하지 않는다.
  • -v 옵션 : 패턴을 포함하지 않는 라인을 출력한다.
  • -n 옵션 : 검색 결과의 각 행의 선두에 행 번호를 넣는다.
  • -l 옵션 : 파일명만 출력한다.
  • -c 옵션 : 패턴과 일치하는 라인의 개수만 출력한다.
  • -r 옵션 : 하위 디렉토리까지 검색한다.
grep [옵션] [패턴] [파일 혹은 폴더]

grep python files.txt
files.txt 라는 파일에서 python 라는 문구가 들어간 모든 행을 출력

grep ‑n python files.txt
files.txt 라는 파일에서 python 라는 문구가 들어간 모든 행을 라인까지 출력

grep ‑r python foldername
foldername 라는 폴더내의 하위 폴더를 포함한 모든 파일 중 python 라는 문구가 들어간 행을 출력

grep ‑i python files.txt
files.txt 라는 파일에서 python 라는 문구를 대,소문자 구분 없이 검색해서 출력

grep ‑E "go|java|python" files.txt
files.txt 라는 파일에서 go, java, 또는 python 이 있는 모든 행을 출력

'Linux' 카테고리의 다른 글

하드 링크와 소프트 링크  (0) 2020.07.14
foreground process 와 background process  (0) 2020.07.13
파일 및 권한 명령어  (0) 2020.07.11
다중 사용자 관련 명령어  (0) 2020.07.11
AWS에서 서버 생성하기  (0) 2020.07.11