type
status
date
slug
summary
tags
category
icon
password

계층적 파일 시스템

디렉터리 구조는 계층적(트리구조)으로 구성되어 있으며, 루트 디렉터리에서 시작하여 여러 하위 디렉터리와 파일로 나뉩니다.
 
💡
디렉터리는 특수한 종류의 파일이다.

절대경로

절대경로는 파일 시스템의 루트 디렉터리부터 시작하여 파일이나 디렉터리의 위치를 지정하는 경로입니다. 예를 들어, /home/user/documents/file.txt는 파일의 절대경로입니다. 두가지의 대표 디렉토리가 존재합니다.
  • root
  • home

상대경로

상대경로는 현재 작업 중인 디렉터리(pwd)를 기준으로 파일이나 디렉터리의 위치를 지정하는 경로입니다. 예를 들어, 현재 디렉터리가 /home/user일 때, documents/file.txt는 파일의 상대경로입니다.
 
💡
/~ 차이
  • / : 루트 디렉터리를 의미합니다. 모든 파일과 디렉터리는 루트 디렉터리에서 시작됩니다. 루트 디렉터리는 파일 시스템의 최상위 디렉터리입니다.
  • ~ : 현재 사용자의 홈 디렉터리를 의미합니다. 예를 들어, 사용자가 user라면 ~/home/user 디렉터리를 가리킵니다.
notion image
💡
다음은 리눅스 파일 시스템 구조의 주요 디렉터리와 그 의미에 대한 설명입니다.
  • /bin: 기본 명령어 바이너리 파일이 저장되는 디렉터리입니다. 일반 사용자와 시스템 관리자가 공통으로 사용하는 기본 명령어들을 포함합니다.
  • /boot: 시스템 부팅에 관련된 파일들이 저장되는 디렉터리입니다. 커널 이미지와 부트로더 설정 파일들이 포함됩니다.
  • /dev: 시스템의 장치 파일들이 저장되는 디렉터리입니다. 모든 하드웨어 장치가 파일 형태로 표현됩니다.
  • /etc: 시스템 설정 파일들이 저장되는 디렉터리입니다. 모든 애플리케이션과 시스템 설정 파일들을 포함합니다.
  • /home: 사용자 개인의 홈 디렉터리가 저장되는 디렉터리입니다. 각 사용자는 자신의 홈 디렉터리에서 파일을 보관하고 작업을 수행할 수 있습니다.
  • /lib: 시스템 라이브러리 파일들이 저장되는 디렉터리입니다. 커널 모듈과 프로그램 실행에 필요한 라이브러리 파일들을 포함합니다.
  • /media: 이동식 미디어 장치가 마운트되는 디렉터리입니다. CD-ROM, USB 드라이브 등이 마운트됩니다.
  • /mnt: 일시적으로 파일 시스템을 마운트할 때 사용하는 디렉터리입니다.
  • /opt: 선택적 애플리케이션 소프트웨어 패키지가 저장되는 디렉터리입니다.
  • /proc: 시스템 프로세스와 커널에 대한 정보를 제공하는 가상 파일 시스템입니다.
  • /root: 시스템 관리자의 홈 디렉터리입니다.
  • /run: 시스템이 부팅된 후 생성되는 임시 파일을 저장하는 디렉터리입니다.
  • /sbin: 시스템 관리 명령어 바이너리 파일이 저장되는 디렉터리입니다. 시스템 부팅, 복구, 복구 모드에서 사용되는 명령어들을 포함합니다.
  • /srv: 서비스 관련 데이터를 저장하는 디렉터리입니다.
  • /tmp: 임시 파일들이 저장되는 디렉터리입니다. 시스템 재부팅 시 모든 파일이 삭제됩니다.
  • /usr: 사용자 명령어, 라이브러리, 문서 등이 저장되는 디렉터리입니다. 다수의 서브디렉터리를 포함하며, 사용자가 설치한 애플리케이션들이 주로 저장됩니다.
  • /var: 로그 파일, 스풀 파일 등 가변 데이터를 저장하는 디렉터리입니다.
 

man

man 명령어는 매뉴얼 페이지를 표시하는 데 사용됩니다. 예를 들어, man ls를 입력하면 ls 명령어에 대한 자세한 설명과 사용법이 표시됩니다.
 
/ 를 이용해 설명서 내 문자열을 조회할 수 있음
 

파일 보기

💡
pipeline (|) 은 여러 명령어를 연결하여 출력 결과를 다음 명령어의 입력으로 전달하는 데 사용됩니다. 예를 들어, ls -l | grep "txt"는 현재 디렉터리에서 .txt 파일을 검색합니다.

cat

