BSD 도구에는 다양한 특징이 있다고 생각합니다. 예를 들어 BSD ls
도구는 FreeBSD, OpenBSD 및 NetBSD(또는 macOS)에서 동일한 도구가 아닙니다.
"다른 특징"이란 서로 다른 방식으로 작동한다는 것을 의미합니다(예: ls
FreeBSD의 BSD 도구는 이 플래그를 허용할 수 있지만 OpenBSD에서는 -A
그렇지 않을 수 있습니다).-A
하지만 GNU 도구도 다양한 형태로 제공됩니까? 예를 들어, GNU ls
와 bash
GNU nano
도구는 모든 운영 체제에서 정확히 동일하게 작동합니까?
답변1
내가 말했듯이https://unix.stackexchange.com/a/506429/5132, Linux 기반 운영 체제는 반드시 서로 동일한 프로그램을 사용하는 것은 아닙니다. 상당히 기본적인 몇몇 프로그램에는 여러 가지 구현이 있는 것으로 알려져 있습니다.
여기에는 다음이 포함되지만 이에 국한되지는 않습니다.
ifconfig
2가지 구현이 있으며 그 중 하나는 다음과 같습니다.GNU inetutils또 하나가 들어있어요NET-3 네트워크 도구. 지금은 세 개가 있는데 세 번째는 내 거예요. (바라보다https://unix.stackexchange.com/a/504084/5132.)su
2가지 구현이 있으며 그 중 하나는 다음과 같습니다.유틸리티Linux또 하나가 들어있어요그림자. 데비안은 2018년에 하나에서 다른 것으로 전환하여 이 WWW 사이트의 몇 가지 오래된 질문과 답변에 오류를 일으켰습니다. (바라보다https://unix.stackexchange.com/a/460769/5132예를 들어,"su 대 su - (Debian에서): PATH가 왜 같은가요?".)- 이 명령을 얻을 수 있는 곳은 셀 수 없이 많습니다(실제로 Debian/Ubuntu에서는 4개)
mailx
: GNU Mailutils, BSD mailx, NMH 및 s-nail. 차이점은 명령줄 구문에 있습니다. (바라보다https://unix.stackexchange.com/a/489510/5132.) vi
다를 수 있음 Heirloom/Traditionalvi
(vi
Arch Linux의 기본 버전이지만 Debian Linux에서는 전혀 패키지로 사용할 수 없는 원래 Bill Joy 버전), 호환 모드 VIM의 Bram Moolenaar의 STEVIE 파생물, Keith Bostic의 버전도 다를 수 있습니다. VIM은 Elvis의 nvi에서 파생되었습니다.
이는 유형 간의 차이가 아님을 참고하세요.암소 비슷한 일종의 영양엄밀히 말하면 도구입니다. Linux 기반 운영 체제의 도구아니요완전히 GNU 프로젝트에서 나온 것입니다. 이러한 운영 체제에는 GNU가 아닌 도구 세트의 도구도 있습니다.
또한 Linux 기반 운영 체제는 기능 면에서도 다릅니다.같은도구 세트,또한. 그들은 모두 자체 변형 로컬 수정 세트로 제작되었습니다. 몇 가지 예:
- systemd는 Linux 기반 운영 체제의 Debian 및 Fedora 제품군과 다르게 Arch Linux에서 구축되었습니다. 특히, van Smoorenburg
rc
호환성 메커니즘을 대부분(전부는 아님) 제외하는 구성 옵션으로 구축되었습니다. (바라보다https://unix.stackexchange.com/a/389298/5132,https://unix.stackexchange.com/a/451966/5132, 그리고https://unix.stackexchange.com/a/471871/5132.) - Debian Linux에서 GNU coreutils는 다음과 같습니다.
--ips
이 명령에는 추가 옵션이 있습니다who
. (바라보다https://unix.stackexchange.com/a/24279/5132.)conv=notrunc
언제dd
명령을 내릴지 지시합니다oflag=append
.
- Debian Linux에서 Bourne Again 셸에는
clear_console
Greg Wooledge(et al.)가 xyr 화면을 지우도록 강제하는 많은 메커니즘 중 하나인 (잘못 패키지된) 명령이 함께 제공됩니다. (바라보다https://unix.stackexchange.com/a/451150/5132.) grotty
Debian Linux 및 Arch Linux에서는 ISO 8613-6:1994 및 ECMA-48:1976(1968년의 (매우) 오래된 TTY-37 제어 시퀀스 대신)에서 "새로운" 터미널 제어 시퀀스를 내보내는 기본 기능이 비활성화되었습니다. . 어떤 경우에는 Arch Linux에서 작은따옴표와 하이픈이 Latin-1 아포스트로피와 빼기 기호로 변환되는 경우도 있습니다.- 다양한 Linux 기반 운영 체제는 ncurses가 "넓은" 것인지 "좁은" 것인지에 따라 달라집니다.
nano
Debian Linux에서 GNU의 "작은" 버전은 Debian 패치로 인해 메뉴 레이아웃이 다릅니다.- Arch Linux에서 Heirloom/Traditional
vi
은 원래 버전과 다른 여러 가지 방식으로 기본적으로 패치되었습니다. 여기에는 파일 저장을 위한 다른 디렉토리와 Bill Joy가 그의 ADM에는 없었던 키보드 키 편집 지원이 포함되었습니다. 이 키는 3A에서 사용됩니다. 터미널(예: PgUp및 PgDn, 참조https://vi.stackexchange.com/q/9313/19613). - 다양한 Linux 기반 운영 체제는 다양한 방식으로 즉시 OpenSSH를 구성합니다. 예를 들어 Arch Linux는
ChallengeResponseAuthentication
종료되었다PrintMotd
가 꺼졌다가UsePAM
다시 켜집니다. 데비안 리눅스 적용 가능광범위한 패치 세트.
등.
추가 읽기
- 스벤 국스(2017-08-07). "
vi
클론 및 홈 페이지".vi
페이지 수. guckes.net. - 조나단 데보인 폴라드(2016).nosh 사용자 공간 가상 터미널 맨 페이지의 기울임꼴 및 색상. 스낵팩.
답변2
이 ls
유틸리티는 -A
BSD의 모든 옵션을 허용합니다. 이는 표준 POSIX 옵션입니다.
기본 BSD 도구는 각 BSD 프로젝트에서 독립적으로 개발 및 유지 관리되지만 일부 구현 세부 사항은 때때로 프로젝트 간에 공유됩니다(예: 버그를 해결하거나 새로운 기능을 구현하는 방법, 때로는 GNU 확장을 구현하는 방법).
nano
coreutils, editor, bash
shell(3개의 개별 프로젝트) 과 같은 GNU 도구는 자체 프로젝트로 별도로 개발 및 유지 관리됩니다. 따라서 다른 구현이 나타날 가능성은 거의 없습니다.
그러나 둘 사이에는 여전히 차이점이 있습니다.이러한 도구 출시bash
, 그리고 일반적으로 한 Unix의 쉘이 다른 Unix의 쉘과 정확히 동일할 것이라고 기대할 수는 없습니다 . 또한 모든 기능을 완전히 지원하지 않거나 일반적으로 Linux에서 구현되지 않는 기능을 지원하지 않는 일부 환경에서는 수정된 GNU 도구 변형이 나타날 수 있습니다.
가장 확실한 예는 bash
셸 버전 3.2와 함께 제공되는 macOS이며 최신 버전은 5.0.x입니다.
무엇을 기대할 수 있는지 또는~해야 한다기대는 기본 유틸리티입니다.표준 POSIX 유틸리티는 GNU, BSD 또는 유틸리티의 다른 구현 여부에 관계없이 POSIX 표준에 명시된 대로 작동해야 합니다. 다시 말하지만 이것은 사실이다아니요대부분의 GNU coreutils 유틸리티에서 지원하는 "긴 옵션"과 같은 이러한 유틸리티에 대한 비표준 확장은 다른 구현에서 지원되거나 지원되지 않을 수 있으며 유틸리티 버전에 따라 다르게 작동할 수 있습니다.