[RHEL6] 터미널 명령어 2탄(echo, env, history, jobs)
본문 바로가기
IT 이야기/Linux 명령어

[RHEL6] 터미널 명령어 2탄(echo, env, history, jobs)

by 찬찬이 아빠 2020. 3. 25.
반응형
  5. echo(환경 변수 출력)

 1) 경로 : 내부 명령어

 2) 요약 : 시스템의 환경 변수 또는 입력 내용을 화면에 출력

 3) 사용 방법 : echo [옵션] [문자열]

 4) 옵션

 -n : 마지막에 따라오는 개행 문자(newline)(화면상에서 커서를 한줄 아래로 내리도록 하는 코드로서 아스키 문자셋에서 10진수로 "10"에 해당하는 값을 갖음) 문자를 출력하지 않음

 -e : 문자열에서 역슬래시(₩)와 조합되는 이스케이프 문자(escape sequence)를 인용부호(")로 묶어 문자를 인식하도록 함

 --help : 사용법 출력

 --version : 버전 정보 출력

 

<이스케이프 문자 종류>

문자 설명
₩a 경고음(벨) 소리를 냄
₩b 백스페이스
₩c 마지막 개행 문자를 출력하지 않음
₩f 폼 피드(form feed, 프린터에서 용지 바꿈) 형식으로 출력
₩n 개행 문자를 출력
₩r 캐리지 리턴(carriage return, 커서를 그 줄의 맨 앞으로 옮기는데 사용되는 특수한 코드로 아스키 문자 셋에서 CR은 십진수 "13"에 해당하는 값)
₩t 수평 탭
₩v 수직 탭
₩₩ 역슬래시
₩nnn ASCII 코드가 nnn(8진수)인 문자

 

 5) 추가 설명

echo는 지정한 문자열을 출력하는 명령어로 문자열과 함께 개행 문자를 덧붙여 출력합니다. 이는 쉘에서 자체적으로 포함하는 내부 환경 변수를 확인할 경우 주로 사용합니다.

 

내부에서 사용하는 환경 변수를 먼저 살펴 봅니다.

# set | more
ABRT_DEBUG_LOG=/dev/null
BASH=/bin/bash
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:
sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_COMPLETION_COMPAT_DIR=/etc/bash_completion.d
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="2" [2]="46" [3]="2" [4]="release" [5]="x86_64-redhat-linux-gnu")
BASH_VERSION='4.2.46(2)-release'
COLUMNS=140
COMP_WORDBREAKS=$' \t\n"\'><=;|&(:'
DIRSTACK=()
DISPLAY=localhost:10.0
EUID=0
FINAL_LIST=
...생략...

 

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

 

 

 

  6. env(환경 변수 보기)

 1) 경로 : 내부 명령어

 2) 요약 : 환경 변수 값을 확인 또는 변경

 3) 사용 방법 : env [옵션] [변수=값...] [명령 [인수...]]

 4) 옵션

 -i, --ignore-environment : 현재 환경을 무시하고, 지정한 변수값을 따름

 -u, --unset name : 지정한 변수를 제거

 --help : 사용법 출력

 --version : 버전 정보 출력

 

 5) 추가 설명

env는 현재 지정되어 있는 환경 변수들을 출력하거나 새로운 환경 변수를 설정하고 적용된 내용을 출력하는 명령어입니다. 이 명령으로 변수를 지정하면 사용 중인 현재 환경에만 적용되고 시스템을 재부팅하면 지정한 내용은 사라집니다.

