[Linux] 리눅스를 사용할 때 파일 및 프로세스와 관련한 명령의 팁

정보

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

  • 작성자     : 박진만

  • 작성일     : 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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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