코딩과로그
TIL > 리눅스 관련 (입출력, 관리자 권한 등) 본문
오늘 공부한 것들중에 기억에 남는 것들을 추려서 올립니다.
표준 스트림 -
일반적으로 프로그래밍에서의 표준 스트림이라고 하면,프로그램간의 상호 입출력을 의미한다. (이하 위키)
In computer programming, standard streams are interconnected input and output communication channels[1] between a computer program and its environment when it begins execution
리눅스에서 표준 스트림(Standard Stream)은 프로세스의 입력, 출력, 오류 출력을 다루는 세 개의 스트림입니다. 이들 스트림은 모든 유닉스 계열 운영 체제에서 공통으로 사용됩니다.
유닉스에서는 입출력을 파일로 추상화함으로써 통신을 파일형식으로 통일시켰다.
표준 스트림은 3가지로 나뉜다.
- 표준 입력(stdin) - 프로세스가 입력을 받는 스트림입니다. 보통 키보드나 파일에서 읽어옵니다. 표준 입력은 리눅스에서 0번 파일 기술자(file descriptor)를 사용하여 참조됩니다.
- 표준 출력(stdout) - 프로세스가 출력을 내보내는 스트림입니다. 보통 터미널 화면이나 파일에 출력됩니다. 표준 출력은 리눅스에서 1번 파일 기술자를 사용하여 참조됩니다.
- 표준 오류(stderr) - 프로세스가 오류를 출력하는 스트림입니다. 보통 터미널 화면이나 파일에 출력됩니다. 표준 오류는 리눅스에서 2번 파일 기술자를 사용하여 참조됩니다.
리다이렉션
리다이렉션 기호방향
> | 표준 출력 | 명령의 결과를 파일로 저장 (기존 파일 덮어씀) |
>> | 표준 출력(append) | 명령의 결과를 기존 파일에 추가 |
< | 표준 입력 | 파일의 데이터를 명령에 입력 |
- 이하 내가 해본 출력 리다이렉션
echo의 stdout 인 "hi"를 redirection하여 hi.txt 라는 파일을 새로 생성하여 넣어주었다.
리다이렉션을 응용하면 다음도 가능하다.
$ head < ps.txt > sample.txt
=> ps.txt 파일을 < 을 통해 head의 표준입력에 넣고 > 을 통해 sample.txt 파일로 덮어씌운다.
파이프라인
파이프라인은 리눅스/유닉스에서 두 개 이상의 명령어를 조합하여 하나의 명령어로 실행하는 것을 말함.
$ process1 | process2
process1 의 출력결과를 process2가 받고 싶을 때에 사용.
리다이렉션(Redirection)
리눅스/유닉스 명령어에서 출력을 화면이나 파일이 아닌 다른 위치로 보내는 것을 말합니다. 리다이렉션은 다양한 출력 스트림을 처리하는 데 사용됨.
- 아래과 같이 파일 or 폴더들이 있음.
❯ ls
gatsby.txt goodjob.txt hi.txt test.sh
- .txt 라는 명칭으로 끝나는 파일 or 폴더의 리스트를 얻어옴.
❯ ls | grep "\.txt$"
gatsby.txt
goodjob.txt
hi.txt
'Devops > TIL' 카테고리의 다른 글
TIL > URL과 URI (0) | 2023.03.15 |
---|---|
TIL > 시스템 모니터링 (0) | 2023.03.15 |
TIL > 프로세스, 서비스, 자동화 (0) | 2023.03.13 |
TIL> 리눅스 디렉토리 구조 (0) | 2023.03.09 |
TIL > 개발 프로세스와 DevOps 업무 개요 (0) | 2023.03.08 |