2025 Security engineer Bootcamp/3. 운영체제 개요

운영체제 개요(리눅스)

Hoon`ss 2025. 10. 14. 09:12

[리눅스 가이드] 파일 시스템 관리와 검색 핵심 명령어 정리

이 문서는 리눅스 CLI(Command Line Interface) 환경에서 필수적으로 사용되는 명령어의 기본 구조, 파일 시스템의 이해, 그리고 파일 관리 및 검색 방법에 대해 다룹니다.


## 1. CLI 명령어의 기본 구조

리눅스 명령어는 일반적으로 다음과 같은 세 가지 주요 구성 요소로 이루어집니다.

Bash
 
COMMAND  [OPTION]  [ARGUMENT]
  • COMMAND (명령어): 시스템에서 작업을 수행하기 위해 실행하는 파일입니다.
  • OPTION (옵션): 명령어의 실행 방식을 제어하는 요소입니다. 하이픈(-)으로 시작하며, 특정 기능을 활성화하거나 동작을 변경합니다.
  • ARGUMENT (인자): 명령어가 처리할 대상(파일, 경로, 데이터 등)을 지정합니다.

명령어의 정확한 사용법이 필요할 경우, 내장된 도움말 기능을 활용할 수 있습니다.

  • COMMAND --help: 명령어의 기본 문법과 옵션 목록을 간략히 확인합니다.
  • man COMMAND: 명령어에 대한 상세한 설명이 담긴 매뉴얼 페이지를 확인합니다.

## 2. 리눅스 파일 시스템 구조와 경로

리눅스는 계층적 디렉토리 구조를 가집니다. 최상위 디렉토리(/)를 시작점으로 모든 파일과 디렉토리가 연결되어 있습니다. 주요 디렉토리의 역할은 다음과 같습니다.

  • /bin, /sbin: 필수적인 시스템 명령어 및 관리자용 명령어가 위치합니다.
  • /etc: 시스템의 전반적인 구성 파일이 저장됩니다.
  • /home: 일반 사용자의 홈 디렉토리가 생성되는 공간입니다.
  • /root: root 사용자의 홈 디렉토리입니다.
  • /usr: 사용자가 설치한 애플리케이션, 라이브러리 등이 저장됩니다.
  • /tmp: 임시 파일 저장을 위한 공용 디렉토리입니다.

파일 시스템 내 위치는 **경로(Path)**로 표현하며, 두 가지 방식이 있습니다.

  • 절대 경로: 최상위 디렉토리(/)부터 시작하는 전체 경로입니다. (/home/user/documents)
  • 상대 경로: 현재 작업 디렉토리 기준의 경로입니다. .(현재 디렉토리)와 ..(상위 디렉토리)를 사용합니다. (../photos)

## 3. 파일 및 디렉토리 관리 명령어

cp (Copy): 파일 및 디렉토리 복사

cp 명령어는 지정한 파일이나 디렉토리의 사본을 생성합니다.

Bash
 
# 단일 파일 복사: /etc/hosts 파일을 현재 디렉토리에 filec 이름으로 복사
$ cp /etc/hosts filec

# 복수 파일 복사: 여러 파일을 지정한 디렉토리로 복사
$ cp /etc/passwd /etc/crontab .

# 디렉토리 복사: -r 옵션을 사용하여 디렉토리와 그 내용 전체를 복사
$ cp -r /etc/cups .

Note: 디렉토리를 복사할 때는 반드시 재귀적(recursive) 복사를 의미하는 -r 또는 -R 옵션을 사용해야 합니다.

mv (Move): 파일 및 디렉토리 이동, 이름 변경

mv 명령어는 파일/디렉토리를 다른 위치로 옮기거나, 현재 위치에서 이름을 변경하는 데 사용됩니다.

Bash
 
# 파일 이동: filea 파일을 상위 디렉토리 아래의 dird 디렉토리로 이동
$ mv filea ../dird/

# 이름 변경: subdir1 디렉토리의 이름을 testdir1 으로 변경
$ mv subdir1 testdir1

rm (Remove): 파일 및 디렉토리 삭제

rm 명령어는 파일이나 디렉토리를 영구적으로 삭제합니다. 삭제된 데이터는 복구가 어려우므로 사용에 각별한 주의가 필요합니다.

Bash
 
# 파일 삭제
$ rm crontab

# 비어있지 않은 디렉토리 삭제 (-r: recursive, -f: force)
$ rm -rf testdir1


## 4. 링크 파일의 이해와 생성

링크는 원본 파일을 다른 이름이나 다른 경로에서 접근할 수 있도록 하는 기능으로, 하드 링크와 심볼릭 링크 두 종류가 있습니다.

  • 하드 링크 (Hard Link): 원본 파일과 동일한 inode(파일 시스템의 데이터 주소) 값을 공유합니다. 원본 파일이 삭제되어도 데이터는 유지되며, 같은 파일 시스템 내에서 파일에만 생성 가능합니다.
  • 심볼릭 링크 (Symbolic Link): 원본 파일의 경로를 가리키는 특수한 파일입니다. 원본이 삭제되면 링크는 작동하지 않으며, 파일과 디렉토리 모두에 대해 생성 가능합니다.
Bash
 
# 하드 링크 생성
$ ln original_file hard_link

# 심볼릭 링크(-s 옵션) 생성
$ ln -s original_file symbolic_link

 


## 5. 파일 검색 명령어

grep: 파일 내용에서 패턴 검색

grep은 텍스트 파일 내용에서 특정 문자열 패턴을 찾아 해당 라인을 출력하는 강력한 도구입니다.

Bash
 
# /etc/passwd 파일에서 "user" 문자열 검색 (대소문자 무시)
$ grep -i "user" /etc/passwd

# 정규 표현식 사용: "root"로 시작하는 행 검색
$ grep "^root" /etc/passwd

find: 파일 및 디렉토리 검색

find는 지정된 경로 하위에서 다양한 조건(이름, 종류, 소유자, 크기 등)으로 파일 및 디렉토리를 검색합니다.

Bash
 
# / 디렉토리 하위에서 이름이 hosts인 파일 검색
$ find / -name hosts

# 소유자가 user인 모든 파일 및 디렉토리 검색
$ find / -user user

# 검색된 파일에 대해 특정 명령어 실행 (-exec)
# /etc/ 하위에서 .conf로 끝나는 파일을 찾아 /work/config/로 복사
$ find /etc/ -name "*.conf" -exec cp {} /work/config/ \;

Note: -exec 옵션에서 {}는 검색된 파일명을 의미하며, \;는 명령어의 끝을 나타내는 구분자입니다.