cat 명령어는 파일의 내용을 출력하는 데 사용됩니다. 여러 파일을 한 번에 출력하거나, 파일을 결합하여 출력할 수도 있습니다.

more

more 명령어는 파일의 내용을 페이지 단위로 출력하는 데 사용됩니다. 긴 파일을 한 번에 출력하지 않고, 사용자가 스페이스바를 눌러 페이지를 넘길 수 있게 합니다.

head

head 명령어는 파일의 처음 몇 줄을 출력하는 데 사용됩니다. 기본적으로 처음 10줄을 출력하지만, -n 옵션을 사용하여 출력할 줄 수를 지정할 수 있습니다.

tail

tail 명령어는 파일의 마지막 몇 줄을 출력하는 데 사용됩니다. 기본적으로 마지막 10줄을 출력하지만, -n 옵션을 사용하여 출력할 줄 수를 지정할 수 있습니다.
 

파일 변경

cd

cd 명령어는 디렉터리 간 이동을 위한 명령어입니다. 예를 들어, cd /home/user를 입력하면 해당 디렉터리로 이동합니다.

cp

cp 명령어는 파일이나 디렉터리를 복사하는 데 사용됩니다. 예를 들어, cp source.txt destination.txt를 입력하면 source.txt 파일을 destination.txt로 복사합니다.

mv

mv 명령어는 파일이나 디렉터리를 이동하거나 이름을 변경하는 데 사용됩니다. 예를 들어, mv oldname.txt newname.txt를 입력하면 oldname.txt의 이름을 newname.txt로 변경합니다.
notion image

rm

rm 명령어는 파일이나 디렉터리를 삭제하는 데 사용됩니다. 예를 들어, rm filename을 입력하면 해당 파일이 삭제됩니다. 디렉터리를 삭제하려면 rm -r directoryname을 사용합니다.

inode

💡
inode 는 각 파일과 디렉터리에 대한 정보를 저장하는 데이터 구조(메타데이터)입니다. 여기에는 파일의 소유자, 권한, 크기, 생성 및 수정 시간 등이 포함됩니다. 도서관에서 서적 배치 위치를 가리치는 정보와 같습니다.
notion image
  • inode 저장 공간이 부족하면 파일이 생성되지 않을 수도 있습니다.
  • 각 값은 고유합니다(복사해도 값은 다름).

mkdir

mkdir 명령어는 새로운 디렉터리를 생성하는 데 사용됩니다. 예를 들어, mkdir new_directory를 입력하면 new_directory라는 이름의 디렉터리가 생성됩니다.
  • r 옵션은 recursive의 약자로, 디렉터리와 그 하위 디렉터리 및 파일을 재귀적으로 처리할 때 사용됩니다. 예를 들어, rm -r directoryname 명령어를 사용하면 지정한 디렉터리와 그 안에 있는 모든 하위 디렉터리 및 파일이 삭제됩니다. 마찬가지로, cp -r sourcedir destinationdir 명령어를 사용하면 소스 디렉터리와 그 하위 디렉터리를 모두 복사할 수 있습니다.
 
 

링크

정의

링크는 파일 정보와 실제 데이터가 연결된 형태입니다. 링크의 종류에는 하드 링크와 소프트 링크가 있습니다. ln 을 사용합니다.

하드 링크

하드 링크는 동일한 파일 시스템 내의 파일에 대한 별칭을 만듭니다. 하드 링크는 원본 파일이 삭제되어도 데이터에 접근할 수 있게 해줍니다.
inode 값이 동일(공유)합니다.
동일한 파티션에 있어야 합니다.
💡
rm 을 했다고 해서 디스크에 물리적으로 제거된 것이 아닙니다. link된 파일이 unlink가 된 것이므로 사용자에게만 안보이는 것입니다. 따라서 복원(포렌식)할 수 있습니다.

소프트링크

소프트 링크(심볼릭 링크)는 파일이나 디렉터리의 경로를 가리키는 참조입니다. 소프트 링크는 원본 파일이 삭제되면 깨진 링크가 됩니다.
윈도우의 바로가기와 유사합니다.
notion image

소프트링크 실제 적용사례

소프트링크는 여러 버전의 라이브러리를 관리해야 하는 경우에 유용합니다. 예를 들어, /usr/lib/libexample.so/usr/lib/libexample.so.1로 소프트 링크하면, 특정 버전의 라이브러리를 가리킬 수 있습니다.

하드링크 실제 적용사례

하드 링크는 백업 및 복구 시나리오에서 유용합니다. 예를 들어, 중요한 파일의 하드 링크를 생성해 두면 원본 파일이 손상되거나 삭제되더라도 하드 링크를 통해 데이터에 접근할 수 있습니다.
디렉터리(2) - 파일 검색NAT, NAT network 차이점
Loading...