우분투 파일 시스템 레이아웃을 이해하는 방법?


220

Windows에는 설치 드라이브 (내 경우에는 C:\) 에 중요한 폴더가 몇 개 있습니다 (중요한 것은 Windows 파일 시스템의 논리적 그림에서 중요합니다 ). 즉 Program FilesWindows. 나는 단순히 Windows폴더 에서 멀리 떨어져 있고 "프로그램 파일 추가 제거"는 program filesWindows 폴더 를 처리하기에 충분합니다 . 물론 Users관리자가 아닌 사용자가 자신의 폴더에만 액세스 할 수있는 폴더가 있습니다.

따라서 Windows 파일 시스템을 생각하면 어느 정도 명확한 그림이 있습니다. 우분투에는 위치에 도달하면 /거대한 폴더 목록이 있으며 대부분 폴더에 들어있는 것에 대한 단서가 없습니다. /bin폴더는 동등한 것으로 보인다 Windows창에서 폴더. /usr는 동등한처럼 폴더가 보인다 Users윈도우에서 폴더. 그러나 /home폴더 조차도 청구서에 맞는 것처럼 보입니다.

우분투 (리눅스)는 Windows와 다른 문자, 즉 우분투에서 Windows 기능과 정확히 일치 할 필요는 없다는 것을 이해합니다. 내가 찾고있는 것은 우분투 파일 시스템의 좀 더 명확한 그림입니다.

이 질문은 더 큰 질문의 일부이며 더 답하기 쉽게 나누었습니다. 원래 질문은 여기에서 찾을 수 있습니다 :
http://sgsawant.wordpress.com/2012/05/17/whats-the-equivalent-of-add-or-remove-programs-in-ubuntu/


3
Unix & Linux디렉토리 구조 태그 도 참조하십시오 . 모든 Linux 배포판은 동일한 모델을 따릅니다.
Gilles

모든 답변에 감사드립니다. 몇 가지 점에 대해 약간 혼란 스럽습니다. Windows에서는 일반적으로 설치 프로그램이 프롬프트를 통해 모든 사용자를 위해 소프트웨어를 설치하는 옵션을 제공합니다. 우분투에서 그 차이를 만드는 방법? 또한 이는 개발 소프트웨어를 IDE로 구성 할 때 일반적으로 발생하는 문제입니다. 예를 들어, Windows의 "program files \ miktex \ bin"에는 "pdflatex.exe"파일이 있습니다. 따라서 IDE에서이 파일을 가리키고 구성 할 수 있습니다. 우분투 에서이 과정을 어떻게 진행합니까? 소프트웨어와 관련된 일반적인 이진 파일은 어디에 있습니까 (구성 관점에서 볼 때)?
Shashank Sawant

2
우분투에서는 일반적으로 모든 사용자를위한 소프트웨어를 설치합니다. 패키지 관리자를 통해 수행하는 모든 작업은 모든 사용자를위한 것입니다. 나는 당신의 의견의 나머지 부분을 이해하지 못합니다. 하나는 "소프트웨어와 관련된 이진 파일"을 "구성"하지 않습니다. 이 질문을 별도의 질문으로하여 수행하려는 작업에 대한 자세한 설명을 제공해야합니다.
Gilles

알았다. 나는 새로운 질문을 구성 할 것이다. 그럼에도 불구하고 여기에 내가 의미하는 바에 대한 간단한 설명이 있습니다. Windows에서는 .exe 파일을 쉽게 찾을 수 있습니다. 예 : "C : \ Python27 \ python.exe" 그래서 나는 파이썬 프로그램이 어디서 시작되는지 안다. 이제 Eclipse IDE를 사용해야한다면 간단히 python.exe를 가리킬 수 있습니다. 이것이 "configure"라는 의미입니다. 파이썬 용 IDE를 구성했습니다. 우분투에서 프로그램이 설치된 위치는 어디입니까? 그것이 여전히 나를 회피하는 것입니다.
Shashank Sawant

2
@Gilles 말할 때주의하십시오 all. GoboLinux 프로젝트는 실제로 디렉토리 구조와 같은 더 윈도우를 사용합니다.
new123456 1

답변:


251

예를 들어 wikipedia에서 읽을 수 있습니다. 발췌 :

파일 시스템 계층 표준 (FHS)은 리눅스 운영 체제의 주요 디렉토리와 그 내용을 정의합니다. 대부분의 경우 이는 전통적인 BSD 파일 시스템 계층 구조의 공식화 및 확장입니다.

