리눅스프로그래밍

우분투 리눅스- 디렉터리와 파일

헬로월드! 2020. 3. 29. 16:00

01. 리눅스 파일의 종류와 특징

윈도우는 도스에서 GUI 로 변환하면서 단순 목록 관리보다는 시각적 이미지가 느껴지는 폴더 라는 개념을 도입함 

윈도우의 폴더 = 리눅스의 디렉터리 비슷함!! 

 

1) 파일: 관련 있는 정보의 집합 

리눅스는 파일을 효과적으로 관리하기 위해 디렉터리를 사용! 

 

  • 일반파일 : 데이터를 저장하는 데 주로 사용, 각종 텍스트 파일, 실행 파일, 이미지 파일 등 리눅스에서 사용하는 대부분의 파일은 일반 파일에 해당 , 텍스트 파일은 문서 편집기를 사용하여 내용을 보거나 편집할 수 있으나, 실행 파일이나 이미지 파일의 경우 해당 파일의 내용을 확인할 수 있는 특정 응용 프로그램이 있어야 확인 가능 실행 파일, 이미지 파일 = 바이너리 형태로 데이터 저장 (바이너리 파일)  
  • 디렉터리 : 리눅스에서는 디렉터리도 파일로 취급 , 디렉터리 파일에는 해당 디렉터리에 저장된 파일이나 하위 디렉터리에 대한 정보가 저장되어 있음 
  • 심벌릭 링크 : 원본 파일을 대신하여 다른 이름으로 파일명을 지정한 것 (윈도우의 바로가기 파일과 비슷)
  • 장치 파일 : 리눅스에서는 하드디스크나 키보드 같은 각종 장치도 파일로 취급  

리눅스 명령어 중 파일의 종류를 확인하는 file 이라는 명령 

 

2) 디렉터리 계층 구조 

: 리눅스에서는 파일을 효율적으로 관리하기 위해 디렉터리를 계층적으로 구성함 => 트리 구조 

모든 디렉터리의 시작은 root (루트) 디렉터리 이며, / (빗금)으로 표시함

  • 하위 디렉터리 (서브 디렉터리): 디렉터리 아래에 있는 디렉터리 (bin, etc, usr, home, boot)
  • 상위 디렉터리 (부모 디렉터리): '.. ' 으로 표시
  • 루트 디렉터리를 제외하고 모든 디렉터리에는 부모 디렉터리가 존재함!
  • / : 해당 파일이 디렉터리 임을 표시 
  • @: 심벌릭 링크 
  • 작업 디렉터리: 현재 사용중인 디렉터리를 작업 디렉터리 또는 현재 디렉터리 라고 함 , 현재 디렉터리는 '.' 기호로 표하고 위치는 pwd 명령으로 확인
  • 홈디렉터리 : 각 사용용자에게 할당된 디렉터리로 처음 사용자 계정을 만들 때 지정 , 사용자는 자신의 홈 디렉터리 아래에 파일이나 서브 디렉터리를 생성하며 작업 가능, 홈 디렉터리는 '~' 기호로 표시 : ex)  ~jitol

3) 디렉터리의 주요 기능

디렉터리 기능
dev 장치 파일이 담긴 디렉터리
home  사용자 홈 디렉터리가 생성되는 디렉터리
media  CD-ROM 이나 USB 같은 외부 장치를 연결하는 디렉터리
opt  추가 패키지가 설치되는 디렉터리
root root 계정의 홈 디렉터리. 루트 (/) 디렉터리와 다름
sys 리눅스 커널과 관련된 파일이 있는 디렉터리
usr  기본 실행 파일, 라이브러리 파일, 헤더 파일 등 많은 파일이 있다. Unix System Resource 의 약자
boot 부팅에 필요한 커널 파일을 가지고 있음
etc  리눅스 설정을 위한 각종 파일을 가지고 있음
lost+found 파일 시스템에 문가 발생하여 복구할 경우, 문제가 되는 파일이 저장되는 디렉터리로 보통 비어 있음
mnt 파일 시스템을 임시로 마운트(외부장치 연결)하는 디렉터리
proc 프로세스 정보 등 커널 관련 정보가 저장되는 디렉터리
run 실행 중인 서비스와 관련된 파일이 저장
src  FTP 나 Web 등 시스템에서 제공하는 서비스의 데이터가 저장됨
tmp 시스템 사용중에 발생하는 임시데이터 저장, 이 디렉터리의 파일은 재시작하면 모두 삭제됨
var  시스템 운영 중에 발생하는 데이터나 로그 등 내용이 자주 바뀌는 파일이 주로 저장됨 

 

4) 경로명 

: 파일 시스템에서 디렉터리 계층 구조에 있는 특정 파일이나 디렉터리의 위치 표시

경로명에서 각 경로를 구분하는 구분자로 '/ ' 을 사용함

경로명에서 가장 앞의 / 는 루트 디렉터리를 뜻하지만 경로명 중간에 있는 / 는 구분자 역할 

 

  • 절대 경로명 : 항상 루트 디렉터리부터 시작, 반드시 / 로 시작함, 루트 디렉터리부터 시작하여 특정 파일이나 디렉터리의 위치까지 이동하면서 거치게 되는 모든 디렉터리의 이름을 표시함, 특정 위치를 가리키는 절대 경로명은 항상 동일함 
  • 상대 경로명: 현재 디렉터리를 기준으로 시작 , / 이외의 문자로 시작, 현재 디렉터리를 기준으로 서브 디렉터리로 내려가면 그냥 서브 디렉터리명 추가, 현재 디렉터리를 기준으로 상위 디렉터리로 가면 .. (마침표 두개)를 추가, 상대 경로명은 현재 디렉터리가 어디냐에 따라 달라짐 

5) 파일과 디렉터리 이름 규칙

  • 파일과 디렉터리 이름에는 / 를 사용할 수 없다. /은 경로명에서 구분자로 사용하기 때문이다.
  • 파일과 디렉터리의 이름에는 알파벳, 숫자, 붙임표 (-) ,밑줄(_), 마침표(.) 만 사용한다.
  • 파일과 디렉터리의 름에는 공백문자, *, | , ", ' , @, # ,$, %, ^, & 등을 사용하면 안 된다.
  • 파일과 디렉터리 이름의 영문은 대문자와 소문자를 구별하여 다른 글자로 취급한다.
  • 파일과 디렉터리의 이름이 .(마침표)로 시작하면 숨김 파일로 간주한다. 
  • 파일이름 ex) hello, jitol.c , test, ... => 좋음!! / ^jtol, *dir, home\ ....= > 안좋음 / myhome/, /text, bad/name => 사용할 수 없는 이름