Como a linha de comando do Mac se compara ao Linux?

22

Eu adoro o Ubuntu Linux - especialmente a linha de comando. Mas tenho que admitir que, pelo menos por enquanto, o Windows é mais fácil de usar - há mais softwares para ele, mais drivers e mais coisas simplesmente funcionam.

Sabendo que o Mac é baseado no Unix, me pergunto se é o ponto ideal entre eles. Mas eu me pergunto: quão similar é a linha de comando do Mac para o bash do Linux ? Posso usar o vim e o bash scripting e git, etc? Comandos comuns como alterar diretórios seriam diferentes? Alguém conhece um recurso on-line de "comparação e contraste"?

    
por Nathan Long 23.08.2010 / 12:39

6 respostas

10

O Bash é bash, então o shell e seus built-ins são os mesmos. Mas esteja ciente de que o comportamento de algumas ferramentas, como "ps" ou "head", pode diferir nos detalhes, portanto, seus scripts podem falhar.

    
por 23.08.2010 / 14:54
27

O Mac OS X é um sistema operacional Unix e sua linha de comando é 99,9% igual a qualquer distribuição Linux. bash é seu shell padrão e você pode compilar todos os mesmos programas e utilitários. Não há diferença notável. Você também pode encontrar vários projetos como o MacPorts, que fornecem gerenciamento de pacotes para Mac.

    
por 23.08.2010 / 12:48
11

É muito semelhante, mas se você souber de qualquer diferença do BSD versus Linux, espere que o Mac tenha o comportamento BSD.

    
por 23.08.2010 / 16:20
8

Algumas coisas - isso realmente depende do que você quer dizer com linha de comando.

  1. Você provavelmente executará o bash, que será o mesmo que o bash em qualquer outro UNIX. A linguagem de programação bash também será a mesma - desde que seja a mesma versão. As versões do Bash têm pequenas diferenças na linguagem, mas isso não tem nada a ver com o MacOSX vs. o Linux em si.

  2. bash por si só é um pequeno subconjunto de 'linha de comando'. Para ser útil, você normalmente usa alguns outros utilitários comuns do UNIX, como o awk, o ls ou o cut. Por causa de sua história (descende do BSD, não do Linux ou SystemV), as versões de utilitários do Mac serão diferentes daquelas com as quais você está acostumado no Linux (também nas versões GNU). Eles terão pelo menos algumas diferenças de sinalização e algumas diferenças de saída e funcionalidade que o Linux. Scripts que usam estes terão que ser alterados para compensar. O BSD awk vs o GNU gawk é bem diferente. OU, você pode obter essas versões GNU de macports e definir seu PATH para que esses sejam os padrões (sobre as versões internas).

  3. O MacOS X também tem algumas novas ferramentas interessantes. open é legal, ele irá abrir o objeto como se você tivesse clicado nele duas vezes. defaults permite que você defina algumas preferências, algumas nem mesmo nos painéis de preferências da GUI. textutil pode ser útil e say pode ser divertido.

por 23.08.2010 / 20:30
3

A funcionalidade de linha de comando no Mac e no Linux é de fato semelhante, pois o OS X tem um sabor do UNIX (chamado Darwin) sob a GUI que você vê.

O shell padrão no OS X é bash, então se você estiver familiarizado com isso, você se ajustará bem.

Em um Mac, o aplicativo de linha de comando padrão é o Terminal. Há também vários outros emuladores por aí, mas o Terminal fornece uma aparência muito semelhante ao shell que você está acostumado no Linux.

A principal fonte de diferenças são:

  • Argumentos de linha de comando diferentes às vezes (por exemplo, ver du ). Os comandos primários, como cd ou ls etc., são semelhantes.
  • Existem mais partes do OS X que não devem ser editadas à mão como você faria no Linux. Este é um tópico por si só, mas lembre-se de que executar um Mac não é exatamente como executar uma caixa do Linux em termos de configuração e manutenção.

Dito isto, há também muitos hacks legais disponíveis na linha de comando do OS X (por exemplo, open commnand). Há muitos tópicos e postagens de blogs anteriores com mais informações.

Você também pode obter um monte de pacotes opensource (por exemplo, git , hg , etc.) via MacPorts, Fink ou alguns outros sistemas de gerenciamento de pacotes para o OS X. Você também pode criar outros pacotes fonte destinado a sistemas semelhantes a UNIX / Linux, conforme necessário.

    
por 23.08.2010 / 19:56
-2

Aqui está uma diferença. Experimente este comando no shell bash do Mac e do Linux

find /etc -name "*.conf"

O Mac não exibe nada, mesmo que haja muito arquivo .conf dentro de / etc.

    
por 11.06.2012 / 06:07