FHS는 HP, Red Hat, IBM 및 Dell과 같은 주요 소프트웨어 및 하드웨어 공급 업체로 구성된 비영리 조직인 Linux Foundation에서 유지 관리합니다. 현재 버전은 3.0이며 2015 년 6 월 3 일에 릴리스되었습니다.

간단한 설명이 포함 된 시각적 표현 :

여기에 이미지 설명을 입력하십시오

기본적으로 Linux는 필요한 최소 권한으로 시스템을 최대한 안전하게 만드는 데 필요한 기능에 따라 디렉토리 구조를 나누었습니다. 그렇지 않으면 누군가 피해야 할 일을 많이해야합니다.

다중 사용자 시스템 및 Windows로 작성된 Unix 및 Linux는 단일 사용자를 위해 작성되었습니다. 그 아이디어에서 다른 모든 것을 설명 할 수 있습니다. 다중 사용자 및 보안에 대해 생각할 때 모든 디렉토리를 설명 할 수 있습니다.

3 가지 예 :

  • 관리자 인 파일과 디렉토리는 같은 디렉토리 (s in /sbin/usr/sbinand)를 /usr/local/sbin나타내는 동일한 디렉토리에 수집됩니다 . 일반 사용자는 그 안에있는 프로그램을 시작할 수도 없습니다. 일반 사용자가 시작할 수있는 파일은 가장 논리적으로 상주해야하는 위치에 따라 / bin, / usr / bin, / usr / local / bin에 있습니다. 그러나 관리자 인 경우 s해당 디렉토리 의 버전으로 이동해야합니다 . 라는 유명한 유틸리티가 fuser있습니다. 그것으로 프로세스를 죽일 수 있습니다. 일반 사용자가 이것을 사용할 수 있으면 세션을 종료 할 수 있습니다.

  • 에 대해 같은 간다 /home/ 홈 / 사용자 1은 사용자 1의 특성은 다음과 같습니다. / home / user2는 user2의 속성입니다. user2는 user1의 집에서 업무를 수행하지 않습니다 (그리고 다른 방법도 마찬가지입니다 : user1은 user2의 집에서 업무를 수행하지 않습니다). 모든 파일이 사용자 이름없이 / home에있는 경우 모든 파일에 권한을 부여하고 누군가 해당 파일을 쓰거나 제거 할 수 있는지 여부를 평가해야합니다. 수십 명의 사용자가 있다면 악몽입니다.

  • 도서관에 관한 추가 .

    /lib/,, /usr/lib//usr/local/lib/multilib 시스템이 존재하기 전과 중단되지 않는 원래 위치입니다. /usr/lib32, /usr/lib/64, /usr/local/lib32/, /usr/local/lib64/32 비트 / 64 비트 multilib 발명품이다.

결코 정적 개념이 아닙니다. 다른 리눅스 맛은이 레이아웃을 조정했다. 예를 들어; SSD는 읽기 전용 파일을 사용하는 것이 더 좋기 때문에 현재 데비안과 우분투 가 FHS 레이아웃에서 많이 바뀌는 것을 볼 수 있습니다. 파일이 '읽기 전용'및 '쓰기 가능'디렉토리 / 그룹으로 분할되어 읽기 전용 (ssd의 파티션) 및 쓰기 가능으로 루트 파티션을 가질 수있는 새로운 레이아웃으로 이동 (사타 HDD). 이 이미지에 사용되지 않는 새 디렉토리는 /run/입니다.


18
렌츠 윈드 +1 나는 이미지를 좋아하고 실제로 하나를 찾고있었습니다.
Luis Alvarado

5
하 관심을 얻을 것이라고 생각 : + @LuisAlvarado
Rinzwind

4
더 나은 대답은 없습니다!
Shashank Sawant

1
아니 었 /mnt어떤 /media몇 년 전, 지금?
RobinJ

9
@RobinJ : 차이점은 /mnt역사적으로 수동으로 관리되었습니다. 많은 과도 장치 (플래시 드라이브 등)가 증가하고 자동 마운팅이 표준이됨에 따라 마운트 지점을 자동으로 처리해야했습니다. 기존 수동 구성과의 충돌을 피하기 위해 새 디렉토리가 필요했습니다. 따라서 요즘 /mnt은 편리한 임시 마운트 지점을 제공하는 역할로 강등되었습니다.
Scott Severance

104

이 명령을 시도해보십시오 ...

man 7 hier

