글 목록으로 돌아가기

Linux

파일 시스템

Linux 파일 종류, 디렉토리/파일 관리 명령어, 권한 관리 정리

Dohyeon Kim
Dohyeon Kim 2026년 7월 21일 · 7분 읽기
Linux AutoEverSW

1 ) 개요


  • UNIX 계열의 OS. 많은 것이 계승 되었음
  • 시스템 정보, 하드웨어 장치를 모두 파일로 관리
  • File → 관련있는 정보들의 집합
  • 효과적인 관리를 위해 계층구조(디렉토리) 사용
  • 윈도우와 달리 시스템 전체에 단 하나의 트리만 가짐
  • Ubuntu에서 관리하는 모든 데이터는 파일로 인식 → 현재 실행 중인 프로세스, 일반 파일, 하드웨어 등
  • 하나의 프로세스는 하나의 작업 디렉토리를 가짐
  • 우분투는 일반 파일, 디렉토리 파일, 장치 파일, 심볼릭 링크를 가짐

2 ) 파일의 종류


Common Files

  • 데이터를 관리하는 데 주로 사용되는 일상적인 파일
  • 실행 파일 • 텍스트 파일 • 이미지 파 • 프로그램 소스파일 등 Ubuntu에서 사용되는 대부분의 파일을 의미
  • 실행 파일이나 이미지 파일의 경우는 데이터가 바이너리 형태로 저장됨
  • 실행 파일을 확인하기 위해 내용 확인이 가능한 유틸리티 프로그램 필요
  • 텍스트 파일의 경우 문서 편집기나 명령어로 가능

    Binary Files

  • 문자가 아닌 데이터 파일을 의미
  • 기계어인 0과 1의 값으로 구성
  • 프로그램을 코딩 → 컴파일을 수행하는 과정에서 생성되는 파일을 의미, 실행이라고도 부름

    Directory Files

  • 디렉토리도 하나의 파일로 관리
  • 해당 디렉토리에 저장된 파일이나 하위 디렉토리에 대한 정보를 소유
  • 일반 파일과 마찬가지로 디스크에 저장 → 다른 파일을 조작하고 액세스하는 데 필요한 정보를 소유
  • 사용자에게 편리성을 제공해주는 파일
  • 리눅스에서는 Link개념을 이용해 여러개의 파일 이름이 하나의 i-node를 가리킴 → 실제 파일이나 디렉토리 또는 다른 링크를 가리키도록 함

  • 하드 링크
    • 원본 파일을 복사해 동일한 내용의 사본 파일을 만드는 것
    • 하드 링크에서는 원본 파일과 링크 파일 2개가 서로 다른 파일로 취급 → 하나가 지워지더라도 다른 파일은 남아있음
    • 하드 링크에선 원본 파일의 내용이 변경될 경우 복사된 파일의 내용도 자동으로 변경
  • 심볼릭 링크
    • Windows의 바로가기처럼 원본 파일이 삭제되면 같이 삭제되는 형태의 link 파일

Device Files

  • 드라이브나 키보드 같은 장치도 파일로 취급
  • 리눅스 시스템에 부착된 장치들을 관리하기 위한 특수 파일
  • 대부분의 장치 파일은 /dev에 존재

3 ) 파일의 종류 확인


  • file 명령으로 확인 가능
  • .profile 이라는 파일 종류 확인 → 텍스트파일
  • pwd → 현재 디렉토리 확인
  • /bin/bash를 확인 → 실행 파일

4 ) 디렉토리와 파일 관리


개요

  • 우분투 파일 시스템은 파일과 디렉토리의 계층형 구조로 구성(Tree)
  • 우분투에서는 최상위 디렉토리" / " 를 하나 두고 그 아래에 디렉토리나 파일을 배치
  • " . "현재 작업 중인 디렉토리
  • " .. "상위 디렉토리
  • " - "홈 디렉토리 ??
  • " ~ "사용자 디렉토리
  • 절대경로 확인 → pwd

    기본 제공 디렉토리

  • ls -F /
  • /로 끝나면 디렉토리
  • @로 끝나면 심볼릭 링크

  • bin, lib는 UNIX 초기 디렉토리로, 현재는 /usr/bin ** /usr/lib으로 통합되었으나 호환성 유지 문제로 심볼릭 링크로 제공

