발표자료 정리

박형석·2022년 2월 11일
0

발표자료

목록 보기
1/5
post-thumbnail

<텍스트 표준스트림과 stdin, stdout, stderr이 무엇인가요?>

  • 표준스트림: 프로그램 실행 시 세개의 스트림(in, out, err)이 자동으로 열리고, 여기서 파일이 스트림을 이동하는 흐름.

유닉스에서는 다양한 하드웨어 장치별로 입력과 출력을 위한 설정 작업을 따로 하는 것이 아니라

파일을 읽고 쓰는 한 가지 작업으로 통일했습니다. 표준스트림은
1. stdin(입력): 입력을 위한 스트림
2. stdout(출력): 출력을 위한 스트림
3. stderr(에러): 오류메시지를 출력하기 위한 스트림

으로 구성 되어 있으며 실제로 리눅스의 /dev 디렉토리에서 위 세 개의 표준 스트림을 앞서 언급한 파일 형태로 담고 있습니다.
위 사진과 같이 echo hello devops~ 라는 입력을하면
hello devops~ 라는 출력이 됩니다.
그리고 명령어 없이 입력하면 에러메세지가 출력됩니다.

<파이프라인과 리다이렉션이 무엇인지 예시를 들어 설명하세요.>

파이프: 파이프는 어떤 명령의 결과를 다시 어떤 명령의 입력으로 받아야 할 때 사용되며

process1 | process2

라는 형식으로 입력됩니다.

이러한 파이프들이 모여 파이프라인을 형성하게 되는데 그예시를 들어 보겠습니다.

저는 현재 access.log 라는 파일을 가지고 있습니다.

한번 열어 보겠습니다.

무수한 데이터들이 쏟아져 나옵니다;;

저는 이 파일에서 <맨위에서 3줄까지의 GET이란 단어를 HELLO로 바꿔서 강조하여 나타내고 싶습니다.> 이런 일을 하나하나 쳐서 하면 터미널을 쓰는 입장에서 복잡 할 수도 있습니다.

이때 파이프라인을 사용하여 한줄로 명령을 보내 처리 할 수 있습니다. 타자 느린건 이해 부탁드려요...



원하는대로 추출 하였습니다.

여기서 사용한 명령어는

  • cat: 파일의 내용 표시
  • head -n 3: 맨위 3줄만 출력
  • sed: 원하는 텍스트로 교체
  • grep: 원하는 텍스트 강조
    입니다.

이것들이 입출력 스트림의 파이프라인 이였구요

리다이렉션을 간단하게 설명하자면

리다이렉션은 이러한 표준 스트림의 흐름을 바꿔 파일로 표준 입/출력을 할 수 있도록 하는것.

입니다 또다시 예제로 돌아 가봅시다.

저는 3줄의 GET을 HELLO로 바꿔 강조한 저 텍스트를 터미널에 출력하지 않고 파일로 저장하려고 합니다.

이때 하는 작업이 리다이렉션 입니다.

앞선 명령어 뒤에 > HELLO.txt 라고 입력하여 터미널 대신 파일로 출력할 수 있습니다.


파일이 생성 되었습니다.

근데 여기서! 다시 이 파일의 맨 첫줄을 HI.txt라는 파일로 저장하고 싶다면??

이렇게 쳐주면?

파일이 생성 됩니다.

리다이렉션은 이러한 표준 스트림의 흐름을 바꿔 파일로 표준 입/출력을 할 수 있도록 합니다. 리다이렉션을 쓰고 싶다면 기호인 > 혹은 < 를 사용하면 됩니다.

:)

profile
Better Than Yesterday

0개의 댓글