반응형

    정보

    • 업무명     : 리눅스를 사용할 때 파일 및 프로세스와 관련한 명령의 팁

    • 작성자     : 박진만

    • 작성일     : 2020-07-16

    • 설   명      :

    • 수정이력 :

     내용

    [특징]

    • 리눅스에서 awk 명령어 사용방법 소개

     

    [활용 자료]

    • 없음

     

    [자료 처리 방안 및 활용 분석 기법]

    • 없음

     

    [사용법]

    • 작업 환경 구축

    • 소스 코드 작성 및 실행

    • 실행 결과 확인

     

    [사용 OS]

    • Linux (CentOS v7.0)

    • VMware Workstation Pro v15.5

     

    [사용 언어]

    • Bash Script

     

     소스 코드

    [파일 조작과 관련된 명령 - 지정된 크기의 더미 파일 생성]

    • coLinux 용 swap 파일을 만들 때 자동 백업 스크립트 벤치 마크에 사용하는 백업 대상 더미 파일을 만들 때 등 어떤 크기의 더미 파일을 작성하려면 dd 명령을 사용한다.

    dd if=/dev/zero of=DUMMY_FILE bs=1M count=*100*

    → bs × count (1MB × 100)에서 100MB 더미 파일을 생성.

    • dd 명령은

      • if 에 지정된 파일을

      • bs 에서 지정된 크기로

      • count 에 지정된 횟수만큼 읽고

      • of 에 지정된 파일에 복사

    • 그리고 실제 실행 결과는 다음과 같다.

    $ dd if=/dev/zero of=dummy bs=1M count=100
    100+0 records in
    100+0 records out
    104857600 bytes (105 MB) copied, 0.155313 seconds, 675 MB/s
    $ ls -lh dummy
    -rw-rw-r-- 1 sunone sunone 100M  5月 31 01:27 dummy
    • if에 /dev/zero 를 지정하고 있기 때문에, 내용이 모두 null 문자 (ASCII의 0x00)에서 100MB (1MB × 100)의 더미 파일이 생성 되었다.

     

    [파일 조작과 관련된 명령 - 여러 파일의 이름을 한번에 바꾸기]

    • 여러 파일의 확장자를 일괄 변환 할 때 등 여러 파일 이름의 일부를 일괄 적으로 변경하려는 경우에는 mv 명령이 아닌 rename 명령을 사용한다.
    rename FROM_STRING TO_STRING TARGET_FILE

    → 대상이되는 파일 (TARGET_FILE)의 FROM_STRING에 해당하는 부분을 TO_STRING에 대체 이름을 변경한다.

    $ ls
    bar.htm  foo.htm  fuga.htm  hoge.htm
    $ rename .htm .html *.htm
    $ ls
    bar.html  foo.html  fuga.html  hoge.html

     

    [파일 조작과 관련된 명령 - diff를 이용하여 임시 파일을 생성하지 않고 바로 명령의 실행 결과를 전달하기]

    • diff 명령은 아래 처럼 인수 파일 이외의 파일을 지정할 수 없다.

    # 실행 불가능한 코드
    diff `command1` `command2`

     

    • 이처럼 명령의 실행 결과를 직접 전달할 수 없다.

    • 일반적으로 이 command1와 command2실행 결과를 diff 명령으로 비교하려면 임시 파일에 각 명령의 실행 결과를 출력하고 임시 파일을 diff 명령으로 비교하게 된다.

    • 하지만 프로세스 치환을 사용하여 임시 파일을 생성하지 않고 명령의 실행 결과를 직접 diff 명령에 전달할 수 있다.

    diff <(command1) <(command2)

     

    [프로세스 처리와 관련된 명령 - 프로세스를 트리 형식으로 표시 (전체 트리 표시) ]

    • 프로세스의 상속 관계를 알기 쉽게 표시하려면 pstree 명령을 사용한다.

    pstree -anpH프로세스아이디

    → pstree 명령에 anpH옵션으로 강조하고 싶은 프로세스 ID (PID)를 공백없이 지정한다.

    • pstree 명령은 실행중인 프로세스의 상속 관계를 트리 구조로 표시하는 명령이다.

    • 특정 프로세스를 강조 표시하려면 H 옵션과 함께 대상의 프로세스 ID를 지정한다. 강조 표시가 불필요한 경우에는 H옵션 및 프로세스 ID는 불필요해진다.

    • 각 옵션에 대한 자세한 내용은 다음과 같다.

    • -a

      • 명령 줄 인수를 표시한다.

    • -n

      • PID별로 정렬한다.

    • -p

      • PID를 표시한다.

    • -h

      • 현재 프로세스와 그 조상의 과정을 강조한다.

    • -H * 프로세스 ID *

      • 지정한 PID의 프로세스를 강조한다.

    $ pstree -anph
    init,1
     ┠tq(migration/0,2)
     ┠tq(ksoftirqd/0,3)
     ┠tq(watchdog/0,4)
     ┠tq(events/0,5)
     ┠tq(khelper,6)
     ┠tq(kthread,7)
     ┃  ┠tq(kblockd/0,10)
     ┃  ┠tq(kacpid,11)
     ┃  ┠tq(cqueue/0,68)
     ┃  ┠tq(khubd,71)
     ┃  ┠tq(kseriod,73)
     ┃  ┠tq(khungtaskd,134)
     ┃  ┠tq(pdflush,135)
     ┃  ┠tq(pdflush,136)
     ┃  ┠tq(kswapd0,137)
    
    -...-

     

    [프로세스 처리와 관련된 명령 - 프로세스를 트리 형식으로 표시 (일부 트리 표시) ]

    • 프로세스 트리의 일부분만을 표시하고 싶은 경우는 대상 프로세스의 프로세스 ID (PID)를 지정한다.

    pstree -anp 프로세스ID

    → pstree 명령에 anp옵션과 대상으로하는 프로세스 ID (PID)를 지정한다.

    $ pstree -anp 32309
    sshd,32309
      ┠sshd,32311
          ┠bash,32312
              ┠pstree,1392 -anp 32309

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

    [기상학/프로그래밍 언어]

    • sangho.lee.1990@gmail.com

    [해양학/천문학/빅데이터]

    • saimang0804@gmail.com

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음

     

    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기