개발자의 오르막

[리눅스 개념으로 탄탄히] 리눅스 파일 리눅스 명령어 본문

Server/Linux

[리눅스 개념으로 탄탄히] 리눅스 파일 리눅스 명령어

계단 2022. 7. 2. 21:27

 

리눅스 입문 - 개념으로 탄탄히!! - 인프런 | 강의

리눅스의 주요 개념에 대해 공부하시면 리눅스를 더 쉽고, 더 강력하게 다루실 수 있습니다. 기초부터 탄탄히 쌓아나가시길 바랍니다!! :D, - 강의 소개 | 인프런...

www.inflearn.com

 

파일과 디렉터리의 구조

  • 경로 : 파일의 경로 + 파일명
  • 파일 : 데이터를 담는 그릇, 디스크에 존재
    • 영구적 : 전원을 꺼도 데이터가 디스크에 남아 있다.
  • 변수 : 메모리에 데이터를 담는 것
    • 일시적 : 전원을 끄면 데이터가 없어진다.
  • 파일시스템 : 운영체제의 일부로서, 운영체제와 디스크 사이에 존재함

  • linux 는 트리형태의 계층 구조를 가지고 있음
    • 리눅스의 모든 디렉터리는 root 를 최상위 계층으로 갖고있다.
    • 윈도우는 하나의 디스크가 하나의 드라이브로 매핑이 되어있다.

 

파일의 종류

  • 디바이스 파일
    • 디바이스 드라이버 : 하드웨어를 위한 소프트웨어(하드웨어 제어를 위한)가 OS 에 내장되어 있음
    • 디바이스 파일 : 디바이스 드라이버가 Application 과 연결된 파일
      • 사용자는 Application 에서 디바이스 파일을 통해 디바이스드라이버를 제어한다.
  • 파이프 파일
    • 파이프는 구동중인 서로 다른 프로세스가 통신을 하기 위한 파일
    • 통신을 할 때 파이프 파일이 생김
  • 소켓
    • 소켓을 통해 서로 다른 프로세스가 통신을 함

 

대표적인 디렉터리

  • /usr/** : user 가 추가한 설정 및 실행파일 등
  • /proc , /sys : 시스템 정보를 설정/조회할 수 있는 통로를 만들어주는 디렉토리
    • 가상의 파일시스템으로 하드웨어에 있는 것이 아니라 OS 에 있음
    • 운영체제의 정보 및 설정을 조회할 수 있게 함

 

디렉터리 개념

  • 현재 작업 디렉터리 : (CWD : Current Working Directory)
    • pwd : 현재 디렉터리를 알 수 있음
  • 홈 디렉터리 (home directory)
  • 상대경로 (relative path) vs 절대 경로 (absolute path)
    • 절대경로 : /xyz/abc
    • 상대경로 : ../cde

 

아이노드

  • 아이노드
    • 하나의 파일을 구성하는 요소
    • 파일마다 유지되어야할 데이터가 분산되어 있는데, 그 중 하나가 inode
    • inode 에는 파일을 나타내는 메타데이터와 정보가 저장되어 있음
      • 액세스 타입
      • 파일 사이즈
      • 파일 소유권
      • 파일 데이터의 위치
    • Directory Entity 에도 inode 포인터가 저장되어 있음
      • inode 와 연결됨
  • name - inode - data 로 구성되어 있으면 하나의 파일이라고 말할 수 있음

 

하드링크와 소프트링크

  • 소프트링크파일 : 윈도우의 바로가기처럼 연결된 파일을 실행시킴
    • 실제 파일은 디스크에 저장되어 있고, 소프트링크는 링크만 연결된 채 윈도우 화면에서 구동
    • 대상 지정이 필요
    • soft-link , symbolic link , symlink
    • 소프트링크는 자신의 파일이름과 inode, LinkData 가 있음
  • 하드링크 : inode 를 하드링크파일이 공유를 함 (inode 파일을)
    • 파일 이름만 다르지 대상 파일과 똑같은 파일
    • 파일명만 다름

파일 시스템 관련 명령어

  • ls -al : 숨겨진 파일 포함 파일 정보 목록을 보여줌
  • touch {파일명} : 파일명으로 파일 생성
  • rm {파일명} : 파일 삭제
    • rm -r {파일명} : 하위 파일까지 모두 지운다.
    • rm -rf {파일명} : 강제로 하위 파일까지 모두 지운다.
    • rm -d {폴더명} : 디렉터리를 삭제한다.
  • nano {파일명} : 파일 에디터 진입
  • cat {파일명} : 파일 출력
  • mv {해당 파일경로} {이동하고자 하는 경로} : 파일 이동
    • mv {해당 파일경로} . : 현재 위치로 파일 이동
  • mkdir {dir이름} : 폴더 생성
  • rmdir {dir이름} : 폴더 삭제, 하위 파일이 존재하면 삭제 실패

하드링크 명령어

  • ls -ali : 파일 아이노드 번호 출력
    • 하드링크 건 개수도 출력
  • ln {target file} {하드링크파일} : 기존 타겟 파일에 하드링크를 거는 하드링크파일이 새로 생성됨
    • 아이노드 번호가 동일함

소프트링크 명령어

  • ln -s {target file} {소프트링크파일} : 하드링크 대신 소프트링크 파일을 생성
    • 본래 타겟 파일을 지우면 소프트링크파일도 사용이 불가능하다.
    • 지웠다가 타겟파일을 다시 연결해주면 다시 사용가능하다. (경로만 연결한 것이기 때문)
    • 경로만 저장하기 때문에 기존 경로에 있던 타겟파일의 경로가 변경되면 연결이 끊어짐
    • 경로를 절대경로로 지정하면 소프트링크 파일의 경로가 변경되어도 연결이 지속됨
  •  
  •  
Comments