[에스넷시스템 부트캠프] TIL Day 14 - diff, sort, file, 압축과 아카이빙, 프로세스

2025. 6. 9. 23:32·TIL
목차
  1. 1. 유용한 명령어
  2. 1) diff
  3. 2) sort
  4. 3) file
  5. 2. 압축 -  gzip 
  6. 3. 압축 + 아카이빙 - tar 
  7. 4. 프로세스
  8. 1) 프로세스란?
  9. 2) PID, PPID
  10. 3) 프로세스 상태
  11. 4) 포그라운드, 백그라운드
  12. 5) 프로세스 확인 명령어
  13. 5) 프로세스 종료(kill)
  14. 6) 세션 관리 도구 
  15. 7) 데몬(Daemon)
  16.  
  17. ✍️ 하루 회고
728x90

1. 유용한 명령어

1) diff

# diff file1 file2 

: 두 파일에 대한 간략한 차이점

 

출력 형식
3c3                   /* file1의 3번째 줄이 file2의 3번째 줄로 변경되었다는 표시 ( c = change ) */
< 33333           /* file1의 해당 줄 */
---
> 44444           /* file2의 해당 줄 */

a (add) : 추가
d (delete) : 삭제
c (change) : 변경

 

 

# diff -c file1 file2

: 두 파일에 대한 자세한 차이점

 

# diff -i file1 file2 

: 두 파일을 비교할 때 대소문자 구분 X

💡 데이터 마이그레이션 후 무결성 검사
스토리지 마이그레이션이나 데이터 이동 작업이 끝난 후에는, 이동된 파일들이 원본과 동일한지 확인하는 과정이 필요하다. 이럴 때 # diff --recursive 명령어를 사용하여 디렉토리 전체를 하위 폴더까지 포함하여 비교할 수 있다. 

💡 마이그레이션이란?
시스템, 스토리지, 데이터베이스 등의 데이터나 환경을 다른 위치로 이동하거나 변환하는 작업을 말한다.

 

2) sort

파일의 정렬, 하나 또는 그 이상의 파일의 텍스트 줄을 스크린 상에서 정렬하고자 할 때 사용한다.

sort 명령어는 기본적으로 공백 문자 (space, tab)를 필드 구분자로 인식한다.

 

# sort -k 3 filename 

: 정렬할 필드(3)을 지정

 

# sort -t : -n filename

: -t로 필드 구분자(:)를 지정하고 -n으로 숫자 기준으로 정렬

 

# cat filename | sort -n | uniq | wc -l

: 파일 내 중복되지 않은(uniq) 숫자 라인 수(wc -l)를 출력

 

3) file

file 명령어는 파일의 종류를 알 수 있는 명령어이다. 보통 인터넷 상에서 다운로드 받은 파일이 정확히 어떤 종류인지를 확인할 때 사용된다. 

 

2. 압축 -  gzip 

리눅스에서 gzip 은 파일을 압축하고, gunzip 또는 gzip -d는 압축을 해제하는 명령어이다. 
압축 후에는 .gz 확장자가 붙은 새로운 파일이 생성되고, 원본 파일은 자동으로 삭제된다. 

 

# gzip -n filename
: 명령어에 n 부분에 숫자를 지정해 압축률와 압축 속도를 조절할 수 있다. 

숫자가 낮을수록 압축 속도가 높고, 숫자가 높을수록 압축이 높다. 숫자는 1~9까지 지정 가능하다. 

 

3. 압축 + 아카이빙 - tar 

아카이빙은 여러 파일이나 디렉토리를 하나의 파일로 묶는 작업으로, 용량 변화는 없다.
tar 명령어를 사용해 아카이빙할 수 있으며, -z 옵션으로 gzip 압축을 함께 적용하고, -f 옵션으로 테이프 대신 파일로 출력되게 만든다.

과거에는 대용량 데이터를 저장하거나 백업할 때 자기 테이프(LTO, DLT 등) 를 사용했다. tar는 이러한 테이프에 여러 파일을 순차적으로 하나로 묶어 저장할 수 있게 도와주는 도구였다.

