기초 물방울/리눅스&VM

리눅스(Linux) 공부 기록 #3

Weeding 2022. 3. 27. 20:25
반응형
SMALL

파일

 

path + name = 위치를 구분

파일에는 Data가 들어가있음 

파일 = Data를 담는 그릇 = Disk에 존재 ( HDD, SDD, USB 등등)

변수 = Data를 담는 그릇 = Memory에 존재

Disk가 훨씬 큼 (대용량의 데이터는 변수에 담기 어려움)

 

코딩은 변수에

Data를 영구적으로 저장하기 위해서는 Disk

> 전원을 꺼도 보존됨.

 

 

Disk > File

Disk의 용량 부분은 물리적으로 해결이 되어야함.

운영체제 관점에서는

 

App

------

OS

H/W , Disk

 

 

 

File System (FS)

  • 운영체제의 일부, 파일을 관리하기 위한 시스템
  • 파일이 잘 관리되고 구동될 수 있게 해줄 수 있는 소프트웨어, 프레임웤
  • 디스크 상의 특정 파일 시스템을 위해서 어떤 영역에 어떤 데이터들을 저장하는 부분도 있다.
  • 운영체제와 디스크 사이에 있다.
  • 파일에 관련된 여러가지 행위들에 관리감독을 해줄 수 있는 계층

 

계층 구조

  • Tree 형태의 계층 구조

 

리눅스는 루트라는 최상위 디렉토리가 존재

루트의 /bin

루트의 /boot

루트의 /dev

등등등.....

이러한 것들이 하나의 HDD에 연결되어있음.

 

이러한 상태에서 다른 HDD가 추가 되었다고 하면

위에 파일들을 새로운 디스크 드라이브에 매핑할 수 없음.

여기에서 "마운트"라는 것이 나오게 됨.

 

빈 디렉토리를 만들고

새로운 하드디스크에 mount해라

 

 

 

파일의 종류

  • 일반 파일(regular file) = 말 그대로 일반 파일. 텍스트, 동영상 파일 등이 포함
  • 디렉터리(directory) = 파일의 한 종류 = 윈도우의 폴더와 같은 개념
  • 심볼릭 링크 파일(symbolic link file) = 어떤 다른 파일을 가리키는 파일 = 윈도우의 바로가기
  • 블록 디바이스 파일(block device file) = 블록 디바이스를 제어하기 위한 파일
  • 문자 디바이스 파일(character device file) = 문자 디바이스를 제어하기 위한 파일
  • 파이프 파일(pipe file) = 파이프를 나타내는 파일, 프로세스간 통신에 사용 (IPC)   ls | grep
  • 소켓(socket) = 소켓을 나타내는 파일, 프로세스간 통신에 사용됨.

 

※ 디바이스 파일

 

  user                  App App                         

                                                                           ↕ device file= char, block

                                         kernel                     OS ↔ (H/W가 잘 동작하기 위한 운영체제와 연결된 S/W)

                                               = Device driver

                                             ↕

                                  H/W           device

 

 


대표적인 디렉터리

  • /  :  루트 디렉터리, 모든 디렉터리의 최상위 부모
  • /bin  :  모든 사용자가 사용할 수 있는 여러 가지 실행 파일 위치 (binary)
  • /sbin  :  시스템 관리자 권한으로 실행해야 하는 실행 파일 위치
  • /usr/bin
  • /usr/sbin
  •  
  • /etc  :  여러 가지 설정 파일(★) 
  • > 일반 사용자 권한으로는 etc밑에 있는 파일들을 건드리기 어려움
  • > Sudo명령어를 사용해서 변경 가능 ( 단, 내가 아는것만!)
  •  
  • /lib  :  공유 라이브러리 디렉터리, 쉐어
  • /usr/lib
  • /home  :  사용자들의 홈 디렉터리
  • /mnt  :  mount, 일시적으로 파일 시스템에 마운트하는 경우 사용하는 디렉터리
  • /porc, /sys  :  시스템 정보를 설정/조회할 수 있는 디렉터리
  • = 운영체제가 자신의 정보들을 사용자(유저)어플리케이션에게 보여주거나 설정할 수 있는 채널
  • = OS가 만들어 낸 가상의 파일 
  •  
  • /tmp  :  temporary, 임시 디렉터리 = 임시 파일 저장
  • /usr  :  사용자가 추가한 실행 파일, 라이브러리 등의 소프트웨어 저장
  • /dev  :  디바이스 드라이버가 사용하는 디바이스 파일 디렉터리, 디바이스 파일 저장
  • = OS가 만들어낸 시스템, 삭제 불가

 


 

