echo 명령어 사용법

문자열이나 변수 값을 표준출력으로 출력하는 명령어입니다.

텍스트 처리연결 실습 문제 2개Rocky Linux 8 기준 · 실행 결과는 실습 컨테이너에서 확인

기본 문법

echo [-neE] [문자열...]

echo 는 인자로 받은 문자열을 표준출력으로 내보내는 명령어입니다. 변수 값 확인, 스크립트 진행 상황 표시, 짧은 파일 생성과 내용 추가에 자주 쓰입니다.

실무에서는 리다이렉션과 함께 쓰는 경우가 많습니다. `echo 문자열 > 파일` 은 파일을 새로 만들거나 기존 내용을 덮어쓰고, `echo 문자열 >> 파일` 은 파일 끝에 한 줄을 덧붙입니다. /etc/motd 배너 작성이나 /etc/hosts 항목 추가처럼 짧은 내용을 편집기 없이 처리할 때 쓸 수 있지만, 시스템 파일을 직접 수정할 때는 먼저 사본을 백업하고 `>` 대신 `>>` 를 사용하는지 확인해야 합니다. 아래 예제는 모두 /tmp 아래 연습용 파일로 실습합니다.

시험에서는 단독 문제보다 다른 문제의 준비 단계나 결과 확인 단계로 자주 등장합니다. echo 가 셸 내장 명령이면서 /bin/echo(coreutils) 로도 존재해 옵션 처리가 서로 다르다는 점, bash 기본 설정에서는 -e 없이 \n 이 그대로 출력된다는 점이 자주 나오는 함정입니다.

자주 쓰는 옵션

옵션의미
-n출력 끝에 줄바꿈을 붙이지 않음echo -n "입력하세요: "
-e\n, \t, \\, \c 같은 백슬래시 이스케이프를 해석echo -e "이름\t부서"
-E백슬래시 이스케이프를 해석하지 않음(bash 기본 동작)echo -E "C:\\temp"
--help도움말 출력. /bin/echo 에서만 동작하며, 셸 내장 echo 에서는 문자열로 그대로 출력됨/bin/echo --help
--version버전 출력. /bin/echo 에서만 동작하며, 셸 내장 echo 에서는 문자열로 그대로 출력됨/bin/echo --version

실무 예시

문자열 출력

$ echo Hello Learnix
Hello Learnix

인자로 준 문자열이 그대로 출력되고 끝에 줄바꿈이 붙습니다.

변수 값 확인

$ echo "HOME=$HOME SHELL=$SHELL"
HOME=/root SHELL=/bin/bash

큰따옴표 안에서 변수가 값으로 치환됩니다. 환경 변수가 제대로 설정됐는지 확인할 때 씁니다. 출력 값은 실행 계정과 셸에 따라 달라집니다(아래는 root, bash 기준).

-n 과 -e 로 출력 형태 바꾸기

$ echo -n "진행: "; echo -e "1단계\t완료\n2단계\t대기"
진행: 1단계	완료
2단계	대기

-n 은 줄바꿈을 생략해 다음 출력이 같은 줄에 이어지고, -e 는 \t 와 \n 을 각각 탭과 줄바꿈으로 해석합니다.

배너 파일 만들기 (#178 유형)

준비: mkdir -p /tmp/demo

$ echo "Welcome to Learnix Ops" > /tmp/demo/motd; echo "Authorized access only" >> /tmp/demo/motd; cat /tmp/demo/motd
Welcome to Learnix Ops
Authorized access only

> 로 파일을 새로 만들고 >> 로 두 번째 줄을 덧붙여 두 줄짜리 파일을 만듭니다. 실제 /etc/motd 에 적용할 때는 기존 파일을 먼저 백업한 뒤 작업하세요.

hosts 사본에 항목 추가 (#170 유형)

준비: mkdir -p /tmp/demo; printf '127.0.0.1 localhost\n10.10.10.10 web.internal\n' > /tmp/demo/hosts.sample; cp /tmp/demo/hosts.sample /tmp/demo/hosts.final

$ echo "10.10.10.11 db.internal" >> /tmp/demo/hosts.final; echo "10.10.10.12 cache.internal" >> /tmp/demo/hosts.final; cat /tmp/demo/hosts.final
127.0.0.1 localhost
10.10.10.10 web.internal
10.10.10.11 db.internal
10.10.10.12 cache.internal

원본을 복사한 뒤 >> 로 두 줄만 덧붙이므로 기존 줄이 그대로 유지됩니다. /etc/hosts 를 수정할 때도 같은 방식으로 사본을 만들어 확인한 뒤 반영하는 편이 안전합니다.

주의할 점

  • > 와 >> 를 혼동하면 기존 파일 내용이 통째로 지워집니다. 줄을 추가할 때는 반드시 >> 를 씁니다.
  • /etc/hosts, /etc/motd 같은 시스템 파일에 리다이렉션할 때는 먼저 `cp 원본 원본.bak` 으로 백업하고, 가능하면 사본에서 확인한 뒤 반영합니다.
  • 변수를 따옴표 없이 쓰면 공백 기준으로 나뉘고 *, ? 가 파일명으로 확장됩니다. echo "$VAR" 형태를 권장합니다.
  • -e 없이 쓴 \n, \t 는 해석되지 않고 문자 그대로 출력됩니다.
  • echo 는 셸 내장 명령이면서 /bin/echo 로도 존재해 -e, --help 등의 처리 방식이 다릅니다. 이식성이 필요하면 printf 를 씁니다.

이 명령어로 풀 수 있는 실습 문제

브라우저 웹 터미널에서 바로 풀고 요구사항별로 자동 채점됩니다. 로그인 없이 5분 체험도 가능합니다.

관련 명령어

마지막 검수 2026-09-16 · 내용에 오류가 있으면 문제 페이지의 질문 기능으로 알려 주세요.