Root 계정에서 제공하는 디렉토리

  • /dev → 디바이스 파일이 배치된 디렉토리
  • /home → 사용자 별로 할당되는 홈 디렉토리가 배치되는 디렉토리
  • /media → CD • USB 같은 외부 장치를 연결하는 디렉토리
  • /etc → 리눅스 설정과 관련된 디렉토리
  • /opt → 추가 패키지가 설치되는 디렉토리
  • /root → root 계정의 홈 디렉토리
  • /sys → 리눅스 커널과 관련된 파일이 저장되는 디렉토리
  • /usr → 기본 실행 파일과 라이브러리 파일, 헤더 파일이 저장되는 디렉토리
  • /lost+found → 파일 시스템에 문제가 발생해 복구할 경우 문제가 되는 파일이 저장되는 디렉토리
  • /boot → 부팅 관련 파일
  • /mnt → 파일 시스템을 임시로 마운트하는 디렉토리
  • /srv → 시스템에서 제공하는 서비스 디렉토리
  • /tmp → 임시 저장 디렉토리
  • `/var → 데이터나 로그가 저장되는 디렉토리

    절대 경로와 상대 경로

  • 절대 경로
    • 루트로부터의 경로
  • 상대 경로
    • 현재 작업 디렉토리로부터의 경로

5 ) 파일의 구성 요소

구성

  • 파일 이름: 파일을구분하기 위한 이름
  • i-node: 파일에 대한 정보
    • 파일의 종류
    • 파일의 소유권
    • 파일의 액세스 모드
    • 파일의 타임스탬프
  • 데이터블록: 파일의 실제 내용

    6 ) file


  • 파일의 종류를 확인하는 명령어
  • /usr/share/file디렉토리의 magic 파일을 참조하여 파일 종류를 표시
  • file [opt] [file / path]
    • C: 매직 파일의 포맷을 확인
    • f {목록파일}: 많은 파일을 확인
    • m {매직파일}: 지정된 매직 파일로 대상파일을 확인

7 ) ls


  • 디렉토리의 내용을 출력함
  • ls [option] [file / path]
  • 파일을 전달할 경우 존재 여부를 확인
    • a : 숨김 파일 포함
    • d : 디렉토리 자체 정보 조회
    • i : i-node 조회
    • ㅣ: 파일의 상세 정보 조회
    • A : .과..을 제외한 정보 조회
    • F : 파일과 종류 표시
    • L : 심볼릭 링크의 경우 원본 파일의 정보 출력
    • R : 하위 디렉토리까지 출력
  • 상세 정보
    • drwxr-x--- 5 adam adam 4096 Jul 20 22:06 .
  • d: 디렉토리 여부로 d이면 디렉토리
  • rwxr-x---: 3개씩 나누어서 해석하는데 소유자, 그룹, 기타 사용자 에 대한 권한으로 r(읽기)w(쓰기)x(실행)
  • 5: 하드 링크 개수
  • adam: 소유자
  • adam: 그룹
  • 4096: 파일의 크기
  • 파일이 마지막으로 수정된 날짜
  • . : 이름

  • 디렉토리 자체 정보 확인은 -dl
  • 유사한 명령으로 윈도우에서 사용하던 dir 과 vdir 사용 가능

8) 파일 관련 명령


cat (파일 내용 출력)

  • 텍스트 파일 내용을 출력
  • 파일이 화면보다 크면 스크롤 제공
  • 여러 파일 지정 가능
  • -n: 라인 번호 출력
    cat /etc/hostname
    cat -n /etc/hosts
    

more / less

  • more: 화면 단위 출력, spacebar 다음 페이지, b 이전 페이지
  • less: more 개선판, 방향키로 이전 내용 확인 가능
    more /etc/services
    

head / tail

  • head: 맨 앞 10행 출력 (숫자 지정 가능)
  • tail: 뒤에서 출력, -f 옵션으로 실시간 로그 확인

cp (파일 복사)

cp [옵션] [원본] [대상]
cp -i file1 file2    # 대화식 복사
cp -r dir1 dir2      # 디렉토리 복사

mv (파일 이동/이름 변경)

mv [옵션] [원본] [대상]
mv file1 file2       # 이름 변경 (같은 디렉토리)
mv file1 dir1/       # 다른 디렉토리로 이동

rm (파일 삭제)

rm [옵션] [파일...]
rm -i file1          # 대화식 삭제
rm -r dir1           # 디렉토리 삭제

ln (링크 생성)

  • 하드링크: I-node 복사, 원본 삭제되어도 유지
  • 심볼릭 링크: 원본 파일 경로 참조, -s 옵션
    • 원본 삭제 시 링크 깨짐
    • 디렉토리 링크는 심볼릭만 가능
      ln print.txt link.ln     # 하드링크
      ln -s /원본/경로 링크이름  # 심볼릭 링크
      

touch

  • 빈 파일을 만드는 명령

grep

  • 파일 내용을 검색하는 명령
  • 정규 표현식 사용 가 grep [opt] [ptrn] [path]
  • 대소문자 같이 검색 → i
  • 지정한 패턴이 포함된 파일 이름 출력 → l
  • 행 번호 출력 → n

    find

  • 특정 파일이 어떤 디렉토리에 있는지 찾아주는 명령
  • 파일의 생성 일자, 이름, 소유자 등 다양한 조건에 맞는 파일 검색
  • find [path] [condition] [cmd]
  • name 파일명
  • type 파일 종류
  • use 사용자ㅂ
  • group
  • perm
  • size
  • newer

    동작

  • exec 명령 {} \; → 파일에 명령을 실행
  • ok 명령 {} \; → 파일에
  • print → 검색된 파일의 절대 경로를 출력하는데 기본동작
  • exec 명령 {} \; → 검색 결과를 목록 형식으로 출력

    locate

  • 파일이나 디렉토리를 검색
  • find와 차이?
    • 검색 속도가 빠름
    • 옵션이 제한적
    • 파일이나 디렉토리를 DB화 해서 검색
    • 파일이 존재하는 것은 알고있으나 어디 있는지 모를 때 사용
  • 설치
      apt install plocate -y
    
  • DB 구축
    • sudo update db
  • 파일 검색
    • locate [opt] <ptrn>

wc

  • 파일 또는 표준 입력에서 단어 수, 줄 수, 문자 수 등을 셀 때 사용하는 명령어
  • wc [opt] [path]
    • 줄 수 → l
    • 단어 수 → w
    • 바이트 수 → c
    • 문자 수 → m
    • 가장 긴 줄의 길이 → L

      sort

  • 문자열 정렬에 사용

    awk

  • 텍스트 처리 도구
  • 패턴을 기반으로 텍스트 파일, 스트림 및 기타 데이터 형식 조작 및 처리

sed

  • 스트림 편집기
  • 파일 내용 수정이나 텍스트 치환, 라인 삭제 등을 편리하게 수행해줌

9) 파일 접근 권한 관리


개요

  • 다중 사용자 시스템은 사용자의 파일에 마음대로 접근하지 못하도록 보안 기능 제공
  • 파일의 접근 권한 확인 → ls -l

    그룹

  • 파일이 속한 그룹의 이름
  • 그룹 내 사용자들에게 권한을 부여해 파일을 공유할 수 있도록 함
  • 그룹이 정의된 파일은 /etc/group, 관리자만 수정 가능
  • 사용자가 속한 그룹을 알려주는 명령은 groups

    권한 종류

  • 읽기 → 파일의 내용을 읽거나 복사 가능 디렉토리의 경우 ls 명령으로 디렉토리 목록은 볼 수 있으나 옵션은 실행 권한 필요
  • 쓰기 → 파일을 수정, 이동, 삭제 가능 디렉토리 안에 파일을 생성하거나 삭제 가능
  • 실행 → 파일 실행 가능, 디렉토리 경우 cd 명령 사용 가

    파일 접근 권한 변경 → chmod

  • chmod [opt] 권한 [파일이나 디렉토리 경로]
  • 옵션
    • 하위 디렉토리까지 변경 → R
  • 권한 설정 방법
    1. 숫자 모드
      • 소유자, 그룹, 기타 사용자를 각각 묶어 8진수로 권한을 나타냄
      • 권한이 있는 자리는 1 없는 자리는 0
    2. 기호 모드
      • chmod 사용자카테고리문자 연산자기호 접근권한문자 경로 - 사용자 카테고리 문자
      • u → 파일 소유자
      • g → 그룹
      • o → 기타
      • a → 전 - 연산자 기호
        • → 추가
        • → 제거
      • = → 설정 - 접근 권한 문자
      • r → readable
      • w → writable
      • x → executable

        기본 접근 권한

  • 파일이나 디렉토리를 생성할 때 자동 설정되는 권한
  • 파일의 경우 파일 소유자, 그룹에는 RW권한이 부여, 기타 사용자에겐 R권한만 부여
  • 디렉토리의 경우 소유자와 그룹에게 RWX 권한 부여, 기타 사용자는 RW 부여
  • 기본 접근 권한 확인 및 변경
    • umask [opt] [mask]
  • 마스크는 반대로 적용함 → 부여할 때 1, 마스크에서는 부여할 때 0
  • 옵션은 -S → 문자로 출력

    특수 접근 권한

  • umask의 맨 앞 자리는 특수 접근 권한
  • 맨 앞자리의 숫자 0이면 일반적인 접근권한, 4면 SetUID, 2면 GetID, 1은 sticky bit

  • SetUID
    • 해당 파일이 실행되는 동안에는 파일을 실행한 사용자의 권한이 아니라 소유자의 권한이 적용
    • 이를 설정하면 소유자의 실행 권한이 s로 조회됨
  • SetGID
    • 해당 파일이 실행되는 동안에는 파일을 실행한 그룹의 권한이 아니라 파일 소유 그룹의 권한이 적용
    • 이를 설정하면 그룹의 실행 권한이 s로 조회됨
  • Sticky bit
    • 디렉토리에 설정하는데 디렉토리에 sticky bit가 설정되면 이 디렉토리는 누구나 파일을 생성할 수 있음

댓글