# env
XDG_SESSION_ID=21
HOSTNAME=chan
TERM=xterm
SHELL=/bin/bash
HISTSIZE=10000
SSH_CLIENT=10.0.2.2 55320 22
SSH_TTY=/dev/pts/0
USER=root
...생략...

 

 

 

  7. history(이전 명령어)

 1) 경로 : 내부 명령어

 2) 요약 : 명령어 히스토리를 출력

 3) 사용 방법 : history [숫자] [옵션]

 4) 옵션

 -숫자 : 쵝느 사용한 명령어를 숫자만큼 출력

 -c : 모든 히스토리를 삭제

 -d offset : 히스토리 리스트 중 삭제하고 싶은 오프셋(offset)을 지정하여 삭제

 -w 파일명 : 현재 히스토리 내용을 지정한 파일에 저장

 -r 파일명 : 히스토리 파일을 읽어서 출력

 -a 파일명 : 지정한 히스토리 파일에 현재 로그인 섹션의 히스토리를 추가

 -n 파일명 : 지정한 히스토리 파일 목록을 다시 읽음

 

 5) 추가 설명

history 명령어는 이전에 사용했던 명령어 목록을 보여줍니다. 히스토리는 HISTFILE에 저장됩니다. HISTFILE의 크기는 HISTFILESIZE를 넘지 않습니다. 그럼 현재 시스템의 지정된 HISTFILE과 HISTFILESIZE를 살펴봅니다.

# echo $HISTFILE
/root/.bash_history

# echo $HISTFILESIZE
1000

 

히스토리 파일로는 /root/.bash_history가 지정되어 있습니다. 또한 히스토리 파일 사이즈는 1,000으로 설정되어 있는데 1,000은 히스토리에 쌓여있는 명령어 수입니다.

 

아래와 같이 하면 최근에 사용한 명령어 다섯 개를 지정하여 볼 수 있습니다.

# history 5
1000 ls -al
1001 pwd
1002 chown root:root -R /CLOUD
1003 chmod 750 start.sh
1004 history 5

 

 

 

  8. jobs(현재 세션 작업 상태)

 1) 경로 : 내부 명령어

 2) 요약 : 현재 세션의 작업 상태를 출력

 3) 사용 방법 : jobs [옵션] [jobID...]

                   jobs -x command [args]

 4) 옵션

 -l(엘) : 프로세스 그룹 ID를 state 필드 앞에 출력

 -n : 프로세스 그룹 중에 대표 프로세스 ID를 출력

 -p : 각 프로세스 ID에 대해 한 행씩 출력

 command : 지정한 명령어를 실행

 

 5) 추가 설명

jobs는 작업이 중지된 상태, 백그라운드로 진행 중인 작업 상태, 변경되었지만 보고되지 않은 상태 등을 표시합니다.

 

현재 환경의 작업 상태를 아래와 같이 확인할 수 있습니다.

$ jobs
[1]- 정지됨			vi
[2]+ 정지됨			tail -f /var/log/messages

 

-l(엘) 옵션은 state 필드 앞에 프로세스 ID를 출력합니다.

$ jobs -l
[1]-	4908	Stopped (tty output)		vi
[2]+	4987	Stopped						tail -f /var/log/messages

 

jobs 명령어로 확인할 수 있는 세션의 상태값은 다음과 같습니다.

상태 설명
Running 작업이 일시 중단되지 않았고 종료하지 않고 계속 진행 중임을 뜻함
Done 작업이 완료되어 0을 반환하고 종료했음을 뜻함
Done(code) 작업이 정상적으로 완료했으며 0이 아닌 코드를 반환했음을 뜻함
Stopped 작업이 일시 중단됨을 뜻함
Stopped(SIGTSTP) SIGTSTP 신호가 작작업을 일시 중단했읆을 뜻함
Stopped(SIGSTOP) SIGSTOP 신호가 일시 중단했음을 뜻함
Stopped(SIGTTIN) SIGTTIN 신호가 작업을 일시 중단했음을 뜻함
Stopped(SIGTTOU) SIGTTOU 신호가 작업을 일시 중단했음을 뜻함

 

다음과 같이 하면 v로 시작하는 모든 프로세스 ID를 확인할 수 있습니다.

$ jobs -p %v
4908
반응형

댓글