Mac의 명령 줄은 Linux와 어떻게 비교됩니까?


30

우분투 리눅스, 특히 명령 행을 좋아합니다. 그러나 적어도 현재로서는 Windows가 더 사용자에게 친숙하다는 점을 인정해야합니다. Windows 용 소프트웨어가 더 많고 드라이버가 많으며 더 많은 기능이 작동합니다.

Mac이 유닉스에 내장되어 있다는 사실을 알면 그것이 그들 사이에 좋은 장소인지 궁금합니다. 그러나 나는 Mac 명령 줄이 Linux의 bash와 얼마나 유사 합니까? vim 및 bash 스크립팅 및 git 등을 사용하여 바로 선택할 수 있습니까? 디렉토리 변경과 같은 일반적인 명령이 다릅니 까? 온라인 "비교 및 대조"리소스를 아는 사람이 있습니까?


답변:


11

Bash는 bash이므로 쉘과 내장 기능은 동일합니다. 그러나 일부 도구의 동작은 세부 사항과 같 ps거나 head다를 수 있으므로 스크립트가 실패 할 수 있습니다.


5
이것은 Mac과 Linux의 문제가 아니라 다양한 유닉스 계열이 약간 다른 문제를 일으킨다는 점을 명심하십시오. Linux와 예를 들어 HP-UX간에 동일한 (실제로 더 큰 차이)이 있습니다.
KeithB

2
Linux 및 OSX에서 gnu binutils 도구 세트를 표준화 할 수 있습니다. Macports와 homebrew는 모두 OSX에 설치됩니다. 이것은 적어도 ls / tar / etc와 같은 것을 표준화 할 것입니다. ps는 여전히 OS에 따라 다릅니다.
skarface

또한 file: osx에있는 file -i동안 Linux file -I에서 –️
Anthony Kong

30

Mac OS X은 Unix OS이며 명령 행은 Linux 배포판과 99.9 % 동일합니다. bash기본 쉘이며 동일한 프로그램과 유틸리티를 모두 컴파일 할 수 있습니다. 눈에 띄는 차이는 없습니다. Mac 용 패키지 관리를 제공하는 MacPorts와 같은 다양한 프로젝트를 찾을 수도 있습니다.


1
+1 : 위의 내용이 사실입니다. 코드를 컴파일하거나 사전 빌드 된 패키지를 사용할 때 Mac에서 인텔 또는 powerpc 프로세서를 사용하는 날씨를 염두에 두어야 할 수도 있습니다. 새 Mac은 인텔 전용이지만 잘못되었을 수도 있습니다. 오타 @ w0rm : 패키지 * 관리. :-)
Sirex

2
스크립트는 Mac과 Linux 모두에서 작동 할 수 있지만 항상 두 플랫폼에서 테스트하는 것이 좋습니다. 나는 리눅스 배포판과 심지어 동일한 리눅스 버전의 다른 버전간에 약간의 미묘한 차이점을 보았습니다.
Roalt

1
정확한 FeeBSD.
digitxp

6
@digit, 그들이 청구하는 BSD 버전이어야합니까? s / F / Fr /;)
John T

18
99.9 %가 올바르지 않습니다. OS X은 BSD 변형이며 GNU 유틸리티가 없습니다. 항상 설치할 수 있지만 많은 명령에는 다른 옵션이 있습니다. 유닉스이지만 리눅스는 아닙니다.
Matteo

12

매우 비슷하지만 BSD v. Linux의 차이점을 알고 있다면 Mac에 BSD 동작이 있어야합니다.


흥미 롭군 그것에 대해 더 자세히 설명해 주시겠습니까? 왜 그런가요?
fat_mike

OSX는 BSD 유틸리티하지 GNU를 사용하기 때문에 @fat_milke하는 LINIX 사용하는
user151019

b / c Linux 이전의 Unix에서 분기 된 * nix 커널 (BSD 기반 NeXTSTEP)에서 파생 된 Mac OSX 따라서 일부 유틸리티의 구현이 약간 다릅니다.
Nietzsche


9

몇 가지-실제로는 명령 줄의 의미에 달려 있습니다.

  1. 아마도 다른 유닉스에서 bash와 같은 bash를 실행할 것이다. bash 프로그래밍 언어는 동일한 버전 인 한 동일합니다. Bash 버전은 언어에 약간의 차이가 있지만 MacOSX와 Linux 자체는 아무 관련이 없습니다.

