발표자료 정리
<텍스트 표준스트림과 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라는 파일로 저장하고 싶다면??
이렇게 쳐주면?
파일이 생성 됩니다.
리다이렉션은 이러한 표준 스트림의 흐름을 바꿔 파일로 표준 입/출력을 할 수 있도록 합니다. 리다이렉션을 쓰고 싶다면 기호인 > 혹은 < 를 사용하면 됩니다.
:)
Author And Source
이 문제에 관하여(발표자료 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dnflekf2748/발표자료-정리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)