홈으로 돌아가기

Linux FS: 탐색, 검색, 개발자를 위한 파일

Linux 파일 시스템 구조, 탐색 명령어 (ls, cd, pwd), 검색 (find, locate), 파일 관리 (cp, mv, rm, mkdir, touch, ln)를 분석한 기사. 개발자를 위한 예제: /etc부터 하드/심볼릭 링크까지. 이론 없이 실습.

마스터 클래스: Linux 파일, 검색 및 FS 구조
Advertisement 728x90

리눅스 기초: 파일 시스템 구조, 탐색 및 파일 관리

최상위 루트 디렉터리 /는 계층 구조의 꼭대기에 있으며, 모든 다른 파티션이 여기에 마운트됩니다. 주요 디렉터리들은 각자의 역할을 명확히 정의합니다: /etc는 설정 파일용, /var는 동적 데이터용, /proc/sys는 커널에 대한 가상 인터페이스입니다.

/
├── etc        # 시스템 및 앱 설정
├── var        # 가변 데이터: 로그, 캐시, 큐
├── proc       # 커널 및 프로세스 상태
├── sys        # 장치 및 드라이버
├── tmp        # 임시 파일
├── home       # 사용자 홈 디렉터리
├── root       # 루트 사용자 홈
├── dev        # 장치 파일
├── usr        # 프로그램 및 라이브러리
├── bin        # 필수 유틸리티 ( /usr/bin 심볼릭 링크 )
├── sbin       # 관리자 명령어 ( /usr/sbin 심볼릭 링크 )
├── opt        # 타사 소프트웨어
├── run        # 런타임 프로세스 데이터
├── mnt        # 수동 마운트 지점
└── boot       # 부트로더 및 커널 파일

/etc: 중앙 집중식 설정

서비스, 네트워크 설정, 사용자 관련 설정 파일을 저장합니다. 주요 파일로는 사용자 계정 정보가 담긴 /etc/passwd, 마운트 지점 설정 /etc/fstab, 로컬 호스트명 해석 /etc/hosts, SSH 설정 /etc/ssh/sshd_config 등이 있습니다.

/var: 동적 데이터

변경되는 파일들을 저장합니다. 예를 들어 /var/log에 로그, /var/mail에 메일, /var/spool에 인쇄 큐, /var/www에 웹 서버 콘텐츠가 있습니다. 문제 해결 시 가장 먼저 확인하는 곳입니다.

Google AdInline article slot

가상 파일 시스템: /proc와 /sys

/proc는 프로세스와 커널의 실시간 데이터를 제공합니다: CPU 정보는 /proc/cpuinfo, 메모리 통계는 /proc/meminfo, init 프로세스는 /proc/1/. /sys는 장치 인터페이스를 제공해 드라이버와 하드웨어 매개변수를 즉석에서 조정할 수 있습니다.

사용자 디렉터리와 장치

/home/username은 개인 파일과 설정(예: .config, .ssh)을 담습니다. /root는 루트 사용자 전용으로 격리되어 있습니다. /dev는 하드웨어를 나타냅니다: 디스크는 /dev/sda, 출력 버리는 /dev/null, 엔트로피 생성 /dev/random.

탐색: ls, cd, pwd

ls는 디렉터리 내용을 나열하며, 플래그로 세부 정보를 더 볼 수 있습니다.

Google AdInline article slot
  • ls -l: 권한, 소유자, 크기, 날짜.
  • ls -a: 숨김 파일 포함.
  • ls -lh: 사람이 읽기 쉬운 크기(KB/MB/GB).
  • ls -lt: 시간순 정렬.
  • ls -R: 재귀적 나열.

cd로 디렉터리를 이동합니다:

  • cd /etc: 절대 경로.
  • cd ..: 한 단계 위로.
  • cd ~: 홈 디렉터리.
  • cd -: 이전 디렉터리.

pwd는 현재 경로를 출력합니다: pwd -P로 심볼릭 링크를 해석합니다.

파일 찾기: find와 locate

find는 기준에 따라 재귀적으로 검색합니다.

Google AdInline article slot

예시:

  • find . -name "*.log": 로그 파일.
  • find /var -type f: 파일만.
  • find / -size +100M: 100MB 초과 파일.
  • find /var/log -mtime -1: 지난 1일 내 수정된 로그.
  • find /tmp -name "*.tmp" -delete: 임시 파일 정리.

locate는 데이터베이스를 사용해 빠르게 검색합니다:

  • locate passwd.
  • sudo updatedb로 인덱스 갱신.

Ubuntu 22.04 이상에서는 성능이 더 좋은 plocate를 사용하세요.

tree는 디렉터리 구조를 시각화합니다: tree -L 2 -a -I "node_modules".

파일 관리: cp, mv, rm

cp로 복사합니다:

  • cp file.txt /tmp/.
  • cp -r dir1/ /backup/.
  • cp -p로 메타데이터 보존.
  • cp -u로 최신 파일만 업데이트.

mv로 이동 또는 이름 변경: mv old.txt new.txt, mv *.log /archive/.

rm은 휴지통 없이 삭제합니다:

  • rm -r dir/.
  • rm -rf /절대 실행 금지, 극도로 위험.
  • rm -i로 확인 프롬프트.

생성 및 링크: mkdir, touch, ln

mkdir -p /path/to/dir로 중첩 디렉터리 생성.

touch file.txt로 빈 파일 생성 또는 타임스탬프 업데이트: touch -t 202501011200 file.txt.

ln으로 링크 생성:

  • ln file.txt hardlink.txt — 하드 링크(인오드 공유).
  • ln -s file.txt symlink.txt — 심볼릭 링크(경로 참조).

하드 링크는 파일 시스템 간에 작동하지 않으며, 심볼릭 링크는 원본 삭제 시 깨집니다.

핵심 요약:

  • /proc/sys는 메모리 상에만 존재하며, 디스크가 아닌 커널 런타임 데이터용입니다.
  • find는 다재다능하고, locate는 인덱스 유지 시 빠릅니다.
  • rm -rf는 주의 필요—휴지통 안전망 없음.
  • mkdir -pcd -는 스크립팅 필수.
  • 하드 링크 vs 심볼릭 링크: 필요에 따라 선택(공유 데이터 vs 경로 참조).

— Editorial Team

Advertisement 728x90

다음 읽기