이 사이트에서 이 기사를 읽었지만 이해가 되지 않습니다.
http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/basic/node32.html
UNIX가 처음 작성되었을 때 UNIX는
/bin
물리적으로/usr/bin
두 개의 서로 다른 디스크,/bin
즉 더 작고 빠른(더 비싼) 디스크와/usr/bin
더 크고 느린 디스크에 상주했습니다. 이제/bin
심볼릭 링크/usr/bin
는 본질적으로 동일한 디렉토리입니다.
그러나 ls
해당 /bin
폴더에 액세스하면 해당 폴더에 포함된 콘텐츠가 그보다 훨씬 적습니다 /usr/bin
(적어도 제가 실행 중인 시스템에서는).
누군가 차이점을 설명할 수 있나요?
답변1
무엇? no 는 FHS 호환 시스템의 심볼릭 링크 /bin/
가 아닙니다 . /usr/bin
이를 무시하는 인기 있는 Unices 및 Linux가 여전히 있다는 점에 유의하세요. 예를 들어 Arch Linux 에 대한 심볼릭 링크 /bin
( 라이브 CD를 부팅할 때 복구/단일 사용자 모드가 필요하지 않기 때문입니다 )./sbin
/usr/bin
/bin
시스템 관리자와 사용자 모두 사용할 수 있지만 다른 파일 시스템이 마운트되지 않은 경우(예: 단일 사용자 모드)에 필요한 명령이 포함되어 있습니다. 스크립트에서 간접적으로 사용되는 명령이 포함될 수도 있습니다.
이는 시스템에서 실행 가능한 명령의 홈 디렉터리입니다.
기본적으로 /bin
시스템 응급 복구, 시작 및 단일 사용자 모드에 필요한 실행 파일이 포함되어 있습니다. /usr/bin
불필요한 바이너리가 포함되어 있습니다.
별도의 디스크/파티션에 있을 수 /bin
있으며 /
. /usr/bin
) .
완전히 정확하기 위해 일부 unice는 FHS가 Linux 표준이라고 믿기 때문에 FHS를 무시할 수 있습니다. IMHO이어야 하지만 SUS, Posix 또는 기타 UNIX 표준에 포함되어 있는지는 알 수 없습니다. 그것은최하위 비트표준이지만.
답변2
업데이트: 일부 역사와 실제 이유를 알아보려면 /usr
다음 기사를 읽어보세요.http://lists.busybox.net/pipermail/busybox/2010-December/074114.html. 반품이것.
/sbin
- 시작, 하위 수준 시스템 복구 또는 유지 관리에 필요한 바이너리(런레벨 1 또는 S)
/bin
- 모든 실행 수준에서 일반/표준 시스템 작동에 필요한 바이너리입니다.
/usr/bin
- 애플리케이션/배포 바이너리는 로컬로 로그인한 사용자가 액세스하도록 되어 있습니다.
/usr/sbin
- /sbin의 콘텐츠를 지원하거나 구성하는 애플리케이션/배포 바이너리.
/usr/share/bin
- 네트워크를 통해 액세스할 수 있는 애플리케이션/배포 바이너리 또는 스크립트(예: Apache 웹 애플리케이션)
*local*
- 바이너리는 배포판의 일부가 아니며 로컬로 컴파일되거나 수동으로 설치됩니다. 일반적으로 a는 없지만 항상 and /local/bin
가 있습니다 ./usr/local/bin
/usr/local/share/bin
답변3
이 질문에 대한 일종의 "업데이트":
최근 일부 Linux 배포판이 병합되어 . /bin
그리고 때로는 (Arch Linux) 과도 /usr/bin
관련됩니다 . 따라서 동시에 출시될 것으로 예상된다 ./lib
/usr/lib
(/usr)/sbin
/usr/bin
/usr
/
이제 이 두 계층 간의 구별은 불필요한 복잡성으로 간주됩니다. /bin
예전에는 시작 시 에만 사용할 수 있다고 생각했지만초기 가상 디스크이것을 쓸모 없게 만드십시오.
나는 Fedora Linux(2011)와 Arch Linux(2012)가 이 길을 가고 있다는 것을 알고 있으며, Solaris는 오랫동안(15년 이상) 이 길을 가고 있습니다.
답변4
UNIX 기반 시스템이 많이 있습니다. 리눅스, AIX, 솔라리스, BSD 등 원래 인용문은 모든 스타일에 적용되는 역사적 맥락을 제공합니다. 특정 시스템을 살펴보면 다른 결과가 표시됩니다. 원래 인용문의 마지막 문장은 특정 버전 및 배포판에만 적용됩니다.