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.