디렉터리

  • 현재 작업 디렉터리(CWD: Current Working Directory)
  • = 쉘이 현재 어느 디렉터리에서 실행중인지 보여주는 역할, pwd로 확인, echo $PW
  •  
  • 홈 디렉터리(home directory)
  • ex) abc → /home/abc,   test → /home/test  
  •  
  • 상대경로(relative path) vs 절대 경로(absolute path)
  • ex)  ../cde                             /xyz/abc
  • .. : 부모 / . : 현재 디렉터리

 


 

아이노드(inode)

  • 파일 구조 (name - inode - Data) 
  • 여러 가지 정보를 포함하는 정보 덩어리, 파일에 여러가지 데이터들을 저장해놓은 구조체★ 
  • ★하나의 파일을 구성하는 구성 요소
  • *파일 하나가 파일 시스템 상에서는 파일의 데이터와 아이노드와 디렉터리 등등....
  • *이런것들이 엮여서 파일 시스템을 이룸

 

하드링크(hard-link) vs 소프트링크(sofr-link == symbolic link == symlink)

 

소프트링크란?

  • 어떤 실행 파일이 있는데 윈도우에서는 마우스로 클릭해서 바로가기 클릭하면 바로가기가 만들어짐
  • 사용자가 탐색기에서 더블클릭해서, 또는 바로가기를 더블클릭하면 실행이 됨.
  • 대상이 되는 파일이 헬로우라고 할 때, 소프트링크 파일이 대상이 될 수 있음.
  • 같은 디렉터리에 있을 필요가 없음. (바탕화면에 바로가기 만드는것처럼)
  • 헬로우 = filename-inode1-file Data / 소프트링크파일도 원본 헬로우와 같이 filename-inode2-file Data
    다른 아이노드에 연결되어 있음. 단, 대상이 되는 파일의 경로가 포함이 됨. ex) /usr/hello = Link Data에 포함

 

 

하드링크란?

  • 특수한 목적이 있을 때만 사용하는 경우가 많음, 그 수가 많지가 않음.
  • 하드링크는 대상이 되는 하나의 inode를 공유를 함.
  • 여기서 inode에 연결되어 있는 File Data까지도 공유
  • 파일 이름만 다르지 파일의 컨텐츠가 똑같음. inode도 마찬가지
  • Filename-hard link = Filename 쌍둥이 같은 느낌
  • inode만 공유할 수 있으면 여러개의 하드링크 만들기가 가능. 

 


touch 

 

rm

 

ls -al

 

cat

 

mv (이름을 바꾸는 커맨드 X  정확히는 경로를 바꾸는 커맨드)

 

mv apple /tmp/pineapple

 

ls

 

ls /tmp

 

cat /tmp/pineapple

 

.(현재 디렉토리로 가져오는)  =  cat /tmp/pineapple /home/test

 

 

mv pineapple ../../tmp/

ls

ls /tmp

 

cat /tmp/pineapple

 

cat ../../tmp/pineapple

 


디렉토리 생성 변경 삭제

 

mkdir 
새로운 디렉터리를 만듬

 

rmdir

개별 디렉터리를 지우는 커맨드

 

 

rm -rf 

강제로 파일 디렉토리 삭제

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
LIST