/ bin과 / usr / bin의 차이점


83

나는이 웹 사이트에서 이것을 읽었고 이해가되지 않습니다.

http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/basic/node32.html

UNIX가 처음 작성 /bin되어 /usr/bin물리적으로 두 개의 다른 디스크에 있을 때 : /bin더 작은 (더 비싼) 디스크와 /usr/bin더 큰 느린 디스크에 있습니다. 이제는 다음에 /bin대한 심볼릭 링크 /usr/bin입니다. 기본적으로 동일한 디렉토리입니다.

그러나 폴더의 ls경우 /bin폴더보다 내용이 적습니다 /usr/bin(적어도 내 실행중인 시스템에서).

누군가 차이점을 설명해 주시겠습니까?


그 사람들이 특정 기계에 대해 이야기하고 있지 않습니까?
tshepang

1
당신이 계속 클릭하면 @tshepang 잘, 기사에서 당신은 유닉스 / 리눅스 에 대한 기본 소개에 도달 할 것 입니다. 그래서 아니, 그들이 특정 시스템에 대해 이야기하지 않을 말할 것
xenoterracide

3
@xeno 그래, 나는했지만 오래 가지 않았다. 이 경우 해당 페이지를 삭제해야합니다. 오해의 소지가 있습니다.
tshepang

3
이 문서는 '역사적 참조'로 간주 될 수 있습니다. "이 문서에 대하여"페이지를 보면 1993 년에 원래 저작권이 있음을 알 수 있습니다. 참고 문헌을 살펴보면 가장 최근의 출처는 1997입니다. 가장 인기있는 유닉스 계열 운영 체제는 대부분 이후에 바뀌 었습니다. 그때.
개브.

1
이 구성의 기록에 관심이있는 사람은 다음을 읽어보십시오. lists.busybox.net/pipermail/busybox/2010-December/074114.html
JDS

답변:


73

뭐? no /bin//usr/binFHS 호환 시스템에서 심볼릭 링크가 아닙니다 . 예를 들어, 이것을 무시하는 인기있는 Unices /bin와 Linux /sbin가 여전히 있습니다 /usr/bin. Arch Linux에서 심볼릭 링크가 되어 /bin있습니다. CD).

/bin

시스템 관리자와 사용자 모두가 사용할 수 있지만 다른 파일 시스템이 마운트되지 않은 경우 (예 : 단일 사용자 모드) 필요한 명령이 포함되어 있습니다. 스크립트에서 간접적으로 사용하는 명령을 포함 할 수도 있습니다.

/usr/bin/

이것은 시스템에서 실행 가능한 명령의 기본 디렉토리입니다.

기본적으로 /bin응급 복구, 부팅 및 단일 사용자 모드를 위해 시스템에 필요한 실행 파일이 포함되어 있습니다. /usr/bin필요하지 않은 바이너리가 들어 있습니다.

별도의 디스크 / 파티션에있을 수 있으며 /bin와 동일한 디스크에 있어야합니다 /. /usr/bin다른 디스크에있을 수 있습니다.하지만이 구성은 잠시 동안 고장난 것입니다 (예를 들어 systemd는 부팅시이 구성에 대해 경고합니다).

완전한 정확성을 위해 일부 유니스가 FHS를 무시할 수 있습니다 .FHS는 Linux 표준 일 뿐이므로 SUS, Posix 또는 기타 UNIX 표준에 포함되어 있지만 IMHO이어야합니다. 그러나 LSB 표준 의 일부입니다 .


그렇다면 두 배포판간에 / usr / bin을 공유 할 수 있습니까? 우분투 10.04와 10.10처럼?
balki

4
@balki 아니오, 여전히 올바르게 연결되어 있어야합니다. 즉, 빌드 된 올바른 버전의 라이브러리를 사용해야합니다.
xenoterracide

6
/bin/usr/bin(일부 릴리스?) Solaris와 같은 일부 유니 세스에 대한 링크 입니다.
Gilles

1
@balki 당신 /usr 두 개의 매우 유사한 배포판 을 공유 할 있습니다. 당신의 데이터. 또한 10.04과 10.10 사이의 큰 차이의 대부분이 될 것이라고 통보/usr
xenoterracide

2
/ usr / local / bin은 배포판에 포함되어 있지 않지만 시스템 전체에서 사용하기위한 프로그램이 설치되는 곳이기도합니다.
도나 토

56

