Os comandos unix são os mesmos para Mac e Ubuntu?

5

Gostaria de saber se os comandos unix (cp, mv, grep, args etc) são os mesmos para Mac e Ubuntu.

Eles têm as mesmas listas de parâmetros e assim por diante ou tentam permanecer iguais, mas são um pouco diferentes?

    
por ajsie 21.08.2010 / 14:26

3 respostas

8

Os comandos e opções básicos são os mesmos, mas cada implementação fornece seus próprios comandos e opções adicionais.

Desde logo após o nascimento do Unix, tem havido vários sabores do Unix compartilhando um conjunto de comandos básico, mas cada um com suas próprias extensões. Os implementadores normalmente pegam recursos uns dos outros, portanto, se o sistema X introduzir uma nova opção, ele poderá ficar disponível no sistema Y após alguns anos.

Por fim, a especificação POSIX foi elaborada para padronizar um subconjunto comum de recursos. Este padrão é atualmente gerenciado pelo Open Group . Embora a versão atual do padrão seja Single Unix versão 4, a maioria dos sistemas implementa apenas a versão 3. No Ubuntu, o pacote susv3 contém a especificação Single Unix versão 3. Este é um documento de referência, portanto, pode ser uma leitura rígida, mas pode ser útil, pelo menos, verificar se uma opção que você já entende é padrão.

Existem ferramentas compatíveis com POSIX para a maioria dos sistemas operacionais de desktop / servidor. Qualquer coisa baseada em unix (Linux, Solaris, * BSD, OSX, ...) tem nativamente. Os utilitários nativos no Linux são os utilitários GNU . Existem várias implementações para o Windows, incluindo Serviços da Microsoft para Unix e portas de utilitários GNU, como cygwin e Utilitários GNU Win32 .

    
por 21.08.2010 / 15:07
8

OS X (Darwin) usa versões BSD das ferramentas padrão. O Ubuntu (e Linux em geral) usa versões GNU. Eles são muito parecidos, mas as diferenças (como presença e ordem de opções) podem te atrapalhar se você não for cuidadoso.

    
por 21.08.2010 / 14:30
4

Eles são diferentes o suficiente que (1) você não pode confiar que eles são os mesmos, (2) isso irá te frustrar muito, e (3) você deve testar cuidadosamente qualquer script que você planeja usar em ambos os sistemas.

A maneira como eu geralmente lidei com tudo isso é instalar o GNU coreutils e find e usar essas versões de preferência para as do Mac. Você pode instalar as versões GNU através de uma das ferramentas de empacotamento do * nix para o OSX:

Eles estão listados na minha ordem de preferência, mas você deve investigar para ver qual deles melhor atenderá às suas necessidades.

    
por 21.08.2010 / 16:24

Tags