secure/Linux

[Linux] 리눅스 기본 - 파일과 디렉터리

나만 없어 고양이 2025. 10. 5. 23:00

1. 파일과 디렉터리

  • 유닉스에서는 시스템 관련 정보와 하드웨어 같은 장치를 모두 파일로 관리함
  • 리눅스도 유닉스처럼 시스템 정보와 하드웨어 장치 관리를 위해 파일을 사용함
  • 파일은 관련정보들의 집합
  • 리눅스에서는 파일을 효과적으로 관리하기 위해 디렉터리를 사용함
  • 디렉터리는 윈도우의 폴더와 같은 개념이고 계층 구조를 가지고 있음
  • 디렉터리와 파일로 구성된 전체 집합을 파일시스템이라 부름

01.파일의 종류

01-1.일반 파일

  • 데이터 저장에 주로 사용됨
  • 리눅스에서 사용하는 대다수 파일은 일반 파일에 해당함
  • 텍스트 파일은 문서 편집기를 사용하여 내용을 보거나 편집 할 수 있음
  • 실행 파일,이미지 파일은 데이터가 *바이너리 형태로 저장되어 바이너리 파일이라고 함
  • 바이너리 파일은 특정 응용프로그램이 있어야 내용 확인이 가능함

*바이너리: 이진 데이터(binary data)로 저장된 파일
                 '0'과 '1' 두 개의 숫자만을 사용하여 데이터를 표현하는 방식

01-2. 디렉터리

  • 리눅스에서는 디렉터리도 파일로 취급함
  • 디렉터리 파일에는 해당 디렉터리에 저장된 파일이나 서브 디렉터리에 대한 정보가 저장됨

01-3. 심볼릭 링크

  • 원본 파일을 대신하도록 원본 파일을 다른 파일명으로 지정한 것
  • 윈도우의 바로가기 파일과 비슷함

01-4. 장치 파일

  • 리눅스 에서는 하드디스크나 키보드 같은 장치도 파일로 취급함
  • 리눅스 시스템에 부착된 장치들을 관리하기 위한 특수 파일
  • 시스템 관리자는 각종 장치를 관리하기 위해 해당 장치 파일에 접근해야함
  • 대부분의 장치 파일은 /dev 디렉터리 아래에 위치함

01-5. 파일의 종류 확인

파일의 종류 확인 사용 예시
1 file [root@localhost ~]# file .bash_profile
.bash_profile: ASCII text

 

02. 디렉터리의 계층 구조

출처(https://blog.naver.com/jeffms1/221464727753)

  • 파일을 효율적으로 관리하기 위해 디렉터리를 계층적으고 구성하는 데 이것을 트리(tree)구조라 함
  • 리눅스에서도 모든 디렉터리의 출발점을 루트(root) 디렉터리라고 하며 / 로 표시함
  • 최상단에 루트 디렉터리가 있고 그 아래 etc,usr,home,tmp 같은 디렉터리가 있음
  • 아래에 있는 디렉터리를 서브 디렉터리 또는 하위 디렉터리라고 부름
  • 서브디렉터리 입장에서 자신을 포함한 디렉터리를 부모디렉터리 또는 상위디렉터리라고 함
  • 루트 디렉터리를 제외한 모든 디렉터리에는 부모 디렉터리가 있음 
  • 상위 디렉터리는 ..로 표시, 현재 디렉터리는 . 로 표시함 
디렉터리 기능
dev 장치 파일이 담긴 디렉터리
home 사용자 홈 디렉터리가 생성되는 디렉터리
media DVD나 CD, USB같은 외부 장치를 연결하는 디렉터리
opt 추가 패키지가 설치되는 디렉터리
root root계정의 홈 디렉터리, 루트 디렉터리와 다름
sys 리눅스 커널과 관련된 파일이 있는 디렉터리
usr 기본 실행, 라이브러리, 헤더 파일 등 많은 파일이 있음
boot 부팅에 필요한 커널 파일이 있음 
etc 리눅스 설정을 위한 각종 파일이 있음 
lost+found 파일 시스템에 문제가 발생하여 복구할 경우, 문제가 되는 파일이 저장되는 디렉터리로 보통 비어 있음
mnt 파일 시스템을 임시로 마운트하는 디렉터리
proc 프로세스 정보 등 커널 관련 정보가 저장되는 디렉터리
run 실행 중인 서비스와 관련된 파일이 저장됨
srv FTP나 Web 등 시스템에서 제공하는 서비스의 데이터 저장
tmp 시스템 사용중 발생하는 임시 데이터 저장
시스템을 재시작 하면 이 디렉터리에 있는 파일은 모두 삭제됨
var 시스템 운영 중에 발생하는 데이터나 로그 등 내용이 자주 바뀌는 파일이 주로 저장됨

 

01. 작업 디렉터리
 - 현재 사용중인 디렉터리를 작업 디렉터리( working directory) 또는 현재 디렉터리(current directory)라고 함

02. 홈 디렉터리
 - 각 사용자에게 할당된 디렉터리
 - 사용자 계정을 만들 때 지정됨
 - 사용자는 자신의 홈 디렉터리 아래에 파일이나 서브 디렉터리를 생성하며 작업할 수 있음
 - ~ 로 표시함

03. 절대 경로명과 상대 경로명
  - 디렉터리 계층 구조에 있는 특정 파일이나 디렉터리의 위치를 나타내는 것을 경로명(path name) 이라고 함
  - 경로명에서 가장 앞에 있는 /는 루트 디렉터리를 의미함
  - 경로명 중간에 있는 /는 구분자를 의미함
  - 절대경로명은 항상 루트 디렉터리부터 시작
  - 상대경로명은 현재 디렉터리를 기준으로 시작 매번 달라질 수 있음

구분 특징
절대 경로명 반드시 /로 시작함
루트디렉터리 부터 시작하여 특정 파일이나 디렉터리의 위치에 이르기까지 중간에 잇는 모든 디렉터리의 이름을 표시
특정 위치를 가리키는 절대 경로명은 항상 동일함 
상대 경로명  /이외의 문자로 시작함
현재 디렉터리를 기준으로 서브 디렉터리로 내려가면 서브디렉터리명을 사용한다
현재 디렉터리를 기준으로 상위 디렉터리로 가려면 .. 로 시작한다
현재 디렉터리가 어디냐에 따라 달라진다

 

04. 파일과 디렉터리 이름 규칙

  • 파일과 디렉터리 이름은 255자 까지 가능
  • 이름의 영문은 대문자와 소문자를 구별하여 다른 글자로 취급
  • 이름이 . 로 시작되면 숨김파일로 간주함
  • 이름으로 모든 ASCII문자를 사용할 수 있음
  • 혼란을 줄 수 있으므로 / 와 특수문자 사용은 삼가는 편이 좋음