이 매뉴얼 페이지는 여기에서도 볼 수 있습니다 : http://manpages.ubuntu.com/manpages/en/man7/hier.7.html

그것이 도움이되기를 바랍니다.


1
좋은 전화! 나는 항상 존재하지만 (망이 다운되었을 때조차도) 하나를 잊어 버립니다.
Rinzwind

1
man은 "it"으로 이름을 바꿔야합니다. :)))
Shiki

man hier내가 가장 좋아하는 명령 중 하나입니다! 설명은 FHS doco보다 명확합니다. 특히 경험이없는 우분투 사용자의 경우 '시스템에 로컬'과 '사이트 전체'를 구분하여 중간 정도의 DOS / Windows 경험을 넘어 섭니다.
WillC

BTW 번호 7기타 매뉴얼 페이지의 기타 섹션을 나타냅니다 .
Pablo A

흠. 모든 종류의 우분투 버전에이 기능이있을 가능성이 있지만, 이런 종류의 가치에 대해서는 링크 전용 답변을 생각 나게합니다. 매뉴얼 페이지의 내용 중 일부를 답변에 포함시킬 수 있습니까?
jrh

45

늦은 답변 -초보자가 따라야 할 로드맵을 만들었습니다. 파일을 찾고 있지만 찾을 위치를 모르는 경우지도를 사용하여 대략적으로 탐색 할 수 있습니다. 고해상도 PNG를 여기에서 다운로드 할 수 있습니다 . 관련 게시물은 여기에서 찾을 수 있습니다 . 시간이 허락 할 때 파일과 게시물을 계속 업데이트하여 유용한 의견을 제공합니다.


순서도를 생성하는 흥미롭고 유용한 아이디어이지만 불행히도 막 다른 골목이있는 것 같습니다. 내 질문은 mysqldump파일을 어디에서 출력해야합니까?
BadHorsie

@BadHorsie는 물론 특정 사용 사례에 따라 다르지만 /home/badhorsie/mysqldump디렉토리에 덤프하면 충분합니다. 많은 앱을 실행중인 경우 각 앱을 실행하고 해당 앱 / 사용자 home디렉토리 에 덤프 할 새 사용자를 작성할 수 있습니다 .
d4nyll

@ paranoid-panda, 전체 해상도를 통해 이미지를 클릭 할 수 없도록하는 이유를 조금 확장 할 수 있습니까? 이 게시물에 포함 된 버전은 거의 읽을 수 없습니다.
waldyrious

@ waldyrious : 개정 내역 을 보면 맞춤법 실수 만 수정했음을 알 수 있습니다.이 특정 방식으로 이미지를 추가 한 것은 다른 사용자였습니다. 나랑 아무 상관 없어 클릭하여 편집 할 수있는 올바른 구문을 기억할 수 없습니다.

@ParanoidPanda 그것이 바로 내가 한 일입니다. 내 편집으로 오타를 수정하고 이미지를 클릭 할 수있게 만들었으며 리뷰를 거부하고 편집해야 했기 때문에 내 질문 : 이미지를 클릭 가능하게 만드는 데 무엇이 잘못 되었습니까?
waldyrious 2016 년

36

다음 텍스트는 디렉토리 구조를 보여줍니다.

mtk4@laptop:/$ pwd
/
mtk4@laptop:/$ tree -L 1
.
|-- bin
|-- boot
|-- cdrom
|-- dev
|-- etc
|-- home
|-- lib
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tmp
|-- usr
|-- var

주요 구성 요소는 다음과 같습니다.

  1. /boot : 부트 로더를 포함

  2. /home : 사용자의 홈 디렉토리를 포함합니다.

  3. /bin : 시스템의 모든 사용자가 사용하는 모든 실행 가능 바이너리 및 명령이 여기에 있습니다.

  4. /sbin : 여기에는 일반적으로 시스템 관리자가 사용하는 시스템 실행 파일 바이너리가 포함됩니다.

  5. /lib : / bin 및 / sbin의 바이너리를 지원하는 시스템 라이브러리가 포함되어 있습니다.

  6. /etc : 네트워크, 부팅 시간 등의 구성 파일이 들어 있습니다.

  7. /dev : 여기에는 장치 파일, 즉 USB, 터미널 장치 또는 시스템에 연결된 다른 장치가 있습니다.

  8. /proc : 실행중인 프로세스에 대한 정보를 포함합니다.

  9. /tmp: 이것은 많은 프로세스가 필요한 임시 파일을 작성하는 임시 디렉토리입니다. 머신이 부팅 될 때마다 제거됩니다.