요즘은 실제 테이프 장치 없이 디스크나 클라우드 스토리지를 테이프처럼 에뮬레이션하는 VTL(Virtual Tape Library) 을 사용하기도 한다. 이는 기존 테이프 기반 백업 시스템을 유지하면서도 속도와 접근성을 향상시킬 수 있는 백업 솔루션이다.

LTO 테이프

 

# tar cvf file.tar filename

: 새로운 아카이브 파일을 생성(c)하는 과정을 출력(v)하고 그 결과를 파일로 저장(f)

 

# tar tvf file.tar

: file.tar 파일(f)의 아카이브 목록(t)을 자세히(v) 출력

tar는 파일의 inode 정보(소유자, 권한, 수정 시간 등 메타데이터) 도 함께 저장하므로, 압축 해제 시에도 기존 파일의 시간 정보가 유지된다.

 

# tar cvzf file.tar.gz file1 file2 file3

: 여러 파일을 하나의 아카이브 파일로 묶고(c), gzip으로 압축(z) 하여, 파일로 저장(f) 하고, 진행 과정을 출력(v)

 

# tar cvf - . ( cd /dir ; tar xvf - ) 

: 현재 디렉토리(.)의 모든 파일을 표준 출력으로 묶어 파이프로 전달하고, /dir로 이동하여 그대로 압축 해제함.

이 방식을 사용하면 마이그레이션시 속성, 권한, 수정시간, 파일의 변경 없이 수행할 수 있다. 

❗구버전 tar 사용시 주의 사항
구버전 tar은 파일을 아카이빙할 때 절대 경로(/)를 그대로 저장해 압축 해제 시 시스템 디렉토리를 덮어쓸 위험이 있다. 최신 GNU tar는 이를 자동으로 방지하며, --absolute-names 옵션을 써야만 절대 경로가 유지된다.

4. 프로세스

1) 프로세스란?

  • 프로세스는 프로그램이 메모리에 적재되어 실제로 실행 중인 상태를 의미
  • 자식 프로세스는 부모 프로세스의 복제본이며, 일부 자원을 공유
  • 부모 프로세스가 종료되면 자식 프로세스도 존재 불가
  • 프로세스 관련 정보는 /proc 디렉토리에서 확인 가능

 

2) PID, PPID

  • PID (Process ID) : 프로세스에 할당되는 고유 식별 번호
  • PPID (Parent Process ID) : 해당 프로세스의 부모 프로세스 식별 번호

 

 

3) 프로세스 상태

  • Running (실행 중)
  • Waiting (대기 중)
  • Stopped (중단됨)
  • Zombie (좀비) : 자식 프로세스가 종료되었지만 부모 프로세스가 아직 그 종료 상태를 회수하지 않은 상태

 

 

4) 포그라운드, 백그라운드

  • 포그라운드 : 터미널을 점유하며 실행되는 프로세스
  • 백그라운드 : 터미널을 점유하지 않고 실행

 

# CMD & 

: CMD를 백그라운드로 실행

 

# bg 

: 실행 중인 포그라운드 프로세스를 Ctrl+Z로 일시 중지 후, 백그라운드 전환

 

# fg 

: 백그라운드 프로세스를 포그라운드로 다시 전환

 

5) 프로세스 확인 명령어

# jobs         

: 현재 쉘의 백그라운드 작업 목록 확인

 

# ps -ef 

: 전체 프로세스 상세 정보 출력 (UID, PID, PPID 등)

 

# ps aux

: BSD 스타일의 전체 프로세스 보기

 

5) 프로세스 종료(kill)

kill 명령어는 시그널(signal) 을 보내 프로세스를 제어한다.

번호 이름 설명
1 SIGHUP 프로세스 재시작
2 SIGINT 인터럽트 (Ctrl+C)
9 SIGKILL 강제 종료 (무조건 종료)
15 SIGTERM 정상 종료 요청 (기본값)

 

 

6) 세션 관리 도구 

  • screen:
    실행 시간이 오래 걸리는 작업을 할 때 사용하는 터미널 세션 관리 도구.
    쉘을 세션처럼 분리하여 백그라운드에서 실행 가능하게 하며, 연결이 끊겨도 작업이 계속 진행된다.
    메모리를 절약하면서도 안정적으로 작업을 이어갈 수 있다.
  • tmux:
    최근에는 screen보다 더 자주 쓰이는 세션 관리자로, 여러 터미널 창을 한 세션 안에서 분할하고 관리할 수 있다.
    복잡한 서버 작업이나 원격 환경에서 특히 유용하다.