라이센스 문제로 인해 Mac의 / bin / bash가 3.x에 고정되어 있습니다. 4 또는 5까지 익숙한 경우 사소한 호환성 문제가 발생할 수 있습니다.

  1. bash 자체는 '명령 줄'의 작은 하위 집합입니다. 유용하게 사용하려면 일반적으로 awk 또는 ls 또는 cut과 같은 다른 일반적인 UNIX 유틸리티를 사용하십시오. 이력 (리눅스 나 SystemV가 아닌 BSD에서 유래) 때문에 Mac 버전의 유틸리티는 Linux에서 사용하던 유틸리티 (GNU 버전)와 다릅니다. 이것들은 Linux와는 적어도 플래그 차이와 출력 및 기능 차이가 있습니다. 이를 사용하는 스크립트는 보상하기 위해 변경되어야합니다. BSD awk와 GNU gawk는 매우 다릅니다. 또는 macports 또는 home brew에서 이러한 GNU 버전을 가져 와서 기본값이되도록 PATH를 설정할 수 있습니다 (내장 버전 이상).

  2. MacOS X에는 새로운 멋진 도구도 있습니다. open두 번 클릭 한 것처럼 객체가 열립니다. defaultsGUI 환경 설정 패널에서도 일부 환경 설정을 지정할 수 있습니다. textutil유용하고 say재미있을 수 있습니다.


3

Mac과 Linux의 명령 줄 기능은 실제로 OS X가 GUI 아래에 UNIX (Darwin이라고 함)를 가지고 있기 때문에 비슷합니다.

OS X의 기본 쉘은 bash이므로 익숙한 경우 잘 조정됩니다.

Mac에서 기본 명령 줄 응용 프로그램은 터미널입니다. 다른 많은 에뮬레이터도 있지만 전체 터미널은 Linux에서 익숙한 쉘과 매우 유사한 모양과 느낌을 제공합니다.

차이점의 주요 원인은 다음과 같습니다.

  • 때때로 다른 명령 행 인수 (예 du를 들어). 같은 기본 명령 cd또는 ls등 유사하다.
  • Linux에서와 같이 OS X에는 수동으로 편집해서는 안되는 부분이 더 있습니다. 이것은 자체 주제이지만, Mac을 실행하는 것은 구성 및 유지 측면에서 Linux 상자를 실행하는 것과 정확히 다르다는 점에 유의하십시오.

OS X의 커맨드 라인에서 사용할 수있는 많은 멋진 해킹도 있습니다 (예 : 명령 open). 더 많은 정보가있는 많은 이전 스레드와 블로그 게시물이 있습니다.

또한 오픈 소스 패키지 (예 :의 무리에 손을 얻을 수 있습니다 git, hg또한 다른 소스 패키지가 필요에 따라 시스템과 같은 UNIX / Linux 용 목적으로 구축 할 수 있습니다, 등) MacPorts를 통해, 핑크 또는 OS X에 당신을 위해 몇 가지 다른 패키지 관리 시스템 .


0

한 가지 차이점이 있습니다. Mac과 Linux bash 쉘 모두에서이 명령을 시도하십시오

find /etc -name "*.conf"

/ etc 안에 많은 .conf 파일이 있어도 Mac은 아무 것도 표시하지 않습니다.


1
어쩌면 당신은 사람들에게 이것이 왜 그런지 말할 수 있습니다.
Mads

1
확실하지 않으면 POSIX의 경로 이름 확장과 관련이있을 수 있습니다. 이 명령이 작동합니다 find /etc/* -name "*.conf". 그럼에도 불구하고, 이것은 MAC 명령 행을 LINUX 명령 행과 대조하기위한 예로서 제공되었습니다. -ve 투표를 추론 할 수 없습니다.
Antony Thomas

4
OSX의 / etc가 기호 링크이기 때문입니다. 시도 find /etc/ -name "*.conf"하면 / etc가 파일 대신 디렉토리임을 나타냅니다. findLinux에서 디렉토리에 대한 기호 링크를 기본적으로 디렉토리로 취급 합니까 ?
MechEthan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.