쉘 사용법 정리 - 리눅스 리다이렉션과 파이프
Standard Stream (표준 입출력)
1. command로 실행되는 프로세스는 세가지 스트림을 가지고 있습니다.
- 표준 입력 스트림(Standard Input Stream) - stdin
- 표준 출력 스트림(Standard Output Stream) - stdout
- 오류 출력 스트림(Standard Error Stream) - stderr
2. 모든 스트림은 일반적으로 plain text로 console 에 출력하도록 되어 있음
redirection (리다이렉션)
- 표준 스트림 프름을 바꿔줄 수 있습니다
1. > , < 을 사용함
2. 주로 명령어 표준 출력을 화면이 아닌 파일에 쓸 때
EX 1 )
ls > files.txt
: ls로 출력되는 표준 출력 스트림의 방향을 files.txt로 바꿔줌(files.txt에 ls로 출력되는 결과가 저장됨)
EX 2 )
head > files.txt
: files.txt의 파일 내용이 head라는 파일의 처음부터 10라인까지 출력해주는 명령으로 넣어짐
(files.txt의 앞 10라인이 출력됨)
EX 3 )
head < files.txt > files2.txt
- files.txt의 파일 내용이 head로 들어가서, file,txt의 앞 10라인을 출력
- head의 출력 스트림은 다시 files2.txt로 들어감
- head는 files.txt 내용을 출력하지 않고, 해당 출력 내용이 다시 files2.txt에 저장됨
(결과적으로 files.txt의 앞 10 라인이 files2.txt에 저장됨)
EX 4 )
기존 파일에 추가는 >> 또는 << 사용
- ls >> files.txt
- 기존에 있는 files.txt 파일 끝에, ls 출력 결과를 추가해줌
Pipe (파이프)
두 프로세스 사이에서 한 프로세스의 출력 스트림을 또다른 프로세스의 입력 스트림으로 사용할 때 사용됨
EX ) ls l grep files.txt
- ls 명령을 통한 출력 내용이 grep 명령의 입력 스트림으로 들어감
- grep files.txt는 grep 명령의 입력 스트림을 검색해서 files.txt가 들어있는 입력 내용만 출력해줌
- 따라서, ls 명령으로 해당 디렉토리/파일 중에 files.txt파일이 있는지를 출력해줌
정리
1. Standard Stream : stdin, stdout,stderr
2. redirection : 주로 명령어 표준 출력을 화면이 아닌 파일에 쓸 때
3. pipe : 두 프로세스 사이에서 앞에 있는 프로세스의 출력 스트림을 뒤에 있는 프로세스의 입력 스트림에 사용할 때
제로베이스 컴퓨터 공학 전공자 따라잡기 강의 정리한 내용입니다.