입출력 리디렉션(>, >>, <)
명령의 출력을 파일로 리디렉션하고 파일을 명령의 입력으로 사용하는 방법을 익혀 스크립트의 유연성을 높입니다.
입출력 리디렉션(>, >>, <)은(는) CoddyKit의 무료 DevOps Bootcamp 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 DevOps Bootcamp 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.
I/O 리디렉션이란 무엇인가요?
Linux에서 명령은 흔히 출력을 생성하거나 입력을 필요로 합니다. 입력/출력(I/O) 리디렉션을 사용하면 명령이 입력을 받는 위치나 출력을 보내는 위치를 변경할 수 있습니다.
화면(터미널)에 출력하는 대신 파일에 저장하거나, 파일의 내용을 다른 명령에 직접 입력으로 전달할 수도 있습니다.
표준 스트림 이해하기
모든 Linux 명령은 세 가지 "표준" 데이터 스트림과 상호 작용합니다.
- 표준 입력(STDIN): 명령이 입력을 받는 곳입니다(일반적으로 키보드).
- 표준 출력(STDOUT): 명령이 일반 출력을 보내는 곳입니다(일반적으로 화면).
- 표준 오류(STDERR): 명령이 오류 메시지를 보내는 곳입니다(이 역시 일반적으로 화면).
리디렉션을 사용하면 이러한 기본 대상이나 입력 소스를 변경할 수 있습니다.
'>'로 출력 캡처하기
> 연산자는 명령의 표준 출력(STDOUT)을 파일로 리디렉션하는 데 사용됩니다. 화면에 출력하는 대신 명령의 출력이 지정한 파일에 기록됩니다.
중요: 파일이 이미 있으면 >는 새 출력으로 파일의 전체 내용을 덮어씁니다. 중요한 데이터를 실수로 삭제하지 않도록 주의하세요!
예제: 명령 출력 저장하기
ls -l 명령의 출력을 my_files.txt라는 파일에 저장해 보겠습니다. 그런 다음 cat을 사용하여 파일의 내용을 확인하겠습니다.
ls -l > my_files.txt
cat my_files.txt'>>'로 파일에 추가하기
파일을 덮어쓰는 대신 새 내용을 파일 끝에 추가하고 싶을 때가 있습니다. 이때 >> 연산자를 사용합니다!
>>는 표준 출력(STDOUT)을 파일로 리디렉션하지만, 파일이 이미 있으면 기존 내용을 유지하면서 새 출력을 파일 끝에 추가합니다.
예제: 로그에 추가하기
먼저 간단한 파일을 만드세요. 그런 다음 >>를 사용하여 파일에 다른 줄을 추가하세요. 원래 내용이 그대로 유지되는지 확인해 보세요.
echo "First line of log." > app_log.txt
echo "Second line added." >> app_log.txt
cat app_log.txt'2>'로 오류 처리하기
오류 메시지는 어떻게 처리할까요? 오류 메시지는 표준 오류(STDERR)로 전달됩니다. STDERR을 파일로 리디렉션하려면 파일 디스크립터 2 뒤에 > 연산자를 붙인 2>를 사용합니다.
이 방법은 기본 출력을 복잡하게 만들지 않고 오류를 기록하거나 스크립트를 디버깅할 때 매우 유용합니다.
예제: 오류 메시지 기록하기
존재하지 않는 디렉터리를 나열해 보겠습니다. 오류 메시지는 일반적으로 화면에 표시됩니다. 대신 errors.log로 리디렉션해 보겠습니다.
ls /this/path/does/not/exist 2> errors.log
echo "Command finished. Check errors.log."
cat errors.log'<'로 입력 제공하기
< 연산자는 표준 입력(STDIN)을 리디렉션하는 데 사용됩니다. 명령이 키보드 입력을 기다리는 대신 지정한 파일에서 직접 입력을 읽습니다.
명령이 많은 입력을 필요로 하는 작업을 자동화하거나 파일의 내용을 직접 처리할 때 매우 유용합니다.
예제: 파일에서 정렬하기
정렬되지 않은 이름이 들어 있는 파일을 만든 다음, <를 사용하여 sort 명령이 해당 파일에서 입력을 읽도록 하겠습니다.
echo -e "Charlie\nAlice\nBob" > names.txt
sort < names.txt빠른 확인: 리디렉션
표준 출력을 리디렉션하고, 출력을 추가하고, 오류를 처리하고, 파일에서 입력을 제공하는 방법을 배웠습니다. 이해한 내용을 확인해 보겠습니다.
복습: I/O 리디렉션의 강력한 기능
잘하셨습니다! Linux에서 I/O 리디렉션의 기본 원리를 익혔습니다.
>는 STDOUT을 리디렉션하여 파일을 덮어씁니다.>>는 STDOUT을 리디렉션하여 파일에 내용을 추가합니다.2>는 STDERR을 리디렉션하여 오류 메시지를 캡처합니다.<는 STDIN을 리디렉션하여 명령이 파일에서 읽도록 합니다.
이 연산자들은 스크립트 작성, 오류 기록, 작업 자동화에 매우 강력하게 활용됩니다. 계속 연습해 보세요!
자주 묻는 질문
“입출력 리디렉션(>, >>, <)” 강의는 무료인가요?
네 — “입출력 리디렉션(>, >>, <)” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 DevOps Bootcamp 강의 전체를 잠금 해제할 수 있습니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.
“입출력 리디렉션(>, >>, <)”에서 뭘 배우나요?
명령의 출력을 파일로 리디렉션하고 파일을 명령의 입력으로 사용하는 방법을 익혀 스크립트의 유연성을 높입니다. 브라우저에서 직접 실행하는 실습 코드로 DevOps Bootcamp을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
DevOps Bootcamp을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 DevOps Bootcamp은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“입출력 리디렉션(>, >>, <)” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 DevOps Bootcamp 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 DevOps Bootcamp 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 프로세스 관리(ps, top, kill)
- 입출력 리디렉션(>, >>, <)
- 명령 연결하기(|)
- 백그라운드 작업과 작업 제어