본문으로 바로가기

해당 게시글은 진단 스크립트 작성 시 필요한 최소한의 명령어, 옵션들만 설명하였습니다.

 

 

. 문자열 검색

1. grep

문자열 또는 파일에서 자기가 찾고 싶은 문자가 포함된 줄을 찾아 출력해줌.

예시 1). grep "tistory hagsig" /blog/test.txt

예시 2). cat /blog/test.txt | grep -i "hagsig"

예시 3). cat /blog/test.txt | grep -i -v "hagsig"

예시 4). cat /blog/test.txt | grep -A "tistory"

[root@hagsig /]# cat /blog/test.txt
tistory
TISTORY
tistory hagsig
TISTORY HAGSIG

[root@hagsig /]# grep "tistory hagsig" /blog/test.txt
tistory hagsig

[root@hagsig /]# cat /blog/test.txt | grep -i "hagsig"
tistory hagsig
TISTORY HAGSIG

[root@hagsig /]# cat /blog/test.txt | grep -i -v hagsig
tistory
TISTORY

[root@hagsig /]# cat /blog/test.txt | grep -B 1 "hagsig"
TISTORY
tistory hagsig

 

2. egrep

grep 명령어의 업그레이드 버전으로 어러개의 문자를 한번에 찾을 수 있음.

예시 1). egrep "tistory|hagsig" /blog/test.txt

예시 2). cat /blog/test.txt | egrep -i "hagsig|hagsig"

[root@hagsig /]# cat /blog/test.txt
tistory
TISTORY
hagsig 0914
HAGSIG 0914

[root@hagsig /]# egrep "tistory|hagsig" /blog/test.txt
tistory
hagsig 0914

[root@hagsig /]# cat /blog/test.txt | egrep -i "tistory|hagsig"
tistory
TISTORY
hagsig 0914
HAGSIG 0914

 

grep, egrep 옵션
옵션 설명
-i 문자 검색시 대소문자를 구분하지 않음
-v 입력한 문자가 속해있는 줄을 제외하고 출력
-A 입력한 문자가 속해있는 줄의 아래 줄을 출력
-B 입력한 문자가 속해있는 줄의 위에 줄을 출력
-C 입력한 문자가 속해있는 줄의 위아래 줄을 출력

 

. 변수 지정

명령어 결과 값 또는 문자 등을 변수에 저장하였다가 원하는 곳에서 불러들일 수 있음.

※ 변수명 지정 시 숫자가 맨 앞에 있으면 안된다.

예시 1). hagsig=`cat /etc/passwd | head -1`

예시 2). tistory_0914="hagsig"

예시 3). _count=$((_count+1))

[root@hagsig /]# vi test.sh
hagsig=`cat /etc/passwd|head -1`
tistory_0914="tistory|blog|hagsig"
item_count=0

echo "$hagsig"
echo ""
echo "$tistory_0914"
echo ""
_count=$((_count+1))
echo "$_count"


[root@hagsig /]# sh +x test.sh
root:x:0:0:root:/root:/bin/bash

tistory|blog|hagsig

1

  

. 문자열 편집

1. awk

문자열 또는 파일에서 필드를 나누어 자기가 원하는 형식으로 값이 출력되도록 할 수 있음.

예시 1). uname -a | awk '{print $1}'

예시 2). awk -F":" '{print $1}' /test.txt

예시 3). cat /test.txt | awk -F":" '$1=="root"'

예시 4). cat /test.txt | awk -F":" '$1=="root" {print $1 " is uses " $7}'

[root@hagsig /]# uname -a
Linux hagsig 2.6.32-504.el6.i686 #1 SMP Wed Oct 15 03:02:07 UTC 2014 i686 i686 i386 GNU/Linux

[root@hagsig /]# uname -a | awk '{print $1}'
Linux

[root@hagsig /]# uname -a | awk '{print $2}'
hagsig


[root@hagsig /]# cat /test.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

[root@hagsig /]# awk -F":" '{print $1}' /test.txt
root
bin

[root@hagsig /]# awk -F":" '{print $2}' /test.txt
x
x


[root@hagsig /]# cat /test.txt | awk -F":" '$1=="root"'
root:x:0:0:root:/root:/bin/bash


[root@hagsig /]# cat /test.txt | awk -F":" '$1=="root" {print $1 " is uses " $7}'
root is uses /bin/bash

 

awk 옵션
옵션 설명
-F 필드 구분 문자 지정

 

2. sed

원하는 값만 출력되도록 하거나 특정 문자를 자기가 원하는 값으로 바꾸어 출력할 수 있음.

예시 1). sed 's/*/#/g' file

예시 2). cat file | sed -i 's/*/#/g'

[root@hagsig /]# cat /blog/test.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

[root@hagsig /]# sed 's/x/#/g' /blog/test.txt
root:#:0:0:root:/root:/bin/bash
bin:#:1:1:bin:/bin:/sbin/nologin

[root@hagsig /]# cat /blog/test.txt | sed 's/x/#/g'
root:#:0:0:root:/root:/bin/bash
bin:#:1:1:bin:/bin:/sbin/nologin

 

sed 옵션
옵션 설명
s 문자 치환
g 문자 치환 범위를 줄 전체로 변경

 

. 파일 재지향

1. >

명령어의 결과, 메시지 등을 파일로 저장할고 싶을 때 사용. 같은 파일명이 있다면 덮어쓰기 함.

예시 1). echo "tistory hagsig" > /blog/test.txt

예시 2). ifconfig > /blog/test.txt

[root@hagsig /]# cat /blog/test.txt
test file

[root@hagsig /]# echo "tistory hagsig" > /blog/test.txt

[root@hagsig /]# cat /blog/test.txt
tistory hagsig

 

2. >>

> 와 같은 기능을 제공하지만 같은 파일명이 있을때 덮어쓰는게 아닌 붙여쓴다는 차이점이 있다.

예시 1). echo "tistory hagsig" >> /blog/test.txt

예시 2). ifconfig >> /blog/test.txt

[root@hagsig /]# cat /blog/test.txt
test file

[root@hagsig /]# echo "tistory hagsig" >> /blog/test.txt

[root@hagsig /]# cat /blog/test.txt
test file
tistory hagsig