[RHEL6] 쉘 명령어 3탄(help, history, if, let, sh)
본문 바로가기
IT 이야기/Linux 명령어

[RHEL6] 쉘 명령어 3탄(help, history, if, let, sh)

by 찬찬이 아빠 2020. 2. 14.
반응형
  11. help(내부 명령어 도움말)

 1) 요약 : 내부 명령어의 도움말을 출력

 2) 사용 방법 : help [옵션] 문자열

 3) 옵션

 -s : 지정한 문자열을 포함하는 명령어를 모두 출력

 

 4) 추가 설명

help 명령어는 내부 명령어의 사용법을 출력합니다.

# help fg
fg: fg [job_spec]
Place JOB_SPEC in the foreground, and make it the current job. If
JOB_SPEC is not present, the shell's notion of the current job is
used.

 

-s 옵션은 지정된 문자열을 포함한 내부 명령어를 검색하고 간단한 사용법을 출력합니다.

# help -s time
time: time [-p] PIPELINE
times: times

 

 

  12. history(이전 명령어)

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

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

 3) 옵션

 숫자 : 최근 사용한 명령어를 숫자만큼 출력

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

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

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

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

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

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

 

 4) 추가 설명

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

# echo $HISTFILE
/root/.bash_history
# echo $HISTFILESIZE
10000

 

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

 

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

# history 5
100 ls -al
101 cd /tmp
102 history
103 ps -ef
104 clear

 

<이벤트 지시자>

이벤트 지시자(Event Designators)는 히스토리를 검색하여 사용했던 명령어를 실행합니다.

지시자 설명
!!

바로 전에 실행한 명령어를 실행.

-1과 같음

!n

히스토리의 n 번째 명령을 실행

history에서 나오는 명령어 리스트의 번호를 지정

!-n 최근 실행한 명령어부터 그 전으로 순서를 매겨 n 번째 명령어를 실행
!문자열

지정한 문자열로 시작하는 가장 최근 명령어를 실행

가장 최근 사용한 ssh 명령어를 실행

# !ssh

ssh -l root www.chanchan.co.kr

root@www.chanchan.co.kr's password:

!?문자열[?]

문자열을 포함하는 가장 최근 명령을 가리킴

가장 최근에 사용한 www.chanchan.co.kr 이 포함된 명령어를 실행 

#!?www.chanchan.co.kr

ssh -l root www.chanchan.co.kr

root@www.chanchan.co.kr's password:

^문자열1^문자열2^

바로 이전 명령어에 포함된 "문자열 1"을 "문자열 2"로 치환

"!!:s/문자열1/문자열2/"와 같음

바로 이전의 명령어기 ls -al이었다면 "-al" 옵션을 "-a" 옵션으로 변경하여 실행

#^-al^-a^

ls -a

!# 쉘 명령행에서 Enter 키를 입력하지 전까지 입력한 전체 명령을 다시 출력

 

 

 

  13. if(if 조건문)

 1) 요약 : if 조건문 형식으로 명령문을 실행하는 스크립트 문법

 2) 사용 방법

   if test조건1

   then

        명령행1

   elif test조건2

        명령행2

   ...

   else

        명령행

   fi

 

 3) 추가 설명

if 조건문은 if의 조건에서 참일 경우 then 이하를 실행하고 거짓을 경우 else 이하를 실행합니다. 조건문에 들어 갈 수 있는 표현식은 test 명령어를 참고합니다.

 

<if 스크립트(파일명 : ifscript)>

스크립트 설명
#!/bin/bash bash 쉘로 스크립트 실행
if [ -f "/root/.bash_hisoory"]

if 조건문으로 조건을 검사

-f는 test 명령어로 파일이 있으면 참을 반환하고 파일이 없으면 거짓을 반환

then echo "히스토리 파일이 존재함" 히스토리 파일이 있을 경우 "히스토리 파일이 존재합니다."를 출력
fi 조건문을 마침

 

<스크립트 실행>

# ./ifscript
히스토리 파일이 존재함

 

 

  14. let(산술연산)

 1) 요약 : 수학 연산자를 이용하여 산순연산을 수행

 2) 사용 방법 : let 인수[인수...]

 3) 추가 설명

let은 수학 연산자를 이용해 산술연산을 수행합니다. 스크립트 내에 let이 없이 산술연산을 사용하면 명령행으로 인식하여 원하는 결과를 얻을 수 없습니다.

 

다음은 루프문에 자주 응용되는 가장 간단한 변수 연산입니다.

#!/bin/bash
i=" "
let "i = i + 10"
echo "$i"

 

<스크립트 실행>

# ./letscript
10

 

<산순연산 우선순위>

산술연산 설명
-, + 부호(plus, minus)
!, ~ 논리적 그리고 비트수준 부정
*, /, % 곱하기, 나누기, 나머지 연산
+, - 더하기, 빼기
<<, >> 왼쪽, 오른쪽 비트 쉬프트
<=, >=, <, > 비교
==, != 같다, 같지 않다
& 비트수준 AND
^ 비트수준 배타적(exclusive) OR
| 비트수준 OR
&& 논리적 AND
|| 논리적 OR
=, *=, /=, %=, += ,-=, <<=, >>=, &=, ^=, |= 지정

 

 

 

  15. sh(쉘 선언)

 1) 경로 : /bin/sh

 2) 요약 : 기본 쉘을 호출

 3) 사용 방법 : sh

 4) 추가 설명

sh 명령어는 기본으로 지정되어 있는 쉘을 호출합니다. 예전에 /bin/sh는 본(Bourne) 쉘을 뜻했지만, 지금은 대부분 /bin/bash를 링크합니다. 아래는 현재의 쉘을 확인합니다.

$ whereis sh
sh: /bin/sh
$ ls -al /bin/sh
lrwxrwxrwx	1 root	root	14	Feb	17:15	/bin/sh -> bash

 

아래와 같이 count.sh 쉘 스크립트 파일은 ./count.sh나 sh count.sh로 실행할 수 있습니다. sh로 실행할 경우 파일의 실god 퍼미션이 필요 없습니다.

# sh count.sh
반응형

댓글