bin
디렉토리가 저장된 곳인 줄 알았는데바이너리문서. 그렇다면 스크립트 파일은 어떻습니까? 다른 곳에 배치해야 합니까?
디렉토리의 기록은 무엇이며 가능하다면 bin
스크립트 파일을 어디에 넣어야 합니까?bin
바이너리?
답변1
bin
제가 보기엔 이는 엄격하게 "바이너리"라기보다는 "실행 가능"을 의미하는 것 같습니다 . (결국 모든 파일은 바이너리입니다.) /bin
; 내 Debian 시스템에는 file /bin/* | grep -c 'shell script'
19개의 쉘 스크립트가 표시됩니다. /usr/bin에 또 다른 325개의 쉘 스크립트가 있습니다.
스크립트를 컴파일된 애플리케이션처럼 사용할 수 있는 경우 bin
사람들이 찾을 수 있을 것으로 예상하므로 적절한 디렉토리에 넣기만 하면 됩니다. 단순한 도우미 스크립트라면 별도의 디렉토리에 두는 것이 더 낫습니다. 단지 그 자체가 실제로 애플리케이션이 아니라는 점을 강조하기 위함입니다.
답변2
Unix 초기에는 이 /bin
디렉토리에 컴파일된 바이너리만 포함되어 있었습니다. 대본은 나중에 나왔습니다. 적어도 이 #! interpreter
규칙을 도입한 버전 7 이후이지만 아마도 그 이후일 것입니다.
답변3
/bin
디렉토리의 의미에 대해 인용해 주세요.소개(0)Unix Research V3 스냅샷의 매뉴얼 페이지 소스 코드는 이제 github 및 다른 곳에서 사용할 수 있습니다.
Commands generally reside in directory /bin____ (for
bin___ary programs).
동일한 텍스트가 나타납니다.유닉스 프로그래머 매뉴얼(초판 암시),소개하다, 1971년부터.
내가 아는 한, 초기 Unix에는 스크립트로 사용할 수 있는 사용자 명령이 없었으며 V6이 되어서야 두 개의 스크립트가 처음 나타났습니다. 그때쯤에는 /usr/bin
검색 및 명령에 대한 규칙이 이미 잘 확립되어 있었습니다. 그것들을 넣을 자연스러운 장소 - 그것들을 "바이너리"로부터 분리할 필요가 전혀 없었고 지금도 없습니다./bin
/usr/bin
답변4
왜, 왜 그렇게 이름이 붙여졌는지, 왜 그렇게 이름이 붙여지지 않았는지에 대해 /exec
말하자면, 모든 것은 사람들이 개발 단계에서만 사용하기 위해 정말 형편없는 이름을 선택하고 넣지 않을 수 있는 선택권이 있었던 초기 유닉스 시대로 거슬러 올라갑니다. 유닉스는 가까운 미래에 컴퓨팅을 위한 일반적인 선택이 될 것입니다. Linux는 추세를 따르고 Unix 스타일 운영 체제(POSIX 스타일 구현 읽기)의 레거시와 파일 시스템 사양 및 표준 영역을 상속합니다. 그러나 Linux가 지속적으로 개발되는 과정에서 Linux가 널리 수용되면서 Linux 전용 표준이 등장하기 시작했습니다. 이러한 표준 중에서 LFHS(Linux Filesystem Hierarchy Standard)는 시스템의 파일 시스템 계층 구조와 파일 시스템 트리 계층 내 명명 위치를 구성해야 할 필요성을 설명합니다.
Linux 파일 시스템 계층 구조 측면에서 FHS 프로젝트 사양 문서는 다음 위치에 있습니다.http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/
/bin 디렉토리에는 시스템 관리자와 권한이 없는 사용자 모두가 사용할 수 있는 몇 가지 유용한 명령이 포함되어 있습니다. 일반적으로 bash 및 csh와 같은 셸과 cp, mv, rm, cat 및 ls와 같은 일반 명령이 포함됩니다. 따라서 이 디렉토리의 바이너리는 /usr/bin에 비해 필수적인 것으로 간주됩니다. 그 이유는 /가 포함된 파티션만 설치하더라도 사용할 수 있어야 하는 기본 시스템 프로그램이 포함되어 있기 때문입니다. 다른 파티션을 복구해야 하지만 공유 디렉터리에 액세스할 수 없는 경우(예: 단일 사용자 모드이므로 네트워크에 액세스할 수 없는 경우) 이런 일이 발생할 수 있습니다. 또한 부팅 스크립트가 의존할 수 있는 프로그램도 포함되어 있습니다.
따라서 반드시 이진 실행 파일(ELF 파일)일 필요는 없지만 실행 가능하고 시스템 기능에 중요한 스크립트일 수도 있으며 /bin 디렉터리에 들어갈 수 있습니다.
또한 저는 이러한 표준이 거의 30년 이상 동안 유지되어 왔다는 점을 지적하고 싶습니다. 급격한 변화의 시대에는 현재 사용되는 기호를 계층 구조에서 완전히 제거할 수 있는 새로운 표준이 제안될 수 있습니다. 최근 온라인에 등장한 그러한 동물 중 하나는 objectRoot
계층 구조의 불편함을 제거하고 재설계하겠다는 제안이 최근 발표된 것입니다. 자세한 내용은:http://objectroot.org/root/