Search
Duplicate
📒

[Linux CLI] 08-1. 스트림 & 파이프 명령어

상태
미진행
수업
Linux
주제
Linux CLI
4 more properties
참고

스트림 & 파이프라인

NOTE
스트림(Stream)이란, 프로그램을 드나드는 데이터를 흐름으로 표현한 단위!
파일로 모든걸 처리하겠다
ls -al /dev/fd/ # 4개의 파일(0~3 확인가능)
Bash
복사
유닉스에서는 장치를 추상화하여, 장치를 파일처럼 다루어 입출력 문제를 해결했습니다. 각각의 다양한 하드웨어 장치에 대해 별도의 설치 작업을 하지 않고, 파일을 읽고 쓰는 하나의 작업으로 통일했습니다!
리눅스에서는 /dev 디렉토리에 3개의 표준 스트림을 파일 형태로 저장하고 있습니다.
STDIN (Standard Input, 0): 입력을 위한 스트림
STDOUT (Standart Output, 1): 출력을 위한 스트림
STDERR (Standard Error, 2): 오류 메세지를 출력하기 위한 스트림

리다이렉션 (>, >>, <)

NOTE
리다이렉션은 표준 스트림의 흐름을 바꿔 파일로 표준 입/출력을 할 수 있도록 해준다!
리다이렉션 기호
방향
의미
>
표준 출력
명령의 결과를 파일로 저장 (기존 파일 덮어씀)
>>
표준 출력(append)
명령의 결과를 기존 파일에 추가
<
표준 입력
파일의 데이터를 명령에 입력
1>을 짧게 >로 사용, 2>도 가능함
date > today.txt # > 명령의 결과를 파일로 저장(기존파일 덮어씀) ncal -3 > cal.txt # ncal -3의 출력을 cal.txt에 넣는다. head -n3 < cal.txt # head 명령의 입력을 cal.txt파일에서 가져온다. ls -al >> directorylist.txt # >> 명령의 결과를 기존파일에 추가 cat .profile > directorylist.txt ls -al >> directortylist.txt wc -l < numbers.txt wc -l < numbers.txt > count.txt # wc -l에 numbers 전달하고 결과값을 count.txt 저장 sort < numbers.txt | uniq cat notexists.txt 2> errorfile # 에러사항 저장 cat notexists.txt 2> /dev/null # 에러사항 무시 # 1은 정상, 2는 오류 sort file.txt > sortedfile.txt date > file.txt # 내용으 덮어씀 date >> file.txt # 다음 라인에 추가함 # /dev/null은 블랙홀 (사라짐) grep -r '^The' /etc/ # 에러 메시지도 같이출력 grep -r '^The' /etc/ 2> /dev/null # 에러메시지 제거 grep -r '^The' /etc/ 1>> output.txt 2>> errors.txt # &1은 1번 출력으로 리다이렉션시 grep -r '^The' /etc/ > all_output.txt 2>&1 grep -r '^The' /etc/ 1> all_output.txt 2>&1 grep -r '^The' /etc/ 2> &1 1> all_output.txt
Bash
복사

파이프 ( | )

NOTE
어떤 명령의 결과를 다시 어떤 명령의 입력으로 받아야 할 때 사용한다
# 날짜를 출력하고 뒤집음 # 3202 CTU 55:65:10 9 yaM euT date | rev cat numbers.txt | uniq | sort | wc -l # sort(정렬), uniq(연속 중복된 라인제거) # 이외에 알면 좋은 명령어들 awk '{pring $1}' filename # 각 라인의 1번째 필드 sed 's/old/new' filename # 파일 내 old -> new 변경 cut -d':' -fl filename # :로 구분된 필드 중 1번째만
Bash
복사
| 기호를 사용해서 명령어 2개를 연속으로 사용함!