2016년 12월 13일 화요일

Shell (쉘) 주요 명령어 모음

- 주석(#)
ex) ### 기존 Work 영역의 큐브를 삭제한다.
 



 
- 변수($)
ex) 지정할 때 : PRONO=`date '+%Y%m%d%H%M%S'`
      사용할 때 : PRONO=$PRONO$# 

※주의사항: '=' 좌우에 공백이 있어서는 안된다.



- 출력(echo)
ex) echo "[$PRONO `date '+%Y/%m/%d %H:%M:%S'`] Accept arguments : $*"
 



 
- 분기처리(if ~ fi)
ex) if [ "$CREATECUBE" = "Inite" ]
      then
          CREATECUBE="Y"
      elif [ "$CREATECUBE" = "Incre" ]
      then
          CREATECUBE="N"
      else
          echo "[$PRONO `date '+%Y/%m/%d %H:%M:%S'`] Cube Building Option Error #2 [ $2 ]"
          exit 1
      fi

     


- 삭제(rm)
ex) rm -rf $WORKDIR/$CUBEID*
      -d : 비어 있지 않은 디렉토리도 지움
      -f : 존재하지 않거나 이미 지워진 파일은 무시하고 다음으로 넘어감
      -i : 지우기 전에 파일을 지울 것인지 물어봄
      -r : 하위 디렉토리 까지 모두 지움
      -v : 무엇을 지웠는지 알려줌




- 복사(cp)
ex) cp -rf $BACKUPDIR/$CUBEID$VCD $WORKDIR/$CUBEID$VCD
      -I : 복사에 대한 실행여부 물음
      -f : 강제 복사
      -r : 하위 디렉토리와 파일 모두 복사
      -v : 복사 진행 상태 출력
      -a : 원본 파일의 속성, 링크 정보 유지 복사

     



- 이동(mv)
ex) mv $INCREMODELDIR/$CUBEID$MODEL $INCREMODELDIR/$CUBEID$MODEL$GUBUN$VER1

     

- 반복(while)
ex) while [ $days -ge 0 ]
         do
          del_date=$(/dw_app/cognos10/05_script/caljd.sh -y -s $(/dw_app/cognos10/05_script/caljd.sh -p $days))
          echo $CUBE_DIR/$del_date$FILE_EXT
          rm -rf $CUBE_DIR/$del_date$FILE_EXT
          if [ $? -ne 0 ]
               then
                   echo "[$PRONO `date '+%Y/%m/%d %H:%M:%S'`] Sub Cubee Delete Error [ rm -rf $CUBE_DIR/$del_month$FILE_EXT ]"
                   exit 1
            fi
          days=`expr $days - 1`
      done 




- 비교
※주의사항: [ 뒤와, ] 앞에는 반드시 공백이 있어야 한다.


[ $A -eq $B ] A와B의 값이 같은 경우
[ $A -ne $B ] A와B의 값이 다른 경우
[ $A -gt $B ] A가B보다 큰경우
[ $A -lt $B ] A가B보다 작은경우
[ $A -ge $B ] A가B보다 크거나 같은 경우
[ $A -le $B ] A가B보다 작거나 같은 경우

[ -s 파일명 ] 파일이 존재하면서 크기가 0보다 큰경우
[ -f 파일명 ] 디렉토리가 아닌 파일일경우 (크기 0인 경우 포함)
[ -d 디렉토리 ] 파일이 아닌 디렉토리인 경우
[ -w 파일명 ] 쓰기가 가능한 경우
[ -r 파일명 ] 읽기가 가능한 경우
[ ! -option 파일명 ] 옵션의 조건이 거짓이 되는 경우

[ "문자열1" = "문자열2" ] 두문자열이 같은 경우
[ "문자열1" != "문자열2" ] 두문자열이 다른 경우
[ -z "문자열" ] 문자열이 길이가 0인 경우
[ -n "문자열" ] 문자열이 길이가 0이 아닌 경우
    



 
- 문자열 패턴 검색(grep)
-c : 패턴이 일치하는 행의 수를 출력
-i : 비교시 대소문자를 구별 안함
-v : 지정한 패턴과 일치하지 않는 행만 출력
-n : 행의 번호를 함께 출력
-l : 패턴이 포함된 파일의 이름을 출력
-w : 패턴이 전체 단어와 일치하는 행만 출력

댓글 없음:

댓글 쓰기