Linux에서 / usr / bin vs / usr / local / bin


445

왜 리눅스에 바이너리를 넣을 장소가 그렇게 많은가? 최소한 다음 5 가지가 있습니다.

  1. /bin/
  2. /sbin/
  3. /usr/bin/
  4. /usr/local/bin/
  5. /usr/local/sbin/

그리고 내 사무실 상자에는 이들 중 일부에 대한 쓰기 권한이 없습니다.

이들 중 어떤 유형의 바이너리가 bin있습니까?


28
당신은 잊었다 /usr/sbin/.
Hello71

15
그리고 ~/bin/개인적인 것들.
Calmarius

1
때문에 적은 장소, 요즘 있습니다 /bin와 합병 /usr/bin하고 /sbin합병 된 /usr/sbin참조 - 는 / usr 병합에 대한 케이스 .
Piotr Dobrogost


@ 칼 마리우스, 뭐? 사용해서는 안 /usr/local/bin됩니까?
Pacerier

답변:


558
  1. /bin(및 /sbin)은 //usr파티션 등을 마운트 하기 전에 작은 파티션 에 있어야하는 프로그램을위한 것입니다 . 요즘 /bin/sh은 원래 의도가 소형 임베디드 장치에 설치하는 것과 관련이있을 수 있지만, 주로 주요 프로그램의 표준 위치로 사용 됩니다.

  2. /sbin와 구별되는 것은 마운트 /bin하기 전에 필요한 시스템 관리 프로그램 (일반 사용자가 일반적으로 사용하지 않는)을위한 것 /usr입니다.

  3. /usr/bin 배포 관리 일반 사용자 프로그램을위한 것입니다.

  4. A는이 /usr/sbin동일한 관계 /usr/bin/sbin에있다 /bin.

  5. /usr/local/bin배포 패키지 관리자가 관리 하지 않는 일반 사용자 프로그램 ( 예 : 로컬로 컴파일 된 패키지)입니다. /usr/bin향후 배포 업그레이드시 경고없이 수정하거나 삭제할 수 있으므로 설치하지 마십시오 .

  6. /usr/local/sbin당신은 아마이 시점에서 추측 할 수로,이다 /usr/local/bin/usr/sbin으로 /usr/bin.

또한, /opt모 놀리 식 비 분배 패키지를위한 것도 있지만, 그것들이 적절히 통합되기 전에 다양한 배포판이 그놈과 KDE를 넣었습니다. 일반적으로 Oracle과 같이 거대하고 제대로 작동하지 않는 타사 패키지를 위해 예약해야합니다.


37
이 답변은 일반적인 규칙을 명확하게 설명하는 데 도움이되지만 Rob Landley 의이 게시물은 넌센스에 대한 통찰력을 원한다면 정말 잘 읽 습니다. /074114.html
Subfuzion

3
표준 전류 참조에 대한 refspecs.linuxfoundation.org/fhs.shtml @kojiro의 링크는 구식이며 새로운 사양이 없습니다.
Didier A.

2
인터넷에서 다운로드 한 저장소를 어디에 두어야합니까? 설명에서 / usr / local / bin 또는 / usr / bin으로 이동해야합니다. / usr / bin은 수동으로 만져서는 안되는 것입니까? 패키지 관리자 만 놀 수 있습니까?
Didier A.

3
@DidierA. 그것을 넣고 ~/bin사용자로 PATH에 해당 디렉토리를 추가하십시오 ... 메모 주셔서 감사합니다, 심각하게 오래된 주석을 삭제했습니다.
kojiro 2016 년

3
내 질문의 첫 번째 부분에 대한 답변을 여기에서 찾았습니다 : superuser.com/a/238993/425838 . 우선 순위는 시스템의 순서를 기반으로 PATH변수, 그리고 echo $PATH나를 위해 보여줍니다 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games에서 실행 즉, /usr/local/bin사람 인수의 우선 순위가에 /usr/bin있는 것들보다 우선합니다 /bin.
Gabriel Staples

65

파일 시스템 계층 매뉴얼 페이지를 살펴 보는 것이 좋습니다.

man hier