/sbin -부팅, 저수준 시스템 수리 또는 유지 관리에 필요한 바이너리 (실행 수준 1 또는 S)

/bin -모든 실행 레벨에서 정상 / 표준 시스템 기능에 필요한 바이너리.

/usr/bin -로컬로 로그인 한 사용자가 액세스 할 수있는 응용 프로그램 / 배포 바이너리

/usr/sbin -/ sbin에서 항목을 지원하거나 구성하는 응용 프로그램 / 배포 바이너리

/usr/share/bin -웹을 통해 액세스 할 수있는 응용 프로그램 / 배포 바이너리 또는 스크립트 (예 : Apache 웹 응용 프로그램)

*local*-바이너리는 배포판의 일부가 아닙니다. 로컬로 컴파일되거나 수동으로 설치됩니다. 보통은 /local/bin없지만 항상 a /usr/local/bin/usr/local/share/bin입니다.


4
아, 원한다면 보안 등을 위해 별도의 디스크 나 파티션에이 모든 것을 넣을 수 있습니다. 아이디어는 / usr을 마운트 해제 할 수 있고 시스템은 기본 기능에 필요한 모든 것을 갖추고 있지만 시스템 이외의 응용 프로그램은 실행할 수 없다는 것입니다.
LawrenceC

1
나는 몇 년 전에 알고 있었으면 좋겠다. 내가 지금까지 본 최고의 설명. 나는 매우 힘들어 보였지만 마침내 답을 알게되어 기뻤습니다.
David

2
이것은 좋은 대답입니다. 내가 할 수 있다면 내가 당신에게 내 자신의 포인트 10을 기부합니다
수륙 양용

/usr/bin로그인 한 사용자가 없으면 @ultrasawblade가 자동으로 마운트 해제됩니까? 예를 들어, LINUX가 부팅하여 로그인 인증을 표시하면 /usr/bin마운트 또는 아니오?

1
아니요, 시스템이 비정상적으로 구성되어 있지 않으면 부팅시 마운트되어 마운트를 해제하지 않으면 마운트 상태를 유지합니다.
LawrenceC

17

이 문제에 대한 일종의 "업데이트":

최근 일부 Linux 배포판은에 통합 /bin되어 /usr/bin관련 /lib되어 /usr/lib있습니다. 때로는도 (/usr)/sbin/usr/bin(아치 리눅스). 따라서 /usr와 동시에 사용할 수있을 것으로 예상됩니다 /.

두 계층 사이의 구별은 이제 불필요한 복잡성으로 간주됩니다. 이 아이디어는 한 번 /bin부팅 할 때만 사용할 수 있었지만 초기 램 디스크를 사용하면이 기능이 더 이상 사용되지 않습니다.

나는 Fedora Linux (2011)와 Arch Linux (2012)가 이런 식으로 가고 있다는 것을 알고 Solaris는 오랫동안 (> 15 년) 이것을하고 있습니다.


8

Linux에서 /bin하고 /usr/bin있습니다 그것을 가지고하는 것이 일반적이기 때문에 여전히 분리하는 /usr별도의 파티션에 (미묘한 방법으로이 구성 나누기, 가끔 있지만). In /bin/마운트 된 경우에만 필요한 모든 명령입니다 .

Solaris 및 Arch Linux (및 기타) /bin에서는 심볼릭 링크 /usr/bin입니다. 아치는 또한 그 /sbin/usr/sbin연관되어있다 /usr/bin.

특히 노트, 문장의 /bin"시스템 관리자"명령입니다 및 /usr/bin사용자 명령을위한입니다 사실이 아니다 (당신은 그렇게 생각하지 않는 한 bash그리고 ls당신은 많은 학습이있는 경우에만 관리자,위한 것입니다). 관리자 명령은 /sbin및에 /usr/sbin있습니다.


1
누가 bin시스템 관리자만을위한 것이라고 말했 습니까? 그게 다야 sbin.
xenoterracide

당신을 잘못 인용했습니다. 죄송합니다. 너무 빨리 읽고있었습니다.
bahamat

5

많은 UNIX 기반 시스템이 있습니다. Linux, AIX, Solaris, BSD 등. 원래 인용문은 모든 특징에 적용되는 히스토리 컨텍스트를 제공합니다. 하나의 특정 시스템을 보면 다른 결과가 나타납니다. 원래 인용문의 마지막 문장은 일부 버전 및 배포판에만 해당됩니다.

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