Linux 명령은 Unix 명령과 호환됩니까?


21

예를 들어 ls및과 같은 일부 명령 pwd은 Linux 및 Unix 시스템에서 모두 사용할 수 있습니다.

  • 모든 Linux 명령을 Unix 시스템에서 사용할 수 있습니까? 모든 Unix 명령을 Linux에서 사용할 수 있습니까?
  • 또는 모든 Linux 명령이 Unix에서 실행될 수 있지만 모든 Unix 명령이 Linux에서 실행될 수는 없습니다.
  • 아니면 모든 유닉스 명령이 리눅스에서 실행될 수 있지만 모든 리눅스 명령이 유닉스에서 실행될 수는 없습니까?
  • 또는 Linux와 Unix에서 실행할 수있는 명령과 고유 한 명령이있는 위치를 보여주는 참조가 있습니까?

28
"POSIX"에 대해 읽으십시오.
— Daniel Andersson

1
"Linux"명령이 아니라 GNU 명령입니다. 예를 들어 GNU 도구는 FreeBSD에 설치할 수 있습니다.
— 새로운 123456

2
유닉스에 GNU 툴을 설치할 수도있다.
— MSalters

답변:


37

POSIX에 대한 Daniel Andersson의 의견은 실제 답변입니다. 쉘 명령과 시스템 호출 측면에서 UNIX와 유사한 시스템의 핵심을 정의하는 POSIX라는 표준이 있습니다. 이론적으로 POSIX 사양에 소프트웨어를 작성하면 UNIX, Linux, BSD 등의 시스템에서 소프트웨어를 컴파일하고 실행할 수 있어야합니다.

http://pubs.opengroup.org/onlinepubs/009695399/mindex.html 은 POSIX의 구성 요소에 대한 명확한 답변을 제공 하지만 실제적인 목적에는 유용한 답변이 아닙니다. 다른 사람은 Linux 시스템과 다른 UNIX 계열 시스템의 공통적 인 차이점에 대한 훌륭한 명령 참조를 가질 수 있습니다.

특정 예 : Linux의 "killall"은 특정 이름을 가진 모든 프로세스를 종료합니다. Solaris에서는 시스템을 종료합니다. 잘못된 것을 사용하지 않는 것이 중요합니다.


10
@ tchrist- 당신이 정말로 그렇게 생각한다면, Mac OS X에서 "sudo apt-get"을 입력하고 그것이 당신에게 얼마나 멀리 가는지보십시오.
— David Robinson

7
@tchrist 테드 Linux (Ted Wong)이 리눅스를 언급했을 때 그는 분명히 GNU / 리눅스라고 알려진 운영체제에 대해 이야기하고 있었고, "GNU 's Not Unix!" ;)
— João Portela

4
사실, 내가 이해 한 것처럼, Mac OS X은 인증 된 유닉스입니다. 분명히 이것은 매우 기본적인 표준에 대한 인증 문제 일뿐입니다.
— Bill K

2
@tchrist L inux I s N ot U ni X
— Dave

4
@ 데이브 바. 절름발이하지 마십시오. , 스페이드 스페이드 부르는 , 다른 어떤 이름으로 장미는 여전히 달콤한로서 냄새해야 기억 해요. Windows 상자에 유닉스가 아닌 것을 배우십시오 . 그러나 리눅스는 물론 유닉스입니다. catcat
— tchrist

18

오늘날 대부분의 Linux 배포판에는 많은 필수 GNU 소프트웨어와 GNU 툴체인이 제공됩니다. GNU는 나중에 자유로이 유닉스 사본을 작성하여 나중에 리눅스 커널과 짝을 이루는 프로젝트였습니다. ls유닉스 머신에서 사용할 때는 원본 / 원본을 사용하는 것입니다 ls. lsGNU / Linux에서 사용할 때 ls처음부터 같은 GNU 를 사용하고 있습니다 ls. 그러나 모든 GNU 소프트웨어가 유닉스 소프트웨어와 정확히 같은 것은 아닙니다. 유닉스가 본질적으로 BSD로 바뀌 었으므로 GNU / Linux 배포판에는 해당 도구의 BSD 버전도 포함될 수 있습니다. 예를 들어, bsdtar그리고 tar마음에 온다.

tl; dr : 그것들은 정확히 같은 코드는 아니지만, 대부분 정확히 동일해야합니다.


2
차이점에 관해서 ps는 내가 생각할 수있는 가장 성가신 예입니다. 다른 시스템 (Linux, AIX 및 Solaris)의 다른 스위치 또한 다른 형식의 출력. 해당 명령의 목적은 모든 시스템에서 동일하지만.
— elmo

5

당신이 이야기하고있는 유닉스 (BSD, System V ...)를 지정하지 않았습니다. 보편적 (UNIX) 답변이 없습니다. 각 UNIX 변형에는 고유 한 사용자 정의 명령 (예 : Mac OS X 사용)이 있으므로 UNIX 간에도 다른 명령이 있습니다. 일반적으로 이전 명령 (ls, pwd, cd, cp, mv, rm ...)은 모든 UNIX 버전 (Linux 포함)에서 동일한 경향이 있습니다.



4

가장 먼저 고려해야 할 것은 명령이 실제로 작은 프로그램이라는 점입니다. 그런 의미에서 머리카락을 분할하면 반드시 운영 체제의 일부일 필요는 없습니다. 구식과 고전적인 것들이 오랫동안 사용되어 왔으며 대부분의 * nix 시스템에 포함되어 있습니다. OS가 "완전한"방법은 패키지와 함께 제공되는 내용에 따라 다릅니다.

예를 들어 부팅 할 수있는 대부분의 복구 / 응급 CD에는 슬림 Linux 배포판이 포함되어 있기 때문에 대부분의 경우 필요하지 않기 때문에 이러한 명령에는 일부 일반적인 명령이 포함되어 있지 않을 수 있습니다.


3

solaris에서는 /usr/gnu/bin경로 에 추가 하거나 경로 를 바꾸면 /usr/bin명령 세트가 매우 유사합니다.

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