온라인에서도 사용할 수 있습니다 (예 : http://linux.die.net/man/7/hier).


1
이것은 사용자의 질문에 대답하지 않습니다.
Billy ONeal

14
매뉴얼 페이지에는 각 bin 디렉토리에 대한 항목이 포함되어 있으며, 질문 중 하나 인 디렉토리에 들어가는 내용을 설명합니다.
davitenio

34

Wikipedia 의 Filesystem Hierarchy Standard 항목은 내가 받았을 때 같은 질문에 대답하는 데 도움이되었으며 매우 설명적인 표가 있습니다.

해당 페이지에서 발췌 1 :

/bin        Essential command binaries that need to be available in single user mode; for all users, e.g., cat, ls, cp.
/usr/bin    Non-essential command binaries (not needed in single user mode); for all users.
/usr/local  Tertiary hierarchy for local data, specific to this host. Typically has further subdirectories, e.g., bin, lib, share
/usr/sbin   Non-essential system binaries, e.g., daemons for various network-services.
/sbin       Essential system binaries, e.g., fsck, init, route.

1 2019 년 6 월 19 일에 확인 함. 영구 링크 .


17

sbin디렉토리에는 일반적으로 시스템 관리인 프로그램이 들어 있습니다. 일반 사용자를위한 프로그램은 절대 들어 가지 않아야합니다.

시작하는 동안 몇 개의 프로그램이 필요하며 /bin/또는로 끝납니다 /sbin/. 파일 시스템을 마운트하기 전에 사용 가능해야합니다. 상황이 좋아 mount하고, fsck그 확인하고 시스템이 있어야 파일을 마운트해야합니다.

대부분의 패키지 프로그램은 /usr/bin/및로 끝납니다 /usr/sbin/. 루트 파일 시스템 이외의 파일 시스템에있을 수 있습니다. 경우에 따라 네트워크 마운트 드라이브에있을 수 있습니다.

지역 프로그램 및 스크립트에 소속 /usr/local/bin/하고 /usr/local/sbin/. 이것은 그것들이 명백히 비표준이며, 현장에서만 사용 가능하다는 것을 식별합니다.

자세한 man hier설명은 배포에 권장되는 파일 시스템 계층 구조에 대한 설명을 제공하는 명령 을 실행하십시오 . Wikipedia 의 파일 시스템 계층 에 대해 읽을 수도 있습니다.


1
+1 상단이 너무 많으면 정말 간결한 설명입니다.
CppLearner

"로컬 프로그램 및 스크립트는 / usr / local / bin / 및 / usr / local / sbin /에 속해 있습니다."- "OS의 모든 부분이 아닌 로컬 프로그램을 의미하지만 설치하고 사용하기로 결정했습니다. "?
Jim Aho

11

1970 년대에, UNIX모든 공식 실행했다 /bin/usr/bin사용자 홈 디렉토리 아래에 위치했다 (예 /usr/dmr) 사용자뿐만 아니라 다른 사람에 대한 관심되었을 수 있습니다 자신의 바이너리를 저장하는 데 사용할 수였습니다.

이 개방의 결과는 /usr/bin문서화되지 않은 소프트웨어의 정크 야드이었고, 그래서는 Stephen Bourne썼다 cron script매일 밤 새로운 바이너리 검사 그뿐만 아니라 자신의 문서를 업데이트하지 않고 업데이트 된 문서상의를하지 않았거나 모든 바이너리를 제거했습니다.

1970 년대 후반, /usr/binOS 기반 배포판에 통합되었고 사람들 /usr/local/bin은 이전 공개 목적으로 사용 하기 시작했습니다 /usr/bin.

잠시 후 sysadmins 는 네트워크에서 가져온 소프트웨어 (예 : USENET) /usr/local/bin를 저장 하는 데 사용 non-local했으며 UNIX 회사는 /usr/bin다시 한 번 같은 실수를 반복하지 않기 때문에 1987 년경 모든 UNIX 회사가 동의 한 파일 시스템 계층 회의가있었습니다. 포기하고 대신 /usr/local/bin사용 /opt/<vendor>/bin합니다.

불행히도 Linux 배포판은이 결정을 따르지 않았습니다 ....


매우 흥미롭지 만, 이것 중 어느 것도 /optUNIX에 관한 것이 아니라 Linux에 관한 질문에 대답 하지 않습니다. "왜 자동차에 4 개의 바퀴가 있습니까?"라고 대답하는 것과 같습니다. "자전거에는 2가 있습니다! 슬프게도 자동차에는 없습니다." OP가 자동차에 왜 4가 있는지 이해하는 데 도움이되지 않습니다.
terdon

2
주어진 설명을 Linux의 배경에 대한 설명으로 사용하지 못하고 Linux가 UNIX를 모방하는 것을 좋아한다는 사실을 알고 있다면 필요한 배경이 누락되었을 수 있습니다.
schily

1
흥미롭지 만 혼란스럽고 역사적인 것이기도합니다. 오늘날 온라인에서 휴지통을 다운로드하는 것과 회사의 휴지통은 크게 다르지 않습니다. Joe Blow가 프로그램을 작성하여 다운로드하면 / usr / local / bin 대신 / opt / JowBlow / bin에 넣지 마십시오. 신뢰할 수있는 공급자와 신뢰할 수없는 공급자의 문제입니까? 이해가되지 않는 것 같습니다.
Didier A.

1
나는 몇 년 전이 '정확한'역사를 알고 있었으면 좋겠다. a) AIX가 / usr / local을 피하고 / opt / IBM 및 / opt / ibm을 사용하고 bullfreeware가 / opt / freeware를 사용하는 이유와 / opt / * sbin이 아닌 다른 경로를 사용해야하는 이유가 궁금했습니다. Linux와의 반-관련성 (더 나은 GNU 도구)과 관련하여 auto-tools의 기본 --prefix는 / usr / local입니다. 등 너무 나쁜 autotools를 (automake는, autoconf를이 ... 따르지 않는하지만 우리 모두가 살아남을 어디서 distrub 내용 || 업체가 자신의 프로그램을 넣어...
마이클 펠트

이 회의 중 또 하나를 가질 수 있습니까? 이번엔 모든 사람이 들어요!
MemphiZ
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.