23-03-10 Presentation
카테고리: Presentation
[Q1] 표준스트림과 stdin, stdout, stderr이 무엇인가요?
-
표준 스트림 데이터의 흐름을 정의한 단어로 일반적으로 동작하는 프로그램은 실행 시, 세 개의 스트림이 자동으로 열리고, 이를 표준 스트림이라고 부릅니다. 표준스트림에는 입력을 위한 stdin, 출력을 위한 stdout, 오류 메시지나 진단을 위한 stderr이 있다.
- stdin 표준 입력은 프로그램으로 들어가는 입력값의 데이터(보통은 문자열) 스트림이며, Standard Input을 stdin으로 줄여 표현합니다. 리눅스 쉘에서는 표준 설정이 키보드로 되어 있습니다. 그러나 모든 프로그램이 입력을 요구하지 않으며, 대표적인 예로는 비밀번호를 입력할 때 이러한 표준 입력 스트림을 사용합니다.
- stdout 표준 출력은 프로그램이 출력 데이터를 기록하는 스트림으로, Standard Output을 stdout으로 줄여 표현합니다. 표준 출력은 텍스트 터미널에서 이루어집니다. 표준 입력과 마찬가지로 모든 프로그램이 출력을 요구하는 것은 아닙니다.
- stderr 표준 오류는 프로그램이 오류 메세지나 진단을 출력하기 위해 일반적으로 쓰이는 또다른 출력 스트림이며, Standard Error를 stderr로 줄여 표현합니다.
[Q2] 파이프라인과 리다이렉션이 무엇인지 예시를 들어 설명하세요.
-
파이프(Pipe)
파이프는 어떤 명령의 결과를 다시 어떤 명령의 입력으로 받아야 할 때 사용되며, 프로세스1의 출력 스트림을 프로세스2의 입력 스트림으로 사용할 때 파이프 기호
|
를 사용하여 아래와 같은 형식으로 작성한다.ex) 우선 터미널에서
/bin
으로 이동하여,ls -l
명령을 작성하면 많은 파일들이 나타나는데, 이 중에서ssh
라는 문자열이 포함된 것들만 확인 하려고 할때1
$ ls -l | grep ssh
이렇게 작성 가능하게 되면 ssh를 가진 파일들만 찾아 편하게 확인 가능하다.
쉽게 풀어 이야기 하면 명령어1과 명령어2를 합쳐준다고 생각하면 된다.
-
리다이렉션(Redirection) 리눅스에서 프로그램은 보통 세 개의 표준 스트림인 표준 입력(stdin), 표준 출력(stdout), 표준 에러(stderr)를 자동으로 열게 됩니다. 리다이렉션은 이러한 표준 스트림의 흐름을 바꿔 파일로 표준 입/출력을 할 수 있도록 합니다. 리다이렉션을 쓰고 싶다면 기호인
>
혹은<
를 사용합니다.리다이렉션 기호 방향 의미 > 표준 출력 명령의 결과를 파일로 저장 (기존 파일 덮어씀) » 표준 출력(append) 명령의 결과를 기존 파일에 추가 < 표준 입력 파일의 데이터를 명령에 입력 1 2
$ head < ps.txt > sample.txt # 명령어1 < 들어오는 파일 > 나가는 파일
코딩이 실행 되는 과정
ps.txt
의 내용을head
명령의 입력 스트림으로 전환하여 전송합니다.head
명령은 입력 받은ps.txt
의 내용에서 처음 10줄을 출력합니다.head
명령의 출력 스트림을sample.txt
파일에 연결합니다.head
명령의 출력 스트림은 결과를sample.txt
파일에 저장합니다.
댓글남기기