tmux 사용

7) 데몬(Daemon)

  • 데몬은 백그라운드에서 동작하는 프로세스로, 사용자의 직접적인 입력 없이 지속적으로 특정 작업을 수행한다.
  • 커널에 의해 백그라운드 모드로 실행되므로 CPU를 계속 점유하진 않지만, 메모리는 상시 점유하고 있기 때문에 데몬이 많을수록 시스템 자원 사용량이 커진다.
  • 예: 웹 서버(httpd), 로그 감시(syslogd), 스케줄러(crond) 등

 

 

✍️ 하루 회고

오늘은 첫 주에 배운 리눅스 명령어의 연장선에 있는 내용이었다.
기존에 알고 있던 프로세스 관련 명령어들을 다시 복습하면서, 이해를 더 확실히 다질 수 있었다.

 

또한, gzip과 tar을 함께 사용하여 압축과 아카이빙을 동시에 수행하는 방식이 인상 깊었다. 단순히 압축하면 하나의 디렉토리로 묶어주는 거라고 생각했던게 압축과 아카이빙으로 분리되는 동작이라는 게 가장 기억에 남는 것 같다. 

728x90

'TIL' 카테고리의 다른 글

[에스넷시스템 부트캠프] TIL Day 16 - LVM  (0) 2025.06.12
[에스넷시스템 부트캠프] TIL Day 15 - 리눅스 프로세스 모니터링, 장치 인식부터 마운트 디스크 관리  (0) 2025.06.10
[에스넷시스템 부트캠프] TIL Day 13 - EIGRP, OSPF  (0) 2025.06.06
[에스넷시스템 부트캠프] TIL Day 12 - RIP, RIPv2  (0) 2025.06.05
[에스넷시스템 부트캠프] TIL Day 11 - STP, EtherChannel  (0) 2025.06.05
  1. 1. 유용한 명령어
  2. 1) diff
  3. 2) sort
  4. 3) file
  5. 2. 압축 -  gzip 
  6. 3. 압축 + 아카이빙 - tar 
  7. 4. 프로세스
  8. 1) 프로세스란?
  9. 2) PID, PPID
  10. 3) 프로세스 상태
  11. 4) 포그라운드, 백그라운드
  12. 5) 프로세스 확인 명령어
  13. 5) 프로세스 종료(kill)
  14. 6) 세션 관리 도구 
  15. 7) 데몬(Daemon)
  16.  
  17. ✍️ 하루 회고
'TIL' 카테고리의 다른 글
  • [에스넷시스템 부트캠프] TIL Day 16 - LVM
  • [에스넷시스템 부트캠프] TIL Day 15 - 리눅스 프로세스 모니터링, 장치 인식부터 마운트 디스크 관리
  • [에스넷시스템 부트캠프] TIL Day 13 - EIGRP, OSPF
  • [에스넷시스템 부트캠프] TIL Day 12 - RIP, RIPv2
yulee_to
yulee_to
  • yulee_to
    yulee
    yulee_to
  • 전체
    오늘
    어제
    • 전체 글 (147) N
      • CS (2)
        • OS (0)
        • DB (0)
        • Network (2)
      • Develop (21)
        • Spring (9)
        • Java (12)
        • Python (0)
        • Algorithm (0)
        • 기타 (0)
      • PS (39)
        • C++ (39)
        • Java (0)
      • TIL (39)
      • Book (39)
        • 자바의 신 (32)
        • 스프링 입문을 위한 자바 객체 지향의 원리와 이해 (7)
      • ETC (4)
        • Blog (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준
    GodOfJava
    객체지향
    알고리즘
    C++
    에스넷시스템
    Java
    자바의 신
    스프링 입문
    EC2
    에스넷시스템 부트캠프
    1일1백준
    자바
    멀티캠퍼스it부트캠프
    스터디
    클라우드 활용 네트워크 엔지니어 부트캠프
    aws
    boj
    TiL
    부트캠프후기
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
yulee_to
[에스넷시스템 부트캠프] TIL Day 14 - diff, sort, file, 압축과 아카이빙, 프로세스

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.