자세한 내용은 Thegeekstuff 링크가 일반적인 리눅스 파일 시스템을 완벽하게 설명합니다.


20

\Users와 같습니다 /home. 의 이름은 /usr역사적 유물입니다.

등가의 결합 \Windows\Program Files의 조합 인 /bin, /boot, /etc, /lib, /sbin, /tmp, /usr/var. Linux와 Windows는 설치된 소프트웨어를 다르게 분할합니다. Windows는 운영 체제와 컴패니언 프로그램을 구분합니다. 리눅스는 같은 방식으로이 구별을하지 않습니다. 대부분의 소프트웨어가 Ubuntu (배포자)를 통해 제공되는 것은 아니며 동일한 디렉토리 계층에 설치되며, 패키지 관리자가 소프트웨어를 추적하므로 각 프로그램을 자체 디렉토리에 저장할 필요가 없습니다. Linux에서 :

  • /etc 시스템 구성 파일 용 : 운영 체제 전체 또는 특정 응용 프로그램에 적용되는지 여부에 관계없이 모든 사용자에게 영향을주는 구성 파일입니다.
  • /usr 시스템 코드 및 데이터 (프로그램, 라이브러리, 문서 등)를위한 것입니다.
  • /var임시 파일, 로그, 패키지 관리자 데이터베이스, 프린터 스풀, 게임 저장 파일 등의 가변 또는 임시 데이터를 /tmp위한 것입니다. 재부팅 중에 지울 수있는 임시 파일도 있습니다.
  • /bin, /lib/sbin루트 디렉토리에의 대응이 /usr. 외부 /usr에있는 파일 은 부팅 프로세스 초기에 필요한 파일입니다 . 이것은 디스크가 작을 때와 /usr네트워크를 통해 여러 워크 스테이션간에 공유되는 파일 시스템에있을 때의 유물이며, 대부분의 시스템에서 실제로 유용한 구분은 아닙니다.
  • /boot 운영 체제를 부팅하는 데 필요한 파일이며 일상적인 작업에는 필요하지 않습니다.

Windows의 디렉토리와 일치하지 않는 추가 디렉토리가 있습니다.

  • /root루트 사용자의 홈 디렉토리입니다. 루트 사용자는 특정 사용자와 연결되지 않은 관리자 계정입니다. 실행할 때 변경하는 사용자입니다 sudo. 우분투는 루트 사용자가 기본적으로 로그인하도록 허용하지 않습니다.
  • /media/mnt마운트 포인트 : 다른 운영 체제 및 원격 드라이브의 파일 시스템을 볼 수있는 그들입니다. Windows와 동등한 드라이브 문자입니다.
  • /proc그리고 /sys쇼 시스템 정보를 표시합니다. Windows에서는이 정보를 보려면 메뉴를 살펴 보거나 시스템 명령을 호출하거나 타사 프로그램을 설치해야합니다.

우분투는 다른 리눅스 배포판과 마찬가지로 일반적으로 Linux Filesystem Hierarchy Standard를 따릅니다 .


5

우분투 (모든 유닉스 계열 시스템과 마찬가지로)는 파일을 계층 트리로 구성하는데, 여기에서 자식과 부모로 구성된 팀의 관계가 고려됩니다. 디렉토리는 다른 디렉토리와 일반 파일 (트리의 "잎")을 포함 할 수 있습니다. 트리의 모든 요소는 경로 이름으로 참조 할 수 있습니다. 절대 경로 이름은 / 문자로 시작하고 (다른 모든 디렉토리와 파일을 포함하는 루트 디렉토리를 식별) 요소에 도달하기 위해 순회해야하는 모든 하위 디렉토리가 각각 / 기호로 구분되어 나열됩니다.

상대 경로 이름은 /로 시작하지 않는 이름입니다. 이 경우 디렉토리 트리는 주어진 지점부터 시작하여 현재 디렉토리라고하는 컨텍스트에 따라 변경됩니다. 모든 디렉토리에는이라는 두 개의 특수 디렉토리가 있습니다. 및 ..는 각각 디렉토리 자체와 상위 디렉토리를 나타냅니다.

모든 파일과 디렉토리에 공통 루트가 있다는 사실은 시스템에 여러 개의 다른 스토리지 장치가 존재하더라도 원하는 위치에 마운트되면 트리의 어느 곳에서나 디렉토리로 간주됨을 의미합니다.

여기에서 예제와 추가 정보를 찾으십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.