시스템의 환경변수 또는 입력 내용을 화면에 출력한다.

사용법 : echo [-ne] [문자열], echo {--help,--version} 
-n : 마지막에 개행 (newline : 화면상에서 커서를 한 줄 아래로 내리도록 하는 코드로서, 아스키 문자 셋에서 10진수로 "10"에 해당하는 값을 갖는다) 문자를 출력하지 않는다. 
-e : 문자열에서 백슬래쉬(\)와 조합되는 이스케이프 문자(escape sequence : 프린터나 모니터의 화면 속성 등을 제어하기 위해 장치에 보내는 특수 문자열을 의마하는데, 그 중에서도 특히 이스케이프 문자로 시작되는 기계 명령을 말한다)을 인용부호(")로 묶어 문자를 인식하도록 한다. 아래는 사용 가능한 것들이다. 
-------------------------------------------------------- 
\a 경고음 (벨) 
\b 백스페이스 
\c 마지막 개행 문자를 사용하지 않는다. 
\f 폼 피드(form feed : 프린터에서 용지 바꿈) 
\n 개행 문자 
\r 캐리지 리턴 (carriage return : 커서를 그 줄의 맨 앞으로 옮기는데 사용되는 특수한 코드이다. 아스키 문자 셋에서, CR은 십진수 "13"에 해당되는 값이다.) 
\t 수평 탭 
\v 수직 탭 
\\ 백슬래쉬 
\nnn ASCII 코드가 nnn (8진수)인 문자 
--------------------------------------------------------- 
--help : 표준출력으로 사용법을 출력하고 정장적으로 종료한다. 
--version :  표준출력으로 버전정보를 출력하고 정장적으로 종료한다. 

echo 명령어는 뒤에 적는 문자열을 출력하는 명령어로, 문자열을 출력한 후에는 개행 문자를 덧붙어 출력한다. 또한 셸에서 자체적으로 포함하고 있는 내부 환경변수를 볼 때 주로 사용하게 된다.
먼저, 내부에서 사용하는 환경 변수를 살펴보자.

# set | more 
BASH=/bin/bash 
BASH_ENV=/root/.bashrc 
BASH_VERSINFO=([0]="2" [1]="05a" [2]="0" [3]="1" [4]="release" [5]="i686-pc-linu 
x-gnu") 
BASH_VERSION='2.05a.0(1)-release' 
COLORS=/etc/DIR_COLORS 
COLUMNS=80 
DIRSTACK=() 
EUID=0 
GROUPS=() 
HISTFILE=/root/.bash_history 
HISTFILESIZE=1000 
HISTSIZE=1000 
HOME=/root 
HOSTNAME=web2 
HOSTTYPE=i686 
IFS=$' \t\n' 
INPUTRC=/etc/inputrc 
JLESSCHARSET=ko 
LANG=ko_KR.eucKR 
LESSOPEN='|/usr/bin/lesspipe.sh %s' 
LINES=24 
LOGNAME=root 

echo 명령어로 HOME 환경 변수를 출력해 보자. 환경변수를 출력하려면 $문자를 붙여야한다.

# echo $HOME 
/root 

환경 변수를 보지않고, 자체 문자열을 출력하려면 다음과 같다.

# echo HOME 
HOME 

echo 명령어에서 보여지는 개행 문자를 삭제해 보자.

# echo -n HOME 
HOME# 

echo -e 옵션을 사용하여 이스케이프 문자를 인식할 수도 있다. 이 때에는 시스템에서 경고음을 들을수 있을 것이다.

# echo -e "\a" 

각각의 \t \n \r를 사용할 수도 있다.

# echo -e "test\ttest\ntest\rtest" 
test        test 
test 
# echo "test\ttest\ntest\rtest" 
test\ttest\ntest\rtest 
2005/06/21 20:22 2005/06/21 20:22
미디어의 마운트 상태를 해제한 다음 배출하는 명령어이다. 리눅스 설치가 끝난후 CD가 자동으로 튀어나오는 것도 바로 이 명령을 사용한 것이다.

사용법 : eject [옵션] [장치] 
-h, --help : 간단한 사용법을 보여준다. 
-v, --verbose : 명령이 실행되는 동안 좀 더 자세한 설명을 보여준다. 
-d, --default : eject가 실행되는 기본 장치의 이름을 보여준다. 
-a, --auto on|1|off|0 : auto-eject 모드를 on/off 설정한다. 
-c, --changerslot <slot> : ATAPI/IDE 시디롬 체인저에서 시디 슬롯을 선택할 수 있다. 이는 리눅스 커널 2.0 이상에서 작동한다. 시디롬 드라이브가 작동하는 동안(데이터 시디가 마운트 되었거나, 음악 시디가 플레이되고 있는 중에는 쓰일 수 없다. 참고로 첫 번째 슬롯은 1이 아니라, 0이다. 
-t, --trayclose : 시디롬 트레이를 닫는 명령어이나, 모든 장치에 지원되는 것은 아니다. 
-x, --cdspeed <speed> : 시디롬 스피드를 선택하는 명령이다. speed는 만일 8배속이라면 8을 입력하나, 모든 장치에 지원되는 것은 아니다. 
-n, --noop : 실제 실행되는 것이 아니라, eject되는 장치를 보여준다. 
-r, -cdrom : 시디롬을 eject한다. 
-s, scsi : 스카시 장치를 eject한다. 
-f, --floppy : 플로피를 eject한다. 
-p, --proc : /etc/mtab 대신 /proc/mounts 파일을 이용한다. 
-V, --version : 버전 정보를 보여준다. 

eject는 시디롬, 플로피 디스크, 테이프, JAZ나 ZIP디스크 같은 장치를 명령어 제어로 제거할수 있다. 이는 멀티 디스크 시디롬 체인저나 auto-eject 를 지원하는 장치들을 제어할 수도 있으며, 몇 몇 시디롬 드라이브의 디스크 트레이를 닫을 수도 있다.
기본 장치인 시디롬 트레이가 배출된다.

# eject 

-t 옵션으로 시디롬 트레이를 한 번 넣어보자.

# eject -t 

-e 옵션으로 eject가 실행되는 기본 장치 이름을 살펴 볼 수 있다.

# eject -d 
eject : default device: cdrom' 
2005/06/21 20:20 2005/06/21 20:20
환경 변수를 보고 기본 환경 변수 값을 바꾸는 명령어이다.

사용법 : env [옵션] [변수=값...] [명령 [인수...]] 
-, -i, --ignore-environment : 현재 환경을 무시하고 지정한 변수=값을 따른다. 
-u, --unset name : 지정한 변수를 제거한다. 
--help : 사용법을 보여준다. 
--version : 버전 정보를 보여준다. 

env 명령은 사용자의 현재 환경을 보여주거나, 환경변수를 새로운 값으로 설정하고 변경된 환경을 보여 주는 명령어이다. 만일, 명령이 지정되었다면 이 명령은 변경된 환경에서 실행될 것이다.

# env 
PWD=/root 
HOSTNAME=web2 
LESSOPEN=|/usr/bin/lesspipe.sh %s 
USER=root 
-----------------중략---------------- 
MAIL=/var/spool/mail/root 
INPUTRC=/etc/inputrc 
BASH_ENV=/root/.bashrc 
LANG=ko_KR.eucKR 
LOGNAME=root 
SHLVL=1 
SHELL=/bin/bash 
USERNAME=root 
HISTSIZE=1000 
TERM=linux 
HOME=/root 
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin: 
/usr/local/sbin:/usr/bin/X11:/ 
usr/X11R6/bin:/root/bin 
JLESSCHARSET=ko 
_=/usr/bin/env 

[관련 명령어]
export 환경 변수를 확인/수정하는 명령어
2005/06/21 20:19 2005/06/21 20:19